Natural オブジェクトのバックアウトと配布を有効にする方法

コンテンツ
ce18jp
コンテンツ
2
CA Endevor® Software Change Manager
管理者は、Natural オブジェクトのリモート サイトへの配布およびリモート サイトからのバックアウトを有効にできます。この機能は配布後スクリプト機能によって有効にされ、この機能を使用すると条件付き実行のためにリモート配布先にジョブ ステップ(スクリプト)を配布できます。この場合、配布後にリモート Natural ライブラリに Natural オブジェクトを書き込むためにスクリプトが必要です。
以下の図では、Natural オブジェクトのバックアウトおよび配布を有効にする方法を示します。
Natural オブジェクトのバックアウトおよび配布を有効にするには、以下の手順に従います。
  1. Natural オブジェクトのバックアウトと配布に関する考慮事項を確認します。
  2. C1DEFLTS テーブルを構成して、配布後スクリプト機能を有効にします。これには、C1DEFLTS テーブルの確認、および機能が有効になっていない場合のテーブルの更新が含まれます。
  3. Move プロセッサを更新して、出荷用のスクリプト出力データ セットを作成する手順、およびこれらのデータ セットのバックアウトを有効にするためのバックアウト レコードを作成する手順を追加します。モデル プロセッサの手順で、配布およびバックアウトのパッケージ処理を有効にし、アンロードされた Natural オブジェクトを PDS 形式に格納し、リモート Natload JCL を NATCMD ライブラリに追加します。
  4. スクリプト ファイルが含まれるデータ セットのマッピング ルールを定義します。これらのスクリプト データ セットに対しては、マッピング ルールのリモートの配布先を (SCRIPT-FILE) として常に定義します。
  5. (オプション)配布先設定メンバを作成し、各パッケージ配布先に対して一意のシンボル値を定義します。このメンバは、スクリプト データ セット内のシンボルを配布先に基づく値に解決する場合にのみ必要です。
  6. 配布にスクリプト データ セットが存在するかどうかに基づいて、リモート配布先において条件付きで実行できるスクリプト ステップを作成します。モデル スクリプトは、配布された NATCMD ファイル PDS メンバからシーケンシャル ファイルを作成した後、配布された Natural オブジェクトを Natural ライブラリにロードします。
    Enable Backout and Shipment for Natural Obj
    Enable Backout and Shipment for Natural Obj
Natural オブジェクトのバックアウトと配布
Natural オブジェクトのリモート サイトへの配布およびリモート サイトからのバックアウトは、配布後スクリプト機能によって有効になります。この機能を使用すると条件付き実行のためにリモート配布先にジョブ ステップ(スクリプト)を配布できます。スクリプトは、配布後にリモート Natural ライブラリに Natural オブジェクトを書き込みます。
Natural オブジェクトの場合、バックアウトおよび配布には以下の制限があります。
  • 配布する予定の Natural オブジェクトには有効な PDS 名が必要です。Natural 用の Move プロセッサには、メンバ名として
    CA Endevor® Software Change Manager
     エレメント名を使用して 2 つの PDS にメンバを書き込むステップが必要です。そのため、配布されるすべてのオブジェクトは、PDS のメンバ名として有効な名前を持っている必要があります。
  • 配布予定の各パッケージには、最大で約 250 エレメントを含めることができます。この制限は、シーケンシャル ファイルが使用されるという Natural ユーティリティの要件によるものです。リモート サイトでは、スクリプト ファイルは、PDS メンバから作成されたシーケンシャル ジョブ ステップで構成される単一のジョブとして内部リーダにサブミットされます。このジョブは、リモートの場所で実行される他のすべてのジョブと同じジョブ カードを使用します。したがって、ジョブ ステップの数により配布は 1 つのパッケージ当たり約 250 エレメントに制限されます。
    パッケージ当たり 250 エレメントの制限を回避するには、スクリプト ファイル メンバに書き込まれる JCL にジョブ カードを含めることにより、各メンバに専用のジョブを作成できます。
  • Natural オブジェクトの削除はサポートされていません。配布済みオブジェクトのバックアウトは、補足的なファイルを配布することにより可能です(配布先オプション)。
    • リモートの場所で CRJOB ファイルをサブミットすると(LOCAL 配布に対する CHJOB)、既存の Natural オブジェクトが配布前の状態に復元されます。
    • バックアウト処理の一部としてのリモートの場所での新しいオブジェクトの削除は、このプロセスでは処理されません。
