[z/OS]

z/OS® でのデータ・セットからキューへのメッセージの復元 (SLOAD)

CSQUTIL の SLOAD 機能は COPY 機能や SCOPY 機能を補足するものです。 SLOAD は、以前の COPY 操作または SCOPY 操作の宛先データ・セットからメッセージを復元します。 SLOAD は、単一キューを処理します。

SLOAD を使用するには、キュー・マネージャーが実行中でなければなりません。

データ・セットが COPY または SCOPY QUEUE で作成された場合、そのデータ・セットには 1 つのキューのみからのメッセージが含まれます。 データ・セットが複数の連続した COPY または SCOPY QUEUE 操作で作成された場合には、複数のキューからのメッセージが含まれる可能性があります。

デフォルトでは、SLOAD はデータ・セット上の最初のキューを処理します。 FROMQUEUE パラメーターを使用して、処理する特定のキューを指定できます。

デフォルトでは、メッセージは、メッセージのコピー元のキューと同じ名前のキューに復元されます。 QUEUE パラメーターを使用して、キューが別の名前のキューにロードされるように指定できます。

注: この機能が失敗した場合に重複メッセージに関する問題を回避する方法については、 同期点 を参照してください。

Queue management (SLOAD)

構文図を読むビジュアル構文図をスキップ SLOADObject Selection
Object Selection
構文図を読むビジュアル構文図をスキップQUEUE(キュー名)FROMQUEUE(キュー名)
構文図を読むビジュアル構文図をスキップDDname Selection
DDname Selection
構文図を読むビジュアル構文図をスキップDDNAME(DD 名 (ddname))
構文図を読むビジュアル構文図をスキップRecord Selection
Record Selection
構文図を読むビジュアル構文図をスキップSKIPMSGS(n)MSGCOUNT(m)

キーワードおよびパラメーター

キュー (q-name)
このパラメーターは、以前の COPY 操作または SCOPY 操作の宛先データ・セット上にある最初のキューまたは唯一のキューからのメッセージを、指定した名前のキューにロードすることを指定します。 キーワード QUEUE は、省略して Q にすることができます。

q-name には、メッセージをロードするキューの名前を指定します。 この名前は、大/小文字を区別します。 モデル・キューは指定できません。

前面 MQUEUE (q-name)
処理するキューの名前を指定します。 このパラメーターを省略した場合は、最初のキューが処理されます。
キーワード FROMQUEUE は、省略して FROMQ にすることができます。

q-name には、処理するキューの名前を指定します。 この名前は、大/小文字を区別します。

DD 名 (ddname)
指定されたデータ・セットからメッセージをロードすることを指定します。 このキーワードは、省略して DD にすることができます。

ddname には、以前の COPY 操作または SCOPY 操作の宛先データ・セットを識別する DDNAME を指定します。このデータ・セットからメッセージがロードされます。 この名前には大/小文字の区別がなく、最大 8 文字を指定できます。

DDNAME(ddname) を省略すると、デフォルト DDNAME の CSQUINP が使用されます。

SKIPMSGS ( n )
キューのロードを開始する前に順次データ・セットの最初の n 個のメッセージをスキップすることを指定します。

SKIPMSGS(n) を省略すると、メッセージはスキップされません。最初のメッセージからロードが開始されます。

MSGCOUNT(m)
m 個のメッセージだけがデータ・セットから読み取られ、キューにロードされることを指定します。

MSGCOUNT(m) を省略すると、読み取られるメッセージの数は制限されません。

図1: CSQUTIL SLOAD 機能のためのサンプル JCL
//SLOAD EXEC PGM=CSQUTIL,PARM=('CSQ1'),REGION=0M
//STEPLIB DD DISP=SHR,DSN=thlqual.SCSQANLE
// DD DISP=SHR,DSN=thlqual.SCSQAUTH
//OUTPUTA DD DSN=MY.UTILITY.OUTPUTA,DISP=SHR
//CSQUINP DD DSN=MY.UTILITY.COPYA,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
SLOAD DDNAME(OUTPUTA)
SLOAD QUEUE(TOQ) FROMQUEUE(QUEUEA) SKIPMSGS(55)
/*
注:
  • REGION - 値 0M は、ジョブが、必要とする量のストレージを取得できることを意味します。 ただし、ジョブが取得しようとするストレージが大きすぎると、システムの他のジョブに影響を与える可能性があります。 理想的には、REGION サイズを制限し、ジョブに取得を許可する絶対的な最大値を指定する必要があります。
  • SLOAD DDNAME(OUTPUTA) - 入力データ・セット MY.UTILITY.OUTPUTA から最初のキューを再ロードします。 ロードされるキューの名前は、データのコピー元のキューの名前と同じです。
  • SLOAD QUEUE(TOQ) FROMQUEUE(QUEUEA) SKIPMSGS(55) - キュー QUEUEA からコピーされたメッセージを (入力データ・セット MY.UTILITY.COPYA から) 再ロードします。 メッセージは、TOQ という名前のキューに再ロードされます。 QUEUEA のメッセージを処理する際、最初の 55 個のメッセージは無視され、56 番目のメッセージからロードが開始します。

使用上の注意

  1. 関係するキューまたはページ・セットが使用中のときは、SLOAD 機能を呼び出せません。
  2. SLOAD が異常終了するか、または強制的に同期点が取られると、それ以上 CSQUTIL 機能は試行されません。
  3. CSQUTIL は MQPMO_SET_ALL_CONTEXT を使用して、メッセージ記述子フィールドが元のコピーと同じままかどうかを確認します。 したがって、キューの CONTEXT プロファイルに CONTROL のアクセス権が必要です。 詳しくは、「 コンテキスト・セキュリティーのプロファイル」を参照してください。