I briefly evaluated HornetQ's XA support and it looks like it's not working the way it should or at least the way I expect it to work.
Here are the two problems I noticed:
- When a message is sent and the transaction managed to get prepared but not yet committed I expect the org.hornetq/Server/Core JMX object to return the transaction ID from a call to listPreparedTransactions. I couldn't get that working, the operation always returns an empty list.
- I simulated a crash of a process receiving massive amount of messages. After restarting the process the TM managed to find a few pending transactions and successfully recovered them. Unfortunately the delivery of other messages still pending in the queue did not restart. I needed to stop and restart HornetQ to get the remaining messages to be delivered again.
Hi Iorban - can you create a JIRA and attach a test program, or some instructions to replicate the issue and we'll investigate. :)
It's too bad Hornet's XA support does not seem to be very mature
Well, I wouldn't expect a beta to be mature ;)
as for the rest it looks much better than ActiveMQ.
I hope I just overlooked something or that those problems will be ironed out before the final release.
This is exactly the purpose of a beta, to iron out issues in the community before going GA :)
Could you provide a standalone test and we'll look at it, it may be a known problem.
and yes, all these problems will be fixed before GA,especially with the good feedback you are sending us.
The problem here is because the class org/hornetq/core/transaction/impl/XidImpl is not included in the hornetq-core-client.jar
Workaround is to include the hornetq main jar (hornetq-core.jar) on the client side classpath.
I've fixed it in trunk so this class will be included in the client jar in the next release.