ロック処理

Enterprise Server クラスターのロックを参照し編集するには、いくつかの方法があります。

ジョブをサブミットすると、そのジョブは入力キューに置かれます。指定したクラスの JCL を実行するイニシエーターがある場合、ジョブがロック済みのファイルのロックを要求しない限り、ジョブはアクティブ キューに移動されその場所で実行します。この場合、JCL は [Waiting] モードになります。

GLM およびクラスター クライアントのロックを参照/表示できます。Enterprise Server クラスターがアクティブの場合、グローバル ロック マネージャー (GLM) に保持されるすべてのグローバル ロックを参照し、所定の JCL、イニシエーター、またはクライアントのロックを特定することもできます。クラスター クライアントで、すべてのグローバル ロックおよびそのクライアント独自のローカル ロックを参照できます。これは、ESMAC または caslock コマンドを使用して行うことができます。

ESMAC でのアクティブなロックの参照

GLM および Enterprise Server クラスター クライアントには、いずれもアクティブなロックを参照できるツールがあります。GLM では、クラスター全体のグローバル ロックをすべて参照できます。クラスター クライアントでは、そのクライアント独自のグローバル ロックおよびすべてのローカル ロックのみを表示できます。

GLM でのロックの参照
GLM では、すべてのグローバル ロックおよびそれらの関連情報を表示できます。ロック (ENQ) は、ターゲット リソースの詳細とロック所有者のチェーンおよび所有者が要求したロックの特性によって定義されます。
リソースは、QNAME および RNAME によって定義されます。
QNAME
QNAME は ENQ または DEQ のターゲット リソースの種類を定義します。現在、Enterprise Server クラスターによってサポートされる QNAME は SYSZJOBD、SYSZJOBN、SYSZDSN のみです。
RNAME
RNAME は ENQ または DEQ のターゲット リソース名を定義します。
ロック所有者のチェーンには次のような情報が含まれます。
  • ロックの種類 - 排他的または共有。
  • ロック所有者のステータス - [Controlled]、[Waiting]、または [Pending]。

GLM でロックを表示するには、対応する ESMAC ページを表示します。[Resources] ペインで、[Active] を選択してから [Locks] を選択します (CASRDO33)。次のような画面が表示されます。



[PID]
GLM の通信サーバーの PID (MFCS)。
[res-ID]
リソース ID を特定します。
[Type]
ロックの種類 (共有または排他的)。
[State]
ロックのステータス - [Controlled]、[Waiting]、または [Pending]。

上記のスクリーンショットは、Enterprise Server クラスター クライアント ESCLSLV1 のバッチ イニシエーター (PID 8716) で実行するジョブ JOB01364 (ジョブ名 MYLOCK) がいくつかのデータセットでロックを所有している状況を示しており、res-ID 1 によって特定されるデータセットが含まれます。[Resource Details] グループでは、res-ID 1 が SYSI.CLUSTER.MYFILE というリソース名を持つキュー SYSZDSN に属すものとして定義されます。

同時に、Enterprise Server クラスター クライアント ESCLSLV1 のバッチ イニシエーター (PID 12228) で実行するジョブ番号 JOB01365 (このジョブ名は不明) のステータスは待機中で、このジョブも同じリソース (res-ID 1、SYSI.CLUSTER.MYFILE) で排他的ロックを要求します。

注: [Resource Details] グループには、範囲は表示されません。これは、GLM でクラスター全体のすべてのロックが GLM ローカル ロックだからです。
Enterprise Server クラスター クライアントでのロックの参照
クラスター クライアントのロックを表示するには、対応する ESMAC ページを表示します。[Resources] ペインで、[Active] を選択してから [Locks] を選択します (CASRDO33)。次のような画面が表示されます。前述のスクリーンショットに似ていますが、ここではこのクライアントが所有するロックのみが表示されます。

caslock コマンドでのアクティブなロックの表示

