< Précédent | Suivant >

Leçon 3 : Créer une classe de mémoire tampon de messages

La leçon 3 vous montre la création d'une classe de mémoire tampon de messages.
Avant de commencer, vous devez effectuer la Leçon 2 : Configurer un projet Web, et une interface et des implémentations Java.
Dans cette leçon, vous
  1. Pour créer une classe de mémoire tampon de messages, développez le projet MultiSegOutput, puis la branche Ressources Java et enfin le noeud JavaSource.
  2. Cliquez avec le bouton droit sur le package sample.ims et sélectionnez Nouvelle > Classe pour lancer l'assistant Nouvelle classe.
  3. Saisissez CCIBuffer comme nom de classe. Acceptez les paramètres par défaut.
  4. Cliquez sur Terminer. La classe CCIBuffer s'ouvre dans l'éditeur Java.
  5. Dans la section des commentaires de la classe CCIBuffer, entrez la balise @type-descriptor.message-buffer.
  6. Appuyez sur CTRL-S pour enregistrer les changements effectués. Notez que le nouveau code est généré automatiquement dans le fichier CCIBuffer.java.
    CCIBuffer.java
    /*
     * Created on Oct 13, 2004
     *
     * TODO To change the template for this generated file go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    package sample.ims;
    
    /**
     * @author ivyho
     *
     * TODO To change the template for this generated type comment go to
     * Window - Preferences - Java - Code Style - Code Templates
     * @type-descriptor.message-buffer
     */
    public class CCIBuffer implements javax.resource.cci.Record,
    		javax.resource.cci.Streamable, com.ibm.etools.marshall.RecordBytes {
    
    	private byte[] buffer_ = null;
    
    	/**
    	 * @generated
    	 */
    	public CCIBuffer() {
    		return;
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#getRecordShortDescription()
    	 */
    	public String getRecordShortDescription() {
    		return (this.getClass().getName());
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#hashCode()
    	 */
    	public int hashCode() {
    		return (super.hashCode());
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Streamable#write(OutputStream)
    	 */
    	public void write(java.io.OutputStream outputStream)
    			throws java.io.IOException {
    		outputStream.write(buffer_);
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#setRecordShortDescription(String)
    	 */
    	public void setRecordShortDescription(String shortDescription) {
    		return;
    	}
    
    	/**
    	 * @generated
    	 */
    	public int getSize() {
    		if (buffer_ != null)
    			return (buffer_.length);
    		else
    			return (0);
    	}
    
    	/**
    	 * @generated
    	 * @see java.lang.Object#toString
    	 */
    	public String toString() {
    		StringBuffer sb = new StringBuffer(super.toString());
    		sb.append("\n");
    		com.ibm.etools.marshall.util.ConversionUtils.dumpBytes(sb, buffer_);
    		return (sb.toString());
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#getRecordName()
    	 */
    	public String getRecordName() {
    		return (this.getClass().getName());
    	}
    
    	/**
    	 * @generated
    	 */
    	public byte[] getBytes() {
    		return (buffer_);
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#clone()
    	 */
    	public Object clone() throws CloneNotSupportedException {
    		return (super.clone());
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#setRecordName(String)
    	 */
    	public void setRecordName(String recordName) {
    		return;
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#equals()
    	 */
    	public boolean equals(Object object) {
    		return (super.equals(object));
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Streamable#read(InputStream)
    	 */
    	public void read(java.io.InputStream inputStream)
    			throws java.io.IOException {
    		byte[] input = new byte[inputStream.available()];
    		inputStream.read(input);
    		buffer_ = input;
    	}
    
    	/**
    	 * @generated
    	 */
    	public void setBytes(byte[] bytes) {
    		buffer_ = bytes;
    	}
    
    }
  7. Pour créer une méthode afin d'exécuter la transaction IMS et le type de données de message d'entrée, dans la vue Explorateur d'entreprise, cliquez avec le bouton droit sur MSOImpl.java et sélectionnez Source > Ajouter une méthode à un bean Java J2C.
  8. Sur la page Nouvelle méthode Java, cliquez sur Ajouter.
  9. Dans la zone Nom, tapez runMultiSegOutput.
  10. A côté de la zone Type d'entrée, cliquez sur Nouveau.
  11. Sélectionnez le mappage COBOL vers Java. Cliquez sur Parcourir.
  12. Recherchez le fichier COBOL MSOut.cbl. Cliquez sur Ouvrir.
    MSout.cbl
          IDENTIFICATION DIVISION.
          program-id. pgm1.
          ENVIRONMENT DIVISION.                                             
          CONFIGURATION SECTION.                                            
          DATA DIVISION. 
          *
          *    IMS TOC Connector for Java, Multi-segment Output Example
          *
          *********************************************************************/ 
          *                                                                   */ 
          * (c) Copyright IBM Corp. 1998                                      */ 
          * All Rights Reserved                                               */ 
          * Licensed Materials - Property of IBM                              */ 
          *                                                                   */ 
          * DISCLAIMER OF WARRANTIES.                                         */ 
          *                                                                   */ 
          * The following (enclosed) code is provided to you solely for the   */ 
          * purpose of assisting you in the development of your applications. */ 
          * The code is provided "AS IS." IBM MAKES NO WARRANTIES, EXPRESS OR */ 
          * IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF   */ 
          * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING   */ 
          * THE FUNCTION OR PERFORMANCE OF THIS CODE.                         */ 
          * IBM shall not be liable for any damages arising out of your use   */ 
          * of the generated code, even if they have been advised of the      */ 
          * possibility of such damages.                                      */ 
          *                                                                   */ 
          * DISTRIBUTION.                                                     */ 
          *                                                                   */ 
          * This generated code can be freely distributed, copied, altered,   */ 
          * and incorporated into other software, provided that:              */ 
          *   - It bears the above Copyright notice and DISCLAIMER intact     */ 
          *   - The software is not for resale                                */ 
          *                                                                   */ 
          *********************************************************************/
          *
            LINKAGE SECTION.
    	                                                   
            01  INPUT-MSG.                                                     
                02  IN-LL          PICTURE S9(3) COMP.                         
                02  IN-ZZ          PICTURE S9(3) COMP.                         
                02  IN-TRCD        PICTURE X(5).                               
                02  IN-DATA1       PICTURE X(6).
                02  IN-DATA2       PICTURE X(6).
    						  
            01  OUTPUT-MSG.                                                   
                02  OUT-ALLSEGS  PICTURE X(99) VALUE SPACES.
    
            01  OUTPUT-SEG1.
                02  OUT-LL       PICTURE S9(3) COMP VALUE +0.                 
                02  OUT-ZZ       PICTURE S9(3) COMP VALUE +0.                  
                02  OUT-DATA1    PICTURE X(12) VALUE SPACES.
    
            01  OUTPUT-SEG2.
                02  OUT-LL       PICTURE S9(3) COMP VALUE +0.                 
                02  OUT-ZZ       PICTURE S9(3) COMP VALUE +0.                  
                02  OUT-DATA1    PICTURE X(13) VALUE SPACES.
                02  OUT-DATA2    PICTURE X(14) VALUE SPACES.
    
            01  OUTPUT-SEG3.
                02  OUT-LL       PICTURE S9(3) COMP VALUE +0.                 
                02  OUT-ZZ       PICTURE S9(3) COMP VALUE +0.                  
                02  OUT-DATA1    PICTURE X(15) VALUE SPACES.
                02  OUT-DATA2    PICTURE X(16) VALUE SPACES.
                02  OUT-DATA3    PICTURE X(17) VALUE SPACES.                     		   		
                            
            PROCEDURE DIVISION.    
  13. Cliquez sur Suivant.
  14. Dans la page Importateur COBOL, cliquez sur Afficher les options avancées.
    1. Sélectionnez les options suivantes :
      Tableau 1. Options de configuration des paramètres de l'importateur COBOL
      Paramètre Valeur
      Platform Name Z/OS
      Codepage IBM-037
      Floating point format name Hexadécimal IBM®
      External decimal sign EBCDIC
      Endian name Big
      Remote integer endian name Big
      Quote name DOUBLE
      Trunc name STD
      Nsymbol name DBCS
    2. Cliquez sur Interroger pour charger les données.
    3. Une liste des structures de données s'affiche. Sélectionnez INPUT-MSG dans la zone Structures de données. Cliquez sur Suivant.
    4. Laissez l'option Sauvegarder la session en tant que script Ant désactivée.
  15. Dans la page Sauvegarde des propriétés, le nom de classe par défaut est INPUTMSG. Remplacez le nom de classe par InputMsg. Cliquez sur Terminer.
  16. Pour créer le type de données du message de sortie, cliquez sur Parcourir.
  17. Tapez CC dans la zone Sélectionner un type de données ; CCIBuffer apparaît alors dans la zone Types correspondants. Sélectionnez CCIBuffer comme type de sortie. Cliquez sur Terminer.
  18. Dans la page Méthode Java, cliquez sur Terminer.
  19. Dans la page Méthodes Java, vérifiez que interactionVerb est défini à SYNC_SEND_RECEIVE (1) pour indiquer que l'interaction avec IMS implique un envoi suivi d'une interaction de réception.
  20. Cliquez sur Terminer.
  21. Pour créer les mappages de données de segment de sortie, sélectionnez Fichier > Nouveau > Autre > Liaison de données CICS/IMS Java afin de lancer l'assistant de liaison de données.
  22. Cliquez sur Suivant.
  23. Sélectionnez COBOL vers Java dans la liste Sélectionner un mappage. Cliquez sur Parcourir pour rechercher le cahier COBOL MSOut.cbl.
  24. Cliquez sur Next.
  25. Dans la page Importateur COBOL, cliquez sur Afficher les options avancées.
    1. Sélectionnez les options suivantes :
      Tableau 2. Options de configuration des paramètres de l'importateur COBOL
      Paramètre Valeur
      Platform Name Z/OS
      Codepage IBM-037
      Floating point format name Hexadécimal IBM
      External decimal sign EBCDIC
      Endian name Big
      Remote integer endian name Big
      Quote name DOUBLE
      Trunc name STD
      Nsymbol name DBCS
    2. Cliquez sur Interroger pour charger les données.
    3. Une liste des structures de données s'affiche. Sélectionnez OUTPUT-SEG1 dans la zone Structures de données.
    4. Cliquez sur Suivant.
  26. Dans l'assistant de sauvegarde des propriétés, cliquez sur Parcourir puis sélectionnez le projet MultiSegOutput que vous avez créé auparavant.
  27. Cliquez sur Parcourir pour sélectionner le nom du package : sample.ims.data.
  28. Changez le nom de classe de OUTPUTSEG1 en OutputSeg1.
  29. Cliquez sur Terminer.
  30. Vous créez maintenant la classe OutputSeg2.java : Sélectionnez Fichier > Nouveau > Autre > Liaison de données CICS/IMS Java pour appeler l'assistant de liaison de données.
  31. Cliquez sur Suivant.
  32. Sélectionnez COBOL vers Java dans la liste Sélectionner un mappage. Cliquez sur Parcourir pour rechercher le cahier COBOL MSOut.cbl.
  33. Dans la page Importateur COBOL, cliquez sur Afficher les options avancées.
    1. Sélectionnez les options suivantes :
      Tableau 3. Options de configuration des paramètres de l'importateur COBOL
      Paramètre Valeur
      Platform Name Z/OS
      Codepage IBM-037
      Floating point format name Hexadécimal IBM
      External decimal sign EBCDIC
      Endian name Big
      Remote integer endian name Big
      Quote name DOUBLE
      Trunc name STD
      Nsymbol name DBCS
    2. Cliquez sur Interroger pour charger les données.
    3. Une liste des structures de données s'affiche. Sélectionnez OUTPUT-SEG2 dans la zone Structures de données.
    4. Cliquez sur Suivant.
  34. Dans l'assistant de sauvegarde des propriétés, cliquez sur Parcourir pour sélectionner le projet MultiSegOutput que vous avez créé auparavant.
  35. Cliquez sur Parcourir pour sélectionner le nom du package : sample.ims.data.
  36. Changez le nom de classe de OUTPUTSEG2 en OutputSeg2.
  37. Cliquez sur Terminer.
  38. Créez maintenant la classe OutputSeg3.java : Sélectionnez Fichier > Nouveau > Autre > Liaison de données CICS/IMS Java pour appeler l'assistant de liaison de données.
  39. Cliquez sur Suivant.
  40. Sélectionnez COBOL vers Java dans la liste Sélectionner un mappage. Cliquez sur Parcourir pour rechercher le cahier COBOL MSOut.cbl.
  41. Dans la page Importateur COBOL, cliquez sur Afficher les options avancées.
    1. Sélectionnez les options suivantes :
      Tableau 4. Options de configuration des paramètres de l'importateur COBOL
      Paramètre Valeur
      Platform Name Z/OS
      Codepage 037
      Floating point format name IBM 390 Hexadecimal
      External decimal sign EBCDIC
      Endian name Big
      Remote integer endian name Big
      Quote name DOUBLE
      Trunc name STD
      Nsymbol name DBCS
    2. Cliquez sur Interroger pour charger les données.
    3. Une liste des structures de données s'affiche. Sélectionnez OUTPUT-SEG3 dans la zone Structures de données.
    4. Cliquez sur Suivant.
  42. Dans l'assistant de sauvegarde des propriétés, cliquez sur Parcourir pour sélectionner le projet MultiSegOutput que vous avez créé auparavant.
  43. Cliquez sur Parcourir pour sélectionner le nom du package : sample.ims.data.
  44. Changez le nom de classe de OUTPUTSEG3 en OutputSeg3.
  45. Cliquez sur Terminer.
< Précédent | Suivant >

Commentaires