3. Red Hat チュートリアル

この章では、Red Hatを利用してWebOTX内に配備したJ2EEアプリケーションから Micro Focus Enterprise Server上のCOBOLサービスを呼び出す手順について、 例題を使用しながら体験します。

3.1 前提条件

このチュートリアルを実行するためには、以下の環境を必要とします:

ハードウェア
ソフトウェア

このチュートリアルでは、各ソフトウェアはデフォルトでインストールされたままの状態になっていることを仮定しています。 Server Express はデフォルトのインストール先に Enterprise Serverも含めてインストールされており、 出荷時設定のサーバー ESDEMO がそのままの状態で利用可能になっているものとします。 WebOTX もデフォルトでインストールされており、管理者ユーザ admin/adminadmin で、出荷時設定のドメイン domain1 が利用可能になっているものとします。

このチュートリアルでは、WebOTX AddPack に含まれている以下の簡単な COBOL例題プログラム CALCU.cbl を使用します。第一、第二の引数を加算し、結果を RESULT に返すというだけのプログラムです:

       LINKAGE SECTION.
       01 CALCULATOR.
          05 ARG1        pic 9(5) comp-3.
          05 ARG2        pic 9(5) comp-3.
          05 RESULT      pic 9(5) comp-3.
       procedure division using CALCULATOR.
           move ARG1 to RESULT
           add  ARG2 to RESULT
           exit program.
	 

3.2 リソースアダプタの配備

このチュートリアルでは、リソースアダプタとして WebOTX AddPackに含まれている\root\RedHat\rar\mfcobol-notx-nec.rar ファイルを使用します。 ここでは、このアダプタを WebOTX に配備します。

  1. mfcobol-notx-nec.rar を、Red Hat機の作業用ディレクトリにコピーします。
  2. WebOTXの配備ツールでメニュー「ファイル」−「開く」より mfcobol-notx-nec.rar を開きます。
  3. 配備するサーバードメインと接続後、メニュー「ツール」−「配備」でmfcobol-notx-nec.rar を配備します。
  4. WebOTX運用管理コンソールのツリーで「WebOTX管理ドメイン」-「domain1」「アプリケーション」- 「リソースアダプタ」を辿ると「mfcobol-notx-nec」というノードがあることを確認します。
  5. WebOTX運用管理コンソールのツリーで「WebOTX管理ドメイン」-「domain1」-「リソース」の 「コネクタ コネクション プール」を選択して、「操作情報」−「コネクションプールの登録」から コネクションプール名称として "CCIMFCobol_v1.0" を各入力項目(idletimeout等)と共に登録します。
  6. WebOTX運用管理コンソールのツリーで「WebOTX管理ドメイン」-「domain1」-「リソース」の 「コネクタ リソース」を選択して、「操作情報」−「コネクターリソースの登録」からJNDI名 "eis/MFCobol_v1.0" を登録します。

以上で、リソースアダプタの配備は完了しました。

リソースアダプタの配備は、WebOTX 運用管理コマンド (otxadmin) を使って コマンドラインで行うこともできます。以下にその場合のコマンド実行例を示します:


     otxadmin deploy 
                     --user admin --password adminadmin
                     --host localhost --port 6212
                     /home/user1/WebOTXAddPack/RedHat/rar/mfcobol-notx-nec.rar

     otxadmin create-connector-connection-pool 
                     --user admin --password adminadmin
                     --host localhost --port 6212
                     --steadypoolsize 10
                     --maxpoolsize 20
                     --maxwait 300000
                     --idletimeout 5000
                     --raname mfcobol-notx-nec
                     --connectiondefinition javax.resource.cci.ConnectionFactory
                     CCIMFCobol_v1.0

     otxadmin create-connector-resource 
                     --user admin --password adminadmin
                     --host localhost --port 6212
                     --poolname CCIMFCobol_v1.0
                     eis/MFCobol_v1.0

	 

3.3 COBOL例題プログラムの配備

