Interface CCI (Common Client Interface)

Vous pouvez créer une application pour utiliser l'adaptateur de ressources du gestionnaire de transactions IMS afin d'interagir avec IMS à l'aide de l'interface CCI (Common Client Interface).

Pour accéder aux transactions IMS via l'adaptateur de ressources du gestionnaire de transactions IMS, vous pouvez écrire vous-même le code source des applications et ne pas utiliser le code d'application généré par l'environnement de développement. Cette opération est différente de l'utilisation d'un environnement de développement tel que Rational Application Developer pour créer vos propres applications en évitant le codage.

Pour écrire vous-même du code, votre application doit utiliser l'interface de programmation Common Client Interface (CCI). Cette API CCI fournit un accès aux systèmes dorsaux d'information d'entreprise (EIS) tels qu'IMS à partir des clients J2EE, tels que les beans enterprise, la technologie JSP (JavaServer Pages) et les servlets.

Les applications qui suivent le modèle de l'interface de programmation CCI ont une structure commune, indépendante de l'EIS utilisé. L'architecture J2EE Connector (JCA) comprend deux objets nécessaires pour l'application : Ces objets permettent à un serveur d'applications de gérer la sécurité, le contexte de transaction et les pools de connexions d'un adaptateur de ressources. Une application qui utilise l'interface de programmation CCI de l'adaptateur de ressources IMS TM commence tout d'abord par obtenir un objet IMSConnectionFactory. Cet objet s'obtient de deux manières :

Connexions IMS

Vous pouvez maintenant créer un objet connexion IMS à partir de cet objet fabrique de connexions IMS. Les propriétés de l'objet connexion IMS peuvent être définies dans un objet définition de connexion IMS transmis en tant que paramètre à la méthode getConnection ou les valeurs par défaut peuvent être définies dans la fabrique de connexions IMS qui sera utilisée. Vous pouvez créer une interaction IMS à partir de la connexion IMS après l'obtention de cette dernière. Une interaction IMS représente l'interaction qui va être exécutée sur cette connexion. Comme pour les connexions, les interactions peuvent avoir des propriétés personnalisées prises dans la classe définition d'interaction IMS.

Entrées et sorties

Pour effectuer une interaction, l'application appelle la méthode execute() de l'objet interaction IMS, lui transférant des objets entrée et sortie afin de mettre les données en attente. Un tableau d'octets d'entrée doit être créé et contenir les valeurs de chaque zone du message d'entrée vers IMS. Un tableau d'octets de sortie doit également être créé pour mettre en attente le message de réponse renvoyé par IMS. La valeur de chaque zone du message de sortie est extraite du tableau d'octets de sortie.

Vous pouvez écrire vous-même les tableaux d'octets d'entrée et de sortie, ou bien vous pouvez utiliser les options J2C dans Rational Application Developer (RAD) pour créer les liaisons de données Java des messages d'entrée et de sortie de votre application CCI, même si vous ne prévoyez pas d'utiliser RAD pour le développement de l'application.

Conditions requises pour les applications qui extraient des données d'un système IMS :
  • Utiliser l'objet fabrique de connexions IMS pour la création d'un objet connexion IMS.
  • Utiliser l'objet connexion IMS pour la création d'un objet interaction IMS.
  • Utiliser l'objet IMSInteraction object pour exécuter les transactions sur le système dorsal IMS.
  • Fermer les objets interaction IMS et connexion IMS.

Exemple de code d'application

L'exemple suivant illustre l'utilisation des interfaces CCI J2EE pour exécuter une commande sur un système :
public void execute() {
try {
   ConnectionFactory cf = null;
   if (isManaged) {
//Utiliser la recherche JNDI pour obtenir une instance fabrique de connexions - considère que la fabrique de connexions a un nom JNDI de MyIMS
      Context ic = new InitialContext();
      cf = (ConnectionFactory) ic.lookup("MyIMS");
   } else {
//Créer et définir des valeurs pour la fabrique de connexions gérée
      IMSManagedConnectionFactory mcf = new IMSManagedConnectionFactory();
      mcf.setDataStoreName("MyDSName");
      mcf.setHostName("myHostNm");
      mcf.setPortNumber(new Integer(1234));
//Créer une fabrique de connexions à partir de la fabrique de connexions gérée
      cf = (IMSConnectionFactory) mcf.createConnectionFactory();
   }
   Connection connection = cf.getConnection();

//Créer une interaction avec IMS pour exécuter la transaction IVTNO
   IMSInteraction interaction = (IMSInteraction) connection.createInteraction();
   IMSInteractionSpec ixnSpec = new IMSInteractionSpec();
   ixnSpec.setInteractionVerb(IMSInteractionSpec.SYNC_SEND_RECEIVE);

//Créer un nouvel enregistrement d'entrée 
   input = new PhoneBookInputRecordField("cp037");
   input.setIn__ll((short)59);
   input.setIn__zz((short) 0);
   input.setIn__trcd("IVTNO");
   input.setTranCodeLength(10);
   input.setIn__command("DISPLAY");
   input.setIn__name1("LAST3");
   input.setIn__name2("");
   input.setAllFieldsGiven(false);
   PhoneBookOutputRecordField

//Créer un nouvel enregistrement de sortie 
   output = new PhoneBookOutputRecordField("cp037");

//Exécuter l'interaction
   interaction.execute(ixnSpec, input, output);

//Afficher le résultat
   System.out.println ("Output is: ");
   System.out.println("\nMessage: "
      + output.getOut__mesg()
      + "\nName:"
      + output.getOut__name1()
      + " "
      + output.getOut__name2()
      + "\nExtension: "
      + output.getOut__extn()
      + "\nZipcode: "
      + output.getOut__zip());

} catch (Exception e) {
   e.printStackTrace();
} finally {
//Fermer l'interaction et la connexion
   interaction.close();
   connection.close();
}
}

Vos commentaires