首页 > 解决方案 > JBOSS 服务器日志显示错误 SESSIONINFO 添加空值

问题描述

我有部署在jboss-eap-6.3中的 war 文件,JBPM 在jboss-eap-6.4上运行。我们正在使用在JBPM中处理的决策表(excel 表) 。我们正在使用带有 ejb 和 java 的 RESTful 网络服务。为了执行我们正在使用的规则drools-6.0.1.Final。每当我有大约 4-5 个值的小请求时,它都会提供输出。但是,每当我有超过 100 个值的响应时,我都会在 jboss-eap-6.4 的 server.log 文件中收到此错误:

18:45:09,146 WARN [org.hibernate.engine.jdbc.spi.SqlExceptionHelper](EJB 默认值 - 141)SQL 错误:50200,SQLState:HYT00 18:45:09,147 WARN [org.hibernate.engine.jdbc.spi. SqlExceptionHelper](EJB 默认 - 138)SQL 错误:50200,SQLState:HYT00 18:45:09,163 错误 [org.hibernate.engine.jdbc.spi.SqlExceptionHelper](EJB 默认 - 141)超时尝试锁定表“SESSIONINFO”;SQL 语句:插入 SessionInfo (id, lastModificationDate, rulesByteArray, startDate, OPTLOCK) 值(null, ?, ?, ?, ?)[50200-168] 18:45:09,168 ERROR [org.hibernate.engine.jdbc.spi .SqlExceptionHelper](EJB 默认值 - 138)超时尝试锁定表“SESSIONINFO”;SQL 语句:插入 SessionInfo (id, lastModificationDate, rulesByteArray, startDate, OPTLOCK) 值(null, ?, ?, ?, ?)[50200-168] 18:45:09, 18.Final-redhat-2] 在 org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:772) [hibernate-core-4.2.18.Final-redhat-2.jar:4.2.18.Final-redhat- 2] 在 org.hibernate.internal.SessionImpl.persist(SessionImpl.java:746) [hibernate-core-4.2.18.Final-redhat-2.jar:4.2.18.Final-redhat-2] 在 org.hibernate .internal.SessionImpl.persist(SessionImpl.java:750) [hibernate-core-4.2.18.Final-redhat-2.jar:4.2.18.Final-redhat-2] 在 org.hibernate.ejb.AbstractEntityManagerImpl.persist (AbstractEntityManagerImpl.java:875) [hibernate-entitymanager-4.2.18.Final-redhat-2.jar:4.2.18.Final-redhat-2] ... 73 更多原因:org.h2.jdbc.JdbcSQLException:尝试锁定表“SESSIONINFO”超时;SQL 语句:插入 SessionInfo (id, lastModificationDate, rulesByteArray, startDate, OPTLOCK) 值(null, ?, ?, ?,

我试图在互联网上找到解决方案,但我没有成功。我尝试更改超时时间,增加线程池大小,增加standalone.xml 中各处的线程大小。如果有人可以给我一个想法或指向我一些相关的文章,那将非常有帮助。

标签: javajbossdroolsjbpm

解决方案


这似乎与 H2 DB 有关,而不是直接与 JBoss 本身有关。

例外:

18:45:09,146 WARN [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (EJB default - 141) SQL Error: 50200, SQLState: HYT00 18:45:09,147 WARN [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (EJB default - 138) SQL Error: 50200, SQLState: HYT00 18:45:09,163 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (EJB default - 141) 

如 Social MSDN中所述,该问题可能与 SQL Server 混合身份验证模式或 DNS 通信有关。

但特别是在您的情况下,以下几行表明该语句无法提交到表“SESSIONINFO”,因此它抛出了一个超时异常:

Could not commit session: javax.persistence.PessimisticLockException: could not execute statement at 

推荐阅读