配布後スクリプト用の C1DEFLTS の設定
配布後スクリプト機能を有効にするには(Natural オブジェクトのバックアウトと配布に必要)、C1DEFLTS テーブルが特定の要件を満たしている必要があります。
以下の手順に従います。
  1. C1DEFLTS テーブルを確認し、RJCLROOT パラメータが ICPY または FCPY に設定されていることを確認します。このオプションが省略されている場合は、値に RJCLROOT=ICPY を挿入します。RJCLROOT パラメータの詳細については、「リモート ジョブ ストリーム(C1DEFLTS)」を参照してください。
  2. (オプション)配布先スクリプトのシンボルを使用する場合は、以下のように C1DEFLTS テーブルを更新します。
    1. DESTCFGMBR= パラメータを使用して、C1DEFLTS に対して配布先設定メンバの名前を定義します。値を指定しない場合は、デフォルトで NULL になります。
    2. C1DEFLTS テーブルを確認し、有効な PARMLIB データ セットが存在することを確認します。
  3. C1DEFLTS テーブルを再アセンブルします。
Natural オブジェクトの配布後スクリプト処理用のプロセッサの更新
配布後スクリプト機能を有効にするには、Move プロセッサを更新して、スクリプト出力データ セットの作成およびデータ セットのバックアウトを有効にするバックアウト レコードの作成のためのステップを追加する必要があります。
以下の手順に従います。
  1. Move プロセッサを更新し、サイトの要件に基づいて、必要なリモート スクリプト Natural LOAD JCL 構文を作成するために必要な追加のステップを挿入します。Natural オブジェクトの場合、Move プロセッサ用の追加ステップは以下の要件を満たす必要があります。
    • メンバ名として
      CA Endevor® Software Change Manager
      エレメント名を使用して 2 つの PDS にメンバを書き込みます。そのためには、配布されるすべてのオブジェクトが PDS のメンバ名として有効な名前を持っている必要があります。
      • 1 番目の PDS メンバには、Natural オブジェクトの個別のアンロードを格納します。これはスクリプト ファイルではありません。
      • 2 番目の PDS メンバには、配布後にリモート Natural ライブラリに Natural オブジェクトを書き込むための完全なジョブ ステップを格納します。このデータ セットは、配布時に (SCRIPT-FILE) として識別される必要があります。これは配布先に基づくマッピング ルールによって行われます。SCRIPT-FILE の詳細については、「配布後スクリプト データ セットのマッピング ルールの定義」を参照してください。
    • 各 Natural オブジェクトは個別にアンロードされるので、Natural へのロードバックも個別に行う必要があります。
    • スクリプト ファイル メンバに完全なジョブ ステップが含まれるので、
      CA Endevor® Software Change Manager
      PARMLIB の配布先構成メンバにより、配布先に基づいて配布時に置き換えられるシンボルを使用できます。
      • 既存のプロセッサ シンボルを使用しないように注意する必要があります。&C1 シンボル名は配布先構成メンバでは許可されません。
      • 配布時に解決されるシンボルは、Natural 中核名、中核に対するパラメータ、およびリモート ターゲット Natural ライブラリ名の値に使用できます。
  2. スクリプト ファイル メンバ内でシンボルが使用される場合は、
    CA Endevor® Software Change Manager
     PARMLIB 配布先設定メンバを更新します。
    • 配布を受け取る各配布先を、スクリプト ファイル メンバで使用されるシンボルを含むように更新する必要があります。
    • 各配布先は、シンボルに対して独自の値を持つことができます。
  3. パッケージ処理がバックアウト レコードを作成してスクリプト ファイルを追跡できるようにするため、MONITOR キーワードおよび BACKOUT キーワードがスクリプト データ セットで指定されていることを確認します。
  4. スクリプト データ セットの内容を容易に判断できるように、スクリプト データ セットに名前を付けます。スクリプト データ セットの最後の修飾子は、モデル制御ステートメントを作成するときに使用されます。そのため、さまざまなタイプのスクリプト処理を判別できるように、適切な名前を選択してください。Natural LOAD JCL ステップを含むスクリプト ファイルの場合は、たとえば NATCMD などの適切な名前を付けます。
