java - 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 中各处的线程大小。如果有人可以给我一个想法或指向我一些相关的文章,那将非常有帮助。
解决方案
这似乎与 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
推荐阅读
- ffmpeg - FFMPEG - 如何在不生成不需要的元数据的情况下通过管道传输 RMS_level 和 pts_time 元数据
- javascript - 从 ajax 的输入值获取 id 时,我的控制台没有显示任何数组值
- git - Mac - 从 Git 终端中删除大于“>”
- pytorch - 添加 2 个不同大小的 pytorch 张量
- iframe - Microsoft Dynamics CRM - 实体 iframe 上的更改 - 未保存的通知
- performance - 从 Ubuntu 迁移到 Centos 7 后磁盘性能不佳
- python - Replacing for-loop with better alternatives in panda dataframes for similarity measurement
- php - 如何获取条件 HTML 字段值
- java - 每当在 Android Kotiln 中的搜索过滤器上搜索时,列表都不会显示在 RecyclerView 中
- powershell - `Start-Process` 找不到 PATH 中存在的文件,即使给定了文件的绝对路径