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

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog
プロフィール

IT研究員
日々ITの研究をしています。
リンク集
<< 2013年10月 >>
    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 31    
カテゴリアーカイブ
月別アーカイブ
最新記事

広告

この広告は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

×

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