执行错误:org.infinispan.util.concurrent.TimeoutException:ISPN000299:密钥

时间:2016-06-02 15:48:15

标签: java java-ee jboss7.x jboss-arquillian infinispan

在以arquillian运行测试用例时,我遇到了错误的错误。 当我在实际服务器上运行用例时,没有这样的例外情况。

我正在使用带有Infinispan 5.1的JBoss AS 7。

我尝试使用How to fix "Unable to acquire lock after 15 seconds" errors in Wildfly的解决方案,但它没有用。

15:25:07,539 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (EJB default - 44) ISPN000136: Execution error: org.infinispan.util.concurrent.TimeoutException: ISPN000299: Unable to acquire lock after 10 seconds for key XXX and requestor GlobalTransaction:<null>:21:local. Lock is held by GlobalTransaction:<null>:20:local, while request came from local
    at org.infinispan.util.concurrent.locks.LockManagerImpl.lock(LockManagerImpl.java:198)
    at org.infinispan.util.concurrent.locks.LockManagerImpl.acquireLock(LockManagerImpl.java:171)
    at org.infinispan.interceptors.locking.AbstractTxLockingInterceptor.lockKeyAndCheckOwnership(AbstractTxLockingInterceptor.java:177)
    at org.infinispan.interceptors.locking.AbstractTxLockingInterceptor.lockAndRegisterBackupLock(AbstractTxLockingInterceptor.java:110)
    at org.infinispan.interceptors.locking.OptimisticLockingInterceptor$LockAcquisitionVisitor.lockAndRecord(OptimisticLockingInterceptor.java:218)
    at org.infinispan.interceptors.locking.OptimisticLockingInterceptor$LockAcquisitionVisitor.visitSingleKeyCommand(OptimisticLockingInterceptor.java:213)
    at org.infinispan.interceptors.locking.OptimisticLockingInterceptor$LockAcquisitionVisitor.visitPutKeyValueCommand(OptimisticLockingInterceptor.java:206)
    at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71)
    at org.infinispan.interceptors.locking.OptimisticLockingInterceptor.acquireLocksVisitingCommands(OptimisticLockingInterceptor.java:277)
    at org.infinispan.interceptors.locking.OptimisticLockingInterceptor.visitPrepareCommand(OptimisticLockingInterceptor.java:76)
    at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
    at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:97)
    at org.infinispan.interceptors.NotificationInterceptor.visitPrepareCommand(NotificationInterceptor.java:36)
    at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
    at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:97)
    at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:111)
    at org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:109)
    at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
    at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:97)
    at org.infinispan.interceptors.TxInterceptor.invokeNextInterceptorAndVerifyTransaction(TxInterceptor.java:132)
    at org.infinispan.interceptors.TxInterceptor.visitPrepareCommand(TxInterceptor.java:119)
    at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
    at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:97)
    at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:111)
    at org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:109)
    at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124

2 个答案:

答案 0 :(得分:0)

如果您不在HA中,则可以参考以下帖子中的建议:https://developer.jboss.org/thread/243458

此问题已在widfly 8.1版本中修复,链接:https://issues.jboss.org/browse/WFLY-3715

答案 1 :(得分:0)

我解决了在新线程中启动缓存更新的问题。我认为,如果您更新EJB-Thread中的缓存,则会产生互锁。

我希望它能起作用