これらのOracle AQ JMS XAプロパティが何をするか知っている人はいますか?
-
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」という点に沿った文で、彼らは何について説明しません。行う:-
例えば
- http://biemond.blogspot.com/2008/11/using-aq-in-weblogic-103.html
- http://sqltech.cl/doc/oas10gr31/integrate.1013/b28994/adptr_aq.htm#chdeadfb
これらの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機能が取得されます。いずれにせよ、アプリは至福に気づいていません。