EGL プログラムからの IMS 機能の使用

EGL プログラムで IMS™ 機能を使用できます。

次の表に、EGL プログラムで使用できる IMS 機能をリストします。表には、これらの機能の使用方法も要約されています。
表 1. IMS 機能とそれらを EGL で表す方法
IMS 機能 EGL 機能 コメント
プログラムのタイプ
IMS 会話型
  • converse ステートメントを使用するメイン・テキスト UI プログラム
  • プログラム・プロパティー: segmented = YES
  • ビルド記述子オプション: spaSize > 0
workDBType ビルド記述子オプションは、converse ステートメントでのデータの保存に DL/I または DB2® のどちらを使用するかを指定します。
IMS 非会話型またはメッセージ駆動型ファスト・パス (オプション 1)
  • converse ステートメントを使用するメイン・テキスト UI プログラム
  • プログラム・プロパティー: segmented = YES
  • ビルド記述子オプション: spaSize = 0
  • workDBType ビルド記述子オプションは、converse ステートメントでのデータの保存に DL/I または DB2 のどちらを使用するかを指定します。
  • imsFastPath ビルド記述子オプションが YES に設定されている場合は、ステートメントおよび EGL エラー処理が、IMS ファスト・パス・プログラムで許可されている内容に制限されます。
IMS 非会話型またはメッセージ駆動型ファスト・パス (オプション 2)
  • show ステートメントを使用するメイン textUI プログラム
  • プログラム・プロパティー: inputForm が設定されます
  • ビルド記述子オプション: spaSize > 0
  • workDBType ビルド記述子オプションは、show ステートメントでのレコードの受け渡しに DL/I または DB2 のどちらを使用するかを指定します。
  • imsFastPath ビルド記述子オプションが YES に設定されている場合は、ステートメントおよび EGL エラー処理が、IMS ファスト・パス・プログラムで許可されている内容に制限されます。
IMS 非会話型またはメッセージ駆動型ファスト・パス (オプション 3、テキスト書式なし) 入出力 PCB に関連付けられており、IMS/VS 向けに生成されるシリアル・レコードに対する get next の実行をループするメイン基本プログラム。 imsFastPath ビルド記述子オプションが YES に設定されている場合は、ステートメントおよび EGL エラー処理が、IMS ファスト・パス・プログラムで許可されている内容に制限されます。
トランザクション指向 BMP 入出力 PCB に関連付けられており、IMS BMP 向けに生成されるシリアル・レコードに対する get next の実行をループするメイン基本プログラム。  
バッチ指向 BMP 入出力 PCB に関連付けられており、IMS BMP 向けに生成されるが、シリアル・レコードを使用しないメイン基本プログラム。  
DL/I バッチ z/OS® バッチ用に生成され、DL/I を使用するメイン基本プログラム。  
標準 z/OS バッチ z/OS バッチ用に生成され、DL/I を使用するメイン基本プログラム。  
端末とプリンターのサポート
MFS ソース テキスト書式および印刷書式の FormGroup EGL は FormGroup の MFS ソースを生成します。
端末との通信
  • 入出力のための converse ステートメント
  • 次のプログラムの inputForm プロパティーが指定された show ステートメント
 
端末プリンターへの印刷出力
  • print ステートメント
  • 指定された pcbName および smsgq に設定されたプリンターのリソース関連
 
動的プリンター・サポート プリンター関連を実行時に動的に変更するには、converseVar.printerAssociation を設定します。  
/FORMAT modname formName
  • modname は 6 文字の FormGroup または別名に文字 O を連結したものです。
  • formName は 8 文字のテキスト書式の名前または別名です。
  • プログラムは inputForm プロパティーに、/FORMAT コマンドで使用する formName を設定する必要があります。
 
物理ページングおよび論理ページング 非サポート EGL 書式では、物理ページまたは論理ページの定義はサポートされていません。
MFS ソース生成のための SDF II 非サポート EGL の生成では、編集順序と特殊制御フィールドに関する知識が必要です。
SQL データベース・サポート
DB2 データベース定義およびアクセス SQLRecord 定義と SQL 入出力ステートメント EGL は、デフォルトの SQL ステートメントを作成します。#sql ディレクティブを使用してデフォルトを変更します。
DL/I データベース・サポート
使用する PSB @dli 複合プロパティーの psb プロパティーは、EGL PSBRecord のプログラム変数名を指定します。 EGL PSB は、IMS PSB 内の情報のサブセットです。
DL/I データベース定義およびアクセス PSBRecord 定義、DLISegment 定義、および DL/I I/O ステートメント。I/O ステートメントの usingPCB キーワードは、使用する PCB を指定します。 EGL は、デフォルトの SSA を作成します。#dli ディレクティブを使用してデフォルトを変更します。
DL/I ファスト・パス・データベース定義およびアクセス
  • DL/I データベース定義およびアクセスと同様
  • FLD 呼び出しおよび POS 呼び出しには dliLib.AIBTDLI()dliLib.EGLTDLI()、または vgLib.VGTDLI() を使用します。
  • 新規プログラムには dliLib.AIBTDLI() を使用することをお勧めします。
