[jboss-svn-commits] JBL Code SVN: r11147 - labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Apr 20 04:53:07 EDT 2007
Author: kevin.conner at jboss.com
Date: 2007-04-20 04:53:07 -0400 (Fri, 20 Apr 2007)
New Revision: 11147
Modified:
labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsConnectionPool.java
Log:
Added asynchronous exception handler: JBESB-517
Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsConnectionPool.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsConnectionPool.java 2007-04-20 08:37:58 UTC (rev 11146)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsConnectionPool.java 2007-04-20 08:53:07 UTC (rev 11147)
@@ -23,10 +23,10 @@
import java.sql.SQLException;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.Map;
import javax.jms.Connection;
+import javax.jms.ExceptionListener;
import javax.jms.JMSException;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
@@ -108,6 +108,12 @@
TopicConnectionFactory factory = (TopicConnectionFactory) factoryConnection;
jmsConnection = factory.createTopicConnection();
}
+ jmsConnection.setExceptionListener(new ExceptionListener() {
+ public void onException(JMSException arg0)
+ {
+ removeSessionPool() ;
+ }
+ }) ;
jmsConnection.start();
}
//Create a new Session
@@ -214,23 +220,16 @@
/**
* This method is called when the pool needs to destroyed. It closes all open sessions
* and the connection and removes it from the container's poolMap.
- *
- * @throws ConnectionException
*/
- public synchronized void removeSessionPool() throws JMSException
+ public synchronized void removeSessionPool()
{
- for (Iterator<Session> i=freeSessions.iterator();i.hasNext();) {
- i.next().close();
- i.remove();
- }
- for (Iterator<Session> i=inUseSessions.iterator();i.hasNext();) {
- i.next().close();
- i.remove();
- }
+ freeSessions.clear() ;
+ inUseSessions.clear() ;
logger.debug("Emptied the session pool now closing the connection to the factory.");
if (jmsConnection!=null) {
- jmsConnection.stop();
- jmsConnection.close();
+ try {
+ jmsConnection.close();
+ } catch (final Exception ex) {} // ignore
jmsConnection=null;
}
JmsConnectionPoolContainer.removePool(poolKey);
More information about the jboss-svn-commits
mailing list