JBoss/JCA provides connector managers for three fundamentally different types
of JDBC interactions with an underlying RDBMS. The thread breaks breaks down
these ConnectionManager options with their associated *-ds.xml configuration
type. Note, this is not a replacement for reading relevant documents regarding
JCA and Transaction Management in general but rather should be consulted as a
quick tip type document.
NoTxConnectionManager -- <no-tx-datasource>
Use this type of configuration if you, the developer, want to completely
manage JDBC transactional demarcation within your code.
Example:
|
| InitialContext ctx = null;
| DataSource ds = null;
| Connection conn = null;
|
| try
| {
|
| ctx = new IntialContext();
| ds = (DataSource)ctx.lookup("java:/DefaultDS");
| conn = ds.getConnection();
| conn.setAutoCommit(false); //Transaction begins here
|
| //Do JDBC stuff here
| conn.commit();
|
| }catch (Exception e)
|
| //Evaluate exception, rollback or ignore etc, etc
| conn.rollback();
|
| }finally
| {
|
| //Close other resources Prepared|Callable Statements ehre
| if(con != null)
| con.close();
| }
|
|
TxConnectionManager -- <local-tx-datasource>
Use this type of configuration for JDBC interactions with a *single*
datasource. Configurations of this type can be found in
JBOSS_HOME/docs/examples/jca. Typically <local-tx-datasource> configurations
will be named 'vendor'-ds.xml (ie oracle-ds.xml, postgres-ds.xml,
mysql-ds.xml). Note, the important thing to remember is that for this type of
configuration you *do not* control transaction boundaries.
Methods from the JDBC API such as setAutoCommit(true | false), commit(),
rollback() are not used as JBoss automatically manages the
enlistment/delistment of the underlying resource in the current transaction.
TxConnectionManager -- <xa-datasource>
Use this configuration when your application requires the enlistment of
multiple resources in the current transaction. Typical scenarios include:
|
| JDBC
| Updating multiple DataSources in the same transaction where the commit or
rollback of one DataSource would effect the other and 2PC (two phase commit) is
appropriate.
|
| JMS/JDBC
| Receipt of a JMS message and JDBC create/read/update/delete should occur
within the same transaction.
|
| JCBC/JCA
| JDBC interaction and XA enabled JCA adapter should occur within the same
transaction.
|
|
|
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3969920#3969920
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3969920
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user