You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Pep <pe...@yahoo.es> on 2006/07/04 11:38:19 UTC

AMQ 4.0 with Oracle Persistence and XA Transactions

Hi,

we have ActiveMq acting as our JMS provider for OC4J 10.1.3. It is running
as embbeded and integrated to OC4J by means of the JCA connector. As it is
an additional resource provider, I assume our transactions in OC4J should be
XA. 

Also, we had an Oracle persistence in AMQ configured the following way:

    <persistenceAdapter>
      <journaledJDBC journalLogFiles="5" dataDirectory="../activemq-data"
dataSource="#oracle-ds"/>
    </persistenceAdapter>

<bean id="oracle-ds" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
    <property name="driverClassName" value="oracle.jdbc.OracleDriver"/>
    <property name="url" value="jdbc:oracle:thin:@10.0.0.178:1521:systao"/>
    <property name="username" value="pep_anthema"/>
    <property name="password" value="pep_anthema"/>
    <property name="poolPreparedStatements" value="true"/>
  </bean>

With this configuration we experienced some deadlocks in the application
server. My thought was that the persistence in Oracle was running in a
different transaction. Really, I don't understand where the problem was as
when using the default derby persistence there is no problem at all.

Then I tried to use the same datasource the application is using. For that
purpose, I replaced the oracle-ds definition to the following one:

  <bean id="oracle-ds"
class="org.springframework.jndi.JndiObjectFactoryBean"> 
  	<property name="jndiName" value="jdbc/xasystao" /> 
  </bean>

But with this configuration I am getting these error messages when
publishing a message to our Queues in AMQ.

2006-07-04 10:52:40.045 WARNING J2EE DS262 The method 'setAutoCommit(true)'
cant be called when a global transaction is active.
2006-07-04 10:52:40.045 WARNING J2EE DS262 The method 'commit' cant be
called when a global transaction is active.


Any idea?

Thnks!
-- 
View this message in context: http://www.nabble.com/AMQ-4.0-with-Oracle-Persistence-and-XA-Transactions-tf1888956.html#a5164616
Sent from the ActiveMQ - User forum at Nabble.com.


Re: AMQ 4.0 with Oracle Persistence and XA Transactions

Posted by Pep <pe...@yahoo.es>.
I am using AMQ 4.0. I'll give it a try with the 4.0.1

Pep.
-- 
View this message in context: http://www.nabble.com/AMQ-4.0-with-Oracle-Persistence-and-XA-Transactions-tf1888956.html#a5164835
Sent from the ActiveMQ - User forum at Nabble.com.


Re: AMQ 4.0 with Oracle Persistence and XA Transactions

Posted by Pep <pe...@yahoo.es>.
Hi James,

I just tried with this tonight's snapshot with no success. I am getting the
same error with the same stacktrace. I checked the sourcecode and realized
that the TransactionContext code for the method getConnection() is
different. It looks like this:

                boolean autoCommit = !inTx;
                if(connection.getAutoCommit() != autoCommit)
                {
                    connection.setAutoCommit(autoCommit);
                }


I guess this is the fix. 

I am not familiar with the ActiveMQ, but I looked back to the calling
classes and realized that in the JDBCMessageStore.recover, the transaction
context is retrieved from the
JDBCPersistenceAdapter.getTransactionContext(). This method just returns a
new instance of TransactionContext everytime. This instance is then passed
to the DefaultJDBCAdapter.doRecover method which calls the getConnection
method of the TransactionContext, where the exception is thrown. So, my
guess is that the TransactionContext.begin method is never called in this
case and so the "inTx" attribute in the TransactionContext is always false.
Well, only in case it may help...

Hope this helps.

Pep.

-- 
View this message in context: http://www.nabble.com/AMQ-4.0-with-Oracle-Persistence-and-XA-Transactions-tf1888956.html#a5178477
Sent from the ActiveMQ - User forum at Nabble.com.


Re: AMQ 4.0 with Oracle Persistence and XA Transactions

Posted by James Strachan <ja...@gmail.com>.
On 7/4/06, Pep <pe...@yahoo.es> wrote:
>
> I will try with the tomorrow's snapshot. I will let you know...

Cool, thanks

> Anyway, we are too close to the release date of our product to include any
> AMQ 4.1 snapshot. It would be too dangerous. By now we will not use Oracle
> persistence and will rollback to AMQ 4.0.1 and Derby. Is there any estimated
> release date for the AMQ 4.1?

If the patch works we could always merge it into the 4.0 branch and
include it in a bug fix 4.0.2 release in a few weeks

-- 

James
-------
http://radio.weblogs.com/0112098/

Re: AMQ 4.0 with Oracle Persistence and XA Transactions

Posted by Pep <pe...@yahoo.es>.
I will try with the tomorrow's snapshot. I will let you know...

Anyway, we are too close to the release date of our product to include any
AMQ 4.1 snapshot. It would be too dangerous. By now we will not use Oracle
persistence and will rollback to AMQ 4.0.1 and Derby. Is there any estimated
release date for the AMQ 4.1?

Thanks for your feedback.

Pep.
-- 
View this message in context: http://www.nabble.com/AMQ-4.0-with-Oracle-Persistence-and-XA-Transactions-tf1888956.html#a5166652
Sent from the ActiveMQ - User forum at Nabble.com.


Re: AMQ 4.0 with Oracle Persistence and XA Transactions

