summaryrefslogtreecommitdiff
path: root/qpid/java/jca/src
diff options
context:
space:
mode:
authorRajith Muditha Attapattu <rajith@apache.org>2012-03-08 20:49:09 +0000
committerRajith Muditha Attapattu <rajith@apache.org>2012-03-08 20:49:09 +0000
commit93d17ee8444639886b0922f58721a4a447f67131 (patch)
tree2f14241449b9d5d5bdb06e21e129ed21871890f0 /qpid/java/jca/src
parent2491ee7318a4a4803348e1693739234679decd3b (diff)
downloadqpid-python-93d17ee8444639886b0922f58721a4a447f67131.tar.gz
QPID-3732 Committing a patch by Weston Price.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1298571 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/jca/src')
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java109
1 files changed, 30 insertions, 79 deletions
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java
index 53896d8872..eccf77aff2 100644
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java
+++ b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java
@@ -34,10 +34,11 @@ import java.util.concurrent.locks.ReentrantLock;
import javax.jms.Connection;
import javax.jms.ExceptionListener;
import javax.jms.JMSException;
+import javax.jms.QueueConnection;
import javax.jms.ResourceAllocationException;
import javax.jms.Session;
-import javax.jms.QueueConnection;
import javax.jms.TopicConnection;
+import javax.jms.XAConnection;
import javax.jms.XAQueueConnection;
import javax.jms.XASession;
import javax.jms.XATopicConnection;
@@ -260,7 +261,20 @@ public class QpidRAManagedConnection implements ManagedConnection, ExceptionList
}
catch (JMSException e)
{
- _log.debug("Error closing session " + this, e);
+ _log.debug("Error closing XASession " + this, e);
+ }
+
+ try
+ {
+ if(_session != null)
+ {
+ _session.close();
+ }
+
+ }
+ catch(JMSException e)
+ {
+ _log.error("Error closing Session " + this, e);
}
if (_connection != null)
@@ -585,7 +599,7 @@ public class QpidRAManagedConnection implements ManagedConnection, ExceptionList
*/
protected Session getSession() throws JMSException
{
- if(_xaSession != null && !_mcf.getUseLocalTx())
+ if(_xaSession != null && !_mcf.getUseLocalTx() && _inManagedTx)
{
if (_log.isTraceEnabled())
{
@@ -761,107 +775,44 @@ public class QpidRAManagedConnection implements ManagedConnection, ExceptionList
{
if (_userName != null && _password != null)
{
- if(!transacted)
- {
- _connection = _mcf.getCleanAMQConnectionFactory().createXATopicConnection(_userName, _password);
- }
- else
- {
- _connection = _mcf.getCleanAMQConnectionFactory().createTopicConnection(_userName, _password);
- }
+ _connection = _mcf.getCleanAMQConnectionFactory().createXATopicConnection(_userName, _password);
}
else
{
- if(!transacted)
- {
- _connection = _mcf.getDefaultAMQConnectionFactory().createXATopicConnection();
- }
- else
- {
- _connection = _mcf.getDefaultAMQConnectionFactory().createTopicConnection();
- }
+ _connection = _mcf.getDefaultAMQConnectionFactory().createXATopicConnection();
}
- if(!transacted)
- {
- _xaSession = ((XATopicConnection)_connection).createXATopicSession();
- }
- else
- {
- _session = ((TopicConnection)_connection).createTopicSession(transacted, acknowledgeMode);
- }
+ _xaSession = ((XATopicConnection)_connection).createXATopicSession();
+ _session = ((TopicConnection)_connection).createTopicSession(transacted, acknowledgeMode);
+
}
else if (_cri.getType() == QpidRAConnectionFactory.QUEUE_CONNECTION)
{
if (_userName != null && _password != null)
{
- if(!transacted)
- {
- _connection = _mcf.getCleanAMQConnectionFactory().createXAQueueConnection(_userName, _password);
- }
- else
- {
- _connection = _mcf.getCleanAMQConnectionFactory().createQueueConnection(_userName, _password);
- }
+ _connection = _mcf.getCleanAMQConnectionFactory().createXAQueueConnection(_userName, _password);
}
else
{
- if(!transacted)
- {
- _connection = _mcf.getDefaultAMQConnectionFactory().createXAQueueConnection();
- }
- else
- {
- _connection = _mcf.getDefaultAMQConnectionFactory().createQueueConnection();
- }
+ _connection = _mcf.getDefaultAMQConnectionFactory().createXAQueueConnection();
}
- if(!transacted)
- {
- _xaSession = ((XAQueueConnection)_connection).createXAQueueSession();
+ _xaSession = ((XAQueueConnection)_connection).createXAQueueSession();
+ _session = ((QueueConnection)_connection).createQueueSession(transacted, acknowledgeMode);
- }
- else
- {
- _session = ((QueueConnection)_connection).createQueueSession(transacted, acknowledgeMode);
-
- }
}
else
{
if (_userName != null && _password != null)
{
- if(!transacted)
- {
- _connection = _mcf.getCleanAMQConnectionFactory().createXAConnection(_userName, _password);
- }
- else
- {
- _connection = _mcf.getCleanAMQConnectionFactory().createConnection(_userName, _password);
- }
- }
- else
- {
- if(!transacted)
- {
- _connection = _mcf.getDefaultAMQConnectionFactory().createXAConnection();
- }
- else
- {
- _connection = _mcf.getDefaultAMQConnectionFactory().createConnection();
- }
- }
-
- if(!transacted)
- {
- _xaSession = ((XAQueueConnection)_connection).createXASession();
-
+ _connection = _mcf.getCleanAMQConnectionFactory().createXAConnection(_userName, _password);
}
else
{
- _session = ((QueueConnection)_connection).createSession(transacted, acknowledgeMode);
-
+ _connection = _mcf.getDefaultAMQConnectionFactory().createXAConnection();
}
+ _xaSession = ((XAConnection)_connection).createXASession();
+ _session = _connection.createSession(transacted, acknowledgeMode);
}
_connection.setExceptionListener(this);