XA_RBTIMEOUT is indeed preferable, but is handled by JBossTS in the same manner as
XAER_NOTA. The distinction in spec terms is that XAER_NOTA is an error rather than an
information code, which is not quite right in this case, since the timeout is actually
working as intended. However, implementation considerations in the RM should probably
trump such spec minutia.
Timeouts are useful where the RM uses locking and allowing those locks to be held too long
causes throughput problems. If the RM is non-blocking then it becomes a question of
resource allocation. If holding the tx open requires no resources and holds no locks,
timeouts are irrelevant. Otherwise you need them for gc, or you need very robust
connection handling so that you can do cleanup of unprepared tx on connection drop. TCP/IP
being what it is, you won't always detect such drops unless you happen to have a
heartbeat protocol between client and server.
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4257556#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...