Posted by James Strachan <ja...@gmail.com>.
I've just tried a patch which might fix it; only setting the autoComit
flag if its currently different to what we need. I wonder could you
try SVN HEAD (or tomorrow's nightly 4.1-SNAPSHOT) to see if it works
for you now?

On 7/4/06, Pep <pe...@yahoo.es> wrote:
>
> I enabled the DEBUG traces for ActiveMQ and got the following stact traces:
>
> 2006-07-04 13:02:24,699 DEBUG
> [org.apache.activemq.broker.region.AbstractRegion]
>  Adding destination: queue://QUEUE.HOMETAO_EVENTS
> 2006-07-04 13:02:24,715 DEBUG
> [org.apache.activemq.store.journal.JournalPersiste
> nceAdapter] Waking for checkpoint to complete.
> 2006-07-04 13:02:24,715 DEBUG
> [org.apache.activemq.store.journal.JournalPersiste
> nceAdapter] Checkpoint started.
> 2006-07-04 13:02:24,731 DEBUG
> [org.apache.activemq.store.journal.JournalPersiste
> nceAdapter] Checkpoint done.
> 2006-07-04 13:02:24,731 DEBUG
> [org.apache.activemq.store.jdbc.JDBCPersistenceAda
> pter] Could not get JDBC connection: The method 'setAutoCommit(true)' cant
> be ca
> lled when a global transaction is active.
> java.sql.SQLException: The method 'setAutoCommit(true)' cant be called when
> a gl
> obal transaction is active.
>         at
> oracle.oc4j.sql.spi.ConnectionHandle.oc4j_throwSQLExceptionIfGlobalTx
> Active(ConnectionHandle.java:407)
>         at
> oracle.oc4j.sql.spi.ConnectionHandle.setAutoCommit(ConnectionHandle.j
> ava:174)
>         at
> org.apache.activemq.store.jdbc.TransactionContext.getConnection(Trans
> actionContext.java:55)
>         at
> org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter.doRecover(D
> efaultJDBCAdapter.java:328)
>         at
> org.apache.activemq.store.jdbc.JDBCMessageStore.recover(JDBCMessageSt
> ore.java:153)
>         at
> org.apache.activemq.store.journal.JournalMessageStore.recover(Journal
> MessageStore.java:341)
>         at org.apache.activemq.broker.region.Queue.<init>(Queue.java:97)
>         at
> org.apache.activemq.broker.region.QueueRegion.createDestination(Queue
> Region.java:58)
>         at
> org.apache.activemq.broker.region.AbstractRegion.addDestination(Abstr
> actRegion.java:77)
>         at
> org.apache.activemq.broker.region.RegionBroker.addDestination(RegionB
> roker.java:217)
>         at
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.j
> ava:129)
>         at
> org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBr
> oker.java:141)
>         at
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.j
> ava:129)
>         at
> org.apache.activemq.broker.MutableBrokerFilter.addDestination(Mutable
> BrokerFilter.java:142)
>         at
> org.apache.activemq.broker.region.AbstractRegion.lookup(AbstractRegio
> n.java:244)
>         at
> org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.
> java:224)
>         at
> org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java
> :342)
>         at
> org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.j
> ava:192)
>         at
> org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:113)
>         at
> org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeD
> estinationBroker.java:97)
>         at
> org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilt
> er.java:126)
>         at
> org.apache.activemq.broker.AbstractConnection.processMessage(Abstract
> Connection.java:351)
>         at
> org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.jav
> a:590)
>         at
> org.apache.activemq.broker.AbstractConnection.service(AbstractConnect
> ion.java:201)
>         at
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportC
> onnection.java:62)
>         at
> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCo
> rrelator.java:97)
>         at
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilt
> er.java:63)
>         at
> org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:
> 76)
>         at
> org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.ja
> va:44)
>         at
> org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorre
> lator.java:60)
>         at
> org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnec
> tion.java:1092)
>         at
> org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1553)
>         at
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
> cer.java:462)
>         at
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
> cer.java:356)
>         at
> com.nte.anthema.events.EventsPublisher.sendMessage(EventsPublisher.ja
> va:74)
>         at
> com.nte.anthema.events.EventsPublisher.publishMessage(EventsPublisher
> .java:54)
>         at
> com.nte.anthema.biz.ControlManagerBean.publishIfValidated(ControlMana
> gerBean.java:97)
>         at
> com.nte.anthema.biz.ControlManagerBean.simpleAdd(ControlManagerBean.j
> ava:381)
>         at
> com.nte.anthema.biz.ControlManagerBean.add(ControlManagerBean.java:32
> 2)
>         at
> com.nte.anthema.biz.ControlManagerBean.add(ControlManagerBean.java:55
> 9)
>         at
> com.nte.anthema.biz.ControlManagerBean.submitControl(ControlManagerBe
> an.java:289)
>         at
> com.nte.anthema.biz.ControlManagerBean.submit(ControlManagerBean.java
> :189)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:324)
>         at
> com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke
> (EJBJoinPointImpl.java:35)
>         at
> com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
> ocationContextImpl.java:69)
>         at
> com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSI
> nterceptor.java:52)
>         at
> com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
> ocationContextImpl.java:69)
>         at
> com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invo
> ke(TxRequiredInterceptor.java:55)
>         at
> com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
> ocationContextImpl.java:69)
>         at
> com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSI
> nterceptor.java:52)
>         at
> com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
> ocationContextImpl.java:69)
>         at
> com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(S
> tatelessSessionEJBObject.java:86)
>         at
> ControlManager_StatelessSessionBeanWrapper100.submit(ControlManager_S
> tatelessSessionBeanWrapper100.java:285)
>         at
> com.nte.anthema.biz.TPCommandProcessorMapBuilder$2.process(TPCommandP
> rocessorMapBuilder.java:53)
>         at
> com.nte.anthema.framework.command.SimpleCommandProcessor.process(Simp
> leCommandProcessor.java:18)
>         at
> com.nte.anthema.framework.command.CompositeCommandProcessor.process(C
> ompositeCommandProcessor.java:34)
>         at
> com.nte.anthema.commandprocessor.AnthemaCommandProcessor.process(Anth
> emaCommandProcessor.java:47)
>         at
> com.nte.anthema.framework.command.RemoteCommandProcessServlet.doPost(
> RemoteCommandProcessServlet.java:56)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>         at
> com.evermind.server.http.ServletRequestDispatcher.invoke(ServletReque
> stDispatcher.java:719)
>         at
> com.evermind.server.http.ServletRequestDispatcher.forwardInternal(Ser
> vletRequestDispatcher.java:376)
>         at
> com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequ
> estHandler.java:870)
>         at
> com.evermind.server.http.HttpRequestHandler.processRequest(HttpReques
> tHandler.java:451)
>         at
> com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpReque
> stHandler.java:218)
>         at
> com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.ja
> va:119)
>         at
> com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.ja
> va:112)
>         at
> oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSo
> cketReadHandler.java:260)
>         at
> oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(Server
> SocketAcceptHandler.java:230)
>         at
> oracle.oc4j.network.ServerSocketAcceptHandler.access$800(ServerSocket
> AcceptHandler.java:33)
>         at
> oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(
> ServerSocketAcceptHandler.java:831)
>         at
> com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(Relea
> sableResourcePooledExecutor.java:298)
>         at java.lang.Thread.run(Thread.java:534)
> 2006-07-04 13:02:24,731 DEBUG
> [org.apache.activemq.store.jdbc.JDBCPersistenceAda
> pter] Error while closing connection: The method 'commit' cant be called
> when a
> global transaction is active.
> java.sql.SQLException: The method 'commit' cant be called when a global
> transact
> ion is active.
>         at
> oracle.oc4j.sql.spi.ConnectionHandle.oc4j_throwSQLExceptionIfGlobalTx
> Active(ConnectionHandle.java:407)
>         at
> oracle.oc4j.sql.spi.ConnectionHandle.commit(ConnectionHandle.java:122
> )
>         at
> org.apache.activemq.store.jdbc.TransactionContext.close(TransactionCo
> ntext.java:118)
>         at
> org.apache.activemq.store.jdbc.JDBCMessageStore.recover(JDBCMessageSt
> ore.java:170)
>         at
> org.apache.activemq.store.journal.JournalMessageStore.recover(Journal
> MessageStore.java:341)
>         at org.apache.activemq.broker.region.Queue.<init>(Queue.java:97)
>         at
> org.apache.activemq.broker.region.QueueRegion.createDestination(Queue
> Region.java:58)
>         at
> org.apache.activemq.broker.region.AbstractRegion.addDestination(Abstr
> actRegion.java:77)
>         at
> org.apache.activemq.broker.region.RegionBroker.addDestination(RegionB
> roker.java:217)
>         at
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.j
> ava:129)
>         at
> org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBr
> oker.java:141)
>         at
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.j
> ava:129)
>         at
> org.apache.activemq.broker.MutableBrokerFilter.addDestination(Mutable
> BrokerFilter.java:142)
>         at
> org.apache.activemq.broker.region.AbstractRegion.lookup(AbstractRegio
> n.java:244)
>         at
> org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.
> java:224)
>         at
> org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java
> :342)
>         at
> org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.j
> ava:192)
>         at
> org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:113)
>         at
> org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeD
> estinationBroker.java:97)
>         at
> org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilt
> er.java:126)
>         at
> org.apache.activemq.broker.AbstractConnection.processMessage(Abstract
> Connection.java:351)
>         at
> org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.jav
> a:590)
>         at
> org.apache.activemq.broker.AbstractConnection.service(AbstractConnect
> ion.java:201)
>         at
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportC
> onnection.java:62)
>         at
> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCo
> rrelator.java:97)
>         at
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilt
> er.java:63)
>         at
> org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:
> 76)
>         at
> org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.ja
> va:44)
>         at
> org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorre
> lator.java:60)
>         at
> org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnec
> tion.java:1092)
>         at
> org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1553)
>         at
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
> cer.java:462)
>         at
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
> cer.java:356)
>         at
> com.nte.anthema.events.EventsPublisher.sendMessage(EventsPublisher.ja
> va:74)
>         at
> com.nte.anthema.events.EventsPublisher.publishMessage(EventsPublisher
> .java:54)
>         at
> com.nte.anthema.biz.ControlManagerBean.publishIfValidated(ControlMana
> gerBean.java:97)
>         at
> com.nte.anthema.biz.ControlManagerBean.simpleAdd(ControlManagerBean.j
> ava:381)
>         at
> com.nte.anthema.biz.ControlManagerBean.add(ControlManagerBean.java:32
> 2)
>         at
> com.nte.anthema.biz.ControlManagerBean.add(ControlManagerBean.java:55
> 9)
>         at
> com.nte.anthema.biz.ControlManagerBean.submitControl(ControlManagerBe
> an.java:289)
>         at
> com.nte.anthema.biz.ControlManagerBean.submit(ControlManagerBean.java
> :189)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:324)
>         at
> com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke
> (EJBJoinPointImpl.java:35)
>         at
> com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
> ocationContextImpl.java:69)
>         at
> com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSI
> nterceptor.java:52)
>         at
> com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
> ocationContextImpl.java:69)
>         at
> com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invo
> ke(TxRequiredInterceptor.java:55)
>         at
> com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
> ocationContextImpl.java:69)
>         at
> com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSI
> nterceptor.java:52)
>         at
> com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
> ocationContextImpl.java:69)
>         at
> com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(S
> tatelessSessionEJBObject.java:86)
>         at
> ControlManager_StatelessSessionBeanWrapper100.submit(ControlManager_S
> tatelessSessionBeanWrapper100.java:285)
>         at
> com.nte.anthema.biz.TPCommandProcessorMapBuilder$2.process(TPCommandP
> rocessorMapBuilder.java:53)
>         at
> com.nte.anthema.framework.command.SimpleCommandProcessor.process(Simp
> leCommandProcessor.java:18)
>         at
> com.nte.anthema.framework.command.CompositeCommandProcessor.process(C
> ompositeCommandProcessor.java:34)
>         at
> com.nte.anthema.commandprocessor.AnthemaCommandProcessor.process(Anth
> emaCommandProcessor.java:47)
>         at
> com.nte.anthema.framework.command.RemoteCommandProcessServlet.doPost(
> RemoteCommandProcessServlet.java:56)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>         at
> com.evermind.server.http.ServletRequestDispatcher.invoke(ServletReque
> stDispatcher.java:719)
>         at
> com.evermind.server.http.ServletRequestDispatcher.forwardInternal(Ser
> vletRequestDispatcher.java:376)
>         at
> com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequ
> estHandler.java:870)
>         at
> com.evermind.server.http.HttpRequestHandler.processRequest(HttpReques
> tHandler.java:451)
>         at
> com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpReque
> stHandler.java:218)
>         at
> com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.ja
> va:119)
>         at
> com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.ja
> va:112)
>         at
> oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSo
> cketReadHandler.java:260)
>         at
> oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(Server
> SocketAcceptHandler.java:230)
>         at
> oracle.oc4j.network.ServerSocketAcceptHandler.access$800(ServerSocket
> AcceptHandler.java:33)
>         at
> oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(
> ServerSocketAcceptHandler.java:831)
>         at
> com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(Relea
> sableResourcePooledExecutor.java:298)
>         at java.lang.Thread.run(Thread.java:534)
> 2006-07-04 13:02:24,731 DEBUG
> [org.apache.activemq.broker.AbstractConnection.Tra
> nsport] Transport failed: java.io.IOException: The method 'commit' cant be
> calle
> d when a global transaction is active.
> java.io.IOException: The method 'commit' cant be called when a global
> transactio
> n is active.
>         at
> org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport
> .java:42)
>         at
> org.apache.activemq.store.jdbc.TransactionContext.close(TransactionCo
> ntext.java:124)
>         at
> org.apache.activemq.store.jdbc.JDBCMessageStore.recover(JDBCMessageSt
> ore.java:170)
>         at
> org.apache.activemq.store.journal.JournalMessageStore.recover(Journal
> MessageStore.java:341)
>         at org.apache.activemq.broker.region.Queue.<init>(Queue.java:97)
>         at
> org.apache.activemq.broker.region.QueueRegion.createDestination(Queue
> Region.java:58)
>         at
> org.apache.activemq.broker.region.AbstractRegion.addDestination(Abstr
> actRegion.java:77)
>         at
> org.apache.activemq.broker.region.RegionBroker.addDestination(RegionB
> roker.java:217)
>         at
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.j
> ava:129)
>         at
> org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBr
> oker.java:141)
>         at
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.j
> ava:129)
>         at
> org.apache.activemq.broker.MutableBrokerFilter.addDestination(Mutable
> BrokerFilter.java:142)
>         at
> org.apache.activemq.broker.region.AbstractRegion.lookup(AbstractRegio
> n.java:244)
>         at
> org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.
> java:224)
>         at
> org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java
> :342)
>         at
> org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.j
> ava:192)
>         at
> org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:113)
>         at
> org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeD
> estinationBroker.java:97)
>         at
> org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilt
> er.java:126)
>         at
> org.apache.activemq.broker.AbstractConnection.processMessage(Abstract
> Connection.java:351)
>         at
> org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.jav
> a:590)
>         at
> org.apache.activemq.broker.AbstractConnection.service(AbstractConnect
> ion.java:201)
>         at
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportC
> onnection.java:62)
>         at
> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCo
> rrelator.java:97)
>         at
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilt
> er.java:63)
>         at
> org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:
> 76)
>         at
> org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.ja
> va:44)
>         at
> org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorre
> lator.java:60)
>         at
> org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnec
> tion.java:1092)
>         at
> org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1553)
>         at
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
> cer.java:462)
>         at
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
> cer.java:356)
>         at
> com.nte.anthema.events.EventsPublisher.sendMessage(EventsPublisher.ja
> va:74)
>         at
> com.nte.anthema.events.EventsPublisher.publishMessage(EventsPublisher
> .java:54)
>         at
> com.nte.anthema.biz.ControlManagerBean.publishIfValidated(ControlMana
> gerBean.java:97)
>         at
> com.nte.anthema.biz.ControlManagerBean.simpleAdd(ControlManagerBean.j
> ava:381)
>         at
> com.nte.anthema.biz.ControlManagerBean.add(ControlManagerBean.java:32
> 2)
>         at
> com.nte.anthema.biz.ControlManagerBean.add(ControlManagerBean.java:55
> 9)
>         at
> com.nte.anthema.biz.ControlManagerBean.submitControl(ControlManagerBe
> an.java:289)
>         at
> com.nte.anthema.biz.ControlManagerBean.submit(ControlManagerBean.java
> :189)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:324)
>         at
> com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke
> (EJBJoinPointImpl.java:35)
>         at
> com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
> ocationContextImpl.java:69)
>         at
> com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSI
> nterceptor.java:52)
>         at
> com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
> ocationContextImpl.java:69)
>         at
> com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invo
> ke(TxRequiredInterceptor.java:55)
>         at
> com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
> ocationContextImpl.java:69)
>         at
> com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSI
> nterceptor.java:52)
>         at
> com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
> ocationContextImpl.java:69)
>         at
> com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(S
> tatelessSessionEJBObject.java:86)
>         at
> ControlManager_StatelessSessionBeanWrapper100.submit(ControlManager_S
> tatelessSessionBeanWrapper100.java:285)
>         at
> com.nte.anthema.biz.TPCommandProcessorMapBuilder$2.process(TPCommandP
> rocessorMapBuilder.java:53)
>         at
> com.nte.anthema.framework.command.SimpleCommandProcessor.process(Simp
> leCommandProcessor.java:18)
>         at
> com.nte.anthema.framework.command.CompositeCommandProcessor.process(C
> ompositeCommandProcessor.java:34)
>         at
> com.nte.anthema.commandprocessor.AnthemaCommandProcessor.process(Anth
> emaCommandProcessor.java:47)
>         at
> com.nte.anthema.framework.command.RemoteCommandProcessServlet.doPost(
> RemoteCommandProcessServlet.java:56)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>         at
> com.evermind.server.http.ServletRequestDispatcher.invoke(ServletReque
> stDispatcher.java:719)
>         at
> com.evermind.server.http.ServletRequestDispatcher.forwardInternal(Ser
> vletRequestDispatcher.java:376)
>         at
> com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequ
> estHandler.java:870)
>         at
> com.evermind.server.http.HttpRequestHandler.processRequest(HttpReques
> tHandler.java:451)
>         at
> com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpReque
> stHandler.java:218)
>         at
> com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.ja
> va:119)
>         at
> com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.ja
> va:112)
>         at
> oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSo
> cketReadHandler.java:260)
>         at
> oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(Server
> SocketAcceptHandler.java:230)
>         at
> oracle.oc4j.network.ServerSocketAcceptHandler.access$800(ServerSocket
> AcceptHandler.java:33)
>         at
> oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(
> ServerSocketAcceptHandler.java:831)
>         at
> com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(Relea
> sableResourcePooledExecutor.java:298)
>         at java.lang.Thread.run(Thread.java:534)
> Caused by: java.sql.SQLException: The method 'commit' cant be called when a
> glob
> al transaction is active.
>         at
> oracle.oc4j.sql.spi.ConnectionHandle.oc4j_throwSQLExceptionIfGlobalTx
> Active(ConnectionHandle.java:407)
>         at
> oracle.oc4j.sql.spi.ConnectionHandle.commit(ConnectionHandle.java:122
> )
>         at
> org.apache.activemq.store.jdbc.TransactionContext.close(TransactionCo
> ntext.java:118)
>         ... 72 more
> 2006-07-04 13:02:24,793 DEBUG [org.apache.activemq.ActiveMQSession] Sending
> mess
> age: ActiveMQObjectMessage {commandId = 0, responseRequired = false,
> messageId =
>  ID:nte70-3276-1152010880543-3:6:2:1:1, originalDestination = null,
> originalTran
> sactionId = null, producerId = ID:nte70-3276-1152010880543-3:6:2:1,
> destination
> = queue://QUEUE.CONTROL_VALIDATED, transactionId =
> XID:4660:0a000046f62200000500
> 0000000000000000000000000000:3e56f9a7000000000000000000000001, expiration =
> 0, t
> imestamp = 1152010944777, arrival = 0, correlationId = null, replyTo = null,
> per
> sistent = true, type = null, priority = 4, groupID = null, groupSequence =
> 0, ta
> rgetConsumerId = null, compressed = false, userID = null, content =
> org.apache.a
> ctiveio.packet.ByteSequence@393296, marshalledProperties = null,
> dataStructure =
>  null, redeliveryCounter = 0, size = 0, properties = null,
> readOnlyProperties =
> true, readOnlyBody = true}
> 2006-07-04 13:02:24,856 DEBUG [org.apache.activemq.TransactionContext] End:
> Xid(
>  Global Id
> 0a.00.00.46.f6.22.00.00.05.00.00.00.00.00.00.00.00.00.00.00.00.00.00.
> 00, Format Id 4660, Branch Id
> 3e.56.f9.a7.00.00.00.00.00.00.00.00.00.00.00.01)
>
>
> It seems the error comes from this piece of code
> --
> View this message in context: http://www.nabble.com/AMQ-4.0-with-Oracle-Persistence-and-XA-Transactions-tf1888956.html#a5165822
> Sent from the ActiveMQ - User forum at Nabble.com.
>
>


