システム関数 SysLib.startTransaction
は、メインプログラムを非同期に起動し、そのプログラムをプリンターまたは端末に関連付け、レコードを渡します。受信プログラムが EGL によって生成されている場合には、そのレコードは入力レコードの初期化で使用します。受信側が VisualAge® Generator によって生成されている場合には、
そのレコードは作業用ストレージの初期化で使用します。
この関数は、
z/OS® バッチ・プログラムとして生成されたプログラムではサポートされません。
この関数は、
iSeries™ COBOL プログラムとして生成されたプログラムではサポートされません。
この関数のデフォルトの振る舞いは、同一 Java™ パッケージ内、または同一 CICS® システム上に存在するプログラムを始動することです。この振る舞いを変更するには、呼び出し側プログラムの生成に使用されるリンケージ・オプション・パーツに asynchLink エレメントを指定します。
Java プログラムは、同一マシン上の他の Java プログラムにのみ転送できます。
SysLib.startTransaction(
request anyBasicRecord in
[, prID startTransactionPrId in
[, termID CHAR(4) in ]])
- request
- 基本レコードの名前。以下の形式になっている必要があります。
- 最初の 2 バイト (SMALLINT 型または小数部のない BIN 型) に、開始するトランザクションに渡されるデータの長さが格納され、その後にトランザクションには渡されない 2 つのフィールド (このフィールドを含む) 用の 10 バイトが続きます。値は 32767 バイトを超えてはいけません。ターゲットが Java プログラムである場合、32767 バイト以下の値を指定しますが、ターゲットが iSeries 上の COBOL プログラムである場合は、
4095 バイト以下の値を指定します。
- 次の 8 バイト (CHAR 型) も渡されませんが、このバイトには始動するプログラムの名前が入ります。
- 次の 8 バイト (CHAR 型) も渡されませんが、その内容はターゲットによって異なります。
- EGL 生成の Java ターゲットの場合は、これらのバイトには、始動するプログラムの名前が入ります。
- CICS 上のターゲットでは、これらのバイトにはトランザクション ID が入り、最後の 4 バイトはブランクにします。
- 要求レコードの残りの部分は渡されます。
- prID
- この 4 バイト項目は、指定しても無視されます。
- prID
- このオプションの BIN タイプ、CHAR タイプ、または SMALLINT タイプの 4 バイト項目は、CICS でのみ使用します。ただし、リモートの CICS 領域上のプログラムが呼び出された場合には無視されます。
ビルド記述子オプション printDestination が TERMINALID
に設定されている場合、SysLib.startTransaction
の呼び出しによってトランザクションが開始された場合、およびその関数の termID パラメーターが
2 進ゼロに設定されている場合には、ConverseVar.printerAssociation
の初期値は、prID パラメーターに指定された値です。この場合には、CICS START コマンドが、関連付けられた端末とは関係なく発行されます。
デフォルトによって、開始されたトランザクションは、現行端末に関連付けされ、prID の値は無視されます。同様に、termID が 2 進ゼロではない場合には、prID の値は無視されます。
- prID
- このオプションの CHAR 型 4 バイト項目は、iSeries 上の COBOL プログラムへの転送時のみに使用されます。この項目には、非同期ジョブに使用される出力キューの値が入ります。デフォルト値は VGEN です。プログラムが ConverseVar.printerAssociation を実行する前に、出力キューを定義する必要があります。
- termID
- この CHAR 型 4 バイト項目は、指定しても無視されます。termID
を指定する場合は、prID を指定する必要があります。
- termID
- このオプションの CHAR 型 4 バイト項目は、CICS 上の COBOL プログラムへの転送時のみに使用されます。この他の場合、この項目は無視されます。この項目は、開始する
CICS トランザクションに関連付ける端末 ID またはプリンター ID を指定します。
現行端末に関連付けられる新規トランザクションを開始するには、termID をその端末の ID に設定するのではなく、transfer 文を使用します。
termID
を指定する場合は、prID を指定する必要があります。
- termID
- このオプションの CHAR 型 4 バイト項目は、指定しても無視されます。
CICS に対しては、以下の文が適用されます。
- 開始済みトランザクションには、プログラムの PCT および PPT エントリーが必要です。開始済みトランザクションが EGL によって生成されていない場合、または
VisualAge Generator
によって生成されていない場合には、プログラムは受け渡される作業域を取得するために
CICS RETRIEVE を発行する必要があります。
- システム変数 SysVar.errorCode には、次の表で示されている任意の戻りコードが含まれます。
SysVar.errorCode の値 |
意味 |
00000000 |
正常終了 |
00000203 |
トランザクション ID が無効です |
00000205 |
端末 ID が無効です |
00000206 |
パラメーターが無効です |
00000207 |
システム ID が無効です |
00000208 |
リンクのサービスが休止しています |
ffrrrrrr |
その他の CICS
エラー。ここで、ff は EIBFN バイト 0 の 16 進法表記で、rrrrrr は EIBRCODE バイト 0-2 の 16 進法表記です。 |
COBOL プログラムでは、EGL Server for iSeries が次の 2 つのコマンド言語
(CL) プログラムによって SysLib.startTransaction のサポートを提供しています。
- CREATX
- 以下のように機能します。
- 現在のジョブ番号を取得する。
- ユーザー・データをデータ・キュー VGCREATX に送信する。
- ジョブ CREATXJOB を開始して、CL プログラム CREATXPP を始動する。
- CREATXPP
- 以下のように機能します。
- ジョブ番号をキーとして使用して、データ・キュー VGCREATX からデータを検索する。
- ユーザー・レコードのバイト 3 から 11 に指定された非同期 CL プログラムを呼び出す。