caslock コマンドは自己文書化されています。Enterprise Server のコマンド プロンプトに caslock -h と入力すると、次の情報が表示されます。
Usage: caslock [/a /l /r /u /p /c]

   /a[client_applid]        Remove locks for specified APPLID of the client region
   /l                       List all active locks
   /r[region_name]         	The name of the region to send the request to
   /u[username]             The user's username
   /p[password]             The user's password
   /c[group]                The user's group
また、caslock -rESCLMGR -l は Enterprise Server クラスターのアクティブなグローバル ロックをすべて表示します。
Lock Ownership      
PID     res-ID    Type        State         Persistence         Seq
8720    t:001    JOB01485 JRX0033  ( MYLOCK   ) (ESCLSLV1/     10392)
           1     Exclusive   Controlled    Task                 1
           2     Exclusive   Controlled    Task                 1
           3     Exclusive   Controlled    Task                 1
           4     Exclusive   Controlled    Task                 1
           5     Exclusive   Controlled    Task                 1
           6     Exclusive   Controlled    Task                 1
           7     Exclusive   Controlled    Task                 1
10660    t:002    ES Subsystem
           8     Exclusive   Controlled    Server               1
Resource Details
      res-ID     Queue        Length    Resource Name
         1      SYSZDSN           19    SYSI.CLUSTER.MYFILE
         2      SYSZDSN           20    SYSI.CLUSTER.SPEC002
         3      SYSZDSN           20    SYSI.CLUSTER.SPEC001
         4      SYSZDSN           20    SYSI.CLUSTER.PATT001
         5      SYSZDSN           20    SYSI.CLUSTER.GENE002
         6      SYSZDSN           20    SYSI.CLUSTER.GENE001
         7      SYSZJOBN           8    JRX0033
         8      SYSZJOBD           8    JRX0034
注:
  • caslock コマンドは GLM に対してのみ実行できます。
  • 特定の APPLID を対象にすることはできません。クラスター全体のすべてのグローバル ロックが表示されます。

グローバル ロックの削除

ロック削除機能により、特定の状況でトラブルシューティングを実行できます。グローバル ロックの削除は、Enterprise Server クラスター クライアントと Enterprise Server クラスター マネージャー間に永続的な接続障害が発生した場合、およびクラスター内でアクティブなままの他のクラスター クライアントでジョブが実行できない原因となるロックが含まれている場合にのみ行う必要があります。

GLM といずれかの Enterprise Server クラスター クライアント間の接続が ES_GLM_TIMEOUT 環境変数に指定された期間を超えて喪失したままの場合、クラスター クライアント層は GLM への接続を無効としてマークします。クライアントの接続ステータスが無効としてマークされると、回復できません。以降、クラスターに接続しようとしてもすべて拒否され、次のメッセージが表示されます。
TXCS3032S Connection to ES Cluster manager GLM APPLID (GLM SYSID) is disabled, verify and release
 global locks on ES cluster manager 
または
TXCS3033S Attempt to connect to a disabled ES Cluster manager GLM APPLID (GLM SYSID) , verify and 
release global locks on ES cluster manager 

システム管理者は対策を講じる必要があり、その一環として他のアクティブなクラスター クライアントで実行する作業単位が正常に実行できない原因となっているグローバル ロックがこのリージョンに含まれているかを特定する必要があります。そのようなグローバル ロックが含まれる場合、システム管理者は GLM で ESMAC を使用するかまたは caslock コマンドを使用して、障害のある Enterprise Server クラスター クライアントに含まれるすべてのロックを削除する必要があります。

注意:
ロックを削除する際、ターゲットの Enterprise Server クラスター クライアントはクラスターから暗黙的に削除されます。このクライアントでさらに JCL を実行すると、予期しない動作が発生する場合があります。
ESMAC によるロックの削除
ESMAC でロックを削除するには、GLM の ESMAC ページを表示します。[Resources] ペインで、[Active] を選択してから [Locks] を選択します (CASRDO33)。

ページ下部で、[Remove Locks] ボタンを使用して APPLID のすべてのロックを削除できます。クライアントの [APPLID] 入力フィールドに、ロックを削除する対象の Enterprise Server クラスター クライアントの APPLID を入力します。