[jboss-svn-commits] JBL Code SVN: r10294 - in labs/jbossesb/trunk/product/core: rosetta/src/org/jboss/internal/soa/esb/couriers and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Mar 16 21:07:58 EDT 2007


Author: kurt.stam at jboss.com
Date: 2007-03-16 21:07:58 -0400 (Fri, 16 Mar 2007)
New Revision: 10294

Modified:
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsConnectionPool.java
Log:
Adding JmsPooling to the JMSGateway.

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java	2007-03-16 23:06:11 UTC (rev 10293)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java	2007-03-17 01:07:58 UTC (rev 10294)
@@ -23,6 +23,9 @@
 package org.jboss.soa.esb.listeners.gateway;
 
 import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.rosetta.pooling.ConnectionException;
+import org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool;
+import org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPoolContainer;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.addressing.EPR;
 import org.jboss.soa.esb.addressing.eprs.JMSEpr;
@@ -47,8 +50,6 @@
 import javax.jms.MessageConsumer;
 import javax.jms.ObjectMessage;
 import javax.jms.Queue;
-import javax.jms.QueueConnection;
-import javax.jms.QueueConnectionFactory;
 import javax.jms.QueueSession;
 import javax.jms.TextMessage;
 import javax.naming.Context;
@@ -113,6 +114,14 @@
       {
          prepareMessageReceiver();
       }
+      catch (final ConnectionException ce)
+      {
+         if (_serviceName != null)
+         {
+            RegistryUtil.unregister(_serviceCategory, _serviceName, _myEpr);
+         }
+         throw new ManagedLifecycleException("Unexpected JMS error from prepareMessageReceiver", ce);
+      }
       catch (final JMSException jmse)
       {
          if (_serviceName != null)
@@ -243,26 +252,9 @@
 
       if (_queueSession != null)
       {
-         try
-         {
-            _queueSession.close();
-         }
-         catch (final JMSException jmse)
-         {
-         } // ignore
+          _pool.closeSession(_queueSession);
       }
 
-      if (_queueConnection != null)
-      {
-         try
-         {
-            _queueConnection.close();
-         }
-         catch (final JMSException jmse)
-         {
-         } // ignore
-      }
-
       if (_serviceName != null)
       {
          RegistryUtil.unregister(_serviceCategory, _serviceName, _myEpr);
@@ -330,9 +322,8 @@
       }
    } // ________________________________
 
-   private void prepareMessageReceiver() throws ConfigurationException, JMSException
+   private void prepareMessageReceiver() throws ConfigurationException, JMSException, ConnectionException
    {
-      _queueConnection = null;
       _queueSession = null;
       _queue = null;
 
@@ -368,31 +359,18 @@
               _queueName, sFactClass, sJndiURL, sJndiContextFactory,
               sJndiPkgPrefix, _messageSelector);
 
-      Object tmp = null;
-
+      _pool = JmsConnectionPoolContainer.getPool(sJndiURL, sJndiContextFactory, sJndiPkgPrefix, sFactClass, JMSEpr.QUEUE_TYPE);
+      
+      
       try
       {
-         tmp = oJndiCtx.lookup(sFactClass);
-      }
-      catch (NamingException ex)
-      {
-         throw new ConfigurationException(ex);
-      }
-
-      QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
-
-      _queueConnection = qcf.createQueueConnection();
-      _queueSession = _queueConnection.createQueueSession(false,
-              QueueSession.AUTO_ACKNOWLEDGE);
-      try
-      {
+          _queueSession = _pool.getQueueSession();
          _queue = (Queue) oJndiCtx.lookup(_queueName);
       }
       catch (NamingException ne)
       {
          _queue = _queueSession.createQueue(_queueName);
       }
-      _queueConnection.start();
 
       _messageReceiver = _queueSession.createReceiver(_queue,
               _messageSelector);
@@ -504,8 +482,6 @@
 
    protected String _queueName;
 
-   protected QueueConnection _queueConnection;
-
    protected QueueSession _queueSession;
 
    protected Queue _queue;
@@ -534,5 +510,7 @@
 
    protected Method _processMethod;
 
-	protected Courier _courier;
+   protected Courier _courier;
+   
+   protected JmsConnectionPool _pool;
 }

Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java	2007-03-16 23:06:11 UTC (rev 10293)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java	2007-03-17 01:07:58 UTC (rev 10294)
@@ -227,18 +227,18 @@
         Context oJndiCtx = null;
 		try
 		{
-			String sJndiConnectionFactory = _epr.getJndiContextFactory();
+			String sJndiContextFactory = _epr.getJndiContextFactory();
 			String sJndiURL = _epr.getJndiURL();
 			String sJndiPkgPrefix = _epr.getJndiPkgPrefix();
 			oJndiCtx = NamingContext.getServerContext(sJndiURL,
-					sJndiConnectionFactory, sJndiPkgPrefix);
+					sJndiContextFactory, sJndiPkgPrefix);
 
 			String sFactoryClass = _epr.getConnectionFactory();
 			if (Util.isNullString(sFactoryClass))
 				sFactoryClass = "ConnectionFactory";
 
 			String sType = _epr.getDestinationType();
-             _pool = JmsConnectionPoolContainer.getPool(sJndiURL, sJndiConnectionFactory, sJndiPkgPrefix, sFactoryClass, sType);
+             _pool = JmsConnectionPoolContainer.getPool(sJndiURL, sJndiContextFactory, sJndiPkgPrefix, sFactoryClass, sType);
                 
 			if (JMSEpr.QUEUE_TYPE.equals(sType)) {
 				QueueSession qSess = _pool.getQueueSession();

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-03-16 23:06:11 UTC (rev 10293)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsConnectionPool.java	2007-03-17 01:07:58 UTC (rev 10294)
@@ -133,6 +133,11 @@
         while (session == null) {
             if (freeSessions.size() > 0)
             {
+                if (logger.isDebugEnabled()) {
+                    logger.debug("Returning session, poolsize=" + getSessionsInPool() 
+                            + ", maxsize=" + MAX_SESSIONS 
+                            + ", number of pools=" + JmsConnectionPoolContainer.getNumberOfPools());
+                }
                 session = freeSessions.get(freeSessions.size()-1);
                 freeSessions.remove(session);
                 inUseSessions.add(session);




More information about the jboss-svn-commits mailing list