アフィリエイト広告を利用しています

広告

posted by fanblog
プロフィール

IT研究員
日々ITの研究をしています。
リンク集
<< 2021年11月 >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
カテゴリアーカイブ
月別アーカイブ
最新記事

広告

posted by fanblog
2013年10月03日
S2JDBCのトランザクション管理
S2JDBCを単体で使用すると、トランザクション制御は自分で設定しないと駄目そうなのでメモ
補足:SAStrutsと組み合わせれば、デフォルトでAction単位でトランザクションを制御してくれます。

今回はserviceに対して、トランザクションをかけます。
とういのも、Batch処理でS2JDBCを使用し、logicで実際のDB更新処理をし、その上で、serviceが複数のlogicを制御し、logicが全て成功なら、commit、失敗ならrollbackとしています。

creator.diconにserviceパッケージをS2で管理するように以下を追加
<component class="org.seasar.framework.container.creator.ServiceCreator"/>

customer.diconにトランザクション制御を追加
<component name="serviceCustomizer" class="org.seasar.framework.container.customizer.CustomizerChain">
<initMethod name="addCustomizer">
<arg>
<component class="org.seasar.framework.container.customizer.TxAttributeCustomizer"/>
</arg>
</initMethod>
</component>

トランザクションの制御ファイルjta.diconを作成
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN""http://www.seasar.org/dtd/components24.dtd">
<components namespace="jta">
<component name="UserTransaction"
class="org.seasar.extension.jta.UserTransactionImpl"/>
<component name="TransactionManager"
class="org.seasar.extension.jta.TransactionManagerImpl"/>
<component name="TransactionSynchronizationRegistry"
class="org.seasar.extension.jta.TransactionSynchronizationRegistryImpl"/>
<component
class="org.seasar.extension.tx.adapter.JTATransactionManagerAdapter"/>
</components>

j2ee.diconからjta.diconを読み込む
<include path="jta.dicon"/>:

以上で、serviceパッケージのクラスが呼ばれたときに、トランザクションが開始し、
クラスの実行が終わったときに、トランザクションが終了する設定が完成です。

Posted by IT研究員 at 13:13 | この記事のURL
この記事のURL

×

この広告は30日以上新しい記事の更新がないブログに表示されております。