问候,
不确定这是否适用于这里或 stackoverflow,但如下所示:
我在 JBoss 4.2 上部署了一个带有 MySQL 后端的 J2EE 应用程序。在对该应用程序进行压力测试时,我发现了许多问题:
org.jboss.tm.JBossTransactionRolledbackException: Contention on read lock promotion for bean. Exception in second transaction; nested exception is:
javax.ejb.EJBException: Contention on read lock promotion for bean. Exception in second transaction; - nested throwable: (javax.ejb.EJBException: Contention on read lock promotion for bean. Exception in second transaction)
您建议我如何调试它?
提前致谢。
答案1
我通过在 ejbmodule/META-INF/ 中创建一个名为“jboss-container.xml”的文件解决了这个问题。
该文件的内容为:
<container-configurations>
<container-configuration extends="Standard CMP 2.x EntityBean">
<container-name>DeadlockAvoidingConfiguration</container-name>
<instance-cache>org.jboss.ejb.plugins.PerTxEntityInstanceCache</instance-cache>
<locking-policy>org.jboss.ejb.plugins.lock.NoLock</locking-policy>
<commit-option>C</commit-option>
</container-configuration>
</container-configurations>
我知道这不是最佳解决方案(因为它会影响缓存),但它修复了错误。
请随意添加。