uCosminexus Batch Job Execution Server 使用の手引(Windows(R)用)
索引順編成ファイルの作成および削除,索引順編成ファイルと順編成ファイルの複写,変換および併合ができる。
索引順編成ファイルを作成する。
DEFINE ISAM,DD=索引順編成ファイル用dd要素名, ISRECL=(100,10), ISRECFM=V, ISKEY=(8,0,C) |
DEFINE ISAM,DD=索引順編成ファイル用dd要素名, ISRECL=(100), ISRECFM=F, ISKEY=(4,0,L) |
ファイルの複写とは,同じ編成のファイルにデータを入れることである。ファイルの変換とは,編成の異なるファイルにデータを入れることである。また,ファイルの併合とは,2つのファイルを1つのファイルにすることである。REPRO文の機能の共通の内容について説明する。個別の内容については,(c)〜(e)の説明を参照のこと。
入出力ファイルの組み合わせと操作内容を次の表に示す。
表3-43 入出力ファイルの組み合わせと操作内容
| 入力 | 出力 | ||||
|---|---|---|---|---|---|
| ファイル編成 | レコード種別 | 索引順編成ファイル | 順編成ファイル | ||
| 固定長レコード | 可変長レコード | 固定長レコード | 可変長レコード | ||
| 索引順編成ファイル | 固定長 レコード |
◎ | × | ○ | × |
| 可変長 レコード |
× | ◎ | × | ○ | |
| 順編成ファイル | 固定長 レコード |
○ | × | ◎ | × |
| 可変長 レコード |
× | ○ | × | ◎ | |
索引順編成ファイル中のデータを,同じ編成の索引順編成ファイル用に複写する。または,順編成ファイル中のデータを,同じ編成の順編成ファイル用に複写する。複写範囲も指定できる。
索引順編成ファイルの複写では,複写先ファイルのレコード格納順は複写元ファイルで指定しているキーの順序になる。
REPRO INDD=複写元ファイル用dd要素名,※1 OUTDD=複写先ファイル用dd要素名※1 |
REPRO INDD=複写元ファイル用dd要素名,※1 OUTDD=複写先ファイル用dd要素名,※1 SKIP=複写処理開始前に読み飛ばすレコード数,※2 COUNT=複写処理するレコード数※2 |
REPRO INDD=複写元ファイル用dd要素名,※1 OUTDD=複写先ファイル用dd要素名,※1 FROMKEY=複写処理を開始するキーの値,※2 TOKEY=複写処理を終了するキーの値※2 |
表3-44 複写範囲を指定するオペランド
| 入力ファイル | 開始位置の指定 | 終了位置の指定 |
|---|---|---|
| 索引順編成ファイル | FROMKEY | TOKEY |
| SKIP | COUNT | |
| 順編成ファイル | SKIP | COUNT |
注
複写元ファイルのファイル編成を変えて,複写先ファイルに複写する。変換範囲も指定できる。
REPRO INDD=変換元ファイル用dd要素名, OUTDD=変換先ファイル用dd要素名 |
REPRO INDD=変換元ファイル用dd要素名, OUTDD=変換先ファイル用dd要素名, SKIP=変換処理開始前に読み飛ばすレコード数,※ COUNT=変換処理するレコード数※ |
REPRO INDD=変換元ファイル用dd要素名, OUTDD=変換先ファイル用dd要素名, FROMKEY=変換処理を開始するキーの値,※ TOKEY=変換処理を終了するキーの値※ |
表3-45 変換範囲を指定するオペランド
| 変換元ファイル | 開始位置の指定 | 終了位置の指定 |
|---|---|---|
| 索引順編成ファイル | FROMKEY | TOKEY |
| SKIP | COUNT | |
| 順編成ファイル | SKIP | COUNT |
注
ファイルの併合とは,併合元ファイルと併合先ファイル(併合先ファイルにもレコードが入っている)を合わせて1つのファイルにすることである。併合元ファイルには,索引順編成ファイルおよび順編成ファイルのどちらかを指定できる。
併合元ファイルの併合範囲を指定できる。また,索引順編成ファイルへの併合では,入力レコードと出力先のレコードのキー状態によって併合方法を指定できる。併合方法を指定するオペランドと機能を次の表に示す。
表3-46 併合方法を指定するオペランドと機能
| オペランド | 機能 |
|---|---|
| REPLACE | 同一キーを持ったレコードが入力された場合,レコードを置き換える。 |
| NOREPLACE | 同一キーを持ったレコードが入力された場合,処理を中止する。 |
| IGNORE | 同一キーを持ったレコードが入力された場合,キーが重複するレコードは出力しないで以降の処理を続行する。 |
REPRO INDD=併合元ファイル用dd要素名, OUTDD=併合先ファイル用dd要素名, REPLACE |
REPRO INDD=併合元ファイル用dd要素名, OUTDD=併合先ファイル用dd要素名 |
REPRO INDD=併合元ファイル用dd要素名, OUTDD=併合先ファイル用dd要素名, SKIP=併合処理開始前に読み飛ばすレコード数,※ COUNT=併合処理するレコード数※ |
表3-47 併合範囲を指定するオペランド
| 併合元ファイル | 開始位置の指定 | 終了位置の指定 |
|---|---|---|
| 索引順編成ファイル | FROMKEY | TOKEY |
| SKIP | COUNT | |
| 順編成ファイル | SKIP | COUNT |
索引順編成ファイルを削除する。
DELETE ISAM,DD=索引順編成ファイル用dd要素名 |
bjexu_ismutおよびbjexu_ismut64の入出力構成を次の図に示す。
図3-41 bjexu_ismutおよびbjexu_ismut64の入出力構成
bjexu_ismutおよびbjexu_ismut64の終了コードを次の表に示す。
表3-48 bjexu_ismutおよびbjexu_ismut64の終了コード
| 終了コード | 意味 |
|---|---|
| 0 | 正常に処理を終了した。 |
| 4 | エラーが発生したが無視して続行した。詳細については,出力されたメッセージを参照のこと。※ |
| 8 | コマンド処理中にエラーが発生した。エラーの発生したコマンドの処理を終了し,ジョブステップを終了する。出力処理中にエラーが発生しているので,出力ファイルの内容は保証されない。必要であればあらかじめ出力ファイルのバックアップを取っておくこと。詳細については,出力されたメッセージを参照のこと。 |
| 12 | 次のような回復できないエラーが発生したため,コマンド処理を実行しないでジョブステップを終了する。
|
注※ 文法的に正しいが,要求された処理を実行できなかった場合,終了コードは4になる。例えば,DELETE文で指定したファイルがないためにファイルの削除ができなかった場合がある。
bjexu_ismutおよびbjexu_ismut64を実行する場合は,次に示すEXEC要素とDD要素の指定が必要である。
<EXEC PGM="bjexu_ismut" /> |
<EXEC PGM="bjexu_ismut64" /> |
bjexu_ismutおよびbjexu_ismut64が発行するメッセージの出力先を指定する。DD連結指定はできない。出力先には,SYSOUTデータファイルや恒久ファイルを指定できる。
SYSPRINTが使用できない状態の場合,どこにも経過メッセージは出力されない。メッセージの詳細については,「10. メッセージと終了コード」を参照のこと。
複写,変換および併合の元となる入力ファイルを指定する。
索引順編成ファイルの場合,ファイル拡張子を除いたファイル名を指定する。また,ジョブ定義XMLファイルに,TYPE="FILE",DISP="OLD"またはDISP="SHR"を指定する。また,第2,第3オペランドでDELETEを指定してはならない。指定したファイル名と一致するファイルがある場合は,ジョブステップ終了時にそのファイルは削除される。指定したファイル名に一致するファイルがない場合は,ジョブステップ終了時に警告メッセージが出力されるが,終了コードには反映されない。
DISP="SHR"を指定すると,ファイルを占有しない指定でオープンする(ISAMのopen関数でISMANULOCKを指定)。このため,DISP="SHR"を指定した複数のジョブで同じファイルを同時に入力できる。
順編成ファイルの場合,複数のファイルを連結して指定できる。このとき,各ファイルの属性は一致させる必要がある。
ファイルの属性が一致しているかどうかはチェックされない。固定長順編成ファイルの場合に,ファイルサイズがレコード長の整数倍でないときはエラーになる。このため,入力ファイルを連結している場合,各ファイルのファイルサイズを確認すること。指定できるDISPオペランドを次の表に示す。
表3-49 入力ファイルの編成とDISPオペランドの関係
| 入力ファイル編成 | DISPオペランド | ||||
|---|---|---|---|---|---|
| OLD | NEW | RNW | MOD | SHR | |
| 索引順編成ファイル | ○ | − | − | − | ○※ |
| 順編成ファイル | ○ | − | − | − | ○ |
注※ DD要素でDISP="SHR"を指定すると,ISAMファイルを占有しない指定でオープンする。ただし,RENAMEを指定したときは,ファイルを占有する指定でオープンする。
索引順編成ファイルを作成する場合,新しく作成するファイルの出力先となる出力ファイルを指定する。DD連結指定はできない。
索引順編成ファイルおよび順編成ファイルを操作する場合,複写,変換または併合の出力先となる出力ファイルを指定する。DD連結指定はできない。
順編成ファイルに出力する場合は,出力ファイルのDD要素にディレクトリを指定できる。ディレクトリを指定する場合,入力ファイルと同じ名称のファイルに出力する。すでに入力ファイルと同じ名称のファイルがある場合は,エラーとなる。
索引順編成ファイルに出力する場合,ファイル拡張子を除いたファイル名を指定し,ジョブ定義XMLファイルのDD要素では,TYPE="FILE",DISP="OLD"を指定する。DISP="NEW","RNW"または"MOD"を指定した場合,バッチジョブ実行システムは指定されたパス名に従ってファイルを作成する。しかし,bjexu_ismutおよびbjexu_ismut64からは索引順編成ファイルとして使用できない。また,第2,第3オペランドでDELETEを指定してはならない。指定したファイル名と一致するファイルがある場合は,ジョブステップ終了時にそのファイルは削除される。指定したファイル名に一致するファイルがない場合は,ジョブステップ終了時に警告メッセージが出力されるが,終了コードには反映されない。
バッチジョブ実行システムでは,ジョブ定義XMLファイルに指定することで,索引順編成ファイルを作成できない。複写または変換をする場合,REPRO文を実行する前に,ISAMユティリティやDEFINE文で索引順編成ファイルを作成しておく必要がある。
順編成ファイルに併合する場合は,ジョブ定義XMLファイルのDD要素でDISP="MOD"を指定する。それ以外を指定した場合,複写または変換になり,出力ファイルにあったレコードは,削除される。
COPYDDオペランドを指定することで,複写または変換を行う出力先として2つの異なる出力先を登録できる。この場合,COPYDDオペランドで指定するファイルは,OUTDDオペランドで指定したファイルと同じ形式である必要がある。異なる形式の場合は処理されないでエラーとなる。併合の場合にCOPYDDオペランドを指定したときは,処理しないでエラーとなる。
入力ファイルと出力ファイル(OUTDDオペランドおよびCOPYDDオペランドの指定)には,すべて異なるファイルを指定すること。同じファイルを指定した場合は解析エラーとなる。
出力ファイル編成とDD要素の関係を次の表に示す。
表3-50 出力ファイル編成とDD要素の関係
| 出力ファイル編成 | DSNオペランド | DISPオペランド | |||||
|---|---|---|---|---|---|---|---|
| ファイル | ディレクトリ | OLD | NEW | RNW | MOD | SHR | |
| 索引順編成ファイル | ○ | × | ○ | −※ | −※ | −※ | − |
| 順編成ファイル | ○ | ○ | ○ | ○ | ○ | ○ | − |
注※ 指定するとファイルが割り当てられるが,ISAMファイルとしては使用できない。
bjexu_ismutまたはbjexu_ismut64制御文を指定する。または,この制御文が記述されたファイルのパスを指定する。DD連結指定はできない。
索引順編成ファイルを使用するバッチジョブ間の排他制御は,バッチジョブ実行システムの排他制御機能を使用する。そのため,バッチジョブで使用する索引順編成ファイルは,ジョブ定義XMLファイルのDD要素のDSNオペランドでファイル拡張子を除いたファイル名を指定し,DISP="OLD"を指定する必要がある。指定したファイル名と同じ名称の索引順編成以外のファイルがある場合,そのファイルも排他制御の対象になる。バッチジョブ実行システムは,索引順編成ファイルを作成または再作成しないため,DISP="NEW",DISP="RNW"およびDISP="MOD"オペランドを指定しないこと。また,第2,第3オペランドにDELETEを指定しないこと。指定したファイル名と一致するファイルがある場合は,ジョブステップ終了時にそのファイルは削除される。指定したファイル名に一致するファイルがない場合は,ジョブステップ終了時に警告メッセージが出力される。ただし,終了コードには影響しない。
bjexu_ismutまたはbjexu_ismut64プログラムでは,同時にISAMの排他制御も使用する。この排他制御によって,索引順編成ファイルを使用する端末からの操作,およびバッチジョブ実行システムの環境以外からのジョブ実行によるファイルの同時アクセスを防止する。
bjexu_ismutおよびbjexu_ismut64制御文と機能を次の表に示す。
表3-51 bjexu_ismutおよびbjexu_ismut64制御文と機能
| 制御文名 | 機能 |
|---|---|
| DEFINE文 | 作成する索引順編成ファイルの形式を指定する。 |
| INPFILE文 | 入力ファイルのファイル形式を指定する。 |
| OUTFILE文 | 出力ファイルのファイル形式を指定する。 |
| REPRO文 | ファイルの複写,変換または併合の実行開始を指定する。 |
| DELETE文 | 削除するファイルを指定する。 |
| SET文 | 変更する終了コードを指定する。 |
DEFINE文,DELETE文およびSET文は,単独または複数で指定できる。
INPFILE文,OUTFILE文,REPRO文は,この順で連続して指定する。INPFILE文とOUTFILE文は,省略できない。
INPFILE文,OUTFILE文,REPRO文を1組とし,DEFINE文,DELETE文,およびSET文と組み合わせて指定することもできる。
INPFILE文とOUTFILE文で指定できる組み合わせと処理内容の対応の詳細については,「(1) 機能」の「表3-43」を参照のこと。
[記号] △1 DEFINE △1 |
ISAM
,DD=DD名
,ISKEY=(キー長,キー位置[,{C|I|L}])
,ISRECFM={F|V}
,ISRECL=(レコード長[,最小レコード長])
|
表3-52 ISAMファイルの定義情報と内容
| ISAM ファイルの定義情報 | 内容 |
|---|---|
| 障害発生時のデータファイル内容保証 | 保証しない |
| 主キーのキー順序 | 昇順となる |
| 主キーの重複キー許可 | 認めない |
| 主キーの重複キー順序保証 | 保証する |
| 主キーの圧縮レベル | 圧縮なし |
| 主キーのスパース文字許可 | 認めない |
[記号] △1 INPFILE △1 |
FILEORG=ファイル形式〜((I|X|F|V))[,RECLEN=レコード長][,CHKEMPTY] |
[記号] △1 OUTFILE △1 |
FILEORG=ファイル形式〜((I|X|F|V))[,RECLEN=レコード長][,MINLEN=最小レコード長] |
[記号] △1 REPRO △1 |
INDD=DD名 ,OUTDD=DD名 [,COPYDD=DD名] [,KEY=キー番号] [,REPLACE|NOREPLACE|IGNORE] [,FROMKEY=キー|SKIP=レコード数] [,TOKEY=キー|COUNT=レコード数] |
・FROMKEY='ABC'を指定 ・ファイルのキー(8バイト) 上位→下位 'ABAAAAAA' ← 処理されない 'ABCAAAAA' ← 処理対象 'ABCBBBBB' ← 処理対象 'ABDAAAAA' ← 処理対象
・TOKEY='ABC'を指定 ・ファイルのキー(8バイト) 上位→下位 'ABAAAAAA' ← 処理対象 'ABCAAAAA' ← 処理対象 'ABCBBBBB' ← 処理対象 'ABDAAAAA' ← 処理されない
[記号] △1 DELETE △1 |
ISAM,DD=DD名 |
[記号] △1 SET △1 |
[MAXCC | LASTCC]=終了コード |
制御文で指定した機能の実行時の終了コードを変更するときに指定する。ただし,制御文で文法解析エラー発生時には,終了コードを変更できない。
直前の制御文の実行時にエラーがあっても,後続の制御文を実行したいときに指定する。例えば,直前の制御文で終了コード12になっても,終了コードを0に変更すると後続の制御文を実行できる。
[MAXCC | LASTCC]=終了コード
索引順編成ファイルを部分的に複写する例を次に示す。
<例1>複写元の索引順編成ファイルから先頭の5レコードをスキップし,そこから100レコード分を新規作成ファイルに複写する。また,複写先を2か所にする。
なお,索引順編成ファイルは使用するキーによって入力するレコードの順序が異なる。次の図に,使用するキーの順に入力するレコードの配置のイメージを示す。物理的なレコードの位置は示していないことに注意すること。
図3-42 索引順編成ファイルの一部を複写
<?xml version="1.0" encoding="Shift_JIS" ?>
<HitachiBatchJobExec version="1.3" os="windows" >
<JOB NAME="SAMPLE1" >
<STEP NAME="STEP0001" >
<EXEC PGM="bjexu_ismut" /> :(1)
<DD NAME="SYSPRINT" TYPE="SYSOUT" SYSOUT="A" />
<DD NAME="SYSUT1" TYPE="FILE" DSN="file1" DISP="OLD" /> :(2)
<DD NAME="SYSUT2" TYPE="FILE" DSN="file2" DISP="OLD" /> :(3)
<DD NAME="SYSUT3" TYPE="FILE" DSN="file3" DISP="OLD" /> :(4)
<DD NAME="SYSIN" TYPE="DATA" >
<![CDATA[
!
DEFINE ISAM, :(5)
DD=SYSUT2, :(6)
ISRECL=(100), :(7)
ISRECFM=F, :(8)
ISKEY=(5,0,C) :(9)
DEFINE ISAM, :(10)
DD=SYSUT3, :(11)
ISRECL=(100), :(12)
ISRECFM=F, :(13)
ISKEY=(5,0,C) :(14)
INPFILE FILEORG=I :(15)
OUTFILE FILEORG=I :(16)
REPRO KEY=1, :(17)
INDD=SYSUT1, :(18)
OUTDD=SYSUT2, :(19)
COPYDD=SYSUT3, :(20)
SKIP=5, :(21)
COUNT=100 :(22)
!
]]>
</DD>
</STEP>
</JOB>
</HitachiBatchJobExec>
|
<例2>複写元ファイルで主キーが"2C"から"2F"までのレコードを新規作成ファイルに複写する。
図3-43 索引順編成ファイルで特定の主キーであるレコードを複写
<?xml version="1.0" encoding="Shift_JIS" ?>
<HitachiBatchJobExec version="1.3" os="windows" >
<JOB NAME="SAMPLE2" >
<STEP NAME="STEP0001" >
<EXEC PGM="bjexu_ismut" />
<DD NAME="SYSPRINT" TYPE="SYSOUT" SYSOUT="A" />
<DD NAME="SYSUT1" TYPE="FILE" DSN="file1" DISP="OLD" /> :(1)
<DD NAME="SYSUT2" TYPE="FILE" DSN="file2" DISP="OLD" /> :(2)
<DD NAME="SYSIN" TYPE="DATA" >
<![CDATA[
!
DEFINE ISAM, :(3)
DD=SYSUT2, :(4)
ISRECL=(100), :(5)
ISRECFM=F, :(6)
ISKEY=(2,0,C) :(7)
INPFILE FILEORG=I :(8)
OUTFILE FILEORG=I :(9)
REPRO KEY=1, :(10)
INDD=SYSUT1, :(11)
OUTDD=SYSUT2, :(12)
FROMKEY='2C', :(13)
TOKEY='2F' :(14)
!
]]>
</DD>
</STEP>
</JOB>
</HitachiBatchJobExec>
|
索引順編成ファイルの併合の例を次の図に示す。
ファイルの併合は,レコードを複写する点ではファイルの複写と同じだが,併合先の出力ファイルにすでにレコードがある点が異なる。ファイルの併合の例では,次の処理を実施している。
複写元と併合先のファイルで主キーが重複するレコードがある場合,複写元のレコードに置き換えるには,REPRO文でREPLACEオペランドを指定する。
なお,索引順編成ファイルでは,キーの順に処理され,新たにレコードを追加する場合には,レコード削除後に残る無効レコード(空き領域)を使用することがある。このため,レコードの物理的な位置は不定となる。
図3-44 索引順編成ファイルで特定の主キーのレコードを複写
<?xml version="1.0" encoding="Shift_JIS" ?>
<HitachiBatchJobExec version="1.3" os="windows" >
<JOB NAME="SAMPLE3" >
<STEP NAME="STEP0000" >
<EXEC PGM="*" >
<![CDATA[! iscpy %DDN_SYSUT2% %DDN_SYSUT2B% !]]> :(1)
</EXEC>
<DD NAME="SYSUT2" TYPE="FILE" DSN="file2" DISP="OLD" />
<DD NAME="SYSUT2B" TYPE="FILE" DSN="file2B" DISP="OLD" />
</STEP>
<STEP NAME="STEP0001" >
<EXEC PGM="bjexu_ismut" />
<DD NAME="SYSPRINT" TYPE="SYSOUT" SYSOUT="A" />
<DD NAME="SYSUT1" TYPE="FILE" DSN="file1" DISP="OLD" />
<DD NAME="SYSUT2" TYPE="FILE" DSN="file2" DISP="OLD" />
<DD NAME="SYSIN" TYPE="DATA" >
<![CDATA[
!
INPFILE FILEORG=I
OUTFILE FILEORG=I
REPRO INDD=SYSUT1,OUTDD=SYSUT2, :(2)
REPLACE :(3)
!
]]>
</DD>
</STEP>
<STEP NAME="STEP0002" >
<EXEC COND="8,NE,STEP0001" PGM="*" > :(4)
<![CDATA[! iscpy %DDN_SYSUT2B% %DDN_SYSUT2% !]]> :(5)
</EXEC>
<DD NAME="SYSUT2" TYPE="FILE" DSN="file2" DISP="OLD" />
<DD NAME="SYSUT2B" TYPE="FILE" DSN="file2B" DISP="OLD" />
</STEP>
<STEP NAME="STEP0003" >
<EXEC PGM="bjexu_ismut" />
<DD NAME="SYSPRINT" TYPE="SYSOUT" SYSOUT="A" />
<DD NAME="SYSUT2B" TYPE="FILE" DSN="file2B" DISP="OLD" />
<DD NAME="SYSIN" TYPE="DATA" >
<![CDATA[
!
DELETE ISAM,DD=SYSUT2B :(6)
!
]]>
</DD>
</STEP>
</JOB>
</HitachiBatchJobExec>
|
可変長索引順編成ファイルを可変長順編成ファイルに変換する例を次に示す。
<例1>入力元の可変長索引順編成ファイルからキー順にデータを読み込み,出力先へ書き込んでいる。
図3-45 可変長索引順編成ファイルを可変長順編成ファイルに変換
<?xml version="1.0" encoding="Shift_JIS" ?>
<HitachiBatchJobExec version="1.3" os="windows" >
<JOB NAME="SAMPLE4" >
<STEP NAME="STEP0001" >
<EXEC PGM="bjexu_ismut" />
<DD NAME="SYSPRINT" TYPE="SYSOUT" SYSOUT="A" />
<DD NAME="SYSUT1" TYPE="FILE" DSN="file1" DISP="OLD" />
<DD NAME="SYSUT2" TYPE="FILE" DSN="file2" DISP="NEW" />
<DD NAME="SYSIN" TYPE="DATA" >
<![CDATA[
!
INPFILE FILEORG=X :(1)
OUTFILE FILEORG=V,RECLEN=300 :(2)
REPRO INDD=SYSUT1, :(3)
OUTDD=SYSUT2 :(4)
!
]]>
</DD>
</STEP>
</JOB>
</HitachiBatchJobExec>
|
順編成ファイルを索引順編成ファイルに変換する例を次に示す。
<例2>ISAMライブラリの64ビット版のbjexu_ismut64プログラムを指定して,入力元の固定長順編成ファイルからデータを読み込み,出力先へ書き込んでいる。
図3-46 固定長順編成ファイルを固定長索引順編成ファイルに変換
<?xml version="1.0" encoding="Shift_JIS" ?>
<HitachiBatchJobExec version="1.3" os="windows" >
<JOB NAME="SAMPLE5" >
<STEP NAME="STEP0001" >
<EXEC PGM="bjexu_ismut64" /> :(1)
<DD NAME="SYSPRINT" TYPE="SYSOUT" SYSOUT="A" />
<DD NAME="SYSUT1" TYPE="FILE" DSN="file1" DISP="OLD" />
<DD NAME="SYSUT2" TYPE="FILE" DSN="file2" DISP="OLD" />
<DD NAME="SYSIN" TYPE="DATA" >
<![CDATA[
!
INPFILE FILEORG=F,RECLEN=80 :(2)
OUTFILE FILEORG=I :(3)
REPRO INDD=SYSUT1, :(4)
OUTDD=SYSUT2 :(5)
!
]]>
</DD>
</STEP>
</JOB>
</HitachiBatchJobExec>
|
索引順編成ファイルを作り直す例を次に示す。
<?xml version="1.0" encoding="Shift_JIS" ?>
<HitachiBatchJobExec version="1.3" os="windows" >
<JOB NAME="SAMPLE6" >
<STEP NAME="STEP0001" >
<EXEC PGM="bjexu_ismut" />
<DD NAME="SYSPRINT" TYPE="SYSOUT" SYSOUT="A" />
<DD NAME="SYSUT1" TYPE="FILE" DSN="file1" DISP="OLD" /> :(1)
<DD NAME="SYSUT2" TYPE="FILE" DSN="file2" DISP="OLD" /> :(1)
<DD NAME="SYSIN" TYPE="DATA" >
<![CDATA[
!
DELETE ISAM,DD=SYSUT1 :(2)
DELETE ISAM,DD=SYSUT2 :(2)
SET MAXCC=0 :(3)
DEFINE ISAM, :(4)
DD=SYSUT1,
ISRECL=(100),
ISRECFM=F,
ISKEY=(5,0,C)
DEFINE ISAM, :(4)
DD=SYSUT2,
ISRECL=(100),
ISRECFM=F,
ISKEY=(5,0,C)
!
]]>
</DD>
</STEP>
</JOB>
</HitachiBatchJobExec>
|
<?xml version="1.0" encoding="Shift_JIS" ?>
<HitachiBatchJobExec version="1.3" os="windows" >
<JOB NAME="SAMPLE7" >
<STEP NAME="STEP0001" >
<EXEC PGM="bjexu_ismut" />
<DD NAME="SYSPRINT" TYPE="SYSOUT" SYSOUT="A" />
<DD NAME="SYSUT1" TYPE="FILE" DSN="file1" DISP="OLD" /> :(1)
<DD NAME="SYSUT2" TYPE="FILE" DSN="file2" DISP="OLD" /> :(1)
<DD NAME="SYSIN" TYPE="DATA" >
<![CDATA[
!
DELETE ISAM,DD=SYSUT1 :(2)
DELETE ISAM,DD=SYSUT2 :(3)
SET LASTCC=0 :(4)
DEFINE ISAM, :(5)
DD=SYSUT1,
ISRECL=(100),
ISRECFM=F,
ISKEY=(5,0,C)
!
]]>
</DD>
</STEP>
</JOB>
</HitachiBatchJobExec>
|
JOB0001とJOB0002で,入力の索引順編成ファイルを共用することで,排他/共用ロック確保待ちになることなく同時に実行できるようになる。このため,入力ファイルを指定するDD要素でDISP="SHR"を指定する。
<?xml version="1.0" encoding="Shift_JIS" ?>
<HitachiBatchJobExec version="1.3" os="windows" >
<JOB NAME="JOB0001" >
<STEP NAME="S1" >
<EXEC PGM="bjexu_ismut" />
<DD NAME="SYSPRINT" TYPE="SYSOUT" SYSOUT="A" />
<DD NAME="SYSUT1" TYPE="FILE" DSN="file1" DISP="SHR" /> :(1)
<DD NAME="SYSUT2" TYPE="FILE" DSN="file2" DISP="OLD" /> :(2)
<DD NAME="SYSIN" TYPE="DATA" >
<![CDATA[
!
INPFILE FILEORG=I :(3)
OUTFILE FILEORG=I :(4)
REPRO KEY=1,
INDD=SYSUT1, :(5)
OUTDD=SYSUT2 :(6)
!
]]>
</DD>
</STEP>
</JOB>
</HitachiBatchJobExec>
|
<?xml version="1.0" encoding="Shift_JIS" ?>
<HitachiBatchJobExec version="1.3" os="windows" >
<JOB NAME="JOB0002" >
<STEP NAME="S1" >
<EXEC PGM="bjexu_ismut" />
<DD NAME="SYSPRINT" TYPE="SYSOUT" SYSOUT="A" />
<DD NAME="SYSUT1" TYPE="FILE" DSN="file1" DISP="SHR" /> :(1)
<DD NAME="SYSUT2" TYPE="FILE" DSN="file3" DISP="OLD" /> :(2)
<DD NAME="SYSIN" TYPE="DATA" >
<![CDATA[
!
INPFILE FILEORG=I :(3)
OUTFILE FILEORG=I :(4)
REPRO KEY=1,
INDD=SYSUT1, :(5)
OUTDD=SYSUT2 :(6)
!
]]>
</DD>
</STEP>
</JOB>
</HitachiBatchJobExec>
|
All Rights Reserved. Copyright (C) 2009, 2016, Hitachi, Ltd.