I'm experiencing a strange problem, with TreeCache seemingly trying to rollback 
a Weblogic transaction.

Here's the setup:
- Two weblogic 9 servers, running a clustered application.
- Each night, the cached data must be refreshed. Since this process requires 
other external processes to succeed before running, it is triggered by an 
external client. It's a simple Java app that calls two methods in a stateless 
session bean.

The cache reloader client calls one instance. This instance reloads its cache. 
When a specific event occurs, the second instances catches it thanks to a 
CacheListener and starts its own reload. We do not use replication for this 
reloading process since the data that would be transfered at commit-time is too 
big. While the cache normally uses replications, for daily operations, the 
reloading puts the cache in LOCAL mode, only for the reloading duration.

The following exception was encountered on the client app that triggered the 
reloading of the cache. On the servers, there were absolutely no exceptions, 
and everything went smoothly. All logs show that the two instances reloaded 
their cached data successfully.

Here is the stacktrace:

  | ###### CLIENT APPLICATION
  | com.myCompany.commons.exception.SystemException: See nested for more 
details.
  |  at 
com.myCompany.dac.ejb.DacRemoteExceptionInterceptor.handleRemote(DacRemoteExceptionInterceptor.java:55)
  |  at 
com.myCompany.dac.ejb.DacRemoteExceptionInterceptor.execute(DacRemoteExceptionInterceptor.java:22)
  |  at 
com.myCompany.util.bizdel.BusinessDelegateInvocationContext.proceed(BusinessDelegateInvocationContext.java:46)
  |  at 
com.myCompany.util.bizdel.BusinessDelegate$1.invoke(BusinessDelegate.java:286)
  |  at $Proxy6.resetAndLoadCache(Unknown Source)
  |  at com.myCompany.dac.cache.DacCacheReloader.main(DacCacheReloader.java:24)
  | 
  | ###### CAUGHT EXCEPTION
  | Caused by: javax.transaction.TransactionRolledbackException: 
BEA1-2AB0DCA982790F4DB46C: 
weblogic.transaction.internal.AppSetRollbackOnlyException
  |  at 
weblogic.transaction.internal.TransactionImpl.setRollbackOnly(TransactionImpl.java:524)
  |  at 
org.jboss.cache.interceptors.TxInterceptor$LocalSynchronizationHandler.beforeCompletion(TxInterceptor.java:1172)
  |  at 
org.jboss.cache.interceptors.OrderedSynchronizationHandler.beforeCompletion(OrderedSynchronizationHandler.java:84)
  |  at 
weblogic.transaction.internal.ServerSCInfo.doBeforeCompletion(ServerSCInfo.java:1150)
  |  at 
weblogic.transaction.internal.ServerSCInfo.callBeforeCompletions(ServerSCInfo.java:1128)
  |  at 
weblogic.transaction.internal.ServerSCInfo.startPrePrepareAndChain(ServerSCInfo.java:115)
  |  at 
weblogic.transaction.internal.ServerTransactionImpl.localPrePrepareAndChain(ServerTransactionImpl.java:1288)
  |  at 
weblogic.transaction.internal.ServerTransactionImpl.globalPrePrepare(ServerTransactionImpl.java:2098)
  |  at 
weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:259)
  |  at 
weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:228)
  |  at 
weblogic.ejb.container.internal.BaseEJBObject.postInvoke1(BaseEJBObject.java:539)
  |  at 
weblogic.ejb.container.internal.StatelessEJBObject.postInvoke1(StatelessEJBObject.java:72)
  |  at 
weblogic.ejb.container.internal.BaseEJBObject.postInvokeTxRetry(BaseEJBObject.java:374)
  |  at 
com.myCompany.dac.svc.ejb.session.DacAdmin_accoim_EOImpl.resetAndLoadCache(DacAdmin_accoim_EOImpl.java:191)
  |  at 
com.myCompany.dac.svc.ejb.session.DacAdmin_accoim_EOImpl_WLSkel.invoke(ILweblogic.rmi.spi.InboundRequest;
  |  
Lweblogic.rmi.spi.OutboundResponse;Ljava.lang.Object;)Lweblogic.rmi.spi.OutboundResponse;(Unknown
 Source)
  |  at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:548)
  |  at 
weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:224)
  |  at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:438)
  |  at 
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
  |  at 
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
  |  at 
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:388)
  |  at weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:57)
  |  at 
weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:965)
  |  at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
  |  at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
  | ; nested exception is:
  |  weblogic.transaction.internal.AppSetRollbackOnlyException
  |  at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:211)
  |  at 
weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:338)
  |  at 
weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:252)
  |  at 
com.myCompany.myProject.svc.ejb.session.myProjectAdmin_accoim_EOImpl_921_WLStub.resetAndLoadCache(Unknown
 Source)
  |  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |  at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  |  at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |  at java.lang.reflect.Method.invoke(Method.java:585)
  |  at 
com.myCompany.util.bizdel.BusinessDelegateInvocationContext.proceed(BusinessDelegateInvocationContext.java:49)
  |  at 
com.myCompany.dac.ejb.DacRemoteExceptionInterceptor.execute(DacRemoteExceptionInterceptor.java:20)
  |  ... 4 more
  | Caused by: weblogic.transaction.internal.AppSetRollbackOnlyException
  |  at 
weblogic.transaction.internal.TransactionImpl.setRollbackOnly(TransactionImpl.java:524)
  |  at 
org.jboss.cache.interceptors.TxInterceptor$LocalSynchronizationHandler.beforeCompletion(TxInterceptor.java:1172)
  |  at 
org.jboss.cache.interceptors.OrderedSynchronizationHandler.beforeCompletion(OrderedSynchronizationHandler.java:84)
  |  at 
weblogic.transaction.internal.ServerSCInfo.doBeforeCompletion(ServerSCInfo.java:1150)
  |  at 
weblogic.transaction.internal.ServerSCInfo.callBeforeCompletions(ServerSCInfo.java:1128)
  |  at 
weblogic.transaction.internal.ServerSCInfo.startPrePrepareAndChain(ServerSCInfo.java:115)
  |  at 
weblogic.transaction.internal.ServerTransactionImpl.localPrePrepareAndChain(ServerTransactionImpl.java:1288)
  |  at 
weblogic.transaction.internal.ServerTransactionImpl.globalPrePrepare(ServerTransactionImpl.java:2098)
  |  at 
weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:259)
  |  at 
weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:228)
  |  at 
weblogic.ejb.container.internal.BaseEJBObject.postInvoke1(BaseEJBObject.java:539)
  |  at 
weblogic.ejb.container.internal.StatelessEJBObject.postInvoke1(StatelessEJBObject.java:72)
  |  at 
weblogic.ejb.container.internal.BaseEJBObject.postInvokeTxRetry(BaseEJBObject.java:374)
  |  at 
com.myCompany.dac.svc.ejb.session.DacAdmin_accoim_EOImpl.resetAndLoadCache(DacAdmin_accoim_EOImpl.java:191)
  |  at 
com.myCompany.dac.svc.ejb.session.DacAdmin_accoim_EOImpl_WLSkel.invoke(Unknown 
Source)
  |  at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:548)
  |  at 
weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:224)
  |  at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:438)
  |  at 
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
  |  at 
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
  |  at 
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:388)
  |  at weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:57)
  |  at 
weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:965)
  |  at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
  |  at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
  | 

The org.jboss lines seem to show that some JBossCache component provoked an 
Exception while trying to trigger the rollback. Unfortunately there is no 
message explaining the reason of the problem.

I am also very confused by the fact that there are absolutely no Exceptions on 
the servers.

- Is is correct to say that JBossCache was trying to mark the weblogic 
transaction as rollbacked but didn't succeed?
- How can I know which problem lead JBossCache to trigger the rollback?
- Is that a JBossCache bug?
- What is the state of the cache after such an Exception?
- Why is this exception not caused by an Exception on one of the servers? (or 
at least: why is there no trace of this exception on any of the servers?)

Thanks for your answers,

Sebastien

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4122628#4122628

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4122628
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to