Weiß jemand, was diese Oracle AQ JMS XA Eigenschaften tun?
-
30-09-2019 - |
Frage
Ich bin mit Oracle Advanced Queues über JMS aus Websphere App Server.
Wer weiß, welche Wirkung die folgenden zwei Eigenschaften aufweisen: -
- oracle.jms.useEmulatedXA
- oracle.jms.useNativeXA
Ich habe in einigen Blogs und Kurzanleitungen, in der Regel in den Sätzen entlang der Linien von „Add -Doracle.jms.useEmulatedXA = false -Doracle.jms.useNativeXA = true zur JAVA_PROPERTIES Variable“, ohne jede Erklärung erwähnt gesehen als zu dem, was sie tun: -
z.
- http://biemond.blogspot.com /2008/11/using-aq-in-weblogic-103.html
- http://sqltech.cl/doc/oas10gR31 /integrate.1013/b28994/adptr_aq.htm#CHDEADFB
Ich bin neugierig, was diese beiden Eigenschaften tatsächlich tun, und welche Auswirkungen sie einzustellen sind, obwohl sie scheinen nicht auf unsere App nicht zu beeinträchtigen zu lassen, unabhängig davon, ob wir sie gesetzt ist oder nicht.
googeln keine Antworten gegeben hat, hat jemand eine Ahnung, was sie eigentlich tun?
Lösung
Hoffentlich ist dieser Link werden die Dinge im Detail erklären: http://bit.ly/bsl9Un Die relevanten Bits umfassen die folgenden ...
Quellen emulierte Daten sind Datenquellen dass emulieren die XA-Protokoll für JTA Transaktionen. Emulierten Datenquellen Angebot OC4J Caching, Bündelung und Oracle JDBC-Erweiterungen für Oracle-Daten Quellen. Historisch gesehen, emuliert Daten Quellen waren notwendig, weil viele JDBC-Treiber hat keine XA Fähigkeiten. Heute, obwohl die meisten JDBC-Treiber XA liefern Fähigkeiten, gibt es immer noch Fälle, in die emulierte XA ist bevorzugt (z wie Transaktionen, die nicht erfordern Zwei-Phasen-Commit).
Verbindungen von emulierten erhalten Datenquellen sind extrem schnell, da die Verbindungen emulieren die XA API ohne vollständige XA globale Bereitstellung Transaktionsunterstützung. Im Speziellen, emulierten Datenquellen nicht unterstützen Zwei-Phasen-Commit. Oracle empfiehlt dass Sie emulierten Datenquellen für lokale Transaktionen, oder wenn Ihre Anwendung verwendet globale Transaktionen ohne dass die zweiphasige Festschreibung.
Und ...
Nonemulated Datenquellen bieten volle (Nonemulated) JTA Dienstleistungen, einschließlich Zwei-Phasen-Commit-Funktionen für globale Transaktionen. Nonemulated Daten Quellen bieten Pooling, Caching, verteilte Transaktionen Fähigkeiten, und Anbieter JDBC-Erweiterungen (derzeit nur Erweiterungen Oracle JDBC). Zum Informationen zu den Beschränkungen des Zwei-Phasen-Commit finden Sie in Kapitel 7, „Java Transaction API“.
Oracle empfiehlt die Verwendung nonemulated Datenquellen für verteilte Datenbank-Kommunikation, Wiederherstellung und Zuverlässigkeit. Nonemulated Datenquellen gemeinsam nutzen physikalische Anschlüsse für die logischen Verbindungen zu die gleiche Datenbank für denselben Benutzer.
Also, was passiert, wenn Sie XA emuliert eingestellt ist, dass Ihre App denkt es wird XA erhalten, aber die Anrufe optimiert übersetzt oder einphasigen begehen. Wenn Sie angeben, nicht-emulierten XA dann werden Sie die volle Funktionalität XA bekommen. So oder so, die App ist völlig ahnungslos.