-- 

James
-------
http://radio.weblogs.com/0112098/

Re: AMQ 4.0 with Oracle Persistence and XA Transactions

Posted by Pep <pe...@yahoo.es>.
I enabled the DEBUG traces for ActiveMQ and got the following stact traces:

2006-07-04 13:02:24,699 DEBUG
[org.apache.activemq.broker.region.AbstractRegion]
 Adding destination: queue://QUEUE.HOMETAO_EVENTS
2006-07-04 13:02:24,715 DEBUG
[org.apache.activemq.store.journal.JournalPersiste
nceAdapter] Waking for checkpoint to complete.
2006-07-04 13:02:24,715 DEBUG
[org.apache.activemq.store.journal.JournalPersiste
nceAdapter] Checkpoint started.
2006-07-04 13:02:24,731 DEBUG
[org.apache.activemq.store.journal.JournalPersiste
nceAdapter] Checkpoint done.
2006-07-04 13:02:24,731 DEBUG
[org.apache.activemq.store.jdbc.JDBCPersistenceAda
pter] Could not get JDBC connection: The method 'setAutoCommit(true)' cant
be ca
lled when a global transaction is active.
java.sql.SQLException: The method 'setAutoCommit(true)' cant be called when
a gl
obal transaction is active.
        at
oracle.oc4j.sql.spi.ConnectionHandle.oc4j_throwSQLExceptionIfGlobalTx
Active(ConnectionHandle.java:407)
        at
