これらのOracle AQ JMS XAプロパティが何をするか知っている人はいますか?

StackOverflow https://stackoverflow.com/questions/2684892

  •  30-09-2019
  •  | 
  •  

質問

WebSphere App Server内からJMSを介してOracle Advancedキューを使用しています。

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

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

私はいくつかのブログとクイックスタートガイドで言及されています。通常、「add -doracle.jms.usemulatexa = false -doracle.jms.usenativexa = true to the java_properties変数にtrue」という点に沿った文で、彼らは何について説明しません。行う:-

例えば

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

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

役に立ちましたか?

解決

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

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

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

と...

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

Oracleは、分散データベース通信、回復、信頼性に排出されていないデータソースを使用することを推奨しています。排出されていないデータソースは、同じユーザーの同じデータベースへの論理接続の物理接続を共有します。

だから、エミュレートされたXAを設定したときに何が起こっているのかということです。 考えてください XAが取得されていますが、通話は最適化されているか、単相コミットに翻訳されています。排出されていないXAを指定すると、完全なXA機能が取得されます。いずれにせよ、アプリは至福に気づいていません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top