例: Natural オブジェクトの配布後スクリプト出力データ セットを作成するためのモデル コード
Natural オブジェクトの PNATMOV Move プロセッサに追加されている次のコード サンプルは、配布とバックアウトのパッケージ処理を有効にし、アンロードされた Natural オブジェクトを PDS 形式で格納して、リモート Natload JCL を NATCMD ライブラリに追加します。このサンプルは、配布時に配布先に基づいて解決されるシンボルを使用します。これらのシンボルはすべて &RMT で始まります。
// OBJMT='&C1ELMNT255',                                             
// OBJMD='&C1ELMNT255',                                             
// OBJMS='NAT&C1ELMNT255(1,4)',                                     
// OBJWN='WITH,NEWLIBRARY,
&RMTLNAME
,%',                             
// OBJLT='LOAD &C1ELMNT255,LIB,*,OBJTYPE,N,&OBJWN',                 
// OBJLD='LOAD &C1ELMNT255,LIB,*,OBJTYPE,D,%',                      
// OBJLS='LOAD &C1ELMNT255,LIB,*,OBJTYPE,E,&OBJWN',                 
// OBJMEM=&OBJM&C1TY(3,1)                                           
//*                                                                    
//*******************************************************************  
//* PACKAGE PROCESSING FOR SHIPMENT AND BACKOUT (NO DDMS)              
//*******************************************************************  
//IF1      IF   (&C1PKGID NE ' ') THEN                                 
//IF2      IF   (&C1TY  NE 'NTDDM') THEN                               
//*                                                                    
//*********************************************************************
//* STORE UNLOADED NATURAL OBJECT INTO PDS                             
//*********************************************************************
//GENER1   EXEC PGM=IEBGENER,MAXRC=0                                   
//SYSPRINT DD   SYSOUT=*                                               
//SYSIN    DD   DUMMY                                                  
//SYSUT1   DD   DSN=&&ELMMOVE,DISP=OLD                                 
//SYSUT2   DD   DISP=SHR,                                              
//         DSN=BST.MOTM.ESCM715.NATOBJ(&OBJMEM),                       
//         MONITOR=COMPONENTS                                          
//*                                                                    
//*********************************************************************
//* PUT REMOTE NATLOAD JCL INTO NATCMD LIBRARY                         
//*********************************************************************
//GENER2   EXEC PGM=IEBGENER,MAXRC=0                                   
//SYSPRINT DD   SYSOUT=*                                               
//SYSIN    DD   DUMMY                                                  
//SYSUT1   DD   DATA,DLM='$$'                
//*                                          
//NATLOAD  EXEC PGM=
&RMTNATNUC
               
//STEPLIB  DD   DSN=
&RMTNATLIB
,DISP=SHR      
//         DD   DSN=
&RMTADALIB
,DISP=SHR      
//CMPRMIN  DD   *                            
&RMTPRM1
                                     
&RMTPRM3
                                     
&RMTPRM4
                                     
&RMTPRM5
                                     
//DDCARD   DD   *                            
&RMTDDCARD
                                   
