Package org.messaginghub.pooled.jms
Class JmsPoolConnection
java.lang.Object
org.messaginghub.pooled.jms.JmsPoolConnection
- All Implemented Interfaces:
AutoCloseable,javax.jms.Connection,javax.jms.QueueConnection,javax.jms.TopicConnection,JmsPoolSessionEventListener
public class JmsPoolConnection
extends Object
implements javax.jms.TopicConnection, javax.jms.QueueConnection, JmsPoolSessionEventListener, AutoCloseable
Represents a proxy
Connection which is-a TopicConnection and
QueueConnection which is pooled and on close() will return
its reference to the ConnectionPool backing it.
NOTE this implementation is only intended for use when sending
messages. It does not deal with pooling of consumers.-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new PooledConnection instance that uses the given ConnectionPool to create and manage its resources. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidprotected voidThe PooledSession tracks all Sessions that it created and now we close them.protected voidRemove all of the temporary destinations created for this connection.voidclose()javax.jms.ConnectionConsumercreateConnectionConsumer(javax.jms.Destination destination, String selector, javax.jms.ServerSessionPool serverSessionPool, int maxMessages) javax.jms.ConnectionConsumercreateConnectionConsumer(javax.jms.Queue queue, String selector, javax.jms.ServerSessionPool serverSessionPool, int maxMessages) javax.jms.ConnectionConsumercreateConnectionConsumer(javax.jms.Topic topic, String s, javax.jms.ServerSessionPool serverSessionPool, int maxMessages) javax.jms.ConnectionConsumercreateDurableConnectionConsumer(javax.jms.Topic topic, String selector, String s1, javax.jms.ServerSessionPool serverSessionPool, int i) javax.jms.QueueSessioncreateQueueSession(boolean transacted, int ackMode) javax.jms.Sessionjavax.jms.SessioncreateSession(boolean transacted, int ackMode) javax.jms.SessioncreateSession(int sessionMode) javax.jms.ConnectionConsumercreateSharedConnectionConsumer(javax.jms.Topic topic, String subscriptionName, String selector, javax.jms.ServerSessionPool sessionPool, int maxMessages) javax.jms.ConnectionConsumercreateSharedDurableConnectionConsumer(javax.jms.Topic topic, String subscriptionName, String selector, javax.jms.ServerSessionPool sessionPool, int maxMessages) javax.jms.TopicSessioncreateTopicSession(boolean transacted, int ackMode) javax.jms.Connectionjavax.jms.ExceptionListenerjavax.jms.ConnectionMetaDataintintintvoidonSessionClosed(JmsPoolSession session) Called when the PooledSession is closed.voidonTemporaryQueueCreate(javax.jms.TemporaryQueue tempQueue) Called on successful creation of a new TemporaryQueue.voidonTemporaryTopicCreate(javax.jms.TemporaryTopic tempTopic) Called on successful creation of a new TemporaryTopic.voidsetClientID(String clientID) voidsetExceptionListener(javax.jms.ExceptionListener exceptionListener) voidstart()voidstop()toString()
-
Field Details
-
connection
-
-
Constructor Details
-
JmsPoolConnection
Creates a new PooledConnection instance that uses the given ConnectionPool to create and manage its resources. The ConnectionPool instance can be shared amongst many PooledConnection instances.- Parameters:
pool- The connection and pool manager backing this proxy connection object.
-
-
Method Details
-
close
public void close() throws javax.jms.JMSException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfacejavax.jms.Connection- Throws:
javax.jms.JMSException
-
start
public void start() throws javax.jms.JMSException- Specified by:
startin interfacejavax.jms.Connection- Throws:
javax.jms.JMSException
-
stop
public void stop() throws javax.jms.JMSException- Specified by:
stopin interfacejavax.jms.Connection- Throws:
javax.jms.JMSException
-
getMetaData
public javax.jms.ConnectionMetaData getMetaData() throws javax.jms.JMSException- Specified by:
getMetaDatain interfacejavax.jms.Connection- Throws:
javax.jms.JMSException
-
getExceptionListener
public javax.jms.ExceptionListener getExceptionListener() throws javax.jms.JMSException- Specified by:
getExceptionListenerin interfacejavax.jms.Connection- Throws:
javax.jms.JMSException
-
setExceptionListener
public void setExceptionListener(javax.jms.ExceptionListener exceptionListener) throws javax.jms.JMSException - Specified by:
setExceptionListenerin interfacejavax.jms.Connection- Throws:
javax.jms.JMSException
-
getClientID
- Specified by:
getClientIDin interfacejavax.jms.Connection- Throws:
javax.jms.JMSException
-
setClientID
- Specified by:
setClientIDin interfacejavax.jms.Connection- Throws:
javax.jms.JMSException
-
createConnectionConsumer
public javax.jms.ConnectionConsumer createConnectionConsumer(javax.jms.Destination destination, String selector, javax.jms.ServerSessionPool serverSessionPool, int maxMessages) throws javax.jms.JMSException - Specified by:
createConnectionConsumerin interfacejavax.jms.Connection- Throws:
javax.jms.JMSException
-
createConnectionConsumer
public javax.jms.ConnectionConsumer createConnectionConsumer(javax.jms.Topic topic, String s, javax.jms.ServerSessionPool serverSessionPool, int maxMessages) throws javax.jms.JMSException - Specified by:
createConnectionConsumerin interfacejavax.jms.TopicConnection- Throws:
javax.jms.JMSException
-
createDurableConnectionConsumer
public javax.jms.ConnectionConsumer createDurableConnectionConsumer(javax.jms.Topic topic, String selector, String s1, javax.jms.ServerSessionPool serverSessionPool, int i) throws javax.jms.JMSException - Specified by:
createDurableConnectionConsumerin interfacejavax.jms.Connection- Specified by:
createDurableConnectionConsumerin interfacejavax.jms.TopicConnection- Throws:
javax.jms.JMSException
-
createConnectionConsumer
public javax.jms.ConnectionConsumer createConnectionConsumer(javax.jms.Queue queue, String selector, javax.jms.ServerSessionPool serverSessionPool, int maxMessages) throws javax.jms.JMSException - Specified by:
createConnectionConsumerin interfacejavax.jms.QueueConnection- Throws:
javax.jms.JMSException
-
createQueueSession
public javax.jms.QueueSession createQueueSession(boolean transacted, int ackMode) throws javax.jms.JMSException - Specified by:
createQueueSessionin interfacejavax.jms.QueueConnection- Throws:
javax.jms.JMSException
-
createTopicSession
public javax.jms.TopicSession createTopicSession(boolean transacted, int ackMode) throws javax.jms.JMSException - Specified by:
createTopicSessionin interfacejavax.jms.TopicConnection- Throws:
javax.jms.JMSException
-
createSession
public javax.jms.Session createSession() throws javax.jms.JMSException- Specified by:
createSessionin interfacejavax.jms.Connection- Throws:
javax.jms.JMSException
-
createSession
public javax.jms.Session createSession(int sessionMode) throws javax.jms.JMSException - Specified by:
createSessionin interfacejavax.jms.Connection- Throws:
javax.jms.JMSException
-
createSession
public javax.jms.Session createSession(boolean transacted, int ackMode) throws javax.jms.JMSException - Specified by:
createSessionin interfacejavax.jms.Connection- Throws:
javax.jms.JMSException
-
onTemporaryQueueCreate
public void onTemporaryQueueCreate(javax.jms.TemporaryQueue tempQueue) Description copied from interface:JmsPoolSessionEventListenerCalled on successful creation of a new TemporaryQueue.- Specified by:
onTemporaryQueueCreatein interfaceJmsPoolSessionEventListener- Parameters:
tempQueue- The TemporaryQueue just created.
-
onTemporaryTopicCreate
public void onTemporaryTopicCreate(javax.jms.TemporaryTopic tempTopic) Description copied from interface:JmsPoolSessionEventListenerCalled on successful creation of a new TemporaryTopic.- Specified by:
onTemporaryTopicCreatein interfaceJmsPoolSessionEventListener- Parameters:
tempTopic- The TemporaryTopic just created.
-
onSessionClosed
Description copied from interface:JmsPoolSessionEventListenerCalled when the PooledSession is closed.- Specified by:
onSessionClosedin interfaceJmsPoolSessionEventListener- Parameters:
session- The PooledSession that has been closed.
-
getConnection
public javax.jms.Connection getConnection() throws javax.jms.JMSException- Throws:
javax.jms.JMSException
-
toString
-
cleanupConnectionTemporaryDestinations
protected void cleanupConnectionTemporaryDestinations()Remove all of the temporary destinations created for this connection. This is important since the underlying connection may be reused over a long period of time, accumulating all of the temporary destinations from each use. However, from the perspective of the lifecycle from the client's view, close() closes the connection and, therefore, deletes all of the temporary destinations created. -
cleanupAllLoanedSessions
protected void cleanupAllLoanedSessions()The PooledSession tracks all Sessions that it created and now we close them. Closing the PooledSession will return the internal Session to the Pool of Session after cleaning up all the resources that the Session had allocated for this PooledConnection. -
getNumSessions
public int getNumSessions() throws javax.jms.JMSException- Returns:
- the total number of Pooled session including idle sessions that are not currently loaned out to any client.
- Throws:
javax.jms.JMSException- if the connection has been closed.
-
getNumActiveSessions
public int getNumActiveSessions() throws javax.jms.JMSException- Returns:
- the number of Sessions that are currently checked out of this Connection's session pool.
- Throws:
javax.jms.JMSException- if the connection has been closed.
-
getNumtIdleSessions
public int getNumtIdleSessions() throws javax.jms.JMSException- Returns:
- the number of Sessions that are idle in this Connection's sessions pool.
- Throws:
javax.jms.JMSException- if the connection has been closed.
-
checkClosed
protected void checkClosed() throws javax.jms.IllegalStateException- Throws:
javax.jms.IllegalStateException
-