5

質問

Springを介してallowCustomIsolationLevelstrueに設定してJtaTransactionManagerオブジェクトを構成し、Spring構成を複数のアプリケーションサーバーで使用できるようにするにはどうすればよいですか?

バックグラウンド:

現在JBossASが不足しているアプリケーションがあり、WebSphereで実行しようとしています。私が現在抱えている唯一の問題は、適切な設定で正しいJTATransactionManagerを注入することです。

これが古い設定です

<bean id="transactionManager"
    class="org.springframework.transaction.jta.JtaTransactionManager">
    <property name="transactionManagerName">
        <value>java:/TransactionManager</value>
    </property>
    <property name="allowCustomIsolationLevels" value="true" />
</bean>

これは、JBossASのJTAトランザクションマネージャーがJNDIロケーション java:/TransactionManagerで定義されているため機能しました。ただし、WebSphereには同じJNDIロケーションがありません。

Spring 2.5.xは、一般化された方法でJTATransactionManagerを取得する方法を提供します。

<tx:jta-transaction-manager />

これにより、JtaTransactionManagerオブジェクトが取得され、IDがtransactionManagerのBeanとして定義されます。

Spring TXスキーマを調べましたが、使用可能な唯一の設定は、特定の分離レベルを設定することですが、カスタムレベルを使用できるようにするだけではありません(他の場所で定義されています)。tx:jta-transaction-managerタグを使用してallowCustomIsolationLevelsプロパティを設定するにはどうすればよいですか?

4

1 に答える 1

2

トランザクションマネージャーとWebsphere:

Websphereは、トランザクション・マネージャーを提供するときに、通常のjndi標準を使用しません。Springは、websphereトランザクションマネージャーのルックアップに使用できるorg.springframework.transaction.jta.WebSphereUowTransactionManagerを提供することで、これを回避しました。

データソースと分離レベル

通常、データソースの分離レベルを変更することはできません。また、WebsphereからDB2データベースに接続するときに分離レベルを変更することはできません(データソース構成のパラメーターとして設定されます)。allowCustomIsolationLevelsフラグを使用すると、要求されたさまざまな分離レベルに対してさまざまなデータソースを選択できます。

ここここを参照してください

于 2010-10-13T12:45:13.350 に答える