//CMWKF01  DD   DISP=SHR,                    
//         DSN=PUBLIC.MORMI08.NATOBJ(&OBJMEM)
//CMPRINT  DD   SYSOUT=*                     
//DDPRINT  DD   SYSOUT=*                     
//DDDRUCK  DD   DUMMY                        
//MPMDUMP  DD   DUMMY                        
//DDKARTE  DD   DUMMY                        
//CMSYNIN  DD   *                            
SYSPROF                                      
SYSOBJH                                      
&OBJL&C1TY(3,1)                              
WHERE,REPLACE,ALL,REPORT                     
.                                               
FIN                                             
$$                                              
//SYSUT2   DD   DISP=SHR,                       
//         DSN=BST.MOTM.ESCM715.NATCMD(&OBJMEM),
//         MONITOR=COMPONENTS                   
//*                                             
//IF2      ENDIF                                
//IF1      ENDIF                                
Natural オブジェクトの配布後スクリプト データ セットのマッピング ルールの定義
スクリプトが含まれるプロセッサ出力ファイル用のデータ セット マッピング ルールを定義します。
以下の手順に従います。
  1. スクリプト データ セット名と一致するように、ホスト データ セット名フィールドのマスクを指定します。
  2. 次に示すようにキーワード (SCRIPT-FILE) を正確に使用して、リモート データ セット名フィールドの値を指定します。
    必須の丸かっこ、およびダッシュは、データ セット名として有効な文字ではないため、この値がデータ セット名と間違えられることはありません。
注:
マッピング ルールの定義の詳細については、「マッピング ルールの作成」を参照してください。
例: NATCMD スクリプト ファイルのマッピング ルール
最後の修飾子が NATCMD のスクリプト データ セットのマッピング ルールを作成するには、以下に示すようにホスト データ セット名およびリモート データ セット名を定義します。
HOST DATASET NAME   ===> *.*.*.NATCMD  
      maps to                                        
REMOTE DATASET NAME ===> (SCRIPT-FILE)               
注:
この例は、「Natural オブジェクトの配布後スクリプト用のプロセッサの更新」処理に示す例で作成された Natural LOAD JCL のマッピング ルールを作成します。
注:
スクリプト ファイルがマッピング ルールによって識別されると、DSN マッピング選択リストのステータス列にスクリプトが表示されます。
Natural オブジェクトの配布先設定ファイルの作成
プロセッサによって作成されたスクリプト ファイル内の配布先に基づいて値に解決されるシンボルを使用する場合は、配布先設定ファイルを作成する必要があります。配布先設定メンバには、パッケージ配布の実行時に読み取りおよび解析され、ターゲット配布先のシンボルを解決するためにスクリプト データ セット メンバで使用できる配布先に一意のシンボルを作成するステートメントが含まれます。置き換えが正しく行われるためには、これらのシンボルがプロセッサによってスクリプト データセット メンバ内に作成されている
必要があります
以下の手順に従います。
  1. 配布先設定ファイルを作成し、各パッケージ配布先に一意のシンボル名および値を定義します。
    以下の構文を使用して、各配布先のシンボル名と値を定義します。
    >>--  DESTination 'destid'  ---------------------------> 
      +<----<----<----<----<----<----<----<----<----<---+
    --+-->  SYMbol 'symbol-name' VALue 'symbol-value' -- - ->
    --->  .  ---------------------------------------------><
    このステートメントを各配布先に対して繰り返し、シンボルと値の組み合わせを各ステートメント内で必要に応じて何度も定義できます。シンボルをコード化する場合は(少なくとも 1 つ必要)、値もコード化する必要があります。シンボルに NULL 値をコード化するには、VALUE キーワードの後に連続した 2 つの単一引用符を使用します。
  2. 配布先設定メンバを PARMLIB に追加します。
  3. 配布先によって異なる情報を表すシンボルを、必要に応じてスクリプト データ セット メンバに含めます。
    重要:
    シンボルの置換によって、行がオーバーフローして、構文エラーが発生する可能性があります。
    シンボルの最大長を考慮するか、適切な構文を生成するシンボルの部分文字列を使用します。シンボルの部分文字列の構文の詳細については、「
    Extended Processors Guide
    」を参照してください。または、パスやファイル名など、長いシンボルを置換する必要がある場合は、可変長ブロック(RECFM=VB)スクリプト ファイルの使用を検討します。
