2010-04-21 3 views
1

J'utilise Oracle Advanced Queues via JMS à partir de Websphere App Server.Est-ce que quelqu'un sait ce que font ces propriétés Oracle AQ JMS XA?

Est-ce que quelqu'un sait quel effet les deux propriétés suivantes ont: -

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

J'ai vu mentionné dans certains blogs et guides de démarrage rapide, le plus souvent dans des phrases le long des lignes de « Ajouter -Doracle.jms.useEmulatedXA = false -Doracle.jms.useNativeXA = true pour la variable JAVA_PROPERTIES ", sans aucune explication sur ce qu'ils font: -

Je suis curieux de savoir ce que ces deux propriétés font réellement, et quelles sont les implications de leur mise en sont, même si elles ne semblent pas avoir d'effet sur notre application indépendamment du fait que nous les définissions ou non.

Google n'a donné aucune réponse, est-ce que quelqu'un a la moindre idée de ce qu'ils font réellement?

Répondre

1

Espérons que ce lien vous expliquera les choses en détail: http://bit.ly/bsl9Un Les bits pertinents comprennent les suivants ...

sources de données sont émulés sources de données qui émulent le protocole XA pour les transactions JTA . Les sources de données émulées offrent la mise en cache OC4J, la mise en pool et les extensions Oracle JDBC pour les sources Oracle data . Historiquement, les sources de données émulées étaient nécessaires car de nombreux pilotes JDBC ne fournissaient pas les capacités XA . Aujourd'hui, même si la plupart pilotes JDBC fournissent des capacités XA , il y a encore des cas dans qui émulé XA est préféré (par exemple que les transactions qui ne nécessitent pas commettras deux phases.)

Connexions obtenues à partir des émules données sources sont extrêmement rapides, car les connexions émulent l'API XA sans fournir un support transactionnel complet XA global . En particulier, les sources de données émulées ne prennent pas en charge la validation en deux phases . Oracle recommande que vous utilisiez des sources de données émulées pour les transactions locales ou lorsque votre application utilise des transactions globales sans nécessiter de validation en deux phases.

Et ...

sources de données complètes Nonemulated fournissent (nonemulated) Services de JTA, y compris validation en deux phases pour des capacités transactions globales. Sources de données non émulées sources offrent la mise en pool, la mise en cache, capacités de transactions distribuées, et les extensions JDBC du fournisseur (actuellement, uniquement les extensions Oracle JDBC).Pour des informations sur les limitations de la validation en deux phases , reportez-vous au Chapitre 7, "Java Transaction API" pour les informations .

Oracle recommande que vous utilisez sources de données nonemulated pour les communications de bases de données distribuées , la récupération et la fiabilité. Les sources de données non émulées partagent les connexions physiques pour les connexions logiques à la même base de données pour le même utilisateur.

Alors qu'est-ce qui se passe lorsque vous définissez émulé XA est que votre application pense il devient XA, mais les appels sont optimisés ou traduits à validation à phase unique. Lorsque vous spécifiez XA non émulé, vous obtenez la fonctionnalité XA complète. De toute façon, l'application est parfaitement inconsciente.

Questions connexes