日期:2014-05-20  浏览次数:20951 次

JBPM无法解决的问题

  大家好,下面这个报错是怎么回事啊。

  could not load an entity batch: [org.jbpm.graph.exe.Token#<237, 306, 307, 248, 254, 259, 260, 261, 262, 264, 265, 266, 267, 269, 240, 242, 243, 244, 245, 272, 273, 284, 318, 319, 247>] [Microsoft][SQLServer 2000 Driver for JDBC]Can't start a cloned connection while in manual transaction mode.

  public void checkProcessInsTransit(long taskInsId, String transitName,
String checkUser) throws DataAccessException {
try {
TaskInstance ti = getContext().getTaskMgmtSession()
.getTaskInstance(taskInsId);
ContextInstance ci = ti.getContextInstance();
StringBuffer sb = new StringBuffer();
sb.append(checkUser);
ci.setVariable("users", sb.toString());// 在这里报错
ti.end(transitName);
} finally {
getContext().close();
}
}

------解决方案--------------------
Can't start a cloned connection while in manual transaction mode. 

你在尝试打开一个克隆连接

解决方法:你在DatabaseURL字符串中加入SelectMethod=Cursor;如下 
jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Partner;SelectMethod=Cursor;

原因一般是当你在一个SQL SERVER的JDBC连接上执行多个STATEMENTS的操作,或者是手动事务状态(AutoCommit=false) 并且使用默认的模式. direct (SelectMethod=direct) 模式.

解决办法
当你使用手动事务模式时,必须把SelectMethod 属性的值设置为 Cursor, 或者是确保在你的连接只有一个STATEMENT操作。

修改url

加入SelectMethod=cursor即可

网摘 LZ试下