[JCA/JBoss] - Re: OracleExceptionSorter and CLOSED CONNECTION exception
by ldevallonne
Hello,
We are using JBoss 4.0.2. I had a look to the OracleExceptionSorter of version 4.0.5CR1, but this particular error (code 17008) is not caught.
Looking into it, it seems that that the TxConnectionManager returns a closed connection to the JMS layer (we use oracle persistency for JMS). The full exception looks like :
2006-09-06 12:17:30,868 WARN [org.jboss.resource.connectionmanager.TxConnectionManager] Connection error occured: org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener@18986e81[state=NORMAL mc=org.jboss.resource.adapter.jdbc.local.LocalManagedConnection@1d196e81 handles=0 lastUse=1157545050652 permit=true trackByTx=true mcp=org.jboss.resource.connectionmanager.JBossManagedConnectionPool$OnePool@1beeee9 context=org.jboss.resource.connectionmanager.InternalManagedConnectionPool@46a4aee8]
java.sql.SQLException: Closed Connection
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1133)
at org.jboss.resource.adapter.jdbc.local.LocalManagedConnection.rollback(LocalManagedConnection.java:119)
at org.jboss.resource.connectionmanager.TxConnectionManager$LocalXAResource.rollback(TxConnectionManager.java:781)
at org.jboss.tm.TransactionImpl$Resource.rollback(TransactionImpl.java:2166)
at org.jboss.tm.TransactionImpl.rollbackResources(TransactionImpl.java:1728)
at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:384)
at org.jboss.tm.TxManager.rollback(TxManager.java:323)
at org.jboss.mq.sm.jdbc.JDBCStateManager$JDBCSession.close(JDBCStateManager.java:626)
at org.jboss.mq.sm.jdbc.JDBCStateManager.checkLoggedOnClientId(JDBCStateManager.java:336)
at org.jboss.mq.sm.AbstractStateManager.addLoggedOnClientId(AbstractStateManager.java:187)
at org.jboss.mq.server.JMSDestinationManager.getID(JMSDestinationManager.java:207)
at org.jboss.mq.server.JMSServerInterceptorSupport.getID(JMSServerInterceptorSupport.java:77)
at org.jboss.mq.server.TracingInterceptor.getID(TracingInterceptor.java:71)
at org.jboss.mq.server.JMSServerInvoker.getID(JMSServerInvoker.java:78)
at org.jboss.mq.il.uil2.ServerSocketManagerHandler.handleMsg(ServerSocketManagerHandler.java:135)
at org.jboss.mq.il.uil2.SocketManager$ReadTask.handleMsg(SocketManager.java:369)
at org.jboss.mq.il.uil2.msgs.BaseMsg.run(BaseMsg.java:377)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
at java.lang.Thread.run(Thread.java:570)
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3969728#3969728
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3969728
19 years, 7 months
[JBoss jBPM] - MessageService and JMS
by mteira
Hello.
I'm interested into implementing a clustered capable workflow system, and started reading the user tutorial of jBPM and also some of the source code to see how the thing works.
I need to support concurrent execution for the actions associated with parallel tokens into process instances (and also for tokens from different process instances). Having into account that I want to run inside a J2EE server, I'm observing the following facts:
1.-CommandExecutorThread is not the way to go for me, because it consumes the messages in a single thread, so, a Task with two simultaneous Tokens is not going to execute the two branches at the same time. I think that with this approach, different tasks are not running actions in parallel neither. The running thread is another problem to deploy it inside a J2EE application server.
2.-Using DbMessageService as MessageService implementation needs the messages to be consumed from a central point. This seems also a not J2EE friendly approach.
So, I think that the most natural way to implement it is to use a JMS message service, and so, implement MDBs to consume those messages and run the required actions, in a similar way CommandExecutorThread is working but only consuming the J2EE provided message.
This will probably be a good starting point to provide clustering capabilities, since the JMS component can be clustered, and we could consume the messages from different J2EE servers.
Do you think this is a right approach? Any comments about this?
I've also seen that there's a org.jbpm.msg.jms package that seems to be an effort to implement just this, a MessageService JMS implementation. But it seems it's under construction (as I can see some TODO comments in the code , and some methods remain unimplemented). I'm I right. Is this an effort to do what I'm trying to do?
Is somebody working into this? Where could I find more information about it?
Regards.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3969709#3969709
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3969709
19 years, 7 months