Enterprise Server のクラスター化 - デモンストレーション

Enterprise Server のクラスター化機能によって複数のリージョンで JCL 作業を共有する方法を示します。
このデモンストレーションでは、データセットの整合性を維持しながら共有データセット (catalog および spool) にアクセスする JCL ジョブをクラスターで正常に実行する方法を示します。
  1. Enterprise Developer を起動します。
  2. Web ブラウザーで URL http://localhost:86 を指定します。 メインの Enterprise Server Administration ホーム画面が表示されます。
  3. 左側のパネルで [Import] をクリックします。 [Import server information] 画面が表示されます。
  4. デモンストレーション用のクラスター化リポジトリの場所 (%PUBLIC%\Documents\Micro Focus\Enterprise Developer\Samples\Mainframe\CICS\Classic\CLUSTER\repos) を入力し、[Next] を 3 回クリックして [OK] をクリックします。 画面がメインの Enterprise Server ホーム画面に戻り、リージョンのリストに新たにインポートされたリージョン、ESCLMGRESCLCLI1、および ESCLCLI2 が表示されます。
  5. ESCLMGR サーバーの行で [Edit] をクリックします。[Configuration Information] ボックスで、ES_CLUSTER_SYSTEM_DIR 環境変数が適切であることを確認 (必要に応じて更新) します。 通常またはデフォルトのインストールでは、%PUBLIC%\Documents\Micro Focus\Enterprise Developer\Samples\Mainframe\CICS\Classic\CLUSTER\system に設定されます。
  6. ESCLCLI1 および ESCLCLI2 サーバーでも上記の手順を繰り返します。
  7. [File > Import > General > Existing Projects into Workspace] をクリックして cluster プロジェクトを Eclipse にインポートします。[Next] をクリックします。
  8. デモンストレーション用のプロジェクト、%PUBLIC%\Documents\Micro Focus\Enterprise Developer\Samples\Mainframe\CICS\Classic\CLUSTER に移動し、[OK] をクリックします。
  9. デモンストレーション用のプロジェクトが選択されており、[Copy projects into workspace] がオフであることを確認し、[Finish] をクリックします。 [Navigator] ウィンドウにデモンストレーション用のプロジェクトが開きます。ここでプロジェクトの名前、CLUSTER を右クリックして [Build Project] を選択できます。プロジェクトがエラーなしでビルドされます。
  10. プロジェクトの内容を確認します。
    主なコンポーネントは次のとおりです。
    LCKSLEEP.JCL
    これはデータセット SYSI.CLUSTER.MYFILE でロックを取得し、LCKSLEEP.CBL を呼び出して 25 秒間スリープします。
    NOWAIT.JCL
    これはデータセット SYSI.CLUSTER.ANOTHER でロックを取得し、LCKSLEEP.CBL を呼び出して 5 秒間スリープします。
    WAIT4LCK.JCL
    これはデータセット SYSI.CLUSTER.MYFILE (LCKSLEEP.JCL と同じデータセット) でロックを取得し、WAIT4LCK.CBL を呼び出して 25 秒間スリープします。
    LCKSLEEP.CBL
    このプログラムはファイルを開き、そのファイルに書き込みを行い、スリープしてファイルを閉じます。
    WAIT4LCK.CBL
    このプログラムはファイルを開き、そのファイルに書き込みを行って閉じます。
    getosinf.cbl
    これはオペレーティング システムを決定します。これにより、LCKSLEEP.CBL が正しい sleep API を呼び出すことができます。
    mfchkfs.cbl
    これは、ファイル操作の誤りを判定します。
  11. [スタート > すべてのプログラム > Micro Focus Enterprise Developer > Tools > Enterprise Developer Command Prompt (32 ビット)] を選択します。 Enterprise Developer のコマンド プロンプトが表示されます。
  12. 次のコマンドを入力して、ESCLMGR リージョンを起動します。
    casstart /rESCLMGR
    ESCLMGR リージョンが起動したら、casstart /rESCLCLI1 および casstart /rESCLCLI2 を入力して残り 2 つのリージョンを起動します。
  13. サーバー エクスプローラーで [ESCLMGR] を右クリックし、[Associate with project] を選択して、[CLUSTER] が選択されていることを確認します。
  14. サーバー エクスプローラーで [Local [localhost:86]] を右クリックし、[Refresh] を選択します。これによりサーバーのリストが最新のステータスに更新されます。
  15. 3 つのリージョンが起動したら、付属の JCL ジョブをサブミットする必要があります。 [COBOL Explorer] タブで、jcl フォルダーを展開し、LCKSLEEP.JCL を右クリックして [Submit to Enterprise Server] を選択します。この手順を WAIT4LCK.JCL および NOWAIT.JCL でも繰り返します。 次の一連のイベントが発生します。
    • ジョブ LCKSLEEP が実行を開始し、25 秒間スリープします。
    • ジョブ NOWAIT が実行を開始し、5 秒間スリープして正常に完了します。
    • ジョブ WAIT4LCK が起動しますが、LCKSLEEP.JCL がデータセットをリリースするまで待機します。
    • ジョブ LCKSLEEP が実行を正常に完了します。
    • ジョブ WAIT4LCK が実行を継続し、正常に完了します。

    ESCLCLI1 および ESCLCLI2 のコンソール ログに表示されるメッセージによってこの動作を確認できます。

    ESCLCLI1 コンソール ログのサンプル抜粋
    130212 10410153   4944 ESCLCLI1 CASSI5012I Successfully negotiated with ES Cluster manager ESCLMGR 10:41:01
    130212 10410173   6840 ESCLCLI1 CASBJ0005I Batch initiator started for job classes "A" 10:41:01
    130212 10410174   4944 ESCLCLI1 CASSI9025I RNLDEFs received and installed from ES Cluster Manager ESCLMGR. 10:41:01
    130212 10410214   6708 ESCLCLI1 CASSI1600I SEP initialization completed successfully 10:41:02
    130212 10410235   6860 ESCLCLI1 CASSI1600I SEP initialization completed successfully 10:41:02
    130212 10410235   6708 ESCLCLI1 CASSI5021I PLTPI Phase 2 - No PLT Specified 10:41:02
    130212 10580934   6840 ESCLCLI1 JCLCM0188I JOB01001 LCKSLEEP JOB  STARTED 10:58:08
    130212 10580955   6840 ESCLCLI1 Sleeping time will be 0000000025 seconds 10:58:09
    130212 10583555   6840 ESCLCLI1 JCLCM0182I JOB01001 LCKSLEEP JOB  ENDED   - COND CODE 0000 10:58:34
    ESCLCLI2 コンソール ログのサンプル抜粋
    130212 10412143   7184 ESCLCLI2 CASSI5012I Successfully negotiated with ES Cluster manager ESCLMGR 10:41:21
    130212 10412163   7260 ESCLCLI2 CASBJ0005I Batch initiator started for job classes "B" 10:41:21
    130212 10412164   7184 ESCLCLI2 CASSI9025I RNLDEFs received and installed from ES Cluster Manager ESCLMGR. 
    130212 10412204   7172 ESCLCLI2 CASSI1600I SEP initialization completed successfully 10:41:21
    130212 10412205   7272 ESCLCLI2 CASSI1600I SEP initialization completed successfully 10:41:22
    130212 10412225   7172 ESCLCLI2 CASSI5021I PLTPI Phase 2 - No PLT Specified 10:41:22
    130212 10581625   7260 ESCLCLI2 JCLCM0188I JOB01002 NOWAIT   JOB  STARTED 10:58:15
    130212 10581646   7260 ESCLCLI2 Sleeping time will be 0000000005 seconds 10:58:16
    130212 10582246   7260 ESCLCLI2 JCLCM0182I JOB01002 NOWAIT   JOB  ENDED   - COND CODE 0000 10:58:21
    130212 10582326   7260 ESCLCLI2 JCLCM0188I JOB01003 WAIT4LCK JOB  STARTED 10:58:23
    130212 10582346   7260 ESCLCLI2 MVSXR0092I JOB01003 WAIT4LCK Waiting for exclusive use of dataset
                      "SYSI.CLUSTER.MYFILE". 10:58:23
    130212 10583546   7260 ESCLCLI2 MVSXR0093I JOB01003 WAIT4LCK Required datasets have been acquired. 
                      Execution resumed. 10:58:34
    130212 10583566   7260 ESCLCLI2 JCLCM0182I JOB01003 WAIT4LCK JOB  ENDED   - COND CODE 0000 10:58:35
  16. サーバーを停止するには、casstop /rESCLMGRcasstop /rESCLCLI1、および casstop /rESCLCLI2 コマンドを Enterprise Server のコマンド プロンプトで実行します。
この演習では、データセットを共有せずに、Enterprise Server によって複数の JCL ジョブを並行して実行する方法のデモンストレーションを行いました。共有データセットを使用する 2 つの JCL ジョブは同時には動作しません。これらのジョブはデータセットの整合性を維持するために個別に動作します。