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 実装の例
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 実装を利用することができます。