アプリケーションの運用

OpenFrame AIMのアプリケーションを運用するためには、アプリケーションを実行させるためのアプリケーション層のモジュールが必要です。本章では、アプリケーションを実行するために必要なリソースとその設定方法について説明します。

1. アプリケーションの準備

アプリケーションを実行するためにアプリケーション・プログラムをコンパイルします。アプリケーション・プログラムは、COBOLまたはPL/Iで記述することが可能です。本書ではCOBOLを基準にして説明します。

1.1. COBOLプログラムのコンパイル

OpenFrame AIMは、NetCOBOLコンパイラーをサポートします。インストールされたNetCOBOLの情報を環境変数として登録します。

COBOLプログラムは、OpenFrameが提供するプリプロセッサーであるofcbppfを使用して、NET COBOLコンパイラーに合わせて前処理します。次に、NET COBOLコンパイラーを使用して前処理されたCOBOLプログラムをコンパイルします。AIMシステムでCOBOLを使用するには、openframe_batch.conf設定ファイルのtjclrunサブジェクトのSYSLIBセクションのBIN_PATHキーとLIB_PATHキーにCOBOL関連のパスが指定されている必要があります。

  1. ofcbppfツールの詳細については、OpenFrame COBOL『ユーザーガイド』を参照してください。

  2. openframe_batch.conf設定ファイルの詳細については、OpenFrame Batch『環境設定ガイド』を参照してください。

次は、ofcbppfを使用してメイン・プログラムを前処理する例です。

[user@host cobol]$ ofcbppf -v -l -i TESTAP00.COBOL

次は、NET COBOLコンパイラーを使用して前処理されたCOBOLプログラムをコンパイルする例です。

[user@host sub_cobol]$ cobol -dy -shared -o TESTAP00 ofcbppf_TESTAP00.cob -L $OPENFRAME_HOME/lib -laimap
-WC"STD1(JIS1),NOALPHAL,SRF(VAR),NSPCOMP(ASP),DLOAD,RSV(V125),CHECK,MODE(CCVS),TRACE,NCW(SYS)"

コンパイルが成功すると、共有オブジェクト・ファイルが作成されます。メイン・プログラムは、COBOLプログラム名で作成されますが、プログラムに定義されているプログラムIDやファイル名と異なる場合は正常に呼び出されないことがあるので注意が必要です。作成された共有オブジェクト・ファイルは、JCLに記述されているプログラム・ライブラリに登録します。サブプログラムは、システムの共有オブジェクト・ファイルの作成規則に基づいて作成されます。たとえば、UNIXでは、「libファイル名.so」という名前で作成されます。

1.2. コピーブック

ほとんどのCOBOLアプリケーションは、レコードの定義時にコピーブックを使用します。アプリケーション・プログラムの作成を容易にするために、よく使われるロジックをコピーブックで作成して使用することができます。

アプリケーションを正常にコンパイルするためには、コピーブックのパスを正しく設定する必要があります。環境変数の$COBCOPYでコピーブックを検索するため、パスを正しく設定し、そのパスにコピーブックを追加する必要があります。コピーブックの種類には、次のようなものがあります。

すべてのコピーブックの拡張子は、.cblである必要があります。

  • ユーザー・コピーブック

    アプリケーションの作成を容易にするために、ユーザーが直接作成するコピーブックです。

  • フォーマット定義コピーブック

    画面や帳票などの特定のフォーマットを使用するアプリケーションが参照するフォーマット関連のレコード情報が含まれているコピーブックです。OpenFrameが提供するjybfg000ツールでフォーマット定義ソースをコンパイルすると自動的に作成され、openframe_aim.conf設定ファイルのPSAMセクションに定義されているPSAMCPYに生成されます。フォーマット定義体の詳細については、フォーマット定義体を参照してください。

  • サブスキーマ・コピーブック

    アプリケーションはNDBのサブスキーマに定義されたレコードを介してNDBのデータを使用します。サブスキーマはADLで定義し、そのADLサブスキーマにレコード情報が定義されます。OpenFrameが提供するsubscツールを使用してサブスキーマに定義されたレコードを抽出し、指定したパスにコピーブックを作成することができます。パスは、openframe_ndb.conf設定ファイルのMETAセクションに定義します。また、METAセクションに定義されたディレクトリは、$COBCOPYに登録される必要があります。

    subscの詳しい使用方法については、OpenFrame NDB『ツールリファレンスガイド』を参照してください。

1.3. フォーマット定義体

オンライン業務や帳票出力業務などを処理するためには、画面や帳票のフォーマットを定義するフォーマット定義体が必要です。このフォーマット定義体は、各フィールドの属性とデータ変換に必要な情報を格納しています。また、画面や帳票を使用するアプリケーションを実行するには、そのフォーマットに共に、入出力データの形式が定義されたコピーブックが必要です。したがって、このフォーマット情報体とコピーブックファイルを作成するために、jybfg000ツールを使用してフォーマット定義ソースをコンパイルする必要があります。フォーマット定義体は、openaframe_aim.confのPSAMセクションのPSAMBINに生成されます。

  1. jybfg000の詳しい使用方法については、OpenFrame AIM『ツールリファレンスガイド』を参照してください。

  2. PSAMセクションの詳細については、OpenFrame AUM『環境設定ガイド』を参照してください。

