[
https://issues.apache.org/activemq/browse/AMQ-1054?page=comments#action_37510 ]
Guy Pardon commented on AMQ-1054:
---------------------------------
Yes, 4.0.2 too.
Below is a test program (you need the atomikos jars in the classpath, as well
as all activemq jars). Note that the only atomikos dependency is the Xid format.
Guy
package activemqtest;
import javax.jms.MessageConsumer;
import javax.jms.XAConnection;
import javax.jms.XASession;
import javax.transaction.xa.XAResource;
import javax.transaction.xa.Xid;
import org.apache.activemq.ActiveMQXAConnectionFactory;
import org.apache.activemq.command.ActiveMQQueue;
import com.atomikos.datasource.xa.DefaultXidFactory;
public class XATest {
public static void main ( String[] args ) throws Exception {
String url = "tcp://localhost:61616";
String qName = "MyQueue";
int timeout = 5;
DefaultXidFactory xidFactory = new DefaultXidFactory();
ActiveMQXAConnectionFactory xacf = new
ActiveMQXAConnectionFactory();
xacf.setBrokerURL ( url );
ActiveMQQueue queue = new ActiveMQQueue();
queue.setPhysicalName ( qName );
XAConnection xaconn = xacf.createXAConnection();
xaconn.start();
XASession session = xaconn.createXASession();
XAResource xares = session.getXAResource();
MessageConsumer receiver = session.getSession().createConsumer
( queue );
xares.recover ( XAResource.TMSTARTRSCAN );
xares.recover ( XAResource.TMNOFLAGS );
xares.setTransactionTimeout ( timeout );
xares.isSameRM ( xares );
Xid xid = xidFactory.createXid ( "part1" , "part2");
xares.start ( xid , XAResource.TMNOFLAGS );
receiver.receive ( timeout );
xares.end ( xid , XAResource.TMSUCCESS );
xares.rollback ( xid );
}
}
> XA recover fails for 4.0.1
> --------------------------
>
> Key: AMQ-1054
> URL: https://issues.apache.org/activemq/browse/AMQ-1054
> Project: ActiveMQ
> Issue Type: Bug
> Environment: Java, JDK 1.4, Windows, Atomikos TransactionsEssentials
> for the JTA/XA part
> Reporter: Guy Pardon
>
> XAResource.recover seems to fail for 4.x of ActiveMQ:
> ERROR IN RECOVERY [thread: SimpleAsyncTaskExecutor-3] on: 06-11-16
> 08:43:35,152
> [Lorg.apache.activemq.command.DataStructure; [thread:
> SimpleAsyncTaskExecutor-3] on: 06-11-16 08:43:35,152
> at:
> org.apache.activemq.TransactionContext.recover(TransactionContext.java:508)
> [thread: SimpleAsyncTaskExecutor-3] on: 06-11-16 08:43:35,152
> at: com.atomikos.datasource.xa.XATransactionalResource.recover(Unknown
> Source) [thread: SimpleAsyncTaskExecutor-3] on: 06-11-16 08:43:35,152
> at: com.atomikos.datasource.xa.XATransactionalResource.endRecovery(Unknown
> Source) [thread: SimpleAsyncTaskExecutor-3] on: 06-11-16 08:43:35,152
> at: com.atomikos.icatch.imp.TransactionServiceImp.recover(Unknown Source)
> [thread: SimpleAsyncTaskExecutor-3] on: 06-11-16 08:43:35,153
> at:
> com.atomikos.datasource.xa.XATransactionalResource.setRecoveryService(Unknown
> Source) [thread: SimpleAsyncTaskExecutor-3] on: 06-11-16 08:43:35,153
> at: com.atomikos.icatch.system.Configuration.addResource(Unknown Source)
> [thread: SimpleAsyncTaskExecutor-3] on: 06-11-16 08:43:35,153
> at: com.atomikos.jms.QueueConnectionFactoryBean.checkSetup(Unknown Source)
> [thread: SimpleAsyncTaskExecutor-3] on: 06-11-16 08:43:35,153
> at: com.atomikos.jms.QueueConnectionFactoryBean.createQueueConnection(Unknown
> Source) [thread: SimpleAsyncTaskExecutor-3] on: 06-11-16 08:43:35,153
> at: com.atomikos.jms.QueueConnectionFactoryBean.createConnection(Unknown
> Source) [thread: SimpleAsyncTaskExecutor-3] on: 06-11-16 08:43:35,153
> Also see http://www.atomikos-support.com/forums/viewtopic.php?t=351 (where I
> borrowed this stack trace from). We have seen similar things in other
> applications that tried to use ActiveMQ. I think this is a class cast error
> in ActiveMQ...
> With 3.1 there is no problem.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira