Prise en charge d'autres transactions

IMS TM Resource Adapter prend en charge les transactions locales, le traitement de la validation en une phase, le traitement des transactions non globales et le traitement des transactions conversationnelles dans la portée d'une transaction globale.

Transaction locale

L'architecture de connexion J2EE définit l'interface javax.resource.cci.LocalTransaction afin de permettre une coordination locale d'une transaction par un gestionnaire de ressources, plutôt que par un gestionnaire de transactions. Cependant, IMS TM Resource Adapter prend en charge seulement la coordination des transactions via un gestionnaire de transactions. Ainsi, IMS TM Resource Adapter ne prend pas en charge l'interface javax.resource.cci.LocalTransaction. Si vous appelez la méthode IMSConnection.getLocalTransaction(), vous obtiendrez une exception NotSupportedException. Afin de pouvoir utiliser la prise en charge d'une transaction avec IMS TM Resource Adapter, vous devez utiliser l'interface de transaction JTA ou définir un attribut de transaction approprié dans le descripteur de déploiement de votre application. Pour plus d'informations, consultez la rubrique sur la prise en charge des transactions globales dans les applications client.

Traitement de la validation en une phase

IMS TM Resource Adapter prend en charge l'optimisation de la validation en une phase avec un gestionnaire de transactions. Par conséquent, si tous les changements réalisés au sein de la portée d'une transaction font partie de la même ressource IMS, le gestionnaire de transactions peut réaliser l'optimisation d'une validation en une phase c'est-à-dire qu'il envoie directement au gestionnaire de ressources la requête de la phase de validation (phase 2) sans envoyer la requête de la phase de préparation (phase 1).

Traitement de transaction non globale

Si aucun traitement de transaction globale n'est utilisé dans l'application (lorsque l'attribut de transaction est défini sur TX_NOTSUPPORTED, par exemple), tous les traitements de transaction non globale utilisent "Sync-On-Return" (OTMA SyncLevel=None). Le temps que la transaction IMS soit validée, la sortie a été renvoyée au client.

Traitement de transaction conversationnelle dans la portée d'une transaction globale

IMS utilise un programme conversationnel afin de diviser le traitement en une série d'interactions client-programme-client (également appelées itérations). Chaque itération représente un type de transaction conversationnelle IMS. Le traitement conversationnel est utilisé lorsqu'une transaction est constituée de plusieurs composants, chacun d'entre eux étant validé ou annulé séparément.

Vous pouvez exécuter une transaction conversationnelle dans la portée d'une transaction globale si :
  • Chaque itération est exécutée au même niveau de transaction. Par exemple, si la première itération est traitée avec la portée d'une transaction globale, les itérations suivantes de la transaction conversationnelle IMS doivent alors être traitées à un niveau de transaction globale. Si la deuxième itération est émise sans portée de transaction, IMS OTMA signale une erreur.
  • Chaque itération doit se terminer par un appel de validation ou d'annulation avant d'émettre l'itération suivante dans la conversation IMS. Vous ne pouvez pas regrouper plusieurs itérations dans une seule portée de transaction globale.

Vos commentaires