You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Mihai Osian <Mi...@gmail.com> on 2011/11/18 14:27:49 UTC

JMSException: The resource is allready being used in transaction context.

  Hello, 

I get the exception from the subject when running a very simple test
application deployed in Glassfish, if there are multiple  JMS connections
created in parallel. 

. The issue has been encountered before by other users:
  
http://activemq.2283324.n4.nabble.com/Suspect-a-race-condition-in-TransactionContext-td3780046.html
and maybe 
  http://activemq.2283324.n4.nabble.com/Transaction-issues-td3549910.html

  but I have a test case to reproduce it. Shortly: I have a JaxRS
application that receives HTTP POSTs. The application calls an EJB whose
only purpose is to place a message in a JMS queue. A new JMS connection and
session is created for each individual send. When there are multiple
requests coming in at the same time, the Glassfish logs show the following
exception: 

[#|2011-11-18T13:43:57.304+0100|SEVERE|glassfish3.1|com.sun.jersey.spi.container.ContainerResponse|_ThreadID=27;_ThreadName=Thread-1;|The
exception contained within MappableContainerException could not be mapped to
a response, re-throwing to the HTTP container
javax.jms.JMSException: The resource is allready being used in transaction
context.
        at
org.apache.activemq.ra.ManagedTransactionContext.setUseSharedTxContext(ManagedTransactionContext.java:47)
        at
org.apache.activemq.ra.ManagedSessionProxy.setUseSharedTxContext(ManagedSessionProxy.java:67)
        at
org.apache.activemq.ra.ManagedConnectionProxy.createSessionProxy(ManagedConnectionProxy.java:122)
        at
org.apache.activemq.ra.ManagedConnectionProxy.createSession(ManagedConnectionProxy.java:105)
        at com.test.MessagingBean.postMessage(MessagingBean.java:34)
        at sun.reflect.GeneratedMethodAccessor465.invoke(Unknown Source)
     ....

The test application is attached to this mail (and also at
http://199.91.152.87/yq4mduia8qng/e8n9cxn8a7ujwlm/TestAMQ.tgz ). 

A Linux script that should download/install/configure all the required bits
and pieces: 
=========================================
mkdir tmp
cd tmp
wget http://download.java.net/glassfish/3.1/release/glassfish-3.1.zip
wget
http://apache.belnet.be//activemq/apache-activemq/5.5.1/apache-activemq-5.5.1-bin.tar.gz
wget --user-agent="Mozilla"
http://repo1.maven.org/maven2/org/apache/activemq/activemq-rar/5.5.1/activemq-rar-5.5.1.rar
wget http://slf4j.org/dist/slf4j-1.6.4.tar.gz

unzip glassfish-3.1.zip
tar -xzf apache-activemq-5.5.1-bin.tar.gz
tar -xzf slf4j-1.6.4.tar.gz

apache-activemq-5.5.1/bin/activemq start 

## install logging in glassfish
cp slf4j-1.6.4/slf4j-api-1.6.4.jar
glassfish3/glassfish/domains/domain1/lib/ext/
cp slf4j-1.6.4/slf4j-jdk14-1.6.4.jar
glassfish3/glassfish/domains/domain1/lib/ext/

glassfish3/bin/asadmin start-domain
glassfish3/bin/asadmin deploy activemq-rar-5.5.1.rar
glassfish3/bin/asadmin create-resource-adapter-config --threadpoolid
thread-pool-1 --property
UseInboundSession=false:Clientid=\"\":UserName=defaultUser:Password=defaultPassword:ServerUrl=tcp\\://localhost\\:61616 
activemq-rar-5.5.1
glassfish3/bin/asadmin create-admin-object --restype javax.jms.Queue
--raname activemq-rar-5.5.1 --enabled=true --property PhysicalName=TestQueue
TestQueue
glassfish3/bin/asadmin create-connector-connection-pool --raname
activemq-rar-5.5.1 --connectiondefinition javax.jms.ConnectionFactory
jms/ActiveMQMsgPool
glassfish3/bin/asadmin create-connector-resource --poolname
jms/ActiveMQMsgPool ActiveMQConnResource

# install/deploy test app
tar -xzf TestAMQ.tgz
cd TestAMQ
mvn install
cd ../
glassfish3/bin/asadmin deploy --force
TestAMQ/testamq-ear/target/testamq-ear-0.0.1-SNAPSHOT.ear

# install Apache benchmark tool
sudo apt-get install apache2-utils

# create test file
echo "dummy test" > post.txt

# send it 100 times on 10 parallel threads
ab -n 100  -T text/plain  -p post.txt -c 10  
http://localhost:8080/TestAmqJaxrs/app/test

==============================

Thanks for any help, 
Mihai

http://activemq.2283324.n4.nabble.com/file/n4083218/TestAMQ.tgz TestAMQ.tgz 

  

--
View this message in context: http://activemq.2283324.n4.nabble.com/JMSException-The-resource-is-allready-being-used-in-transaction-context-tp4083218p4083218.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.