注:
配布先設定メンバの内容は、表示オプション メニューから表示できます。また、構文エラーもこのメニューで確認できます。配布先設定メンバの名前は、C1DEFLTS のサイト情報パネルのパラメータ ライブラリ情報セクションに表示されます。スクリプト ファイルがマッピング ルールによって識別されると、DSN マッピング選択リストのステータス列にスクリプトが表示されます。右側にスクロールすると、スクリプトの実行ステータスが返され、配布ステータス ビューに表示されます。
例: 配布後スクリプトの配布先設定ファイル
この配布先設定ファイルの例は、ターゲットの配布先に応じて、シンボル RMTNATNUC および RMTNATLIB にさまざまな値を定義します。
DESTINATION CA31XCM                                                                                          
    SYMBOL 'RMTNATNUC' VALUE 'N41DB99B'
    SYMBOL 'RMTNATLIB' VALUE 'BST.NAT414.LOAD'  .  
DESTINATION CA11LOC                                                                                          
    SYMBOL 'RMTNATNUC' VALUE 'N42DB99B'
    SYMBOL 'RMTNATLIB' VALUE 'BST.NAT427.LOAD'  .                                    
             
注:
この例は、「Natural オブジェクトの配布後スクリプト処理用のプロセッサの更新」に示す例で作成された Natural LOAD JCL スクリプトの &RMTNATNUC および &RMTNATLIB シンボルを作成します。
Natural オブジェクトのスクリプト ステップの作成
独自のスクリプトを作成するか、サイトの要件に応じて配布 JCL モデル(CSIQOPTN ライブラリの #RJNDVRA および #RJNDVRB)を編集することによって、モデル スクリプト ジョブ ステップをカスタマイズできます。これらのモデルには、リモート ジョブのジョブ ステップが含まれています。このジョブ ステップは、配布にスクリプト データ セットが含まれているかどうかに基づいて、ジョブがパッケージ出力をターゲット データ セットへコピーする前またはコピーした後に実行されます。
条件付き実行を有効にする場合、シンボルは各スクリプト データ セットを表します。シンボルは、ホスト データ セット名の最後の修飾子に基づいており、文字 ZZ が先頭に付けられます(たとえば、データ セット BST.USER12.NATCMD では &ZZNATCMD になります)。シンボルの値は、スクリプト データ セットのリモート ステージング データ セット名です。
シンボルは、@IF ステートメントおよび @IFNOT ステートメントを使用して、パッケージ配布モデル制御メンバ内で確認できます。したがって、スクリプト ジョブ ステップは、データ セットのシンボルを解決してスクリプト データ セットが配布に存在するかどうかを判定することで、条件に応じてリモート ジョブ ステップに生成することができます。
例: Natural オブジェクトの配布後スクリプト ステップのモデル
以下のスクリプトはモデル制御メンバ #RJNDVRA で提供されます。このスクリプトは、配布された NATCMD ファイル PDS メンバからシーケンシャル ファイルを作成した後、配布された Natural オブジェクトを Natural ライブラリにロードします。
モデル メンバ #RJNDVRA には、スクリプト ファイルを処理するための以下のステップが含まれます。
  • IBM の標準ユーティリティ(IEBPTPCH、SORT)を使用して、スクリプト ファイル内の配布されるすべてのメンバをシーケンシャル化します
  • メンバから作成されたシーケンシャル化されたジョブ ステップを単一のジョブとして内部リーダにサブミットします
    • このジョブは、リモートの場所で実行される他のすべてのジョブと同じジョブ カードを使用します。
    • このため、配布はパッケージ当たり約 250 エレメントに制限されます(ジョブ ステップ数の制限)。
    • また、スクリプト ファイル メンバに書き込まれる JCL にジョブ カードを含めることによって各メンバを専用のジョブにすることで、パッケージ当たり 250 エレメントの制限を除去できます。
モデルの #RJNDVRA スクリプトを使用するために、#RJNDVRB モデルを編集する必要はありません。
@IF &ZZNATCMD                                                         
//********************************************************************
//*                                                                   
//*                                                                   
//* THESE STEPS CREATE A SEQUENTIAL FILE FROM THE NATCMD FILE PDS     
//* MEMBERS BEING SHIPPED AND THEN                                    
//* LOADS THE SHIPPED NATURAL OBJECTS TO THEIR                        
//* NATURAL LIBRARIES.                                                
//*                                                                   
//********************************************************************
//* DELETE WORK FILES                                                 
//********************************************************************
//SCR010   EXEC PGM=IDCAMS                                            
//SYSPRINT DD   SYSOUT=*                                              
//SYSIN    DD   *                                                     
  DEL PUBLIC.MORMI08.NATCMDT                                           
  DEL PUBLIC.MORMI08.NATCMDS                                          
  SET MAXCC = 0                                                       
//*                                                                   
//********************************************************************
//* CREATE SEQUENTIAL FILE FROM PDS MEMBERS                           
//********************************************************************
//SCR020   EXEC PGM=IEBPTPCH                                          
//SYSPRINT DD   SYSOUT=*                                              
//SYSUT1   DD   DISP=SHR,    REMOTE STAGING DATA SET FOR SCRIPT        
//         DSN=&ZZNATCMD                                              
//SYSUT2   DD   DSN=PUBLIC.MORMI08.NATCMDT,                            
//         DISP=(,CATLG),                                             
//         SPACE=(CYL,(1,1),RLSE),                                    
//         UNIT=SYSDA,                                                
//         DCB=(RECFM=FBA,LRECL=81)                                   
//SYSIN    DD  *                                                      
 PUNCH TYPORG=PO                                                      
//*                                                                   
//********************************************************************
//* REMOVE LEADING CONTROL CHARACTER AND SEPARATOR LINES              
//********************************************************************
//SCR030   EXEC PGM=SORT                                              
//SYSOUT   DD   SYSOUT=*                                              
//SYSPRINT DD   SYSOUT=*                                              
//SYSUDUMP DD   SYSOUT=*                                              
//REPORT1  DD   SYSOUT=*                                              
//SORTIN   DD   DISP=SHR,DSN=PUBLIC.MORMI08.NATCMDT                    
//SORTOUT  DD   DSN=PUBLIC.MORMI08.NATCMDS,                           
//         DISP=(,CATLG),                          
//         UNIT=SYSDA,                             
//         SPACE=(CYL,(1,1)),                      
//         DCB=(RECFM=FB,LRECL=80)                 
//SORTWK01 DD  UNIT=DISK,SPACE=(CYL,(5,5))         
//SORTWK02 DD  UNIT=DISK,SPACE=(CYL,(5,5))         
//SORTWK03 DD  UNIT=DISK,SPACE=(CYL,(5,5))         
//SYSIN    DD  *                                   
  OMIT COND=((2,13,CH,EQ,C'MEMBER NAME  '))        
  SORT FIELDS=COPY                                 
  INREC FIELDS=(1:2,80)                            
//*                                                
//GENER1   EXEC PGM=IEBGENER                       
//SYSPRINT DD   SYSOUT=*                           
//SYSIN    DD   DUMMY                              
//SYSUT1   DD   DATA,DLM='$$'                      
&RJOBCARDS                                         
$$                                                 
//         DD   DISP=SHR,DSN=PUBLIC.MORMI08.NATCMDS
//SYSUT2   DD   SYSOUT=(A,INTRDR)                  
@ENDIF