[jboss-as7-dev] transaction integration

Jonathan Halliday jonathan.halliday at redhat.com
Wed Aug 10 08:43:02 EDT 2011


I've recently created a bunch of JIRAs for the simpler bits of the 
transaction integration work. However, there are some design issues that 
need discussion before the work can be codified into JIRAs...

First up, distributed transactions. By that I mean ones involving 
business logic in more that one JVM. The simpler case of 'distributed' 
in the multiple resource manager sense already more or less works.

The transaction system can run in two modes - jta, which does not 
support transactions spanning multiple jvms, or jts, which does.

Right now the AS decides which mode to boot depending on the presence of 
an ORB, since that is used as the transport for distributed transaction 
coordination.  This is itself potentially a problem, since it's possible 
that a user wants the ORB for non-transaction use only and does not want 
to  pay the performance penalty for running jts mode transactions that 
never actually leave the local jvm.  Even for local use the jts is 
substantially slower than jta. So, you may want to consider allowing the 
currently automated jta/jts choice to be overridden by the user. Another 
interesting possibility is to use the module system to run two isolated 
copies of the transaciton engine, one in jta and one in jts mode, then 
allow applications to determine which they want and bind the JNDI 
lookups accordingly. But I digress.

There is an interdependency between the ORB and the transaction system, 
in that the ORB runs a set of iniializers at startup and when the jts is 
enabled these must include the jts service inializers. However, the 
transaction system depends on the ORB...  (AS7-1494)

Assuming the user does require distributed transactions and the server 
is running magically running with the jts enabled, we come to the 
problem of distributed transaction boundary demarcation and context 
propagation.

Whilst the transaction control traffic always runs over CORBA, the 
business logic, typically EJB calls, may not.  As far as I can tell 
there is as yet no spec or documentation on what we intend to support 
here or how tx context propagation and inflow is intended to work.

There is also the question of the extent to which we'll support tx use 
by external or legacy clients, be they Java or CORBA. i.e. client to 
server or server to older server, rather than between two AS7 instances. 
  The ClientUserTransaction proxy arrangement in the old AS pre-dated 
the jts integration and never worked cleanly with it. We need to come up 
with something better.

Who is handling the requirements and design for this in AS7?

Thanks

Jonathan.

-- 
Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod 
Street, Windsor, Berkshire, SI4 1TE, United Kingdom.
Registered in England and Wales under Company Registration No. 03798903
Directors: Michael Cunningham (USA), Mark Hegarty (Ireland), Matt Parson 
(USA), Charlie Peters (USA)


More information about the jboss-as7-dev mailing list