startTransaction()

システム関数 SysLib.startTransaction() は、メインプログラムを非同期に起動し、そのプログラムをプリンターまたは端末に関連付け、レコードを渡します。受信プログラムが EGL によって生成されている場合には、そのレコードは入力レコードの初期化で使用します。 受信側が VisualAge® Generator によって生成されている場合には、 そのレコードは作業用ストレージの初期化で使用します。

この関数のデフォルトの振る舞いは、同一 Java™ パッケージ内 CICS® 上で振る舞いを変更するには、プログラムの生成で使用するリンケージ・オプション・パーツに asynchLink エレメントを指定します。

Java プログラムは、同一マシン上の他の Java プログラムにのみ転送できます。
  SysLib.startTransaction(
    request anyBasicRecord in
    [, prID startTransactionPrId in
    [, termID CHAR(4) in ]])
request
基本レコードの名前。以下の形式になっている必要があります。
  • 最初の 2 バイト (SMALLINT 型または小数部のない BIN 型) に、開始するトランザクションに渡されるデータの長さが格納され、その後にトランザクションには渡されない 2 つのフィールド (このフィールドを含む) 用の 10 バイトが続きます。
  • 次の 8 バイト (CHAR 型) も渡されませんが、このバイトには始動するプログラムの名前が入ります。
  • 要求レコードの残りの部分は渡されます。
prID
この 4 バイト項目は、指定しても無視されます。
termID
この CHAR 型 4 バイト項目は、指定しても無視されます。termID を指定する場合は、prID を指定する必要があります。

IMS™ の考慮事項

SysLib.startTransaction() は、変更可能代替 PCB への挿入を行ないます。示された作業域はメッセージとして渡されます。 生成された COBOL プログラムは、自動的に余分の 2 バイトを、長さとトランザクションの間に追加し、長さ値に 2 を追加します。トランザクションは、関連付けられた端末とは関係なく開始されます。 Prid および recip は無視されます。

要求レコードの最大長は、32765 バイトです。

開始されたトランザクションは、システム IMSGEN に組み込まれ、非会話型トランザクションとして定義される必要があります。 開始されたトランザクションが EGL プログラムではない場合、I/O PCB に GU 呼び出しを発行してメッセージを取得しなければなりません。

SysLib.startTransaction() は、リモート・システムからプログラムを開始することはできません。

呼び出しが try ブロックにネストされていた場合は、sysVar.errorCode に値 00000203 が含まれることがあります。これは、おそらく無効なトランザクション ID が原因で、呼び出しが失敗したことを表します。

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.