A.2.4. JDBC ストア
JDBCStore
実装は、JDBC データーベース内に永続オブジェクトのステートを格納します。Transactional Objects for Java APIと併せてJBDCStore
を利用している場合、ネスト化されたトランザクションもサポートされます。オブジェクトのステートはすべて、単一テーブル内にBinary Large Objects (BLOB)として格納されます。オブジェクトステートのサイズは、64k までに制限されています。この制限を越えたオブジェクトステートを保存しようとすると、例外がスローされ、このステートは格納されません。このトランザクションは強制的にロールバックされます。
JDBC オブジェクトストアを利用すると、アプリケーションは、com.arjuna.ats.arjuna.objectstoreパッケージに置かれている
JDBCAccess
インターフェースの実装を提供する必要があります。例A.2「JDBCAccess 実装の例」を参照してください。
例A.2 JDBCAccess 実装の例
public interface JDBCAccess { public Connection getConnection () throws SQLException; public void putConnection (Connection conn) throws SQLException; public void initialise (ObjectName objName); }
JDBCAccess
クラスの実装により、JDBC ObjectStore で利用するConnection
が提供され、オブジェクトステートを保存、リストアできます。詳細についてはJDBCAccess
Connection
メソッド を参照してください。
JDBCAccess
Connection
メソッド
getConnection
- 使用するConnection を返します。接続が必要な場合はいつでも、このメソッドが呼び出され、この実装はどの接続を返すかを決定する際に必要なポリシーを使うはずです。このメソッドは同じConnection メソッドを1回以上返す必要はありません。
putConnection
- getConnectionから取得したConnection の1つを返します。これらを利用中にエラーが発生するとConnection が返されます。
initialise
- 実装に対する追加の任意情報を渡します。
JDBC オブジェクトストアは最初に、com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeInitialプロパティで定義されている
Connections
の数をリクエストし、com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum プロパティにて定義されているもののみ利用します。
使用する
JDBCAccess
インターフェースの実装は、com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess プロパティ変数にて設定する必要があります。
このオブジェクトストアの種類は、JDBCStoreです。
JDBCオブジェクトストアは、トランザクションログを管理できます。トランザクションログの実装は、 JDBCActionStoreに設定し、
JDBCAccess
メソッドはcom.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess プロパティ経由から提供します。デフォルトのテーブル名は、JBossTSTxTable
となっています。
注記
ユーザーオブジェクトストアとトランザクションログの両方に対して
JDBCAccess
実装を利用することができます。