3

jboss で非常に長いトランザクション (10 分以上) を実行しています。このトランザクションは、10 分後に一貫して失敗します。jboss-service.xml を次のように変更しました。

<mbean code="com.arjuna.ats.jbossatx.jta.TransactionManagerService"
      name="jboss:service=TransactionManager">
      <attribute name="TransactionTimeout">1200</attribute>
      <attribute name="ObjectStoreDir">${jboss.server.data.dir}/tx-object-store</attribute> 
</mbean>

また、standardjboss.xml で Bean の最大経過時間を変更しました (10 回):

<max-bean-age>1600</max-bean-age>

デフォルトでは 600 に設定されていますが (10 分)、1600 でも問題は発生します。

いくつかのログ: トランザクション中にこれを何千回も取得しました:

 2012-10-29 15:57:45,006 DEBUG [com.hp.hpl.jena.shared.LockMRSW] Lock : http-0.0.0.0-8080-2
    2012-10-29 15:57:45,006 DEBUG [com.hp.hpl.jena.shared.LockMRSW] http-0.0.0.0-8080-2 >> enterCS: Thread R/W: 0/0 :: Model R/W: 0/0 (thread: http-0.0.0.0-8080-2)
    2012-10-29 15:57:45,006 DEBUG [com.hp.hpl.jena.shared.LockMRSW] http-0.0.0.0-8080-2 << enterCS: Thread R/W: 0/1 :: Model R/W: 0/1 (thread: http-0.0.0.0-8080-2)
    2012-10-29 15:57:45,006 DEBUG [com.hp.hpl.jena.shared.LockMRSW] http-0.0.0.0-8080-2 >> leaveCS: Thread R/W: 0/1 :: Model R/W: 0/1 (thread: http-0.0.0.0-8080-2)
    2012-10-29 15:57:45,006 DEBUG [com.hp.hpl.jena.shared.LockMRSW] http-0.0.0.0-8080-2 << leaveCS: Thread R/W: 0/0 :: Model R/W: 0/0 (thread: http-0.0.0.0-8080-2)
    2012-10-29 15:57:45,115 DEBUG [com.hp.hpl.jena.shared.LockMRSW] Lock : http-0.0.0.0-8080-2

そして失敗したとき:

2012-10-29 15:58:12,944 DEBUG [com.hp.hpl.jena.shared.LockMRSW] Lock : http-0.0.0.0-8080-2
2012-10-29 15:58:12,944 DEBUG [com.hp.hpl.jena.shared.LockMRSW] http-0.0.0.0-8080-2 >> enterCS: Thread R/W: 0/0 :: Model R/W: 0/0 (thread: http-0.0.0.0-8080-2)
2012-10-29 15:58:12,944 DEBUG [com.hp.hpl.jena.shared.LockMRSW] http-0.0.0.0-8080-2 << enterCS: Thread R/W: 0/1 :: Model R/W: 0/1 (thread: http-0.0.0.0-8080-2)
2012-10-29 15:58:12,944 DEBUG [com.hp.hpl.jena.shared.LockMRSW] http-0.0.0.0-8080-2 >> leaveCS: Thread R/W: 0/1 :: Model R/W: 0/1 (thread: http-0.0.0.0-8080-2)
2012-10-29 15:58:12,944 DEBUG [com.hp.hpl.jena.shared.LockMRSW] http-0.0.0.0-8080-2 << leaveCS: Thread R/W: 0/0 :: Model R/W: 0/0 (thread: http-0.0.0.0-8080-2)
2012-10-29 15:58:12,975 DEBUG [org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager] Attempting to activate; id=4spxl-oj441k-h8vp9pzg-1-h8vpcqc2-p
2012-10-29 15:58:13,100 ERROR [org.nuxeo.ecm.core.event.impl.EventServiceImpl] Error during sync listener execution
javax.ejb.NoSuchEJBException: Could not find stateful bean: 4spxl-oj441k-h8vp9pzg-1-h8vpcqc2-p
    at org.jboss.ejb3.cache.simple.SimpleStatefulCache.get(SimpleStatefulCache.java:390)
    at org.jboss.ejb3.cache.simple.SimpleStatefulCache.get(SimpleStatefulCache.java:375)
    at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:61)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    at org.jboss.aspects.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:166)
    at org.jboss.ejb3.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:115)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)

誰かが私を助けることができますか?

ここに相対的な投稿がありますが、解決策はありません: https://community.jboss.org/thread/159596

どうもありがとう !

4

1 に答える 1

2

私は解決策を見つけました:

: "jboss\server\default\conf\jboss-service.xml" 行: 1200 (デフォルトは 300)

それで

「jboss\server\default\deploy\ejb3-interceptors-aop.xml」に移動します。

検索: idleTimeoutSeconds=300

に置き換えます: idleTimeoutSeconds=1800

4 つのオカレンスがあり、すべて置き換えます。

于 2012-11-07T09:00:30.903 に答える