ここでは、チュートリアルで使用する COBOLプログラムを Enterprise Serverに配備し、 同時に EJBラッパーを自動生成します。

  1. 作業用ディレクトリを新規作成し、COBOL 例題プログラム Calcu.cbl をコピーします。
  2. Server Expressを使用する環境変数を設定します。
  3. Calcu.cbl をコンパイルします。
    $ cob -ug Calcu.cbl
    		
  4. cobimtkコマンド打鍵し、インターフェイスマッピングツールキットを起動します。
  5. [File] > [New Service Interface]を選択します。
  6. サービスインターフェイスグループの新規作成ダイアログが現れます。 ここで [Name] には何でも良いですがグループ名を命名し、[Location] に現在の作業用ディレクトリのパスを入力します。
  7. EJB Interface を選択して右クリック [New EJB Interface] を選択します。
  8. マッピングするプログラムを選択する画面が表示されます。 以下のように Enter the name of the COBOL program の [Browse] からCOBOLのプログラムソース Calcu.cbl を選択し、[Next] をクリックします。
  9. サービス名を入力する画面が表示されますので、ここでは CalcuServ と入力します。
  10. インターフェースフィールドの内フィールド名 arg11 と arg21 の方向を "Input" に、 result1 を "Output" に設定します。
  11. マップ画面を保存して閉じるとサービスインターフェース画面が表示されます。 [EJB Interface] > [CalcuServ] を右クリックし、ポップアップメニューの [Settings...] を選択します。
  12. 以下のマッピング属性画面が表示されます。 [Deployment Server] の [Service name] タブグに CalcuServが入っていることを確認してください。 入っていない場合は修正してください。
  13. [Application Files] タブでは、コンパイル済みの Calcu.gnt、Calcu.idy、Calcu.cbl を追加します。
  14. [EJB Generation] タブでは /opt/WebOTX/lib/j2ee.jar を参照から選択します。 (WebOTXがディフォルトでインストールしている場合) [Application Server] はここでは [Weblogic 8.1] を選択します。 それ以外はディフォルト値のままにします。
  15. 別途 Telnetセッションを開き、casstart コマンドで、 デフォルトの ESDEMO サーバーを開始しておきます。
    $ casstart
    CASCD0167I ES Daemon successfully auto-started 10:23:38
    CASCD0050I ES "ESDEMO" initiation is starting 10:23:38
    $
    

    (この Telnetセッションは後で使用しますので、そのまま開いた状態にしておいてください。)
  16. [EJB Interface] > [CalcuServ] を選択して右クリックして [Deploy] を選択します。 これでEnterprise Server 上にCOBOLサービスマッピングが配備されました。
  17. この時作業用ディレクトリの repos/CalcuServ.deploy に EJBラッパー CalcuServ.jar が自動生成されています。ソースファイルとともに生成されていますので確認してください。

3.4 EJBの配備

  1. WebOTXの配備ツールでメニュー [File] > [Open] より CalcuServ.jar を開きます。
  2. この際、モジュールを J2EE1.4 のフォーマットに変換する旨のメッセージ画面が出ますので [Yes] を選択します。
  3. 続いてWebOTX上で「WebOTX」固有の設定でEJBのJNDI名を "CalcuServ" 、 リソースのJNDI名を "eis/MFCobol_v1.0" に設定します。
  4. 以上の設定が完了したら配備するサーバードメインと接続後、メニューの [Tool] > [Deploy] で配備します。配備先に CalcuServClient.jar が生成されているのが分かります。
    $ pwd
    /opt/WebOTX/domains/domain1/applications/j2ee-modules/CalcuServ
    $ ls
    CalcuServClient.jar   META-INF  com
    $
    		

3.5 クライアントの実行

WebOTX AddPack には以下の J2EEクライアントアプリケーション CalcuClient.java が添付されています。

import javax.naming.*;
import com.mypackage.CalcuServ.*;
public class CalcuClient {
  public static void main(String[] args) {
    try {
      InitialContext initCtx = new InitialContext();
      Object objRef = initCtx.lookup("CalcuServ");
      CalcuServHome home = (CalcuServHome) javax.rmi.PortableRemoteObject.narrow(
			objRef, CalcuServHome.class);		    
      CalcuServ bean = home.create();
      int p0 = 11, p1 = 21, p2 = 0;
      p2 = bean.CALCU(p0, p1);
      System.out.println("11 + 21 = " + p2);
    } catch (javax.naming.NamingException ne) {
      System.out.println("Nmaing Exception caught: " + ne);
    } catch (javax.ejb.CreateException ce) {
      System.out.println("Create Exception caught: " + ce);
    } catch (java.rmi.RemoteException re) {
      System.out.println("Remote Exception caught: " + re);
    }
  }
}
	 