#dli ディレクティブを使用する場合は、EGL で 2 文字のコマンド・コードを使用できます。
IMS メッセージ・キュー
  • SerialRecord 定義
  • 代替 TP PCB に関連付けられたレコードを書き込むには、add ステートメントと close ステートメントを使用します。あるいは、vgLib.startTransaction() を使用します。
  • 入出力 PCB に関連付けられたレコードを読み取るには、get next ステートメントを使用します。
  • 出力キュー名を動的に変更するには、recordName.resourceAssociation を設定します。
入出力 PCB に関連付けられているシリアル・レコードに対し、EGL 基本プログラムで get next ステートメントを使用します。このレコードは、以前のプログラムで add ステートメントまたは vgLib.startTransaction() 関数によって挿入されている可能性があります。z/OS バッチに対してはサポートされません。
GSAM ファイル
  • SerialRecord 定義
  • GSAM ファイルに関連付けられているレコードにアクセスするには、addget next、および close ステートメントを使用します。
IMS BMP または z/OS バッチでのみサポートされています。
ファイル・サポート
順次ファイルのサポート seq または seqrs に設定されている fileName のリソース関連を含むシリアル・レコード
  • EGL で COBOL ファイル入出力が使用される場合は seq を使用します。
  • EGL でファイル入出力に Rational® COBOL Runtime が使用される場合は seqrs を使用します。
  • IMS BMP または z/OS バッチでのみサポートされています。
VSAM ファイルのサポート fileNamevsam またはvsamrs に設定されているリソース関連を含むシリアル・レコード、索引付きレコード、または相対レコード。
  • EGL で COBOL ファイル入出力が使用される場合は、vsam を使用します。
  • EGL でファイル入出力に Rational COBOL Runtime が使用される場合は vsamrs を使用します。
  • IMS BMP または z/OS バッチでのみサポートされています。
実行時のファイル名の動的変更 recordName.resourceAssociation seqrs または vsamrs を使用する必要があります。
COBOL DISPLAY ステートメント
  • sysLib.writeStdOut()
  • sysLib.writeStdErr()
出力宛先は、COBOL コンパイラー・オプション OUTDD で指定した DDNAME になります。 デフォルトでは、出力は IMS/VS のメッセージ領域を開始するジョブの DDNAME SYSOUT に書き込まれるか、または IMS BMP または z/OS バッチを実行する JCL の DDNAME SYSOUT に書き込まれます。
IMS メッセージ交換
即時プログラム間メッセージ交換
  • レコードを別の EGL プログラムまたは EGL 以外のプログラムに受け渡す transfer to transaction
  • spaSize ビルド記述子オプションが 0 に設定されている場合、これは非会話型メッセージ交換であり、レコードは作業データベースに受け渡されます。
  • spaSize ビルド記述子オプションが 0 よりも大きい場合、これは会話型メッセージ交換であり、レコードは SPA に受け渡されます。
  • 新規ロード・モジュールがあり、PSB はロード・モジュール名と一致している必要があるため、トランザクション名と PSB 名を変更する必要があります。
  • 2 つのプログラム間で FormGroup は同一でも異なっていてもかまいません。
据え置きプログラム間メッセージ交換 (メソッド 1)
  • 最初のプログラムは show ステートメントで終わります。 次のプログラムでは、inputForm に、show ステートメントに指定されたものと同じテキスト書式が設定される必要があります。
  • spaSize ビルド記述子オプションが 0 に設定されている場合、これは非会話型メッセージ交換であり、レコードは作業データベースに受け渡されます。
  • spaSize ビルド記述子オプションが 0 よりも大きい場合、 これは会話型メッセージ交換であり、レコードは SPA に受け渡されます。
  • 新規ロード・モジュールがあり、PSB はロード・モジュール名と一致している必要があるため、トランザクション名と PSB 名を変更する必要があります。
  • 2 つのプログラム間で FormGroup は同一でなければなりません。
据え置きプログラム間メッセージ交換 (メソッド 2) プログラムでは、converse ステートメントの前に、converse ステートメントを使用し、sysVar.transactionID に新しいトランザクション・コードが設定されます。 同一 EGL プログラム内でトランザクション名の変更が許可されます。プログラムは変更されないため、両方のトランザクションで同じ PSB および FormGroup が使用される必要があります。
その他
基本チェックポイント sysLib.commit() システム関数  
シンボリック・チェックポイント dliLib.AIBTDLI()dliLib.EGLTDLI()、または vgLib.VGTDLI() 以下の項目を参照してください。
再始動 (XRST 呼び出し) dliLib.AIBTDLI()dliLib.EGLTDLI()、または vgLib.VGTDLI() 以下の項目を参照してください。
ロールバック sysLib.rollback() システム関数  
ログ呼び出し sysLib.audit() システム関数 audit()を参照してください。
代替 TP PCB の PURG 呼び出し 出力 IMS メッセージ・キューに関連付けられているシリアル・レコードまたは印刷書式に対して close ステートメントを使用します。  
非同期処理 vgLib.startTransaction() startTransaction()を参照してください。

フィードバック