seasarでDBまわりの設定 覚え書き
すべではこちらからの引用です。
- トランザクションの設定
javaでトランザクション処理を実装する場合JTA(java transaction api)*1を使用する。JTAの実装はアプリケーションサーバが実装するが、tomcatのようにJTAの実装が無い場合、S2JTAを利用する。
標準のS2JTAの設定ファイルはs2-extension-2.4.x.jarファイルに入っている。
- トランザクションの自動制御
S2Txを利用するとPOJOクラスにトランザクションの自動管理機能を追加できる。
トランザクションの属性
属性 | コンポーネント名 | 説明 |
---|---|---|
Required | j2ee.requiredTx | トランザクションが開始されていなければ、自動的にトランザクションを開始します。既にトランザクションが開始されていれば、そのトランザクションを引き継ぎます。 |
RequiresNew | j2ee.requiresNewTx | 常に新しいトランザクションを開始させます。既存のトランザクションが開始されているなら、既存のトランザクションを中断し、自分自身のトランザクションの終了後、中断したトランザクションを復帰させます。 |
Mandatory | j2ee.mandatoryTx | トランザクションが既に開始されてなければエラーにします。 |
NotSupported | j2ee.notSupportedTx | 既存のトランザクションが開始されているなら、既存のトランザクションを中断します。コンポーネントのメソッドの終了後、中断したトランザクションを復帰させます。 |
- JDBCの設定
javaでデータベース接続する場合、データソース経由のコネクションプールを利用する。tomcatではJTAが実装されていないため、トランザクションと連動するコネクションプールの実装がない。そこで、S2DBCPを利用する。
つまり、S2DBCPでトランザクションとコネクションプール(データソース)を管理する。