これを使用して、配備された EJB を呼び出してみます。

  1. Java 2 SDK 1.4.2 を使用するための PATH を設定します。
  2. CalcuClient.java を作業用ディレクトリにコピーします。
  3. CLASSPATH に以下の 3件を追加します。
    .  (カレントディレクトリ)
    /opt/WebOTX/lib/j2ee.jar
    repos/CalcuServ.deploy/CalcuServ.jar
    		
  4. CalcuClient.java をコンパイルします。
    $ javac CalcuClient.java
    		
  5. CLASSPATH に以下の 7件を追加します。
    /opt/ObjectSpinner/lib/jsocks.jar
    /opt/ObjectSpinner/lib/ospiname50.jar
    /opt/ObjectSpinner/lib/ospiorb50.jar
    /opt/WebOTX/lib/appclient/jndiclt.jar
    /opt/WebOTX/lib/wosv-rt.jar
    /opt/WebOTX/TS/javalib/wots61.jar
    /opt/WebOTX/lib/wojdbc61.jar
    		
  6. CalcuClient.class を実行します。
    $ java CalcuClient
    11 + 21 = 32
    		
  7. 以上のように COBOLサービスが実行されて結果が返っていることが確認できました。 次にこの COBOLサービスを Enterprise Server下でデバッグしてみます。
  8. casstartコマンドを実行したシェルセッションで cassi /a コマンドを実行し、 Enterprise Server のサービスをデバッグモードにします。
    $ cassi /a
    CASSI1500I SEP initialization started 10:18:51
    CASSI9009I Debug initialization for ALL  successful 10:18:52
    CASSI1600I SEP initialization completed successfully 10:18:52
    		
  9. 再度 CalcuClient.class を実行します。
    $ java CalcuClient
    		
  10. 以下のようにデバッグ画面にCOBOLサービスの手続き部が立ち上がりますので、図のように ステップ実行して正しく起動されていることを確認します。
  11. EXIT PROGRAM 文まで実行を進めると、Javaクライアント側に COBOLによる計算結果が返ることが確認できます。
    $ java CalcuClient
    11 + 21 = 32
    		

3.6 Webクライアントの実行

インターフェイスマッピングツールキットのクライアント生成機能を使用すると、 対話型でパラメタの値を受け取り、EJBのメソッドを呼び出して結果を表示するような、 簡単な Servletモジュールを含む、.ear パッケージを作成できます。 ここでは、これを使用して WebOTX上の Webクライアントからの呼び出しを行います。

  1. WebOTXの配備ツールで、配備済みの EJB CalcuServ を [Undeploy] ボタンで配備解除します。
    これは、これから配備する .ear パッケージに同じ EJB が重複して含まれているためです。
  2. 3.3 で COBOLサービスを配備したインターフェイスマッピングツールキットに戻り、 [EJB Interface] > [CalcuServ] を右クリックして "Generate Client" を選択します。
  3. この時作業用ディレクトリの repos/CalcuServ.deploy に パッケージ CalcuServ.ear が自動生成されています。ソースファイルとともに生成されていますので確認してください。
  4. WebOTXの配備ツールでメニュー [File] > [Open] より CalcuServ.ear を開きます。
  5. この際、モジュールを J2EE1.4 のフォーマットに変換する旨のメッセージ画面が出ますので [Yes] を選択します。
  6. 続いてWebOTX上で「WebOTX」固有の設定でEJBのJNDI名を "CalcuServ" 、 リソースのJNDI名を "eis/MFCobol_v1.0" に設定します。
  7. 以上の設定をして、配備ツールで一旦 ear を保存して上書きします。 この時に、nec-application.xml 等の WebOTX 仕様のXML及びプロパティファイルが ear にアドオンされます。
  8. 以上の設定が完了したら再び配備ツールで ear を開き、配備するサーバードメインと接続後、 メニューの [tool] > [deploy] で配備します。
  9. 以上で、EJB と Webアプリケーションが同時に配備されました。 Webブラウザを開き、"http://localhost/CalsuServ/CALCU.jsp" を開きます。
  10. add_arg1, add_arg2 に数値を入力し、[Go!] をクリックします。
  11. COBOLのデバッグモードが有効であれば、先ほどと同様にデバッガによるステップ実行となります。
  12. EXIT PROGRAM 文まで実行を進めると、JSP側に結果が返ります。

以上でチュートリアルを終了します。


Copyright © 2006 Micro Focus International Limited. All rights reserved.