[JBoss JIRA] Created: (JBESB-1909) JmsConnectionPool overflows sometimes with JBossMQ
by Pavel Kadlec (JIRA)
JmsConnectionPool overflows sometimes with JBossMQ
--------------------------------------------------
Key: JBESB-1909
URL: https://jira.jboss.org/jira/browse/JBESB-1909
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Rosetta
Affects Versions: 4.3
Environment: JBossAS-4.2.2.GA with JBossMQ
Reporter: Pavel Kadlec
The core reason is that JBossMQ's XAConnectionFactory.createSession always creates XASession (is always transacted and with SESSION_TRANSACTED acknowledgement mode), but JBossMessaging's XAConnectionFactory.createSession creates non-xa Session (transacted or non-transacted and with customized acknowledgement mode). The JmsConnectionPool is intended to be used with JBossMessaging behaviour only.
The overflow occurs when caller thread associated with *NO* transaction sends esb message (by jms courier) using *XAConnectionFactory* to the esb service.
In this case the connection pool uses XAConnectionFactory.createSession for creating the session. The pool has hashmaps which key is acknowledgement mode. JBossMQ's XAConnectionFactory.createSession always creates Session with SESSION_TRANSACTED acknowledgement mode. But the pool registers the session under customized acknowledgement mode into the maps (eg. AUTO_ACKNOWLEDGE). When session clean is called, the JmsConnectionPool tries to remove the session from the pool, but uses Session.getAcknowledgement to find out what type of session it is. This returns SESSION_TRANSACTED mode, but session was registered under eg. AUTO_ACKNOWLEDGE mode. The pool is not cleaned up correctly and overflows.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 10 months
[JBoss JIRA] Created: (JBESB-2504) Identify any issues with using IBM MQ and provide direct support within the ESB codebase
by Kevin Conner (JIRA)
Identify any issues with using IBM MQ and provide direct support within the ESB codebase
----------------------------------------------------------------------------------------
Key: JBESB-2504
URL: https://jira.jboss.org/jira/browse/JBESB-2504
Project: JBoss ESB
Issue Type: Task
Security Level: Public (Everyone can see)
Components: Transports
Affects Versions: 4.2.1 CP4
Reporter: Kevin Conner
Fix For: 4.2.1 CP5
TomF has already done some work on this task, in relation to a customer enquiry.
The solution he created was to provide an adapter to the MQ ConnectionFactory/Connection classes which could then be referred to from within the ESB configuration.
The main purpose of the adapter was to handle the requirement that there only be a single session per connection when executing within a transactional context. We need to move this requirement back into the ESB codebase and support it directly within the JMS connection pool.
An additional part of this task will be to identify any further issues which arise and create appropriate JIRAs.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 10 months
[JBoss JIRA] Created: (JBESB-2483) JBM HeuristicMixedException may destabilise the resource used during transactional contexts
by Kevin Conner (JIRA)
JBM HeuristicMixedException may destabilise the resource used during transactional contexts
-------------------------------------------------------------------------------------------
Key: JBESB-2483
URL: https://jira.jboss.org/jira/browse/JBESB-2483
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Transports
Affects Versions: 4.5
Reporter: Kevin Conner
Assignee: Kevin Conner
Fix For: 4.6
JBoss Messaging sometimes causes a HeuristicMixedException to be raised by the transaction manager during commit. Once this happens the associated session would appear to be destabilised in that subsequent use does not appear possible
The log files contain the following output.
On the client side
2009-03-03 07:17:13,137 118839811 ERROR [org.hibernate.transaction.JTATransaction] (JbpmJobExector:<ip addr>:12:) JTA commit failed
javax.transaction.HeuristicMixedException
at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1414)
at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:135)
at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:140)
at org.hibernate.transaction.JTATransaction.commit(JTATransaction.java:146)
at org.jbpm.persistence.db.DbPersistenceService.commit(DbPersistenceService.java:295)
at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:253
This exception is sometimes, although not always, paired up with the following exception on the server side.
2009-03-03 07:29:32,752 119400749 ERROR [org.jboss.messaging.util.ExceptionUtil] (WorkerThread#7[<ip addr>:35552]:) ConnectionEndpoint[2gw-biv0otrf-1-png68srf-w3rpob-v2p1hs4] sendTransaction [4bz-4vj97urf-1-png68srf-w3rpob-v2p1hs4]
javax.jms.IllegalStateException: Cannot find session with id i2y-gk8bttrf-1-png68srf-w3rpob-v2p1hs4
at org.jboss.jms.server.endpoint.ServerConnectionEndpoint.processTransaction(ServerConnectionEndpoint.java:835)
at org.jboss.jms.server.endpoint.ServerConnectionEndpoint.sendTransaction(ServerConnectionEndpoint.java:497)
at org.jboss.jms.server.endpoint.advised.ConnectionAdvised.org$jboss$jms$server$endpoint$advised$ConnectionAdvised$sendTransaction$aop(ConnectionAdvised.java:101)
at org.jboss.jms.server.endpoint.advised.ConnectionAdvised$sendTransaction_N3268650789275322226.invokeNext(ConnectionAdvised$sendTransaction_N3268650789275322226.java)
at org.jboss.jms.server.container.SecurityAspect.handleSendTransaction(SecurityAspect.java:195)
at sun.reflect.GeneratedMethodAccessor231.invoke(Unknown Source)
The exceptions are always generated with the same session id which would suggest that there is an underlying issue in the JBoss Messaging codebase.
We need to handle this until the issue is resolved within JBM.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 10 months
[JBoss JIRA] Created: (JBESB-2480) Client and server side JBM information can become out of sync
by Kevin Conner (JIRA)
Client and server side JBM information can become out of sync
-------------------------------------------------------------
Key: JBESB-2480
URL: https://jira.jboss.org/jira/browse/JBESB-2480
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Transports
Affects Versions: 4.5
Reporter: Kevin Conner
Assignee: Kevin Conner
Fix For: 4.6
The issue appears to be occurring with the connection information and has been seen with a co-located (client and server in same VM) deployment.
This may be indicative of a race condition, with the server side (even though co-located) deciding to close the connection at the same time as we access it.
The result of this is the following
Caused by: java.lang.IllegalStateException: Cannot find object in dispatcher with id jr51-zktjeurf-1-wxm28srf-0fpqee-t2p1hs4
at org.jboss.jms.wireformat.ConnectionCreateSessionDelegateRequest.serverInvoke(ConnectionCreateSessionDelegateRequest.java:84)
at org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:143)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:866)
at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:608)
at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:420)
at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:173)
We should check for this during session creation and, if found, attempt to cleanup and re-establish the connection.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 10 months