oracle.oc4j.sql.spi.ConnectionHandle.setAutoCommit(ConnectionHandle.j
ava:174)
        at
org.apache.activemq.store.jdbc.TransactionContext.getConnection(Trans
actionContext.java:55)
        at
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter.doRecover(D
efaultJDBCAdapter.java:328)
        at
org.apache.activemq.store.jdbc.JDBCMessageStore.recover(JDBCMessageSt
ore.java:153)
        at
org.apache.activemq.store.journal.JournalMessageStore.recover(Journal
MessageStore.java:341)
        at org.apache.activemq.broker.region.Queue.<init>(Queue.java:97)
        at
org.apache.activemq.broker.region.QueueRegion.createDestination(Queue
Region.java:58)
        at
org.apache.activemq.broker.region.AbstractRegion.addDestination(Abstr
actRegion.java:77)
        at
org.apache.activemq.broker.region.RegionBroker.addDestination(RegionB
roker.java:217)
        at
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.j
ava:129)
        at
org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBr
oker.java:141)
        at
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.j
ava:129)
        at
org.apache.activemq.broker.MutableBrokerFilter.addDestination(Mutable
BrokerFilter.java:142)
        at
org.apache.activemq.broker.region.AbstractRegion.lookup(AbstractRegio
n.java:244)
        at
