Hi all,
We are using,
JBOSS/Tomcat 3.2.2
Oracle 8.1.7
JDBC Driver (thin): Oracle8i Release 2 (8.1.7)
We are using JMS with XA. When there's a payment that pays for one item, the payment
bean would write two messages to two JMS queue and two message bean would wake up to
do post payment processing. Everything works fine until we have a payment that pays
for (relatively) large number of items, say 15. In this case, the system would try to
write 30 messages to the JMS queue (under one global transaction) and we would get the
error as listed in the stack trace below. Nothing get saved to the jms table and none
of the message bean wake up to process any of the messages.
I searched the forum and it seems we would get the sqlException, No more data to
read from socket when the message is too large and Oracle thin dirver was used. In
our case however, we are writing one message for each item so that is not the problem.
I did try using latest version of OCI and thin driver (10g) and the problem seem to
go away. Anyone ever encoutered this problem before? I would prefer to solve this
problem without having to change the JDBC driver as our database is older verion
8.1.7.
thanks
the following is the stacktrace
---
10:37:57,750 WARN [TxConnectionManager] Prepare called on a local tx. Use of lo
cal transactions on a jta transaction with more than one branch may result in in
consistent data in some cases of failure.
10:38:08,531 WARN [JBossManagedConnectionPool] Exception destroying ManagedConn
ection
org.jboss.resource.JBossResourceException: SQLException; - nested throwable: (ja
va.sql.SQLException: No more data to read from socket)
at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.checkExc
eption(BaseWrapperManagedConnection.java:541)
at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.destroy(XAMana
gedConnection.java:119)
at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.do
Destroy(InternalManagedConnectionPool.java:476)
at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.re
turnConnection(InternalManagedConnectionPool.java:323)
at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BaseP
ool.returnConnection(JBossManagedConnectionPool.java:508)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.returnMan
agedConnection(BaseConnectionManager2.java:436)
at org.jboss.resource.connectionmanager.BaseConnectionManager2$BaseConne
ctionEventListener.connectionErrorOccurred(BaseConnectionManager2.java:778)
at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnection
EventListener.connectionErrorOccurred(TxConnectionManager.java:603)
at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.broadcas
tConnectionError(BaseWrapperManagedConnection.java:318)
at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.broadcastConne
ctionError(XAManagedConnection.java:78)
at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.connecti
onError(BaseWrapperManagedConnection.java:303)
at org.jboss.resource.adapter.jdbc.WrappedConnection.checkException(Wrap
pedConnection.java:791)
at org.jboss.resource.adapter.jdbc.WrappedStatement.checkException(Wrapp
edStatement.java:767)
at org.jboss.resource.adapter.jdbc.WrappedStatement.close(WrappedStateme
nt.java:56)
at org.jboss.mq.pm.jdbc2.PersistenceManager.add(PersistenceManager.java:
790)
at org.jboss.mq.pm.jdbc2.PersistenceManager.add(PersistenceManager.java:
730)
at org.jboss.mq.server.PersistentQueue.addMessage(PersistentQueue.java:4
4)
at org.jboss.mq.server.JMSQueue.addMessage(JMSQueue.java:145)
at org.jboss.mq.server.JMSDestinationManager.addMessage(JMSDestinationMa
nager.java:407)
at org.jboss.mq.server.JMSDestinationManager.transact(JMSDestinationMana
ger.java:466)
at org.jboss.mq.server.JMSServerInterceptorSupport.transact(JMSServerInt
erceptorSupport.java:186)
at org.jboss.mq.server.TracingInterceptor.transact(TracingInterceptor.ja
va:438)
at org.jboss.mq.server.JMSServerInvoker.transact(JMSServerInvoker.java:1
86)
at org.jboss.mq.il.jvm.JVMServerIL.transact(JVMServerIL.java:328)
at org.jboss.mq.Connection.send(Connection.java:928)
at org.jboss.mq.SpyXAResourceManager.prepare(SpyXAResourceManager.java:1
91)
at org.jboss.mq.SpyXAResource.prepare(SpyXAResource.java:172)
at org.jboss.tm.TransactionImpl.prepareResources(TransactionImpl.java:14
92)
at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:380)
at org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCM
T.java:398)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxIntercep
torCMT.java:277)
at