The issue here is as stated: Local transaction already has 1 non-XA Resource.
When dealing with transactions over multiple resources you should make sure you use XA resources. So your connection pools should run in XA mode.
One thing to add here is that in an XA transaction one non-XA resource can be taken care of. This works as follows:
XA resources use a 2-phase commit mode, while non-xa resource use 1-phase commit. So, an XA transaction with 1 non-xa resource handles this as follows:
- prepare commit for XA resource 1
- prepare commit for XA resource 2
- ...
- commit non-xa resource
- ...
- commit XA resource 2
- commit XA resource 1
This way the TM can make sure all transactions can be commited or rolled back when needed.
Main Topics
Browse All Topics





by: CEHJPosted on 2008-03-19 at 02:24:04ID: 21159541
http://tinyurl.com/3bx8af