Oracle falling asleep!
lasmith Dec 19, 2001 4:18 AMWe are having trouble with Jboss 2.4.3 and the oracle thin client. Everything seems to work fine in normal operation. The problem is when there is a period of inactivity. Every morning when I come in (I'm the first in!) and I hit the site I get the following exception thrown:
[User] XAException: tx=XidImpl [FormatId=257, GlobalId=uksc-nt11//265, BranchQual=] errorCode=XA_UNKNOWN(0)
[User] javax.transaction.xa.XAException: Rollback failed: Io exception: Connection aborted by peer: socket write error
[User] at org.jboss.pool.jdbc.xa.wrapper.XAResourceImpl.rollback(XAResourceImpl.java:219)
[User] at org.jboss.tm.TxCapsule.rollbackResources(TxCapsule.java:1539)
[User] at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:394)
[User] at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:88)
[User] at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:352)
[User] at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:86)
[User] at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:103)
[User] at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:106)
[User] at org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:420)
[User] at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invokeHome(JRMPContainerInvoker.java:441)
[User] at org.jboss.ejb.plugins.jrmp.interfaces.HomeProxy.invokeHome(HomeProxy.java:237)
[User] at org.jboss.ejb.plugins.jrmp.interfaces.HomeProxy.invoke(HomeProxy.java:182)
[User] at $Proxy114.findByUserName(Unknown Source)
[User] at com.msxi.fcg.session.UserServiceBean.validate(UserServiceBean.java:45)
[User] at java.lang.reflect.Method.invoke(Native Method)
[User] at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:543)
[User] at org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT.java:276)
[User] at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:87)
[User] at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:128)
[User] at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:195)
[User] at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:286)
[User] at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:395)
[User] at java.lang.reflect.Method.invoke(Native Method)
[User] at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
[User] at sun.rmi.transport.Transport$1.run(Unknown Source)
[User] at java.security.AccessController.doPrivileged(Native Method)
[User] at sun.rmi.transport.Transport.serviceCall(Unknown Source)
[User] at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
[User] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
[User] at java.lang.Thread.run(Unknown Source)
[User] TRANSACTION ROLLBACK EXCEPTION:null
Embedded Exception
No more data to read from socket; nested exception is:
javax.ejb.EJBException: null
Embedded Exception
No more data to read from socket
[User] com.objectmatter.bsf.BODBException: No more data to read from socket
[User] at com.objectmatter.bsf.BODBProcessor.$fc(com/objectmatter/bsf/BODBProcessor)
[User] at com.objectmatter.bsf.BODBProcessor.selectRows(com/objectmatter/bsf/BODBProcessor)
[User] at com.objectmatter.bsf.BOPrimaryCollection.$6c(com/objectmatter/bsf/BOPrimaryCollection)
[User] at com.objectmatter.bsf.BOPrimaryCollection.get(com/objectmatter/bsf/BOPrimaryCollection)
[User] at com.objectmatter.bsf.Database.get(com/objectmatter/bsf/Database)
[User] at com.objectmatter.bsf.OQuery.execute(com/objectmatter/bsf/OQuery)
[User] at com.msxi.fcg.entity.UserBean.ejbFindByUserName(UserBean.java:350)
[User] at java.lang.reflect.Method.invoke(Native Method)
[User] at org.jboss.ejb.plugins.BMPPersistenceManager.callFinderMethod(BMPPersistenceManager.java:474)
[User] at org.jboss.ejb.plugins.BMPPersistenceManager.findEntity(BMPPersistenceManager.java:227)
[User] at org.jboss.ejb.EntityContainer.find(EntityContainer.java:594)
[User] at java.lang.reflect.Method.invoke(Native Method)
[User] at org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:843)
[User] at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:231)
[User] at org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:154)
[User] at org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityLockInterceptor.java:108)
[User] at org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:135)
[User] at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:307)
[User] at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:86)
[User] at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:103)
[User] at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:106)
[User] at org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:420)
[User] at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invokeHome(JRMPContainerInvoker.java:441)
[User] at org.jboss.ejb.plugins.jrmp.interfaces.HomeProxy.invokeHome(HomeProxy.java:237)
[User] at org.jboss.ejb.plugins.jrmp.interfaces.HomeProxy.invoke(HomeProxy.java:182)
[User] at $Proxy114.findByUserName(Unknown Source)
[User] at com.msxi.fcg.session.UserServiceBean.validate(UserServiceBean.java:45)
[User] at java.lang.reflect.Method.invoke(Native Method)
[User] at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:543)
[User] at org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT.java:276)
[User] at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:87)
[User] at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:128)
[User] at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:195)
[User] at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:286)
[User] at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:395)
[User] at java.lang.reflect.Method.invoke(Native Method)
[User] at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
[User] at sun.rmi.transport.Transport$1.run(Unknown Source)
[User] at java.security.AccessController.doPrivileged(Native Method)
[User] at sun.rmi.transport.Transport.serviceCall(Unknown Source)
[User] at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
[User] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
[User] at java.lang.Thread.run(Unknown Source)
[Default] javax.transaction.TransactionRolledbackException: null
Embedded Exception
No more data to read from socket; nested exception is:
javax.ejb.EJBException: null
Embedded Exception
No more data to read from socket
[Default] javax.ejb.EJBException: null
Embedded Exception
No more data to read from socket
[Default] at org.jboss.ejb.plugins.BMPPersistenceManager.callFinderMethod(BMPPersistenceManager.java:500)
etc......
It's quite a long stack trace and I've omitted the rest. This happens every morning. On the next hit JBoss works fine. This leads me to believe it is something to do with the connection pool. In jboss.jcml this is set to a minimum size > 0 so it should always have a connection available.
I've searched the jboss forums but to no avail. I'd apperciate any help.
The only other point to note is that we use VBSF as an intermediate layer between the BMP EJB's and the database. Though I don't think this has anything to do with it since JBoss manages the connection pool.
Laurence Smith