次は、PSAMLOGO.TXTというファイルの作成例です。

PSAMLOGO FID     TYPE=DSP
TEST0000 RECORD  TYPE=IN
@I000001 DATA    NAME=AID01   USAGE=AID
@I000002 DATA    NAME=LOGON   USAGE=CTRL1 PIC=(X,30)
TEST0001 RECORD
@O000001 DATA    NAME=SYMD-O1 USAGE=CTRL1 PIC=(X,60)
         DEVICE  DVK=DP10
         FRAME
         PART    SIZE=(24,80)
         FIELD   POS=(17,38)  ATTR=OUL VALUE='COPYRIGHT 2000-2016 TMAX SOFT CO.,LTD.'
         FIELD   POS=(20,24)  ATTR=OUL VALUE='LOGON COMMAND   :'
         FIELD   POS=(20,44)  ATTR=(IUL CUR) DATAIN=@I000002
         FIELD   POS=(2,2)    ATTR=(OUL RED) VALUE=@O000001
         END

次は、上記のフォーマット定義ソース・ファイルのPSAMLOGO.TXTをコンパイルする例です。

[user@host PSAM]$ jybfg000 -l 93 PSAMLOGO.TXT

 *  copybook :
   [/home/user/cobcpy/mapcpy/TEST0000.cbl] create.
   [/home/user/cobcpy/mapcpy/TEST0001.cbl] create.

 *  binary image :
   [/home/user/openframe/psambin/PSAMLOGO.BIN] create.

1.4. ADL

ADLは、システムおよびアプリケーション全般の定義を行うために使用します。OpenFrame AIMはADLリソースに記述されている内容に基づいて環境を設定しアプリケーションを実行するので、ADLリソースのコンパイル・ツールであるjxdddmsを使用して指定の場所に登録してください。

ADLに関する情報と登録方法については、ADLリソースとOpenFrame AIM『リソースガイド』を参照してください。

2. アプリケーション・サーバーの登録

アプリケーション・サーバーをTmax設定ファイルに登録します。また、一度に実行されるサーバー・プロセスの最大数を考慮して設定してください。

  1. アプリケーション・サーバーのためのopenframe_aim.conf設定ファイルについては、OpenFrame AIM『環境設定ガイド』を参照してください。

  2. Tmaxf設定ファイルについては、Tmaxの環境設定ファイルを参照してください。

3. アプリケーション・サーバーの起動

OpenFrame AIMアプリケーション・サーバーを起動するには、AIMコマンドを使用します。アプリケーションが起動されると、オンライン業務の場合は、端末のメッセージを待つREADY状態になります。

次は、AIMコマンドを使用してアプリケーション・サーバーを起動する例です。

  1. AIMコマンドのSTART ACPコマンドを実行してアプリケーション・サーバーを起動します。

    $aimcmd -c 'START ACP,JOB=OIVPJOB'
    >
    aimcmd: command [START ACP,JOB=OIVPJOB] input
    aimcmd: command execution done
  2. 次の方法でアプリケーション・サーバーが正常に起動されたことを確認します。

    • tmadminでsiコマンドを使用してサーバーがREADY状態であることを確認します。

      $tmadmin
      --- Welcome to Tmax Admin (Type "quit" to leave) ---
      
      $$1 NODE1 (tmadm): si OIVPMQN
      ------------------------------------------------------------------------
        clh   svrname    (svri)   status     count   qcount   qpcount  emcount
      ------------------------------------------------------------------------
          0   OIVPMQN    (  22)      RDY         0        0         0        0
    • AIMコマンドのDISPLAY ACPコマンドを実行して、該当するMQNがメッセージの処理が可能な状態であることを確認します。

      $aimcmd -c 'DISPLAY ACP,Q=OIVPMQN'
      DID    JOB NAME    PED NAME    STATUS      MQN NAME    MQN APTYPE     MQN STATUS    APM MODE    INIT LEVEL       Q CNT      WS CNT     MSG CNT
      00     OIVPJOB     OIVPPED     STARTING    OIVPMQN     DRVN           OPENED        P                    0           0           0           0
      aimcmd: command execution done

AIMコマンドの詳細については、OpenFrame AIM『コマンドリファレンスガイド』を参照してください。

4. アプリケーション異常終了時の出力メッセージの登録

OpenFrame AIMシステムの運用中にアプリケーションが異常終了した場合は、基本的に「server down error(TPESVRDOWN)」メッセージが出力されますが、出力メッセージをユーザーが直接設定することもできます。アプリケーションが異常終了した場合に出力されるメッセージを登録するコードは「99999999」です。

以下は、aimabegenツールを使用してアプリケーションが異常終了した場合に出力されるメッセージを登録する例です。

$aimabegen s -c 99999999 -m "SYSTEM ABEND Message"

aimabegenツールの詳細については、OpenFrame AIM『ツールリファレンスガイド』を参照してください。