[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