Extract用の共有メモリー・マネージャの使用

Oracle GoldenGate Extractは、共有メモリー使用量を監視するために、WLMから別のタスク(ジョブ)を開始します。このジョブは、MVSで実行される最小タスクですが、WLMではありません。このスクリプトのユーザー名は、WLM (通常はRACFなどを使用)から開始するときに実行するための権限を持っている必要があります。この監視対象の共有メモリーは、小さい48バイトから64バイトのECSA領域と、Extractバッファ・サイズに基づく大きい64ビット領域で構成されます。

共有メモリー内の特定のフィールドが、Extractによって実行される読取りごとに更新されます。これらのフィールドは、スクリプトがデータを返すかどうかに関係なく更新されます。モニターはこれらのフィールドをチェックして、Extractが非アクティブになっていないことを確認します。Extractが非アクティブである場合、共通メモリーは解放され、モニターは終了します。Extractのパラメータ・ファイルのremote_memory_optionsパラメータを使用して、メモリー・マネージャを制御できます。

複数のサブパラメータを指定して、モニター・タスクを構成できます。次の例に示すように、リモート・メモリー・オプションのサブ・パラメータを指定することで、モニターが使用する待機間隔と非アクティブ時間を構成できます。

remote_memory_options wait_interval 2000 inactive_time 01:00

この例の待機間隔は1/100秒単位で表され、モニターは各メモリー・チェック間に20秒待機します。モニターによるチェックが1時間(書式HH:MM)に達し、Extractが依然として非アクティブである場合、モニターは共有メモリーを解放した後に停止します。Extractがその時間内にアクティブ状態に戻ると、モニターはその状態をリセットして監視を続行します。

wait_intervalには100から6000までの値を指定でき、デフォルトは1000です。inactive_timeには00:10から12:00までを指定でき、デフォルトは00:30です。モニターが正しく起動しない場合、Extractはレポートに警告メッセージを表示し、処理を続行します。Extractは、停止時にECSAメモリーの解放を試みます。

リモート・メモリー・パラメータには、この機能を動作させるための3つのオプションがあります。これらのパラメータの構文は次のとおりです:
  • task_procedure proc name

  • task_library proc library

  • task_setup task setup program

例:
remote_memory_options task_procedure OGGPR001 
remote_memory_options task_library TEST.PROCLIB
remote_memory_options task_setup OGGJT001

次に示すように、1つのコマンドに複数のオプションを指定できます:

remote_memory_options task_procedure OGGPR001 task_library TEST.PROCLIB task_setup OGGJT001

ノート:

リモート・メモリー・パラメータの値では、大文字と小文字は区別されません。

デフォルト値は、プロシージャ名OGGPR001およびタスク設定プログラムOGGJT001です。タスク・ライブラリにデフォルトはありません。プロシージャはMVSシステムのデフォルトのプロシージャ・ライブラリのいずれかに組み込まれている可能性があるためです。タスク・ライブラリ・パラメータは、プロシージャがシステムのデフォルト・ライブラリにない場合にのみ必要です。

メモリー・タスクは、単純なJOBカードと、Extractから渡されたパラメータを持つEXECプロシージャ名で始まります。z/OSシステムによっては、ジョブ・カード上に他の様々なパラメータが必要になる場合があります。JOBパラメータは、次の例に示すように、リモート・メモリー・パラメータを使用して変更することもできます。

remote_memory_options task_jobname [valid MVS job name (see below)]
remote_memory_options task_acct_info [valid MVS acct value (see below)]
remote_memory_options task_programmer [valid MVS programmer name, Can use single quotes]
remote_memory_options task_class [valid MVS job class A to Z or 0 to 9]
remote_memory_options task_msgclass [valid MVS msgclass A to Z or 0 to 9]
remote_memory_options task_msglevel [valid MVS message level n or (,n) or (n,n)  n=valid digit]
remote_memory_options task_priority [valid MVS priority 0-15]

JOB名は、2つの有効な文字とアスタリスク(AA*など)を使用して指定できます。デフォルトのJOB名はGG*です。アスタリスクは、指定すると6つの乱数に置き換えられます。それ以外で、1から8バイトの文字名を指定する場合は、有効なMVSジョブ名である必要があります。