org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.
java:224)
        at
org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java
:342)
        at
org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.j
ava:192)
        at
org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:113)
        at
org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeD
estinationBroker.java:97)
        at
org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilt
er.java:126)
        at
org.apache.activemq.broker.AbstractConnection.processMessage(Abstract
Connection.java:351)
        at
org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.jav
a:590)
        at
org.apache.activemq.broker.AbstractConnection.service(AbstractConnect
ion.java:201)
        at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportC
onnection.java:62)
        at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCo
rrelator.java:97)
        at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilt
er.java:63)
        at
org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:
76)
        at
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.ja
va:44)
        at
org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorre
lator.java:60)
        at
org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnec
tion.java:1092)
        at
org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1553)
        at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
cer.java:462)
        at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
cer.java:356)
        at
com.nte.anthema.events.EventsPublisher.sendMessage(EventsPublisher.ja
va:74)
        at
com.nte.anthema.events.EventsPublisher.publishMessage(EventsPublisher
.java:54)
        at
com.nte.anthema.biz.ControlManagerBean.publishIfValidated(ControlMana
gerBean.java:97)
        at
com.nte.anthema.biz.ControlManagerBean.simpleAdd(ControlManagerBean.j
ava:381)
        at
com.nte.anthema.biz.ControlManagerBean.add(ControlManagerBean.java:32
2)
        at
com.nte.anthema.biz.ControlManagerBean.add(ControlManagerBean.java:55
9)
        at
com.nte.anthema.biz.ControlManagerBean.submitControl(ControlManagerBe
an.java:289)
        at
com.nte.anthema.biz.ControlManagerBean.submit(ControlManagerBean.java
:189)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at
com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke
(EJBJoinPointImpl.java:35)
        at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
