1

WebsphereAppServer内からJMSを介してOracleAdvancedQueuesを使用しています。

次の2つのプロパティがどのような影響を与えるか知っている人はいますか?-

 - oracle.jms.useEmulatedXA
 - oracle.jms.useNativeXA

いくつかのブログやクイックスタートガイドで、通常は「Add -Doracle.jms.useEmulatedXA = false -Doracle.jms.useNativeXA = true to the JAVA_PROPERTIES variable」の行に沿った文章で言及されていますが、それらについての説明はありません。行う:-

例えば

これらの2つのプロパティが実際に何をするのか、そしてそれらを設定するかどうかに関係なくアプリに影響を与えないように見えますが、それらを設定することの意味について興味があります。

グーグルは何の答えも与えていません、誰かが彼らが実際に何をしているのか手がかりを持っていますか?

4

1 に答える 1

1

うまくいけば、このリンクは物事を詳細に説明するでしょう:http: //bit.ly/bsl9Un 関連するビットには以下が含まれます...

エミュレートされたデータソースは、JTAトランザクションのXAプロトコルをエミュレートするデータソースです。エミュレートされたデータソースは、Oracleデータソース用のOC4Jキャッシング、プーリング、およびOracleJDBC拡張機能を提供します。歴史的に、多くのJDBCドライバーはXA機能を提供していなかったため、エミュレートされたデータソースが必要でした。現在、ほとんどのJDBCドライバーはXA機能を提供していますが、エミュレートされたXAが優先される場合もあります(2フェーズコミットを必要としないトランザクションなど)。

エミュレートされたデータソースから取得された接続は、完全なXAグローバルトランザクションサポートを提供せずにXA APIをエミュレートするため、非常に高速です。特に、エミュレートされたデータソースは2フェーズコミットをサポートしていません。ローカルトランザクション、またはアプリケーションが2フェーズコミットを必要とせずにグローバルトランザクションを使用する場合は、エミュレートされたデータソースを使用することをお勧めします。

と...

エミュレーションされていないデータソースは、グローバルトランザクションの2フェーズコミット機能を含む、完全な(エミュレーションされていない)JTAサービスを提供します。エミュレーションされていないデータソースは、プーリング、キャッシング、分散トランザクション機能、およびベンダーJDBC拡張機能(現在はOracle JDBC拡張機能のみ)を提供します。2フェーズ・コミットの制限については、第7章「JavaTransactionAPI」を参照してください。

分散データベースの通信、リカバリ、および信頼性のために、エミュレートされていないデータソースを使用することをお勧めします。エミュレーションされていないデータソースは、同じユーザーの同じデータベースへの論理接続の物理接続を共有します。

したがって、エミュレートされたXAを設定すると、アプリはXAを取得していると見なしますが、呼び出しは最適化されるか、単相コミットに変換されます。エミュレートされていないXAを指定すると、完全なXA機能が得られます。いずれにせよ、アプリは幸いにも気づいていません。

于 2010-04-27T02:10:30.303 に答える