이 콘텐츠는 선택한 언어로 제공되지 않습니다.
1.5. JDBC and Transactions
JBossJTA supports the construction of both local and distributed transactional applications which access databases using the JDBC 2.0 APIs. JDBC 2.0 supports two-phase commit of transactions, and is similar to the XA X/Open standard. The JDBC 2.0 support is found in the com.arjuna.ats.jdbc package.
JBossJTA incorporates JDBC connections within transactions by providing transactional JDBC drivers through which all interactions occur. These drivers intercept all invocations and ensure that they are registered with, and driven by, appropriate transactions. There is a single type of transactional driver through which any JDBC driver can be driven. This driver is com.arjuna.ats.jdbc.TransactionalDriver, and it implements the
java.sql.Driver
interface.
One way to establish the connection is through the
java.sql.DriverManager.getConnection
method. After establishing the connection, JBossJTA monitors all operations. You can use such connections in the same way as any other JDBC driver connection.
JBossJTA connections can be used within multiple different transactions simultaneously. Different threads, with different notions of the current transaction, may use the same JDBC connection. JBossJTA performs connection pooling for each transaction within the JDBC connection. Although multiple threads may use the same instance of the JDBC connection, internally a different connection instance may be used per transaction. With the exception of the
close
method, all operations performed on the connection at the application level are only performed on this transaction-specific connection.
JBossJTA automatically registers the JDBC driver connection with the transaction via an appropriate resource. When the transaction terminates, this resource either commits or rolls back any changes made to the underlying database, through appropriate calls on the JDBC driver.