ocationContextImpl.java:69)
        at
com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSI
nterceptor.java:52)
        at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
ocationContextImpl.java:69)
        at
com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invo
ke(TxRequiredInterceptor.java:55)
        at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
ocationContextImpl.java:69)
        at
com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSI
nterceptor.java:52)
        at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
ocationContextImpl.java:69)
        at
com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(S
tatelessSessionEJBObject.java:86)
        at
ControlManager_StatelessSessionBeanWrapper100.submit(ControlManager_S
tatelessSessionBeanWrapper100.java:285)
        at
com.nte.anthema.biz.TPCommandProcessorMapBuilder$2.process(TPCommandP
rocessorMapBuilder.java:53)
        at
com.nte.anthema.framework.command.SimpleCommandProcessor.process(Simp
leCommandProcessor.java:18)
        at
com.nte.anthema.framework.command.CompositeCommandProcessor.process(C
ompositeCommandProcessor.java:34)
        at
com.nte.anthema.commandprocessor.AnthemaCommandProcessor.process(Anth
emaCommandProcessor.java:47)
        at
com.nte.anthema.framework.command.RemoteCommandProcessServlet.doPost(
RemoteCommandProcessServlet.java:56)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        at
com.evermind.server.http.ServletRequestDispatcher.invoke(ServletReque
stDispatcher.java:719)
        at
com.evermind.server.http.ServletRequestDispatcher.forwardInternal(Ser
vletRequestDispatcher.java:376)
        at
com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequ
estHandler.java:870)
        at
com.evermind.server.http.HttpRequestHandler.processRequest(HttpReques
tHandler.java:451)
        at
com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpReque
stHandler.java:218)
        at
com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.ja
va:119)
        at
com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.ja
va:112)
        at
oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSo
cketReadHandler.java:260)
        at
oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(Server
SocketAcceptHandler.java:230)
        at
oracle.oc4j.network.ServerSocketAcceptHandler.access$800(ServerSocket
AcceptHandler.java:33)
        at
oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(
ServerSocketAcceptHandler.java:831)
        at
com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(Relea
sableResourcePooledExecutor.java:298)
        at java.lang.Thread.run(Thread.java:534)
2006-07-04 13:02:24,731 DEBUG
[org.apache.activemq.store.jdbc.JDBCPersistenceAda
pter] Error while closing connection: The method 'commit' cant be called
when a
global transaction is active.
java.sql.SQLException: The method 'commit' cant be called when a global
transact
ion is active.
        at
oracle.oc4j.sql.spi.ConnectionHandle.oc4j_throwSQLExceptionIfGlobalTx
Active(ConnectionHandle.java:407)
        at
oracle.oc4j.sql.spi.ConnectionHandle.commit(ConnectionHandle.java:122
)
        at
org.apache.activemq.store.jdbc.TransactionContext.close(TransactionCo
ntext.java:118)
        at
org.apache.activemq.store.jdbc.JDBCMessageStore.recover(JDBCMessageSt
ore.java:170)
        at
org.apache.activemq.store.journal.JournalMessageStore.recover(Journal
MessageStore.java:341)
        at org.apache.activemq.broker.region.Queue.<init>(Queue.java:97)
        at
org.apache.activemq.broker.region.QueueRegion.createDestination(Queue
Region.java:58)
        at
org.apache.activemq.broker.region.AbstractRegion.addDestination(Abstr
actRegion.java:77)
        at
org.apache.activemq.broker.region.RegionBroker.addDestination(RegionB
roker.java:217)
        at
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.j
ava:129)
        at
org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBr
oker.java:141)
        at
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.j
ava:129)
        at
org.apache.activemq.broker.MutableBrokerFilter.addDestination(Mutable
BrokerFilter.java:142)
        at
org.apache.activemq.broker.region.AbstractRegion.lookup(AbstractRegio
n.java:244)
        at
org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.
java:224)
        at
org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java
:342)
        at
org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.j
ava:192)
        at
org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:113)
        at
org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeD
estinationBroker.java:97)
        at
org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilt
er.java:126)
        at
org.apache.activemq.broker.AbstractConnection.processMessage(Abstract
Connection.java:351)
        at
org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.jav
a:590)
        at
org.apache.activemq.broker.AbstractConnection.service(AbstractConnect
ion.java:201)
        at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportC
onnection.java:62)
        at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCo
rrelator.java:97)
        at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilt
er.java:63)
        at
org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:
76)
        at
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.ja
va:44)
        at
org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorre
lator.java:60)
        at
org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnec
tion.java:1092)
        at
org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1553)
        at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
cer.java:462)
        at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
cer.java:356)
        at
com.nte.anthema.events.EventsPublisher.sendMessage(EventsPublisher.ja
va:74)
        at
com.nte.anthema.events.EventsPublisher.publishMessage(EventsPublisher
.java:54)
        at
com.nte.anthema.biz.ControlManagerBean.publishIfValidated(ControlMana
gerBean.java:97)
        at
com.nte.anthema.biz.ControlManagerBean.simpleAdd(ControlManagerBean.j
ava:381)
        at
com.nte.anthema.biz.ControlManagerBean.add(ControlManagerBean.java:32
2)
        at
com.nte.anthema.biz.ControlManagerBean.add(ControlManagerBean.java:55
9)
        at
com.nte.anthema.biz.ControlManagerBean.submitControl(ControlManagerBe
an.java:289)
        at
com.nte.anthema.biz.ControlManagerBean.submit(ControlManagerBean.java
:189)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at
com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke
(EJBJoinPointImpl.java:35)
        at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
ocationContextImpl.java:69)
        at
com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSI
nterceptor.java:52)
        at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
ocationContextImpl.java:69)
        at
com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invo
ke(TxRequiredInterceptor.java:55)
        at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
ocationContextImpl.java:69)
        at
com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSI
nterceptor.java:52)
        at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
ocationContextImpl.java:69)
        at
com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(S
tatelessSessionEJBObject.java:86)
        at
ControlManager_StatelessSessionBeanWrapper100.submit(ControlManager_S
tatelessSessionBeanWrapper100.java:285)
        at
com.nte.anthema.biz.TPCommandProcessorMapBuilder$2.process(TPCommandP
rocessorMapBuilder.java:53)
        at
