オンデマンドの実装

フォーマット・ユーザー出口を使用して、一定の基準に一致する障害項目を分析用の別のシステムに送信できます。このプロセスは、対話式再分析レポートから必要に応じて開始されます。

次の図では、フォーマット REXX ユーザー出口、IDIXMIT の例を示しています。これは、データ・セット IDIXMIT 内のメンバー IDI.SIDISAM1 として、ソフトコピー・フォーマットで使用可能です。

1. バッチ TSO XMIT ジョブを実行するフォーマット・ユーザー出口 (IDIXMIT) の例 (パート 1/2)
nodeid   = 'MVSB'                        /* <--- verify/change */    ❶
userid   = 'IDIROBOT'                    /* <--- verify/change */    ❷
jobcard  = '//NOTIFY   JOB  MSGCLASS=Z'  /* <--- verify/change */    ❸
"MAKEBUF"
queue jobcard
queue '//**************************************************************'
queue '//* Export fault entry'
queue '//**************************************************************'
queue "//EXPORT   EXEC PGM=IDIUTIL"
queue "//DD1      DD DISP=(,PASS),"
queue "//            SPACE=(CYL,(10,100,5),RLSE),"
queue "//            DCB=(DSORG=PO,RECFM=VB,LRECL=10000)"
queue "//SYSPRINT DD SYSOUT=*"
queue "//SYSIN    DD *"
queue "  EXPORT("ENV.IDIHIST"("ENV.FAULT_ID"),DD1)"
queue "/*"
queue '//**************************************************************'
queue '//* Terse the export data set'
queue '//**************************************************************'
queue "//TERSE    EXEC PGM=AMATERSE,PARM='PACK'"
queue "//SYSPRINT DD SYSOUT=*"
queue "//SYSUT1   DD DISP=SHR,DSN=*.EXPORT.DD1"
queue "//SYSUT2   DD DISP=(,PASS),"
queue "//            SPACE=(CYL,(10,100),RLSE)"
queue "//SYSPRINT DD SYSOUT=*"
queue '//**************************************************************'
queue '//* Perform TSO XMIT of the tersed export data set'
queue '//**************************************************************'
queue "//XMIT     EXEC PGM=IKJEFT01"
queue "//DD1      DD DISP=SHR,DSN=*.TERSE.SYSUT2"
queue "//SYSTSPRT DD SYSOUT=*"
queue "//SYSTSIN  DD *"
q_rec("  XMIT" nodeid"."userid "DDNAME(DD1) -")
q_rec("  NONOTIFY")
queue '/*'

2. バッチ TSO XMIT ジョブを実行するフォーマット・ユーザー出口 (IDIXMIT) の例 (パート 2/2)

/* 'Submit' the stacked TSO batch job.                               */
n = queued()
"IDIALLOC DD(DD1) SYSOUT PGM(INTRDR)"
if rc = 0 then do /* if alloc worked */
  address mvs "EXECIO" n "DISKW DD1 (FINIS"
  "IDIFREE DD(DD1)"
end
else ,
   "IDIWTO ALLOCATION OF INTRDR FAILED"
 "DROPBUF"
/*********************************************************************/ ❹
/* #Optionally, update the user title field to show that the fault   */
/* has been sent.                                                    */
/* For example:                                                      */
/* ENV.USER_TITLE = "Sent to" nodeid "on" DATE()"."                  */
/*********************************************************************/
/*********************************************************************/ ❺
/* #Optionally, tell the user that the request has been processed    */
/* by uncommenting the following IDIWRITE calls:                     */
/*"IDIWRITE '<p>History file" ENV.IDIHIST "fault ID" ENV.FAULT_ID,   */
/*          "sent to" nodeid"."userid".'"                            */
/*"IDIWRITE '<p>Press PF3 to return to the interactive reanalysis",  */
/*          "report.'"                                               */
/*********************************************************************/
exit 0

/* Pad record with blanks to 80 bytes.                               */
q_rec: procedure
parse arg rec
if (length(rec) < 80) then rec = rec||copies(' ',80-length(rec))
queue rec
return 0
注::
「nodeid」は障害項目の送信先のターゲット・システムを指定します。
「userid」は障害項目がターゲット・システムで受信されるユーザー ID を指定します。
ジョブ・カードがローカル標準に準拠していることを確認します。
このコードのコメントを外すと、この送信が行われた日付と送信先システムをユーザー・タイトル・フィールドに指定することによって、障害項目を送信済みとして識別するためのオプションの方法が提供されます。
発行されたコマンドが何を実行したかという情報の画面をユーザーに表示する場合、 このコードのコメントを外します。

手動で送信される障害項目の受信側は、自動化インプリメンテーションで説明されている exec にすることもできるし、または受信とその後のインポートを手動で行う任意のユーザー ID またはノードでもかまいません。

手動でのインポートは PACKAGE オプションを指定した IDIUTIL IMPORT を使用して実行する必要があります。IMPORT 制御ステートメント を参照してください。

オンデマンドの実装の使用

障害項目を分析しているときに、以下の基本コマンドを入力します。
EXEC IDIXMIT

IDIXMIT の名前は、サンプル IDIXMIT exec のコピーを作成するときに付けた任意の他の名前に変更できます。