Enterprise Server のクラスター化機能によって複数のリージョンで JCL 作業を共有する方法を示します。
このデモンストレーションでは、データセットの整合性を維持しながら共有データセット (catalog および spool) にアクセスする JCL ジョブをクラスターで正常に実行する方法を示します。
- Enterprise Developer を起動します。
- Web ブラウザーで URL http://localhost:86 を指定します。 メインの Enterprise Server Administration ホーム画面が表示されます。
- 左側のパネルで [Import] をクリックします。 [Import server information] 画面が表示されます。
- デモンストレーション用のクラスター化リポジトリの場所 (%PUBLIC%\Documents\Micro Focus\Enterprise Developer\Samples\Mainframe\CICS\Classic\CLUSTER\repos) を入力し、[Next] を 3 回クリックして [OK] をクリックします。 画面がメインの Enterprise Server ホーム画面に戻り、リージョンのリストに新たにインポートされたリージョン、ESCLMGR、ESCLCLI1、および ESCLCLI2 が表示されます。
- ESCLMGR サーバーの行で [Edit] をクリックします。[Configuration Information] ボックスで、ES_CLUSTER_SYSTEM_DIR 環境変数が適切であることを確認 (必要に応じて更新) します。 通常またはデフォルトのインストールでは、%PUBLIC%\Documents\Micro Focus\Enterprise Developer\Samples\Mainframe\CICS\Classic\CLUSTER\system に設定されます。
- ESCLCLI1 および ESCLCLI2 サーバーでも上記の手順を繰り返します。
- Visual Studio で cluster ソリューションを開きます。このソリューションは %PUBLIC%\Documents\Micro Focus\Enterprise Developer\Samples\Mainframe\CICS\Classic\CLUSTER にあります。
- ソリューションの内容を確認します。 主なコンポーネントは次のとおりです。
- 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
- これは、ファイル操作の誤りを判定します。
- ソリューション エクスプローラーでソリューション (CLUSTER) の名前を右クリックし、[ソリューションのビルド] をクリックします。 ソリューションがエラーなしでビルドされます。
- [スタート > すべてのプログラム > Micro Focus Enterprise Developer > Tools > Enterprise Developer Command Prompt (32 ビット)] を選択します。 Enterprise Developer のコマンド プロンプトが表示されます。
- 次のコマンドを入力して、ESCLMGR リージョンを起動します。
casstart /rESCLMGR
ESCLMGR リージョンが起動したら、casstart /rESCLCLI1 および casstart /rESCLCLI2 を入力して残り 2 つのリージョンを起動します。
- サーバー エクスプローラーで [ESCLMGR] を右クリックし、[Associate with project] を選択して、[cluster] が選択されていることを確認します。
- サーバー エクスプローラーで [Micro Focus Servers] を右クリックし、[Refresh] を選択します。これによりサーバーのリストが最新のステータスに更新されます。
- 3 つのリージョンが起動したら、付属の JCL ジョブをサブミットする必要があります。ソリューション エクスプローラーで、jcl フォルダーを展開し、LCKSLEEP.JCL を右クリックして [Submit JCL] を選択します。 この手順を 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
- サーバーを停止するには、casstop /rESCLMGR、casstop /rESCLCLI1、および casstop /rESCLCLI2 コマンドを Enterprise Server のコマンド プロンプトで実行します。
この演習では、データセットを共有せずに、Enterprise Server によって複数の JCL ジョブを並行して実行する方法のデモンストレーションを行いました。共有データセットを使用する 2 つの JCL ジョブは同時には動作しません。これらのジョブはデータセットの整合性を維持するために個別に動作します。