com.nte.anthema.framework.command.SimpleCommandProcessor.process(Simp
leCommandProcessor.java:18)
        at
com.nte.anthema.framework.command.CompositeCommandProcessor.process(C
ompositeCommandProcessor.java:34)
        at
com.nte.anthema.commandprocessor.AnthemaCommandProcessor.process(Anth
emaCommandProcessor.java:47)
        at
com.nte.anthema.framework.command.RemoteCommandProcessServlet.doPost(
RemoteCommandProcessServlet.java:56)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        at
com.evermind.server.http.ServletRequestDispatcher.invoke(ServletReque
stDispatcher.java:719)
        at
com.evermind.server.http.ServletRequestDispatcher.forwardInternal(Ser
vletRequestDispatcher.java:376)
        at
com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequ
estHandler.java:870)
        at
com.evermind.server.http.HttpRequestHandler.processRequest(HttpReques
tHandler.java:451)
        at
com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpReque
stHandler.java:218)
        at
com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.ja
va:119)
        at
com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.ja
va:112)
        at
oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSo
cketReadHandler.java:260)
        at
oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(Server
SocketAcceptHandler.java:230)
        at
oracle.oc4j.network.ServerSocketAcceptHandler.access$800(ServerSocket
AcceptHandler.java:33)
        at
oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(
ServerSocketAcceptHandler.java:831)
        at
com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(Relea
sableResourcePooledExecutor.java:298)
        at java.lang.Thread.run(Thread.java:534)
2006-07-04 13:02:24,731 DEBUG
[org.apache.activemq.broker.AbstractConnection.Tra
nsport] Transport failed: java.io.IOException: The method 'commit' cant be
calle
d when a global transaction is active.
java.io.IOException: The method 'commit' cant be called when a global
transactio
n is active.
        at
org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport
.java:42)
        at
org.apache.activemq.store.jdbc.TransactionContext.close(TransactionCo
ntext.java:124)
        at
org.apache.activemq.store.jdbc.JDBCMessageStore.recover(JDBCMessageSt
ore.java:170)
        at
org.apache.activemq.store.journal.JournalMessageStore.recover(Journal
MessageStore.java:341)
        at org.apache.activemq.broker.region.Queue.<init>(Queue.java:97)
        at
org.apache.activemq.broker.region.QueueRegion.createDestination(Queue
Region.java:58)
        at
org.apache.activemq.broker.region.AbstractRegion.addDestination(Abstr
actRegion.java:77)
        at
org.apache.activemq.broker.region.RegionBroker.addDestination(RegionB
roker.java:217)
        at
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.j
ava:129)
        at
org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBr
oker.java:141)
        at
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.j
ava:129)
        at
org.apache.activemq.broker.MutableBrokerFilter.addDestination(Mutable
BrokerFilter.java:142)
        at
org.apache.activemq.broker.region.AbstractRegion.lookup(AbstractRegio
n.java:244)
        at
org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.
java:224)
        at
org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java
:342)
        at
org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.j
ava:192)
        at
org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:113)
        at
org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeD
estinationBroker.java:97)
        at
org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilt
er.java:126)
        at
org.apache.activemq.broker.AbstractConnection.processMessage(Abstract
Connection.java:351)
        at
org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.jav
a:590)
        at
org.apache.activemq.broker.AbstractConnection.service(AbstractConnect
ion.java:201)
        at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportC
onnection.java:62)
        at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCo
rrelator.java:97)
        at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilt
er.java:63)
        at
org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:
76)
        at
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.ja
va:44)
        at
org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorre
lator.java:60)
        at
org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnec
tion.java:1092)
        at
org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1553)
        at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
cer.java:462)
        at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
cer.java:356)
        at
com.nte.anthema.events.EventsPublisher.sendMessage(EventsPublisher.ja
va:74)
        at
com.nte.anthema.events.EventsPublisher.publishMessage(EventsPublisher
.java:54)
        at
com.nte.anthema.biz.ControlManagerBean.publishIfValidated(ControlMana
gerBean.java:97)
        at
com.nte.anthema.biz.ControlManagerBean.simpleAdd(ControlManagerBean.j
ava:381)
        at
com.nte.anthema.biz.ControlManagerBean.add(ControlManagerBean.java:32
2)
        at
com.nte.anthema.biz.ControlManagerBean.add(ControlManagerBean.java:55
9)
        at
com.nte.anthema.biz.ControlManagerBean.submitControl(ControlManagerBe
an.java:289)
        at
com.nte.anthema.biz.ControlManagerBean.submit(ControlManagerBean.java
:189)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at
com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke
(EJBJoinPointImpl.java:35)
        at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
ocationContextImpl.java:69)
        at
com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSI
nterceptor.java:52)
        at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
ocationContextImpl.java:69)
        at
com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invo
ke(TxRequiredInterceptor.java:55)
        at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
ocationContextImpl.java:69)
        at
com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSI
nterceptor.java:52)
        at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(Inv
ocationContextImpl.java:69)
        at
com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(S
tatelessSessionEJBObject.java:86)
        at
ControlManager_StatelessSessionBeanWrapper100.submit(ControlManager_S
tatelessSessionBeanWrapper100.java:285)
        at
com.nte.anthema.biz.TPCommandProcessorMapBuilder$2.process(TPCommandP
rocessorMapBuilder.java:53)
        at
com.nte.anthema.framework.command.SimpleCommandProcessor.process(Simp
leCommandProcessor.java:18)
        at
com.nte.anthema.framework.command.CompositeCommandProcessor.process(C
ompositeCommandProcessor.java:34)
        at
com.nte.anthema.commandprocessor.AnthemaCommandProcessor.process(Anth
emaCommandProcessor.java:47)
        at
com.nte.anthema.framework.command.RemoteCommandProcessServlet.doPost(
RemoteCommandProcessServlet.java:56)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        at
com.evermind.server.http.ServletRequestDispatcher.invoke(ServletReque
stDispatcher.java:719)
        at
com.evermind.server.http.ServletRequestDispatcher.forwardInternal(Ser
vletRequestDispatcher.java:376)
        at
com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequ
estHandler.java:870)
        at
com.evermind.server.http.HttpRequestHandler.processRequest(HttpReques
tHandler.java:451)
        at
com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpReque
stHandler.java:218)
        at
com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.ja
va:119)
        at
