この章では、提供される JCL のサポートについて説明します。
この COBOL 開発システムを使用すると、MVS メインフレーム アプリケーションをビルドし、それを Windows または UNIX 上の Enterprise Server にディプロイして、Enterprise Server で実行することができます。JCL ファイルは、開発システムまたは実行環境のいずれかで管理できます。
MVS アプリケーションの重要な部分は、そのアプリケーションの実行を制御する JCL ジョブストリームです。MSS は、PC または UNIX ワークステーションでのバッチ JCL ジョブストリームの使用をサポートする機能を備えています。統合開発環境 (Integrated Development Environment; IDE) 内では、次の操作ができます。
JCL サポートの主目的は、MSS での操作をメインフレームで行われる操作とできるだけ同様になるように維持することです。したがって、MSS では次の操作を行うことができます。
JCL サポートを使い始める前に、次のトピックについて理解を深める必要があります。
後続のセクションでは、これらの各トピックについて説明します。
MSS では、メインフレームで実行できる JCL ジョブストリームと同じ JCL ジョブストリームを実行できます。MSS は、JCL 文にエラーがないかを可能な限りチェックします。いくつかのパラメーター (特に DD 文のパラメーター) は、Windows または UNIX で動作している MSS では意味を持たないため、無視されます。このセクションでは、MVS メインフレーム環境の代わりに MSS 環境で JCL ジョブストリームを使用する場合に適用される違いについて説明します。
MSS は、MVS JCL と VSE JCL の両方をサポートしています。後続の各セクションでは、MVS JCL と VSE JCL に対するサポートのレベルについて説明します。
次の各セクションでは、サポートされている MVS JCL の機能と文について説明します。
次の MVS JCL 機能がサポートされています。
次の MVS JCL 機能はサポートされていません。
MSS によってサポートされる MVS JCL 文の詳細については、このセクションの後の方で説明します。
MSS は、直接的に、または TSO SUBMIT コマンドと Micro Focus 拡張の ASUBMIT によって MVS JCL ジョブストリームの実行をサポートします。これらの TSO コマンドは、IKJEFT01 ユーティリティで実行できます。
MVS JCL ジョブストリームとカタログ式プロシージャが含まれているファイルは、PC または UNIX マシン上で作成できます。カタログ式プロシージャは、プロシージャ ライブラリーと呼ばれる区分データ セットのメンバーとして格納する必要があります。プロシージャ ライブラリーは、次の 2 つの方法で MSS に対して定義されます。
MSS は、これらのライブラリーを上記の順に検索します。
ジョブが実行用にエンタープライズ サーバーへサブミットされた場合、その結果は、次のように JOB 文の TYPRUN パラメーターの設定によって異なります。
TYPRUN=SCAN | 構文がスキャンされます。 |
TYPRUN=COPY | ジョブストリームが SYSOUT データ セットにコピーされます。 |
TYPRUN=HOLD | 明示的に実行用にリリースされるまでジョブが保留されます。 |
No TYPRUN | リソースが使用可能であることを前提として、ジョブがすぐに実行されます。 |
MVS JCL 文の詳細については、マニュアル 『IBM OS/390 MVS JCL Reference』を参照してください。
次の MVS JCL 文がサポートされています。
文 | 説明 |
---|---|
DD | データ セットの割り当てとディスポジションを定義します。 |
EXEC | 実行されるプログラムまたはカタログ式プロシージャを含めて、ジョブ ステップを定義します。 |
|
MVS JCL 文の条件付き実行を指定します。 |
INCLUDE | 定義済みの MVS JCL 文をジョブストリーム内のどこにインクルードするのかを指定します。 |
JCLLIB | プロシージャ ライブラリーとそれらのライブラリーの検索順序を指定します。 |
JOB | ジョブを定義します。MSS では、ジョブストリームごとに 1 つのジョブだけがサポートされます。 |
JOBLIB | EXEC 文で識別されたプログラムが検索されるプライベート ライブラリーを指定します。 |
PROC | インストリーム MVS JCL プロシージャの開始を定義します。 |
PEND | インストリーム MVS JCL プロシージャの終了を定義します。 |
SET | シンボリック パラメーターに割り当てられる値を定義します。 |
STEPLIB | EXEC 文で識別されたプログラムが検索されるプライベート ライブラリーを指定します。 |
OUTPUT | ジョブ エントリ サブシステムで SYSOUT データ セットを印刷する場合に使用する処理オプションを指定します。MSS では、次のパラメーターだけがサポートされます。
|
次の MVS JCL 文はサポートされていません。これらは、正しい構文かどうかのみチェックされます。
文 | 説明 |
---|---|
COMMAND | コマンドを MVS および JES2 に発行します。 |
CNTL | プログラム制御文のセットの開始を定義します。 |
ENDCNTL | プログラム制御文のセットの終了を定義します。 |
XMIT | JES3 からレコードを送信します。 |
次の各セクションでは、VSE JCL のサポートについて説明します。
次のリストでは、VSE JCL のサポートに適用される一般的な制限事項をいくつか示します。個々の文のサポートについては、『VSE JCL および POWER 文』と 『POWER 文』のセクションを参照してください。
VSE JCL および POWER 文に対して用意されているサポートのレベルを次の表に示します。各文の「サポート レベル」列は、文が完全に処理されるのか、あるいは正しい構文かどうかをチェックするために構文解析のみ行われるのかを示しています。この表にリストされていない VSE JCL および POWER 文はサポートされません。
文 | パラメーター | サポート レベル |
---|---|---|
// ASSGN | SYSxxx | 構文解析 |
",Device" | 構文解析 | |
"[,TEMP|PERM]]" | 構文解析 | |
"[,VOL-volser]" | 構文解析 | |
// ASSGN | SYSxxx | 処理 |
",Device" | 処理 | |
"[,TEMP|PERM]]" | 処理 | |
// ASSGN | SYSxxx | 構文解析 |
",Device" | 構文解析 | |
"[,mode|ALT]" | 構文解析 | |
"[,TEMP|PERM]]" | 構文解析 | |
"[,VOL-volser]" | 構文解析 | |
// DATE | システム設定に応じて mm/dd/yy または dd/mm/yy | 構文解析 |
//DLBL | filename | 処理 |
",’fileid’" | 処理 | |
"[,date]" | 構文解析 | |
"[,code]" | 構文解析 | |
"[,DSF]" | 構文解析 | |
"[,BLKSIZE=n]" | 処理 | |
"[,CISIZE=n]" | 構文解析 | |
//DLBL | filename | 処理 |
",’fileid’" | 処理 | |
"[,exp-date]" | 構文解析 | |
"[,VSAM]" | 処理 | |
"[,DSF]" | 構文解析 | |
"[,BUFSP=n]" | 構文解析 | |
"[,BUFND=n]" | 構文解析 | |
[BUFNI=n] | 構文解析 | |
"[,CAT=catname]" | 構文解析 | |
"[,DISP=(disp,disp,disp)]" | 処理 | |
"[,RECORDS=primary,secondary]" | 構文解析 | |
"[,CISIZE=n]" | 構文解析 | |
// EXEC | PROC=procname | 処理 |
"[,parms]" | 処理 | |
// EXEC | [PGM=]progname | 処理 |
"[,REAL]" | 構文解析 | |
"[,SIZE=size]" | 構文解析 | |
"[,GO]" | 構文解析 | |
"[,PARM=’value’]" | 処理 | |
// EXTENT | [logical-unit] | 構文解析 |
",[volser]" | 構文解析 | |
",[type]" | 構文解析 | |
",[seqnumber]" | 構文解析 | |
",[location]" | 構文解析 | |
",[quantity]" | 構文解析 | |
",[split-cylinder-track]" | 構文解析 | |
// GOTO | [label | $EOJ] | 処理 |
// IF | { $RC | $MRC | parameter-name } | 処理 (構文解析のみ行われる parameter-name を除く) |
operator | 処理 | |
value | 処理 | |
[OR|AND] | 処理 | |
{ $RC | $MRC | parameter-name } | 処理 | |
operator | 処理 | |
value | 処理 | |
THEN | 処理 | |
// JOB | jobname | 処理 |
[accounting info] | 処理 | |
// LIBDEF | type | 処理 |
"[,SEARCH=(lib1,slib1,…lib15,slib15)]" | 処理 | |
"[,CATALOG=lib.slib]" | 処理 | |
"[,TEMP|PERM]" | 構文解析 | |
// LIBDEF | type | 構文解析 |
"[,SEARCH=(lib1,slib1,…lib15,slib15)]" | 構文解析 | |
"[,CATALOG=lib.slib]" | 構文解析 | |
"[,TEMP|PERM]" | 構文解析 | |
// LIBDROP | type | 処理 |
"[,definition-type]" | 処理 | |
"[,TEMP|PERM]" | 構文解析 | |
// LIBDROP | type | 構文解析 |
"[,definition-type]" | 構文解析 | |
"[,TEMP|PERM]" | 構文解析 | |
// LIBLIST | type | 処理 |
"[,partition]" | 構文解析 | |
"[,SYSxxxx]" | 構文解析 | |
// LISTIO | type | 処理 |
"[,partition]" | 構文解析 | |
"[,outdev]" | 構文解析 | |
// LIBSERV | テープ ライブラリー サーバーに要求を送信する | 構文解析 |
// LOG および // NOLOG | 構文解析 | |
// MTC | operation | 構文解析 |
"[,device]" | 構文解析 | |
// ON | {$RC operator n | $CANCEL |$ABEND } | 処理 |
[{OR|AND} condition] | 処理 | |
{$RC operator n | $CANCEL |$ABEND } | 処理 | |
[GOTO label | CONTINUE] | 処理 | |
// OPTION | parm | 構文解析 |
"[,parm2,…….]" | 構文解析 | |
// PAUSE | Comment data | 構文解析 |
// PROC | [parm=value] | 処理 |
// PWR | PRELEASE [operands] !] | 処理 |
PHOLD[operands | 構文解析 | |
// RESET | type | 処理 |
// SETPARM | Parm=value | 処理 |
"[,parm=value,………]" | 処理 | |
// SETPFIX | 構文解析 | |
// STDOPT | "Option[,option2…]" | 構文解析 |
// TLBL | filename | 処理 |
",’fileid’" | 処理 | |
"[,date]" | 構文解析 | |
"[,volser]" | 構文解析 | |
"[,volseq]" | 構文解析 | |
"[,fileseq]" | 構文解析 | |
"[,generation]" | 構文解析 | |
"[,version]" | 構文解析 | |
// UPSI | nnnnnnnn | 処理 |
// ZONE | EAST/hh/mm または WEST/hh/mm | 構文解析 |
/. label | 処理 | |
/* | 処理 | |
./ | 処理 | |
* | 処理 | |
/+ | 処理 |
POWER 文に対して用意されているサポートのレベルを次の表に示します。各文の「サポート レベル」列は、文が完全に処理されるのか、あるいは正しい構文かどうかをチェックするために構文解析のみ行われるのかを示しています。この表にリストされていない POWER 文はサポートされません。
文 | パラメーター | サポート レベル |
---|---|---|
* $$ JOB | JNM=jobname | 処理 |
[,DISP=disp] | 構文解析 | |
[,PRI-pri] | 構文解析 | |
[,CLASS=class] | 構文解析 | |
[,NTFY=ntfy-option] | 構文解析 | |
[,USER='user info'} | 構文解析 | |
FROM=user_id | 構文解析 | |
LOG=x | 構文解析 | |
BRTNC=xxx | 構文解析 | |
DUETIME=options | 構文解析 | |
[,BLDG=x] | 構文解析 | |
[,DEPT=x] | 構文解析 | |
[,ROOM=x] | 構文解析 | |
[,EOJMSG=YES] | 構文解析 | |
[,PWD=x] | 構文解析 | |
[,PROGR=x] | 構文解析 | |
SYSID=(node_id,user_id) | 構文解析 | |
NETACCT=account_no | 構文解析 | |
XDEST=(node_id,user_id) | 構文解析 | |
LDEST=(node_id,user_id) | 構文解析 | |
PDEST=(node_id,user_id) | 構文解析 | |
SEC=(user_id,password) | 構文解析 | |
* $$ LST | [,DISP=disp] | 処理 |
[,PRI-pri] | 処理 | |
[,CLASS=class] | 処理 | |
[,UNIT=addr] | 処理 | |
[,LST=SYSxxx] | 処理 | |
[,FNO=xxx] | 処理 | |
[,FCB=xxxxxx] | 処理 | |
[,JSSEP=x] | 処理 | |
[,RBS=nnnn] | 処理 | |
RBM=(norbm1,norbm2) | 処理 | |
RBC=norbc | 処理 | |
BRTNC=xxx | 処理 | |
PURGE=nnn | 処理 | |
DEST=(node_id,user_id,subsystem) | 処理 | |
PRMODE=value | 処理 | |
REMOTE=remote_id | 処理 | |
CMPACT=name | 処理 | |
SYSID=n | 処理 | |
DIST=distcode | 処理 | |
TADDR=(tapeaddr,mode) | 処理 | |
USER=user_info | 処理 | |
PWD=password | 処理 | |
BURST=x | 処理 | |
CHARS=tablename | 処理 | |
COPYG=(groupvalue) | 処理 | |
DLFT=x | 処理 | |
FLASH=(overlayname,count) | 処理 | |
MODIFY=(copymodname,tablename) | 処理 | |
[,PAGEDEF=xxx] | 処理 | |
[,FORMDEF=xxxx] | 処理 | |
* $$ PUN | 処理 | |
JNM=jobname | 処理 | |
CLASS=class | 処理 | |
DISP=disposition | D | T | 処理 | |
PRI=priority | 処理 | |
PUN=punchaddr | 処理 | |
COPY=n | 処理 | |
FNO=formno | 処理 | |
RBS=norbs | 処理 | |
RBM=(norbm1,norbm2) | 処理 | |
RBC=norbc | 処理 | |
JSEP=(n,option) | 処理 | |
BRTNC=YES | NO | 処理 | |
PURGE=NO | nnnn | 処理 | |
DEST=(node_id,user_id,subsystem) | 処理 | |
PRMODE==x | 処理 | |
SYSID=n | 処理 | |
DIST=distcode | 処理 | |
USER=userinfo | 処理 | |
PWD=password | 処理 | |
* $$ SLI | ||
MEM-membername | 構文解析 | |
,[.type] | 構文解析 | |
,S=lib1.sublib,lib2.sublib2] | 構文解析 | |
Sublib. | 構文解析 | |
bookname | 構文解析 | |
* $$ SLI | ||
ICCF=membername, | 処理 | |
LIB=(libnumber,password) | 処理 | |
* $$ DATA | name | 構文解析 |
* $$ CTL | CLASS=class | 構文解析 |
* $$ EOJ | 処理 |
VSE では、シャットダウンまでシステム上で実行される任意のジョブに使用可能な値をシステム スタートアップ時にいくつか設定できます。MSS は、構成ファイルを使用して、この動作をエミュレートします。構成ファイルでは、次のことに関する情報を指定できます。
MSS は、各ジョブの開始時に構成ファイルを読み取ります。そのため、ジョブを実行してから構成ファイルを変更した場合は、そのジョブを再実行すると、変更済みの構成ファイルが取得されます。
VSE JCL 構成ファイルは、名前と値のペアー エントリがいくつか含まれているテキスト ファイルです。各エントリは、別々の行にあります。空白行やアスタリスク (*) で始まる行は、コメント行として扱われます。
名前と値のペアー エントリのフォーマットを次に示します。
デバイスの場合:
device_id id device_type type
補足説明:
id | はデバイス アドレスを指定する 3 桁のコードです。 |
type | は PRINTER、READER、PUNCH、DISK、または TAPE のいずれかです。 |
論理装置の場合:
assgn_lu lu assgn_device device
補足説明:
lu | は使用する論理装置です。 |
device | は論理装置 lu に割り当てるデバイスです。 |
標準ラベルの場合:
dlbl_dd dd dlbl_dsn dsn
補足説明:
dd | は使用するラベルです。 |
dsn | はラベル dd に割り当てるデータ セット名です。 |
注:パーティションを定義するための名前と値のペアー エントリもありますが、それを指定しても効果はありません。
VSE JCL 構成ファイルを MSS で使用できるようにするには、VSE_STARTUP_CFG 環境変数を使用してそのファイルのロケーションを指定します。例えば、/home/setup/vseconfg.cfg で構成ファイルを作成した場合は、次のように VSE_STARTUP_CFG を設定します。
VSE_STARTUP_CFG=/home/setup/vseconfg.cfg export VSE_STARTUP_CFG
* ================================================================== * = VSE SYSTEM START-UP = * ================================================================== partition BG * ================================================================== * = devices = * ================================================================== device_id 02A device_type PRINTER * device_id 02B device_type PRINTER * device_id 02C device_type PRINTER * device_id 02D device_type PRINTER * device_id 02E device_type PUNCH * device_id 02F device_type READER * device_id 42E device_type PRINTER * device_id 43E device_type PRINTER * device_id 44E device_type PRINTER * device_id 45E device_type PRINTER * device_id 46E device_type PRINTER * device_id 020 device_type DISK * ================================================================== * = permanent assignments = * ================================================================== * assgn_lu SYSIPT assgn_device 02F * assgn_lu SYSLST assgn_device 02A * assgn_lu SYS001 assgn_device 02B * assgn_lu SYS002 assgn_lu_2 SYS001 * assgn_lu SYS002 assgn_lu_2 SYSLST * ================================================================== * = standard labels = * ================================================================== dlbl_dd CMAST dlbl_dsn CUSTOMER.MASTER.FILE
MSS では、IBM の有効文字リストを使用して JCL プログラム名の妥当性検査が行われます。このリスト内の有効文字は、@、#、および $ です。ただし、一部のコードページでは、これらの文字の変換によって名前の妥当性検査との非互換性が生じます。 JCL プログラムの名前でこれらの特殊文字を使用したときに問題が生じた場合は、その問題を Micro Focus に報告してください。
Enterprise Server 上の JCL アプリケーションは、EBCDIC または ASCII のいずれかで実行できます。詳細については、『Mainframe Subsystem Support 構成と管理』の『JCL 対応エンタープライズ サーバーの管理』の章にある文字集合のセクションを参照してください。
高度なデータ セット情報『高度なデータ セット情報』の章で説明しているように、ほとんどのメインフレーム データ セット編成とレコード フォーマットがサポートされています。
また、ジョブストリームに含まれている一時的なデータ セットとインストリーム データ セットもサポートされます。
MSS は、データ セットを割り当ててパラメーターを渡すために、アプリケーション プログラムと MVS の間のインターフェイスをエミュレートします。これらの機能について、次に説明します。
MVS では、プログラムで使用されるファイル名と JCL で使用される対応データ セット名の間の直接接続が提供されます。例えば、COBOL プログラム内の SYSUT1 の場合、
SELECT INFILE ASSIGN TO UT-S-SYSUT1
は次の文に接続し、
//SYSUT1 DD DSN=DSNAME1,DISP=OLD
DSNAME1 という名前のデータ セットを表す PC ファイルをプログラムに割り当てます。
また、SYSUT2 の場合、
SELECT OUTFILE ASSIGN TO UT-S-SYSUT2
は次の文に接続し、
//SYSUT2 DD DSN=DSNAME2,DISP=(NEW,CATLG),...
DSNAME2 という名前のデータ セットを表す PC ファイルをプログラムに割り当てます。そのファイルは、ジョブストリームの実行時に自動的に作成され、カタログされます。
JCL PARM パラメーターで指定されたパラメーターは、メインフレームと同じルールを使用してプログラムに渡されます。パラメーター文字列で指定されるオプションは、スラッシュ (/) 文字によってアプリケーション パラメーターから分離されます。その例を次に示します。
PARMS(application-parameters/run-time-options)
パラメーターを渡すときに使用されるリンケージ領域は次のとおりです。
01 PARM. 03 PARM-LENGTH PIC 9(4) COMP. 03 PARM-DATA PIC X OCCURS 100.
Server Enterprise Edition JCL サポートでは、ブラウザー ベースの SDSF に似たスプール ビューアーを使用してジョブおよびレポート出力の表示と参照を行う機能が提供されます。このサポートには他の出力やドキュメント管理ソフトウェア自体は含まれませんが、代わりにプリンター出口モジュールを利用してバッチ印刷機能を他のサードパーティまたは外部の印刷サブシステムと統合することができます。
プリンター出口モジュール (多くの場合、単にプリンター出口と略される) は、バッチ プリンターのサーバー実行プロセス (Server Execution Process; SEP) に関連付けることができるプログラムです。SEP は、出力をプリンターに直接書き込むのではなく、特定のプリンター出口モジュールに渡します。そのプリンター出口モジュールは、出力を処理してから印刷することができます。例えば、円グラフなどのグラフィカルな要素を使用して、図を示す出口を記述することができます。
ユーザーは、バッチ プリンター SEP ごとに一意のプリンター出口モジュールを指定できます。つまり、必要であれば、特化された出力処理を出力クラスごとにセットアップすることができます。プリンター出口モジュールは、JCL に含まれている関連 OUTPUT 文情報 (出力先、コピー部数、ルーティング、フォーム定義など) にフルにアクセスできます。
プリンター出口モジュールの例 (sampprnx) は、$COBDIR/demo/esjcl に用意されています。この例では、単に各行を取得し、COBOL ランタイム システムの印刷ルーチンを呼び出してその行を印刷しています。
プリンター出口は COBOL で記述されている必要はありませんが、sampprnx に示してあるようにパラメーターを処理する必要があります。これらのパラメーターは、cascbprn.cpy コピーブックで定義され、記録されます。COBOL プリンター出口は、非メインフレーム方言、つまり CHARSET(ASCII) を使用してコンパイルする必要があります。また、これらのプリンター出口は、.int、.gnt、または .dll としてビルドしなければなりません。
sampprnx の連絡節と、cascbprn.cpy を次に示します。
linkage section. copy 'cascbprn.cpy' replacing ==(ws)== by ==lk==. 01 lk-catalog-rec. copy 'mvscatlg.cpy' replacing ==(TAG)== by ==lk==. 01 LK-OUTPUT. copy mvsdout replacing ==()== by ==LK-OUTPUT==.
01 (ws)-prn-exit-interface. *> What is the format of the structure used to call the *> printer exit. Will change with major revisions to this *> Data Structure. 03 (ws)-prn-version pic x(4) comp-5. 88 (ws)-prn-current-version-88 value 1. *> The printer exit is driven once as the batch printer SEP *> starts, once for every print job, and once when the batch *> printer is shut down. 03 (ws)-prn-command pic x comp-5. 88 (ws)-prn-exit-init-88 value 0. 88 (ws)-prn-exit-print-88 value 1. 88 (ws)-prn-exit-term-88 value 2. *> For the requested print job. (ws)-prn-exit-print-88 *> what is the character set of the data being printed. 03 (ws)-prn-char pic x. 88 (ws)-prn-char-ascii-88 value 'A'. 88 (ws)-prn-char-ebcdic-88 value 'E'. 88 (ws)-prn-char-unknown-88 value '?'. *> This is the file status returned by driving the procedure *> pointers: *> (ws)-prn-sysout-open-pptr *> (ws)-prn-sysout-read-next-pptr *> (ws)-prn-sysout-close-pptr *> 03 (ws)-prn-sysout-status pic x(2). 88 (ws)-prn-sysout-status-ok-88 value '00'. 88 (ws)-prn-sysout-status-eof-88 value '10'. ***--------------------------------------------------------------* *> Procedure pointer to drive the open of the sysout dataset *> (ws)-prn-exit-print-88 only 03 (ws)-prn-sysout-open-pptr procedure-pointer. *> Procedure pointer to a read of the sysout dataset *> (ws)-prn-exit-print-88 only 03 (ws)-prn-sysout-read-next-pptr procedure-pointer. *> Procedure pointer to drive the close of the sysout dataset *> (ws)-prn-exit-print-88 only 03 (ws)-prn-sysout-close-pptr procedure-pointer. *> Procedure pointer to allow a message to be driven to the *> console. (all functions) 03 (ws)-prn-message-pptr procedure-pointer. *> Procedure pointer to retrieve the next OUTPUT statement. *> Returns a null (ws)-prn-output-record-ptr if none are *> available. *> (ws)-prn-exit-print-88 only 03 (ws)-prn-output-read-next-pptr procedure-pointer. 03 procedure-pointer. 03 procedure-pointer. ***--------------------------------------------------------------* *> A pointer to the data structure contained in Spool.cpy *> (ws)-prn-exit-print-88 only 03 (ws)-prn-spool-record-ptr pointer. *> A pointer to the data structure contained in mvscatlg.cpy *> (ws)-prn-exit-print-88 only 03 (ws)-prn-catalog-record-ptr pointer. *> The printer handle for the printer assigned to the this SEP 03 (ws)-prn-printer-handle pic x(4) comp-5. *> The LRECL of the dataset being printed. *> (ws)-prn-exit-print-88 only 03 (ws)-prn-lrecl pic x(4) comp-5. *> The Maximum LRECL of the dataset being printed. *> Same as ws-prn-lrecl. *> (ws)-prn-exit-print-88 only 03 (ws)-prn-lrecl-max pic x(4) comp-5. *> The Minimum LRECL of the dataset being printed. *> (Variable Length SYSOUT Datasets. *> (ws)-prn-exit-print-88 only 03 (ws)-prn-lrecl-min pic x(4) comp-5. 03 pic x(4). *> The length of the buffer used to return data when driving *> (ws)-prn-sysout-read-next-pptr *> (How much data was returned) *> (ws)-prn-exit-print-88 only 03 (ws)-prn-buffer-len pic x(4) comp-5. 03 (ws)-prn-buffer. 05 (ws)-prn-buffer-byte occurs 384 times pic x comp-x. *> The "MVS" Name of the document being printed. *> (ws)-prn-exit-print-88 only 03 (ws)-prn-document. 05 (ws)-prn-document-len pic x(2) comp-5. 05 (ws)-prn-document-title pic x(128). *> The name of the batch printer driving this print job. 03 (ws)-prn-printer. 05 (ws)-prn-printer-name-len pic x(2) comp-5. 05 (ws)-prn-printer-name pic x(128). *> The "physical" filename for the file being printed. *> (eg. Where does it reside on the disk pack) *> (ws)-prn-exit-print-88 only 03 (ws)-prn-sysout-file-name pic x(260). *> A pointer to an OUTPUT Statement associated with this *> SYSOUT Dataset. Points to the data structure contained *> in IDADOUTP.CPY *> (ws)-prn-exit-print-88 only 03 (ws)-prn-output-record-ptr pointer.
出口は、データセットに関連付けられている OUTPUT 文に (ws)-prn-output-record-ptr というポインターを通じてアクセスできます。このポインターは、cascbprn.cpy コピーブックで定義されます。これは、IDADOUTP.cpy コピーブックで定義された構造体をポイントします。これの実例については、sampprnx の process-output-statements セクションを参照してください。
プリンター出口モジュールを使用するように設定されたプリンター SEP は、そのモジュールを次のように呼び出します。
プリンター出口モジュールは、Enterprise Server の永続的機能として定義されたバッチ プリンター SEP、セッション中に作成されたバッチ プリンター SEP、またはその両方に関連付けることができます。また、プリンター出口モジュールを複数のバッチ プリンター SEP に関連付けることもできます。
出口を使用したプリンター SEP を永続的機能として作成するには、Server Enterprise Edition Administration の [JES Printer] タブを使用します。
プリンター出口モジュールの実行可能ファイルは、MSS トランザクション パス、JES プログラム パス、または COBPATH のいずれかになければなりません。また、出口が Windows dll の場合は、PATH 環境変数で指定されたディレクトリにその dll が入っている必要があります。
エンタープライズ サーバーでは、ACCEPT FROM CONSOLE および DISPLAY UPON CONSOLE 文が含まれているジョブを実行できます。実行が DISPLAY 文に達すると、ディスプレイ テキストがコンソール ログとジョブ ログに表示されます。実行が ACCEPT FROM CONSOLE 文に達すると、ジョブは一時停止し、ESMAC 内のページを使用して入力を求めます。詳細については、Server Enterprise Edition の 『Mainframe Subsystem Support 構成と管理』にあるJCL ジョブとの対話のセクションを参照してください。
デフォルトでは、Server Enterprise Edition は ASCII 文字セットを使用します。 EBCDIC を使用する場合は、個々のエンタープライズ サーバーについて、 このデフォルトをオーバーライドすることができます。
エンタープライズ サーバー用に ASCII または EBCDIC を選択するには、 環境変数 MF_CHARSE を使用します。これは、ES Admin で 指定します。エンタープライズ サーバーに対する [Edit] ページの [General] タブでは、[Configuration Information] フィールドの [ES-Environment] セクションに 次の情報を入力します。
MF_CHARSET=E
または
MF_CHARSET=A
必要であれば、分かりやすくするためにこれらを次のように入力することもできます。
MF_CHARSET=EBCDIC
または
MF_CHARSET=ASCII
ただし 、意味があるのは最初の文字 (E または A) のみです。
プログラムは、エンタープライズ サーバーの文字セットと一致する CHARSET コンパイラ指令を使用してコンパイルする必要があります。EXEC PGM= JCL 文、DSN コマンドの RUN サブコマンド、または TSO CALL コマンドの結果として呼び出されたプログラムの場合は、システムによってユーザー プログラム データが適切に処理されます。
ASCII プログラムと EBCDIC プログラムは混合しないでください。混合する場合、必要な変換を行うのはユーザーの責任になります。コンパイラ指令は次のとおりです。
CHARSET(EBCDIC)
または
CHARSET(ASCII)
すべてのデータセットの文字セット属性が現在のシステム文字セットに設定されます。ファイルの文字セットに基づいて、LSEQ データセットと SYSIN インストリーム データ セットは、プログラムに適合するように自動的に変換されます。
これらの文では、EXEC 文で指定されたプログラムを検索するディレクトリが指定されます。
JOBLIB/STEPLIB 処理を有効にするには、次の操作を行います。
特定の STEPLIB または JOBLIB 文で参照される区分データ セットがカタログ エントリとして存在する場合は、DD が割り当てられます。STEPLIB または JOBLIB 連結で複数の区分データ セットが参照される場合は、存在するデータ セットだけが JOBLIB または STEPLIB 連結の一部としてマップされます。
STEPLIB および/または JOBLIB 文が含まれているジョブは、未変更の状態で引き続き実行されます。