Java JBPM 7.48/PAM 7.10下SQL Server的对象名称无效

Java JBPM 7.48/PAM 7.10下SQL Server的对象名称无效,java,sql-server,hibernate,jbpm,persistence.xml,Java,Sql Server,Hibernate,Jbpm,Persistence.xml,我最近从JBPM 7.44/PAM 7.9.1升级到JBPM 7.48/PAM 7.10.0,当JBPM保持在安全状态时(即,当JBPM试图保存进程的状态时,它对Hibernate的使用会引发关于NodeInstanceLog和SessionInfo是无效对象的异常),在Hibernate查询中获取无效的对象名。我在persistence.xml中添加了几个持久性单元,在SQL Server for JBPM中删除/添加了表,并在其文档中发出了ALTER TABLE命令RedHat refere

我最近从JBPM 7.44/PAM 7.9.1升级到JBPM 7.48/PAM 7.10.0,当JBPM保持在安全状态时(即,当JBPM试图保存进程的状态时,它对Hibernate的使用会引发关于NodeInstanceLog和SessionInfo是无效对象的异常),在Hibernate查询中获取无效的对象名。我在persistence.xml中添加了几个持久性单元,在SQL Server for JBPM中删除/添加了表,并在其文档中发出了ALTER TABLE命令RedHat reference以避免死锁。使用JDBC访问JBPM表工作正常,NodeInstanceLog和Session都是AMS_JBPM.dbo.NodeInstanceLog中的表

关于如何纠正我的配置有什么想法吗

以下是我的堆栈跟踪的结尾:

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'NodeInstanceLog'.
        at com.microsoft.sqlserver.jdbc//com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:262)
        at com.microsoft.sqlserver.jdbc//com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1632)
        at com.microsoft.sqlserver.jdbc//com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:602)
        at com.microsoft.sqlserver.jdbc//com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:524)
        at com.microsoft.sqlserver.jdbc//com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7375)
        at com.microsoft.sqlserver.jdbc//com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:3206)
        at com.microsoft.sqlserver.jdbc//com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:247)
        at com.microsoft.sqlserver.jdbc//com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:222)
        at com.microsoft.sqlserver.jdbc//com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(SQLServerPreparedStatement.java:473)
        at org.jboss.ironjac...@1.4.19.Final-redhat-00001//org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:537)
        at deployment.kie-server.war//org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:175)
        ... 144 more
以下是我在standalone-full.xml中的DB配置:(在连接URL中未指定DatabaseName时,我也以相同的结果运行了此配置)


jdbc:sqlserver://${db.server};DatabaseName=AMS_JBPM
数据库
${db.jbpm.user}
${db.jbpm.pwd}
com.microsoft.sqlserver.jdbc.SQLServerDriver
Hibernate似乎是在Business Central中定义的,但我还有一个Hibernate.config.xml文件

<hibernate-configuration>
   <session-factory>
      <property name="hibernate.dialect">org.hibernate.dialect.SQLServer2012Dialect</property>
      <property name="hibernate.max_fetch_depth">3</property> 
      <property name="hibernate.hbm2ddl.auto">none</property>
      <property name="hibernate.show_sql">true</property>      
      <property name="hibernate.id.new_generator_mappings">false</property>
      <property name="hibernate.transaction.jta.platform">
          org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform</property>
      <property name = "hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
      <property name = "hibernate.connection.url">jdbc:sqlserver://${server};DatabaseName=AMS_JBPM</property>
      <property name = "hibernate.connection.username">${db.jbpm.user}</property>
      <property name = "hibernate.connection.password">${db..jbpm.pwd}</property>
      <mapping resource="User.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

org.hibernate.dial.SQLServer2012Dialect
3.
没有一个
真的
假的
org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform
com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc:sqlserver://${server};DatabaseName=AMS_JBPM
${db.jbpm.user}
${db..jbpm.pwd}
persistence.xml
与之类似,但考虑到其中提到的类的数量,可能不允许在此列出。我使用Hibernate运行时没有在连接URL中引用数据库名,指定了默认模式,并使用JBossStandAloneJtaPlatform(而不是JBossAppServerJtaPlatform)。My persistence.xml使用许多类定义持久化单元,包括SessionInfo和NodeInstanceLog

<hibernate-configuration>
   <session-factory>
      <property name="hibernate.dialect">org.hibernate.dialect.SQLServer2012Dialect</property>
      <property name="hibernate.max_fetch_depth">3</property> 
      <property name="hibernate.hbm2ddl.auto">none</property>
      <property name="hibernate.show_sql">true</property>      
      <property name="hibernate.id.new_generator_mappings">false</property>
      <property name="hibernate.transaction.jta.platform">
          org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform</property>
      <property name = "hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
      <property name = "hibernate.connection.url">jdbc:sqlserver://${server};DatabaseName=AMS_JBPM</property>
      <property name = "hibernate.connection.username">${db.jbpm.user}</property>
      <property name = "hibernate.connection.password">${db..jbpm.pwd}</property>
      <mapping resource="User.hbm.xml"/>
    </session-factory>
</hibernate-configuration>