[
https://jira.jboss.org/jira/browse/JBESB-1909?page=com.atlassian.jira.plu...
]
Pavel Kadlec updated JBESB-1909:
--------------------------------
Attachment: test_connection_pool.zip
Simply copy the folder to the quickstarts directory. Then ant deploy, ant sendesb. The
message should be sent 30 times. But the message is send only 20 times because 20 is the
size of the pool. The pool is not correctly cleaned up.
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
Attachments: test_connection_pool.zip
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