com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.ja
va:112)
        at
oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSo
cketReadHandler.java:260)
        at
oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(Server
SocketAcceptHandler.java:230)
        at
oracle.oc4j.network.ServerSocketAcceptHandler.access$800(ServerSocket
AcceptHandler.java:33)
        at
oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(
ServerSocketAcceptHandler.java:831)
        at
com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(Relea
sableResourcePooledExecutor.java:298)
        at java.lang.Thread.run(Thread.java:534)
Caused by: java.sql.SQLException: The method 'commit' cant be called when a
glob
al transaction is active.
        at
oracle.oc4j.sql.spi.ConnectionHandle.oc4j_throwSQLExceptionIfGlobalTx
Active(ConnectionHandle.java:407)
        at
oracle.oc4j.sql.spi.ConnectionHandle.commit(ConnectionHandle.java:122
)
        at
org.apache.activemq.store.jdbc.TransactionContext.close(TransactionCo
ntext.java:118)
        ... 72 more
2006-07-04 13:02:24,793 DEBUG [org.apache.activemq.ActiveMQSession] Sending
mess
age: ActiveMQObjectMessage {commandId = 0, responseRequired = false,
messageId =
 ID:nte70-3276-1152010880543-3:6:2:1:1, originalDestination = null,
originalTran
sactionId = null, producerId = ID:nte70-3276-1152010880543-3:6:2:1,
destination
= queue://QUEUE.CONTROL_VALIDATED, transactionId =
XID:4660:0a000046f62200000500
0000000000000000000000000000:3e56f9a7000000000000000000000001, expiration =
0, t
imestamp = 1152010944777, arrival = 0, correlationId = null, replyTo = null,
per
sistent = true, type = null, priority = 4, groupID = null, groupSequence =
0, ta
rgetConsumerId = null, compressed = false, userID = null, content =
org.apache.a
ctiveio.packet.ByteSequence@393296, marshalledProperties = null,
dataStructure =
 null, redeliveryCounter = 0, size = 0, properties = null,
readOnlyProperties =
true, readOnlyBody = true}
2006-07-04 13:02:24,856 DEBUG [org.apache.activemq.TransactionContext] End:
Xid(
 Global Id
0a.00.00.46.f6.22.00.00.05.00.00.00.00.00.00.00.00.00.00.00.00.00.00.
00, Format Id 4660, Branch Id
3e.56.f9.a7.00.00.00.00.00.00.00.00.00.00.00.01)


It seems the error comes from this piece of code
-- 
View this message in context: http://www.nabble.com/AMQ-4.0-with-Oracle-Persistence-and-XA-Transactions-tf1888956.html#a5165822
Sent from the ActiveMQ - User forum at Nabble.com.


Re: AMQ 4.0 with Oracle Persistence and XA Transactions

Posted by James Strachan <ja...@gmail.com>.
On 7/4/06, Pep <pe...@yahoo.es> wrote:
>
> I tried with the 4.0.1 release, but still getting the same errors.
>
> How could I debug AMQ to find where this setAutoCommit is called?

Its just Java code - use an embedded broker and just debug it in your IDE...

http://incubator.apache.org/activemq/how-do-i-embed-a-broker-inside-a-connection.html

Do you have a stack trace BTW?
-- 

James
-------
http://radio.weblogs.com/0112098/

Re: AMQ 4.0 with Oracle Persistence and XA Transactions

Posted by Pep <pe...@yahoo.es>.
I tried with the 4.0.1 release, but still getting the same errors.

How could I debug AMQ to find where this setAutoCommit is called?

Pep.
-- 
View this message in context: http://www.nabble.com/AMQ-4.0-with-Oracle-Persistence-and-XA-Transactions-tf1888956.html#a5165441
Sent from the ActiveMQ - User forum at Nabble.com.


Re: AMQ 4.0 with Oracle Persistence and XA Transactions

Posted by James Strachan <ja...@gmail.com>.
Which version of ActiveMQ are you using? IIRC there were some
auto-commit bugs fixed in 4.0.1

On 7/4/06, Pep <pe...@yahoo.es> wrote:
>
> Hi,
>
> we have ActiveMq acting as our JMS provider for OC4J 10.1.3. It is running
> as embbeded and integrated to OC4J by means of the JCA connector. As it is
> an additional resource provider, I assume our transactions in OC4J should be
> XA.
>
> Also, we had an Oracle persistence in AMQ configured the following way:
>
>     <persistenceAdapter>
>       <journaledJDBC journalLogFiles="5" dataDirectory="../activemq-data"
> dataSource="#oracle-ds"/>
>     </persistenceAdapter>
>
> <bean id="oracle-ds" class="org.apache.commons.dbcp.BasicDataSource"
> destroy-method="close">
>     <property name="driverClassName" value="oracle.jdbc.OracleDriver"/>
>     <property name="url" value="jdbc:oracle:thin:@10.0.0.178:1521:systao"/>
>     <property name="username" value="pep_anthema"/>
>     <property name="password" value="pep_anthema"/>
>     <property name="poolPreparedStatements" value="true"/>
>   </bean>
>
> With this configuration we experienced some deadlocks in the application
> server. My thought was that the persistence in Oracle was running in a
> different transaction. Really, I don't understand where the problem was as
> when using the default derby persistence there is no problem at all.
>
> Then I tried to use the same datasource the application is using. For that
> purpose, I replaced the oracle-ds definition to the following one:
>
>   <bean id="oracle-ds"
> class="org.springframework.jndi.JndiObjectFactoryBean">
>         <property name="jndiName" value="jdbc/xasystao" />
>   </bean>
>
> But with this configuration I am getting these error messages when
> publishing a message to our Queues in AMQ.
>
> 2006-07-04 10:52:40.045 WARNING J2EE DS262 The method 'setAutoCommit(true)'
> cant be called when a global transaction is active.
> 2006-07-04 10:52:40.045 WARNING J2EE DS262 The method 'commit' cant be
> called when a global transaction is active.
>
>
> Any idea?
>
> Thnks!
> --
> View this message in context: http://www.nabble.com/AMQ-4.0-with-Oracle-Persistence-and-XA-Transactions-tf1888956.html#a5164616
> Sent from the ActiveMQ - User forum at Nabble.com.
>
>


-- 

James
-------
http://radio.weblogs.com/0112098/