< 前へ | 次へ >

演習 3: メッセージ・バッファー・クラスの作成

演習 3 ではメッセージ・バッファー・クラスの作成を学びます。
始める前に、演習 2: Web プロジェクトおよび Java インターフェースと実装のセットアップを完了しておく必要があります。
この演習では、以下を行います。
  1. メッセージ・バッファー・クラスを作成するには、「MultiSegOutput」プロジェクトを展開し、「Java リソース」を展開し、さらに「JavaSource」を展開します。
  2. 「sample.ims」パッケージを右クリックして、「新規」>「クラス」を選択して「新規クラス」ウィザードを立ち上げます。
  3. クラスの名前として CCIBuffer と入力する。 すべてのデフォルトの設定を受け入れます。
  4. 「終了」をクリックします。CCIBuffer クラスが Java エディターで開きます。
  5. CCIBuffer クラスのコメント・セクションで、タグ @type-descriptor.message-buffer を入力します。
  6. CTRL-S を押して変更を保存します。 新規コードは自動的に 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. IMS™ トランザクションを実行するメソッド、および入力メッセージのデータ・タイプを作成するには、「エンタープライズ・エクスプローラー」ビューで「MSOImpl.java」を右クリックし、「ソース」>「J2C Java Bean へのメソッドの追加」を選択します。
  8. 「新規 Java メソッド」ページで、「追加」をクリックします。
  9. 「名前」フィールドに runMultiSegOutput と入力します。
  10. 「入力タイプ」フィールドの横の「新規」をクリックします。
  11. 「COBOL から Java」マッピングを選択します。「参照」をクリックします。
  12. MSOut.cbl COBOL ファイルを見つけます。 「開く」をクリックします。
    MSout.cbl
          IDENTIFICATION DIVISION.
          program-id. pgm1.
          ENVIRONMENT DIVISION.                                             
          CONFIGURATION SECTION.                                            
          DATA DIVISION. 
          *
          *    IMS TOC Connector for Java、複数セグメント出力の例
          *
          *********************************************************************/ 
          *                                                                   */ 
          * (c) Copyright IBM Corp. 1998                                      */ 
          * All Rights Reserved                                               */ 
          * Licensed Materials - Property of IBM                              */ 
          *                                                                   */ 
          * 保証の不適用。                                                    */ 
          *                                                                   */ 
          * 以下の「同封された」コードは、専らお客様のアプリケーション開発    */
          * の補助を目的としてのみ提供されるものです。                        */ 
          * このコードは、現存するままの状態で提供されます。*/
          * IBM は、このコードの機能または                                    */
          * 性能に関して、明示的にも黙示的にも、法律上の瑕疵担保責任、        */
          * 商品性の保証および特定目的適合性の保証についての暗黙の保証を含め  */
          * (ただし、これらに限定されない) いかなる保証も提供しません。                        */ 
          * IBM は、このサンプル・コードの使用から生ずるいかなる損害          */
          * に対しても、その予見の有無を問わず、                              */
          * 責任を負いません。                                                */ 
          *                                                                   */ 
          * 配布。                                                            */ 
          *                                                                   */ 
          * 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. 「次へ」をクリックします。
  14. 「COBOL インポーター」ページで、「拡張を表示」をクリックします。
    1. 以下のオプションを選択します。
      表 1. COBOL インポーターのパラメーター設定
      パラメーター
      プラットフォーム名 Z/OS
      コード・ページ IBM-037
      浮動小数点フォーマット名 IBM® Hexadecimal
      外部 10 進符号 EBCDIC
      エンディアン名 Big
      リモート整数エンディアン名 Big
      Quote 名 DOUBLE
      Trunc 名 STD
      Nsymbol 名 DBCS
    2. 「照会」をクリックして、データをロードします。
    3. データ構造のリストが表示されます。「データ構造」フィールドで「INPUT-MSG」を選択します。「次へ」をクリックします。
    4. 「Ant スクリプトとしてセッションを保存」はクリアしたままにします。
  15. 「保存するプロパティー」ページで、デフォルトのクラス名は「INPUTMSG」です。「クラス名」を「InputMsg」で上書きします。「終了」をクリックします。
  16. 出力メッセージ・データ・タイプを作成するには、「参照」をクリックします。
  17. 「データ・タイプの選択」フィールドに CC と入力すると、「一致する型」フィールドに「CCIBuffer」が表示されます。 出力タイプとして「CCIBuffer」を選択します。 「終了」をクリックします。
  18. 「Java メソッド」ページで、「終了」をクリックします。
  19. 「Java メソッド」ページで、「interactionVerb」が、IMS との対話に、対話の送信とそれに続く対話の受信が含まれていることを示す、「SYNC_SEND_RECEIVE (1)」に設定されていることを確認します。
  20. 「終了」をクリックします。
  21. 出力セグメント・データ・マッピングを作成するには、「ファイル」>「新規」>「その他」>「CICS/IMS Java データ・バインディング」を選択して「データ・バインディング」ウィザードを起動します。
  22. 「次へ」をクリックします。
  23. 「マッピングの選択」リストで「COBOL から Java」を選択します。 「参照」をクリックして、MSOut.cbl COBOL コピーブックを見つけます。
  24. 「次へ」をクリックします。
  25. 「COBOL インポーター」ページで、「拡張を表示」をクリックします。
    1. 以下のオプションを選択します。
      表 2. COBOL インポーターのパラメーター設定
      パラメーター
      プラットフォーム名 Z/OS
      コード・ページ IBM-037
      浮動小数点フォーマット名 IBM Hexadecimal
      外部 10 進符号 EBCDIC
      エンディアン名 Big
      リモート整数エンディアン名 Big
      Quote 名 DOUBLE
      Trunc 名 STD
      Nsymbol 名 DBCS
    2. 「照会」をクリックして、データをロードします。
    3. データ構造のリストが表示されます。「データ構造」フィールドで「OUTPUT-SEG1」を選択します。
    4. 「次へ」をクリックします。
  26. 「保存するプロパティー」ウィザードで「参照」をクリックし、以前に作成した「MultiSegOutput」プロジェクトを選択します。
  27. 「参照」をクリックして、パッケージ名「sample.ims.data」を選択します。
  28. クラス名を「OUTPUTSEG1」から「OutputSeg1」に変更します。
  29. 「終了」をクリックします。
  30. 次に、OutputSeg2.java クラスを作成します。「ファイル」 >「新規」>「その他」>「CICS/IMS Java データ・バインディング」を選択して「データ・バインディング」ウィザードを起動します。
  31. 「次へ」をクリックします。
  32. 「マッピングの選択」リストで「COBOL から Java」を選択します。 「参照」をクリックして、MSOut.cbl COBOL コピーブックを見つけます。
  33. 「COBOL インポーター」ページで、「拡張を表示」をクリックします。
    1. 以下のオプションを選択します。
      表 3. COBOL インポーターのパラメーター設定
      パラメーター
      プラットフォーム名 Z/OS
      コード・ページ IBM-037
      浮動小数点フォーマット名 IBM Hexadecimal
      外部 10 進符号 EBCDIC
      エンディアン名 Big
      リモート整数エンディアン名 Big
      Quote 名 DOUBLE
      Trunc 名 STD
      Nsymbol 名 DBCS
    2. 「照会」をクリックして、データをロードします。
    3. データ構造のリストが表示されます。「データ構造」フィールドで「OUTPUT-SEG2」を選択します。
    4. 「次へ」をクリックします。
  34. 「保存するプロパティー」ウィザードで「参照」をクリックし、以前に作成した「MultiSegOutput」プロジェクトを選択します。
  35. 「参照」をクリックして、パッケージ名「sample.ims.data」を選択します。
  36. クラス名を「OUTPUTSEG2」から「OutputSeg2」に変更します。
  37. 「終了」をクリックします。
  38. 最後に OutputSeg3.java クラスを作成します。「ファイル」>「新規」>「その他」>「CICS/IMS Java データ・バインディング」を選択して「データ・バインディング」ウィザードを起動します。
  39. 「次へ」をクリックします。
  40. 「マッピングの選択」リストで「COBOL から Java」を選択します。 「参照」をクリックして、MSOut.cbl COBOL コピーブックを見つけます。
  41. 「COBOL インポーター」ページで、「拡張を表示」をクリックします。
    1. 以下のオプションを選択します。
      表 4. COBOL インポーターのパラメーター設定
      パラメーター
      プラットフォーム名 Z/OS
      コード・ページ 037
      浮動小数点フォーマット名 IBM 390 Hexadecimal
      外部 10 進符号 EBCDIC
      エンディアン名 Big
      リモート整数エンディアン名 Big
      Quote 名 DOUBLE
      Trunc 名 STD
      Nsymbol 名 DBCS
    2. 「照会」をクリックして、データをロードします。
    3. データ構造のリストが表示されます。「データ構造」フィールドで「OUTPUT-SEG3」を選択します。
    4. 「次へ」をクリックします。
  42. 「保存するプロパティー」ウィザードで「参照」をクリックし、以前に作成した「MultiSegOutput」プロジェクトを選択します。
  43. 「参照」をクリックして、パッケージ名「sample.ims.data」を選択します。
  44. クラス名を「OUTPUTSEG3」から「OutputSeg3」に変更します。
  45. 「終了」をクリックします。
< 前へ | 次へ >

フィードバック