アカウント値は、次のいずれかの有効なMVS形式で指定します。
  • OTXI

  • ‘MY ACCT’

  • (ACCT,1234,ABC)

特殊文字を許可するパラメータ(acct_infoprogrammerなど)の場合は、一重引用符で囲みます。さらに、引用符内で二重引用符またはアンパサンドを使用することに関するMVS規則は引き続き適用されます。Extractは、これらのパラメータの検証を最小限に抑え、完全な検証はMVSプロセスに任せます。Extractは、重複パラメータを指定した場合は最初のパラメータを受け入れ、重複を無視します。

プロシージャJCLファイルのサンプルは、zOSPrograms.zipファイルに含まれます。このJCLはWLMプロシージャを置き換えません。WLMで作成されたモニターは、JCLを使用してMVSで動作します。ジョブ出力のアーカイブやその他のプロシージャをサポートするコマンドまたはJCLを追加すると、JCLプロシージャの柔軟性が高まります。

ノート:

メモリー・マネージャのインストールおよび設定中に、RACFの設定の問題、イニシエータの使用状況、ジョブ・クラスの使用状況、またはメモリー・マネージャに関連する他の同様の問題のために待機する必要がある場合は、メモリー・マネージャを一時的にオフにする必要が生じる場合があります。

Extractは、このインスタンスでレガシー・モードで動作し、ECSAおよび64ビット共有メモリーを解放します。Extractでは、Extractレポートの最後に共有メモリーの解放が示されます。

Oracleでは、永続的な解決としてこれをお薦めしていません。使用する場合、ユーザーはECSAおよび64ビット・メモリーの解放を監視します。この機能をオンにするパラメータはアンダースコアで始まり、システムがこのモードで実行されていることをユーザーに示します。他のリモート・メモリー・オプションは、メモリー管理をオフにするオプションを削除することで、そのままにして使用できます。リモート・メモリー管理パラメータはデフォルトでオンに設定され、次のように指定されます。


remote_memory_options _remote_memory_on
remote_memory_options _remote_memory_off
JCLの形式は、次のとおりです。
//*==================================================================== 
//* EXAMPLE JCL FOR RUNNING THE COMMON MEMORY MONITOR PROCEDURE
//* ADDRESS SPACE NEEDING AN AUTHORIZED LOAD LIBRARY
//* NOTE: THE PROGRAM OGGMT001 CAN BE RENAMED IN THE LIBRARY BUT THE
//*       NEW NAME MUST MATCH THE PROGRAM NAME IN THIS JCL
//*==================================================================== 
//OGGDSNNA PROC RGN=0K TR=,EX=,MEM=,LEN=,SEC=,DUR=,VER=
//OGGDSNNX EXEC PGM=OGGMT001,REGION=&RGN,TIME=NOLIMIT,
// PARM='&TR &EX &MEM &LEN &SEC &DUR &VER'
//*--------------------------------------------------------------------
//* REPLACE &PREFIX.**.AUTHLOAD LIBRARIES WITH SITE SPECIFIC FILE(S)
//* ALSO REPLACE THE CEE LIBRARY WITH SITE SPECIFIC FILE
//* DSNN COULD REPRESENT A DB2 SPECIFIC LOAD LIBRARY IF ONE EXISTS
//*--------------------------------------------------------------------
//STEPLIB  DD DISP=SHR,DSN=&PREFIX..WLMDSNN.USER.AUTHLOAD
//         DD DISP=SHR,DSN=CEE.SCEERUN
//SYSPRINT DD SYSOUT=*
//SYSOUT   DD SYSOUT=*       
    

PREFIXでマークされたライブラリを、システムで動作するように変更します。zOSPrograms.tarファイルからコピーしたプログラムOGGMT001の名前を変更した場合は、JCLで変更する必要があります。PROC文のnullパラメータは、情報提供のために存在します。ジョブOGGJT001設定プログラムは、Extractから渡された情報を使用してこれらの値を提供します。ステップ・ライブラリ・データセット名を、必要に応じていくつでも指定することもできます。zOSPrograms.tarファイルで提供されるJCLプロシージャは、複数のステップ・ライブラリを使用する例を示しています。