目次 前 次 PDF


Oracle Tuxedo Application Runtime for IMSリファレンス・ガイド

Oracle Tuxedo Application Runtime for IMSリファレンス・ガイド
Oracle Tuxedo Application Runtime for IMS (Tuxedo ART for IMS)リファレンス・ガイドでは、Tuxedo ART for IMSソフトウェアとともに配布されるシステム・プロセスおよびコマンドについて説明します。
この章には次のトピックが含まれます:
Tuxedo ART for IMSのユーティリティ
表1に、Tuxedo ART for IMSのユーティリティを示します。
 
ARTIBMPサーバーをアクティブ化するために使用されるユーティリティ。
ARTICTLサーバーのバイナリ制御ブロック・ジェネレータ。
chgcobol.sh
名前
chgcobol.sh - Tuxedo ART for IMSでのMicro Focus COBOLとCOBOL-ITの間の切替えに使用されるシェル・スクリプト。
形式
chgcobol.sh [mf|cit]
説明
Micro Focus COBOLとCOBOL-ITの両方を同じホストにインストールしておくことができ、相互に切替え可能です。chgcobol.shは、Micro Focus COBOLとCOBOL-ITの間の切替えに使用されます。COBOLランタイムの切り替えには、最初にTuxedo ART for IMSアプリケーションを停止する必要があります。
chgcobol.shには、次のオプションを指定できます。
オプションなし
現在のCOBOL環境を表示します。
cit
COBOLランタイムをCOBOL-ITに変更します。
mf
COBOLランタイムのMicro Focus COBOLへの変更
./chgcobol.sh
出力: 現在のCOBOLランタイムはCOBOL-ITです。
./chgcobol.sh mf
出力: COBOLランタイムはMicro Focus COBOLに変更されました
DFSRRC00
名前
DFSRRC00 - ARTIBMPまたはARTIBMPTサーバーをアクティブ化するために使用されるユーティリティ。
形式:
DFSRRC00 "BMP,${MBR},${PSB},${IN},,,,,${CKPTID},,,,,,,,,,,,"
説明
DFSRRC00は、DFSRRC00入力を待機しているARTIBMP/ARTIBMPTサーバーをアクティブ化するために使用されます。DFSRRC00パラメータは、ワークベンチによってJCLから変換されたスクリプトから渡された文字列です。現在、文字列に含まれるサブパラメータでサポートされているものは、5つのみです("BMP, ${MBR}, ${PSB}, ${IN}, ${CKPTID}")。文字列内の残りのサブパラメータは無視されます。
IMSサーバー・エラーや異常終了がなく、ユーザー・プログラムもクラッシュしていない場合、ユーザー・プログラムのリターン・コードはDFSRRC00です。
DFSRRC00クライアント名の形式は${MBR}-DFSRRC00のようになります。tmadminを使用すると、現在実行中のバッチ・プログラムを監視できます。
トランザクションやプログラムの開始/終了時に、プログラム起動ログ・ファイルに、transaction name, program name, Sstart time, Eend time, group id, server idの形式でトレース行が追加されます(注意: 使用する場合、"-"は空の値を示します)。
DFSRRC00でBMPサービスを呼び出すときに、2つの重複するFML32フィールド(IMS_BMP_APPNAME_ROUTEIMS_JOB_NAME_ROUTE)をルーティング・フィールドとして使用できます。このため、特定のアプリケーション・プログラムまたはバッチ・ジョブを特定のBMPサーバー・グループにルーティングできます。これらの2つのFML32フィールドは、$IMSDIR/include/ROUTEFMLで定義されています。
注意:
パラメータ
BMP
ハードコード化された文字列。
${MBR}
呼び出されるバッチ・プログラムを表し、標準BMPとトランザクション指向BMPの両方によって必要とされます。
${PSB}
プログラムのPSB名を表します
{IN}
トランザクション指向BMPプログラムのトランザクション/キューの名前を表します。
{CKPTID}
XRSTで使用されるチェック・ポイントIDを表します。
注意:
${MBR}が空の場合、DFSRRC00はエラーによってすぐに終了します。
${IN}が空の場合、ARTIBMP/ARTIBMP_ORAにリクエストが送信され、BMPプログラムが呼び出されます。
${IN}が空でない場合、ARTIBMPTにリクエストが送信され、トランザクション・コードが${IN}であるトランザクション指向BMPプログラムが呼び出されます。
genimsprofile
名前
genimsprofile - セキュリティ・プロファイル・ジェネレータ
形式:
genimsprofile [-f <output_file>]
説明
このユーティリティによって、Tuxedoアプリケーションのセキュリティ・プロファイルが生成されます。このユーティリティを起動すると、Tuxedoアプリケーション・パスワード、ユーザー名およびユーザー・パスワードの入力を求められます。出力は、ユーザー名と暗号化されたパスワードを含むセキュリティ・プロファイル・ファイルです。生成されたセキュリティ・プロファイル・ファイルは、imsadminARTICTLおよびDFSRRC00で、Tuxedoドメインに参加するために使用できます。
パラメータ
-f <output_file>
オプション。生成されたセキュリティ・プロファイル・ファイルの場所。このオプションを指定しない場合のデフォルト値は、~/.tuxAppProfileです。
imsadmin
名前
imsadmin - Tuxedo ART for IMSランタイムの管理ツール。
形式:
imsadmin [-p <profile>] -l PGM1, PGM2
imsadmin [-p <profile>] -u -d <directory>
imsadmin [-p <profile>] -c -d <directory>
imsadmin -x flushperf|cleanperf|enableperf|disableperf
[-m machine]|[-g groupid [-s serverid] ]
imsadmin -x settracelevel number [-m machine]|
[-g groupid [-sserverid] ]
imsadmin [-v]
imsadmin [-h]
imsadmin -t
説明
このユーティリティは、実行中のIMSシステムに変更を加えるための管理ツールとして使用できます。これにより、プログラム再ロード・リクエストをIMSシステム(変更されたユーザーCOBOLプログラムを再ロードする)に送信できます。また、構成やIMSシステムへの再ロード・リクエストの検証にも使用します。構成ファイルやプログラム・ファイルをチェックする場合は、テスト・モードで実行できます。
パラメータ
imsadminでは、次のオプションがサポートされます。
[-p <profile>]
認証に使用されるセキュリティ・プロファイル・ファイルの名前。このパラメータは、Oracle Tuxedoセキュリティを有効にする場合に必要です。プロファイル・ファイルは、genimsprofileを使用して作成する必要があります。
ファイル名を指定しない場合、デフォルトの~/.tuxAppProfileに指定されます。
注意:
セキュリティ・レベルがMANDANTORY_ACLに設定されている場合、imsadminで再ロード・リクエストがTuxedo ART for IMSサーバーに正常に送信されるようにするには、プロファイル内のユーザー名に..IMSADM _grpid_svrid (grpid/svridは、各Tuxedo ART for IMSのMPP/BMPに対応するグループIDおよびサーバーID)という名前のサービスへのアクセス権があることを確認する必要があります。
-l PGM1, PGM2
再ロードする必要のあるCOBOLプログラムの名前を指定します。プログラム名はカンマで区切ります。
注意:
-u
構成を更新します。
-c
構成を検証します。
-d <directory>
新しい構成ファイルのディレクトリを指定します。このディレクトリはマスター・マシン上にある必要があります。
-x flushperf|cleanperf|enableperf|disableperf
パフォーマンス・トレースを動的に制御するために使用します。各アクション関数を次に示します。
flushperf: パフォーマンス・トレースをログ・ファイルにフラッシュします。
cleanperf: パフォーマンス・トレースのログ・ファイルをクリーンアップします。
enableperf: パフォーマンス・トレースを有効にします。
disableperf: パフォーマンス・トレースを無効にします。
-x settracelevel number
デバッグ・トレース・レベルを指定します。
数値:
-1: トレース・オフ
0: 関数スタック・トレース
1: 関数スタック・トレース + 実行フロー・トレース
2: 関数スタック・トレース + 実行フロー・トレース + データ変換トレース
[-m machine]
マシンの論理名を指定します。
[-g groupid]
グループIDを指定します。
[-s serverid]
サーバーIDを指定します。
machinegroupidおよびserveridパラメータを指定しない場合、アクションは、UBBCONFIG SERVERSセクションに指定したすべての適用可能なサーバーに適用されます。1つ以上のパラメータを指定すると、アクションは、指定したサーバーにのみ適用されます。
適用可能なサーバーには、ARTIMPP*/ARTIBMP*/ARTIGW/ARTIADMが含まれます。現在、この機能では、ARTICTL/ARTICTLHの動的トレース制御はサポートされません。
注意:
flushperfまたはcleanperfを指定する場合、これら2つのアクションはすべての適用可能なサーバーに適用されるため、-m-gおよび-sは省略できます。
パフォーマンス・トレースが有効になると、デバッグ・トレースは自動的に無効になります。
[-v]
imsadminツールのバージョンとビット・モードを表示します。
[-h]
使用方法のヘルプ情報を表示します。
-t
テスト・モードで実行して、ローカルの構成ファイルが正しいかどうかをチェックしたり、特定のプログラムが存在するかどうかをチェックします(エントリ・ポイントのみをチェックします)。imsresource.descを除くすべての構成ファイルおよびimsapps.descに構成されているすべてのプログラムがチェックされます。
IMSの構成が変更され、すべての構成ファイルが/opt/ims_configにある場合imsadmin -c -d /opt/ims_configと入力して新しい構成ファイルを検証できます。
imsgenconf
名前
imsgenconf - Tuxedo ART for IMSの構成生成ツール。
形式
Tuxedo ART for IMS 12cリリース2 (12.2.2) GAおよびローリング・パッチ001の場合:
imsgenconf -i inputdir [-o outputdir] [-h]
Tuxedo ART for IMS 12cリリース2 (12.2.2)ローリング・パッチ002以降の場合:
imsgenconf [-o outputdir] [-h]
説明
imsgenconfを使用すると、特定のトランザクションおよびバッチ・アプリケーション用のTuxedo ART for IMSの構成を生成できます。
ファイル生成処理中imsgenconfにより、Tuxedo ART for IMSがそのフィールド定義に応じて使用するフィールド定義が検証されます。検証に失敗した場合、特定のエラーがレポートされ、構成ファイルの生成が停止されます。
成功した場合、レポート・ファイル(imsgenconf_report)が出力ディレクトリに生成されます。現在、このレポート・ファイルには、トランザクションが定義ファイル名と行番号とともに含まれます。
パラメータ
-i inputdir
Tuxedo ART for IMS 12cリリース2 (12.2.2) GAおよびローリング・パッチ001で必須です。z/OSの定義(IMS.WHITEまたはIMS.BLACK)が含まれている最上位の定義ディレクトリを指定します。
-i inputdirは、Tuxedo ART for IMS 12cリリース2 (12.2.2)ローリング・パッチ002以降では廃止になりました。
[-o outputdir]
オプション。生成されるTuxedo ART for IMSディレクトリの配置先を指定します。このオプションが定義されていない場合は、生成される構成はinputdirの下に置かれます。
[-h]
ヘルプ情報を出力します。
環境変数
Tuxedo ART for IMS 12cリリース2 (12.2.2)ローリング・パッチ002以降の場合は、imsgenconfを呼び出して新しい構成ファイルを生成する前に、次の環境変数を設定します。変数を設定しない場合は、値がないか、空であることを意味します。
IMS_DBD_DIR
入力DBDファイルのディレクトリを指定します。
IMS_DBD_SUB_DIR
DBDファイルにコピーされるファイルの入力ディレクトリを指定します。
IMS_PSB_DIR
入力PSBファイルのディレクトリを指定します。
IMS_PSB_SUB_DIR
PSBファイルにコピーされるファイルの入力ディレクトリを指定します。
IMS_APPL_DIR
トランザクション/アプリケーション定義ファイルの入力ディレクトリを指定します。ブラック・リストおよびホワイト・リスト・ファイルもこのディレクトリに配置する必要があります。
IMS_DBD_EXT
入力DBDファイルの拡張子を指定します。
IMS_DBD_SUB_EXT
コピーされる入力DBDファイルの拡張子を指定します。
IMS_PSB_EXT
入力PSBファイルの拡張子を指定します。
IMS_PSB_SUB_EXT
コピーされる入力PSBファイルの拡張子を指定します。
IMS_APPL_EXT
入力トランザクション/アプリケーション定義ファイルの拡張子を指定します。
imsperf
名前
imsperf - Tuxedo ART for IMSランタイムのパフォーマンス分析ツール
形式
imsperf [-d path] [-h]
説明
トランザクションおよびアプリケーションのパフォーマンス・レポートを生成するには、このツールを使用します。
-dオプションを指定すると、指定したパスの下でパフォーマンス・トレース・ファイルが検索されます。
-dオプションを指定しない場合、パフォーマンス・トレースはまず$IMS_TRACE_PATHの下で検索され、次に$APPDIR/logの下で検索されます。詳細は、『Tuxedo ART for IMSユーザーズ・ガイド』を参照してください。
imsperfにより、パフォーマンス・トレース・ファイルと同じディレクトリに、トランザクション/アプリケーションのパフォーマンス・レポートが次のような形式で生成されます。
tranname.csv
application.csv
時間単位はマイクロ秒です。CSV形式のレポート・ファイルを直接開くことができます。表2に、パフォーマンス・レポートに含まれる処理の説明を示します。
 
オプション
imsperfでは、次のオプションがサポートされます。
[-d path]
パフォーマンス・トレース・ファイルの場所として指定したディレクトリのパス。現在のユーザーがパスに対する書込み権限を持っている必要があります。
[-h]
使用方法のヘルプ情報を表示します。
/home/oracle/logの下にパフォーマンス・トレース・レポートを生成するには、次のようにします。
imsperf -d /home/oracle/log
MFSGEN
名前
MFSGEN - ARTICTLサーバーのバイナリ制御ブロック・ジェネレータ。
形式
mfsgen [-options…] files
説明
このユーティリティはART MFS開発用です。ユーザーが記述した制御文をMFSバイナリ制御ブロックに変換します。
図1に、MFSGENワークフローを示します。
図1 Mfsgenワークフロー
オプション
コマンド・オプションは次のとおりです。
-l
入力ファイルごとにリスト(.lst)ファイルを生成します。
-d dir
バイナリ制御ブロック・ファイル(*.MSGおよび*.FMT)およびリスト・ファイルなどすべての出力ファイルを格納するターゲット・ディレクトリとして既存のディレクトリを指定します。
これは、デフォルトで<current directory>/formatです。
ファイル
MFSGENユーティリティで、次のファイルが作成されます。
FILE.MSG
MIDおよびMOD制御ブロックのバイナリ・ファイルのカテゴリの1つ。名前FILEは、入力MSG定義文から取得されます。
FILE.FMT
DIFおよびDOF制御ブロックのバイナリ・ファイルのカテゴリの1つ。名前FILEは、入力FMT定義文から取得されます。
FILE.lst
ソース・リスト・ファイル。ここで、FILEは、入力ファイルのベース名と同じです。
リターン・コード
0
成功。すべての入力ファイルは正常に解析され、エラーも警告もなく制御ブロックに変換されました。
1
警告付き成功。すべての入力ファイルは正常に解析され、制御ブロックに変換されましたが、警告があります。
2
失敗。解析または制御ブロックへの変換に一部またはすべての入力ファイルが失敗しました。
ソース・ファイルfile.mfsを変換するには、次のコマンドを使用します。
$mfsgen file1.mfs file.mfs file3.mfs
注意:
入力ファイル.mfs接尾辞は必須ではありません。
odbactl
名前
odbactl - z/OS上のODBAプロキシを停止したり、z/OS上のODBAプロキシのステータスをチェックしたり、既存の接続を表示したり、PSBが適切に定義されているかどうかをチェックするために使用されるオープン・システム・ツール。
形式
odbactl -c cmd -l host -p port [PSB=psbname] [DRA=draname]
説明
オープン・システム上でodbactlを使用して、各種関数を実行できます。
パラメータ
cmd
ODBAプロキシに送信するコマンド。現在、ping、chkpsb、shutおよびlistconnを使用できます。必須です。
-c ping
ODBAプロキシのステータスをチェックします。ホスト名とポートを指定してアクセスできる場合、プロキシは稼働しているとみなし、それ以外の場合、ODBAプロキシは停止しているとみなします。
-c chkpsb
PSBが適切に定義されているかどうかをチェックします。
-c shut
z/OS上のODBAプロキシを停止します。
-c listconn
サーバー・アドレスやピア・アドレスなど、既存のODBA接続に関する情報を表示します。
host
ODBAプロキシのホスト名またはipv4アドレス。必須です。
port
pingshutまたはlistconnコマンドの場合は、コマンドを受け取るODBAプロキシのポートです。chkpsbコマンドの場合は、ODBAリクエストを受け取るODBAプロキシのポートです。これは必須です。
PSB=psbname
PSB名。chkpsbコマンドの場合は必須です。
DRA=DRA table
IMS/DBシステム内のアクセス対象のDRA表の名前。chkpsbコマンドの場合は必須です。
odbastop
名前
odbastop - z/OS上のODBAプロキシを停止するために使用されるオープン・システム・ツール。
形式
odbastop -l host -p port -c cmd
説明
オープン・システム上でodbastopを使用して、z/OS上で実行されているODBAプロキシを停止します。
パラメータ
host
ODBAプロキシ・ホスト名またはIPv4アドレス。
port
ODBAリクエストを受信するためのODBAプロキシ・ポート。
cmd
SHUTDOWNのみをサポート
prepro-ims.pl
名前
prepro-ims.pl - z/OS上のCプログラムをTuxedo ART for IMSで実行可能な形式に変換するために使用されるユーティリティ。
形式:
prepro-ims.pl -i source-file -o dest-file [-m yourmakefile]
説明
prepro-ims.plは、z/OS上のCプログラムをTuxedo ART for IMSで実行可能な形式に変換するために使用されます。ファイルの変換に失敗した場合、障害情報および障害の原因となったソース・ファイルの行がstderrに出力されます。完了すると、サマリーがstdoutに報告されます。
処理ルールは次のとおりです。
#pragma runoptsの行と他のブラグマ・ディレクティブをコメント化します。
IBM IMSの下で呼び出された場合、env(IMS)は適切な動作環境を確立し、plist(IMS)は適切なパラメータ・リストを確立します。それは、Tuxedo ART for IMSランタイムでは不要であり、削除する必要があります。
関数ctdli()/aibtdli()は、引数リストに後続のNULLを追加することで再構築されました。このNULLは、Tuxedo ART for IMS引数リストの終わりを示すために使用されます。aibtdli()では、parmcountパラメータが削除されます。
関数main()引数リストは削除されました(argcargvenvpなど)。メインフレームでは、IMSはグローバル・リストおよびそのリストを定義するマクロを使用します。Tuxedo ART for IMSでは、PCBリストを取得するためのGETメソッドとして__getcb(int)関数が実装されています。
exit()関数は、__art_ims_return ()という名前に変更されました。IBM IMSドキュメントによれば、プログラムが処理するメッセージがない場合、mainから返すか、またはexit()を呼び出すことでIMSに制御が返されます。exit()によって、コンテナ・サーバーが予期せずに終了した場合、__art_ims_return ()関数が使用され、制御をコンテナ・サーバーに返すための手助けをします。
表2に、処理ルールの例を示します。
 
注意:
prepro-ims.plは、メインフレームからオープン・システムへの一部の汎用Cの移植を処理できません。
制限
1.
2.
関数ポインタとしてのctdli/aibtdliの呼出しはサポートされていません。
3.
4.
5.
6.
依存関係
1.
生成されたmakefileにはgmakeを使用する必要があります。
2.
3.
IMSによって提供されるいくつかのヘッダー・ファイル(ims.hなど)をメインフレームからオープン・システムにコピーする必要があります。
パラメータ
表3表4および表5に、prepro-ims.plのパラメータ、終了コードおよびサポート・モードをそれぞれ示します。
 
 
 
ソース・プログラムはリスト1に類似したものになります。
リスト1 ソース・プログラム
/* #pragma runopts(env(IMS), plist(IMS)) */
#include <ims.h>
#include <stdio.h>
#define n 20 /* I/O area size - Application dependent */
typedef struct {PCB_STRUCT(10)} PCB_10_TYPE;

int main()
{
static const char func_GU[4] = "GU ";
static const char func_ISRT[4] = "ISRT";

char ssa_name[] = "ORDER ORDER (ORDERKEY = 666666)";

int rc;
char msg_seg_io_area[n];
char db_seg_io_area[n];
char alt_msg_seg_out[n];

PCB_STRUCT_8_TYPE *alt_pcb;
PCB_10_TYPE *db_pcb;
IO_PCB_TYPE *io_pcb;

io_pcb = (IO_PCB_TYPE *)__pcblist[0];
alt_pcb = __pcblist[1];
db_pcb = (PCB_10_TYPE *)__pcblist[2];
..
/* get first message segment from message area */
rc = ctdli(func_GU, io_pcb, msg_seg_io_area, NULL);
..
/* get the data from the database having the specified key value */
rc = ctdli(func_GU, db_pcb, db_seg_io_area, ssa_name, NULL);
..
/* build output message in program's I/O area */
rc = ctdli(func_ISRT, alt_pcb, alt_msg_seg_out, NULL);
..
}
 
prepro-ims-cobol.pl
名前
prepro-ims-cobol.pl - BMP COBOLプログラムのEXEC DLI文をCBLTDLI文に転送するために使用されるユーティリティ。
形式:
prepro-ims-cobol.pl [-type_output <output type>] input_file
説明
prepro-ims-cobol.pl入力ファイル内のすべてのEXEC DLI文をCBLTDLI文に変換し、すべての行をstdoutに出力して新しいファイルにリダイレクトできます。その後、COBOLコンパイラを使用して新しいファイルをコンパイルできます。コンパイル時に$IMS_RT/cpylibのIMSコピーブック・パスをインクルードするためには、Micro Focus COBOLコンパイラまたはCOBOL-ITコンパイラに対してコピーブックが格納される場所を示す環境変数COBCPYが正しく設定されている必要があります。
プリプロセッサは、入力COBOLプログラムが6列の左マージンを持っていると想定します。出力は固定書式で、そうでない場合はエラー・メッセージが表示されます。
パラメータ
type_output
type_outputによって、出力が出力される方法が決まります。認識される値は次のとおりです。
debug
すべての行をそのステータス(untouched、modified、deleted、created)とともに出力します。読み取ったすべての行について、常に少なくとも1行が出力されます。
orig
すべての行を出力し、削除された行はコメントとして出力します。読み取ったすべての行について、少なくとも1行が出力されるとはかぎりません。
normal (デフォルト)
削除されたものを除き、すべての行を出力します。読み取ったすべての行について、少なくとも1行が出力されるとはかぎりません。
他のあらゆる値は、「normal」として処理されます。
制限
RUNPROXY(z/OS)
名前
RUNPROXY - z/OS上のODBAプロキシを開始するために使用します。
形式:
USER.ODBA.JCL(RUNPROXY) JCLを変更し、それを送信してODBAプロキシを開始します。詳細は、『Oracle Tuxedo Application Runtime for IMSユーザーズ・ガイド』のODBAプロキシの使用方法に関する項を参照してください。
説明
z/OS上でRUNPROXYを使用して、z/OS上のODBAプロキシを開始します。
STOPROXY(z/OS)
名前
STOPROXY - z/OS上のODBAプロキシを停止するために使用します。
形式:
USER.ODBA.JCL(STOPROXY) JCLを変更し、それを送信してODBAプロキシを停止します。詳細は、『Oracle Tuxedo Application Runtime for IMSユーザーズ・ガイド』のODBAプロキシの使用方法に関する項を参照してください。
説明
z/OS上でSTOPROXYを使用して、z/OS上で実行されているODBAプロキシを停止します。
Tuxedo ART for IMSのDL/Iサポート
Tuxedo ART for IMSでは、DL/Iは動的にロードされるライブラリのグループとして実装されます。サポートされているDL/I機能は次のとおりです。
サポート対象のDL/Iインタフェース
表6に、サポート対象のDL/Iインタフェースを示します。
 
AIBTDLIは、DL/Iレイヤー全体のエントリ関数です。CBLTDLIとの基本的な違いは、AIBTDLIは、制御情報をやり取りするための最初のパラメータとしてAIBマスクを使用することです。
CTDLIは、DLIライブラリ全体のエントリ関数です。DLIへのリクエストはすべて、この関数を呼び出すことで渡されます。CTDLIは、Cプログラムからのみ呼び出すことができます。
CBLTDLI
名前
CBLTDLI - OS/39におけるIMS/TMでのDL/I呼出しの0エントリ。
説明
Tuxedo ART for IMSでは、CBLTDLIは、DLIライブラリのエントリとして機能する関数です。CBLTDLIは、それに渡された関数コードに基づいて適切な関数を呼び出します。
パラメータ
関数コード(GUなど)、I/O PCBまたは代替PCB、I/O領域、MOD
AIBTDLI
名前
AIBTDLI - DL/Iレイヤー全体のエントリ関数。
説明
AIBTDLIは、z/OSにおけるIMS/TMでのDL/I呼出しのエントリです。Tuxedo ART for IMSでは、AIBTDLIは、DL/Iライブラリのエントリとして機能する関数です。AIBTDLIは、AIBマスクで指定されているPCB名に従ってPCBアドレスを取得し、見つかったPCBアドレスとともにそれに渡された関数コードに基づいて適切な関数を呼び出します。
パラメータ
関数呼出し(GUなど)、AIBマスク、I/O領域、入力または出力バッファ。表7に、AIBマスク・パラメータを示します。
 
AIBマスク・フィールドAIBRSNM1におけるPCB名の指定の詳細なルールは、次のとおりです。
I/O PCB
I/O PCBの名前は、IOPCBbbbとして指定する必要があります。
代替PCB
代替PCBの名前は、$appname.psb構成ファイル内のlabel=で構成する必要があり、AIBマスクで適切に指定されている必要があります。各代替PCBの名前(ラベル)は、1つのPSB内(つまり、1つの$appname.psbファイル内)で一意である必要があります。
DB PCB
DB PCBの名前は、$appname.psb構成ファイル内のlabel=で構成する必要があり、AIBマスクで適切に指定されている必要があります。各DB PCBの名前(ラベル)は、1つのPSB内(つまり、1つの$appname.psbファイル内)で一意である必要があります。
CTDLI
名前
CTDLI - DL/Iレイヤー全体のエントリ関数。
説明
Tuxedo ART for IMSでは、CTDLIは、DLIライブラリのエントリとして機能する関数です。CTDLIは、それに渡された関数コードに基づいて適切な関数を呼び出します。
パラメータ
関数呼び出し(GUなど)、PCB (I/O PCBまたは代替PCB)、I/O領域、入力または出力バッファ。
op引数は、実行するDL/I関数を指定します。ctdli()呼出し形式は、選択した関数によって異なります。詳細は、「CBLTDLI」を参照してください。
注意:
メッセージ処理
IMS/TMにおいて、DL/Iは、着信メッセージの処理とPCBに対する送信メッセージの構築を担当します。Tuxedo ART for IMSでは、メッセージ・キューとメッセージの配信はTuxedoインフラストラクチャが担当するため、着信メッセージの処理には現在のリクエスト・メッセージのみが関与します。DLIライブラリでは、COBOLアプリケーションからのリクエストに基づいて、最初および後続のセグメント(FMLフィールド)を取得できます。送信メッセージを構築できるように、各PCBには中間ストレージ領域として1つのメッセージ・バッファ(FML)が関連付けられ、ここに送信前のメッセージ・データが保持されます。表8に、メッセージ処理のためのAPIの詳細を示します。
 
GU
名前
GU - IMS/TM環境のメッセージ・キューから最初のセグメントを取得するために使用されます。
形式
I/O PCBまたはAIB、I/O領域
説明
GUは、メッセージ・キューの最初のセグメントを取得するために使用されます。会話型トランザクションの場合、メッセージの最初のセグメントは常にSPAです。
Tuxedo ART for IMSでは、処理中のメッセージのFMLバッファの最初のフィールドを取得するために、シミュレートされたGU呼出しが使用されます。会話型トランザクションの場合、GU呼出しは、常にSPAのフィールドを取得し、それ以外の場合はユーザー・データの最初のフィールドを取得します。
パラメータ
I/O PCB
リクエストのソースを表すPCBを指すポインタ。
AIB
呼出しに使用されるアプリケーション・インタフェース・ブロック(AIB)を指定します。このパラメータは入出力パラメータです。次のフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、PCB名IOPCBbbbを含める必要があります。
AIBOALEN I/O領域の長さ。
このフィールドには、呼出しリストに指定されているI/O領域の長さを含める必要があります。
I/O領域
最初のセグメントが格納されるバッファを指すポインタ。
結果(ステータス・コード)
'bb': 成功(2つの空白)。
'AB': セグメントI/O領域が指定されていません。
'AD': 関数パラメータが無効です。関数呼出しがCBLTDLIに指定されていないか、無効な関数呼び出し名がCBLTDLIに指定されています。
'QC': 入力メッセージがありません
'QF': セグメントが5文字未満です
GN
名前
GN - IMS/TM環境のメッセージ・キューから後続のセグメントを取得するために使用されます。
形式
I/O PCBまたはAIB、I/O領域
説明
最後のセグメントが取得された後に、GN呼出しは、QDステータス・コードがPCBで返されるという結果になります。Tuxedo ART for IMSでは、処理中のメッセージのFMLバッファの次のフィールドを取得するために、シミュレートされたGN呼出しが使用されます。
パラメータ
SI/O PCB
リクエストのソースを表すPCBを指すポインタ。
AIB
呼出しに使用されるアプリケーション・インタフェース・ブロック(AIB)を指定します。このパラメータは入出力パラメータです。次のフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、PCB名IOPCBbbbを含める必要があります。
AIBOALEN I/O領域の長さ。
このフィールドには、呼出しリストに指定されているI/O領域の長さを含める必要があります。
I/O領域
最初のセグメントが格納されるバッファを指すポインタ。
結果(ステータス・コード):
'bb': 成功(2つの空白)。
'AB': セグメントI/O領域が指定されていません。
'AD': 関数パラメータが無効です。関数呼出しがCBLTDLIに指定されていないか、無効な関数呼び出し名がCBLTDLIに指定されています。
'QD': セグメントはこれ以上ありません。
ISRT
名前
ISRT - IMS/TMにおいて指定されているPCBに関連付けられているメッセージにセグメントを追加するために使用されます。
形式
I/O PCB or alternate PCB or AIB, I/O Area, MOD
説明
Tuxedo ART for IMSでは、指定されているPCBに関連付けられているFMLバッファにCARRAY型のフィールドを追加するために、シミュレートされたISRT呼出しが使用されます。会話型トランザクションの場合、最初のセグメントは常にSPAです。メッセージ・セグメントの最大長は32767です。
パラメータ
I/O PCBまたは代替PCB
送信メッセージの宛先を表すPCBを指すポインタ。
AIB
呼出しに使用されるアプリケーション・インタフェース・ブロック(AIB)を指定します。このパラメータは入出力パラメータです。次のフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、PCB名IOPCBbbb (TP PCBが使用される場合)、または代替PCBの名前(代替PCBが使用される場合)を含める必要があります
AIBOALEN I/O領域の長さ。
このフィールドには、呼出しリストに指定されているI/O領域の長さを含める必要があります。
I/O領域
送信対象のセグメントが保持されるバッファを指すポインタ。会話型トランザクション・コードの場合、最初のセグメントはSPAである必要があります。
MOD
出力メッセージに使用されます。8バイトのMOD名は左揃えにし、必要に応じて空白を埋め込む必要があります。メッセージの最初のセグメントにのみ付加できます。
MODがDFS.EDTまたはDFS.EDTNと等しい場合、メッセージではMFS書式設定が省略されます。出力でMFSが省略された場合、アプリケーション・プログラムが3270データ・ストリーム全体(コマンド・コードで始まり、最後のデータ・バイトで終了する)の構築を担当します。
結果(ステータス・コード):
'bb': 成功(2つの空白)
'AB': セグメントI/O領域が指定されていません。
'AD': 関数パラメータが無効です。関数呼出しがCBLTDLIに指定されていないか、無効な関数呼び出し名がCBLTDLIに指定されています。
'QF': セグメントが5文字未満です。
'QH': PCBに宛先名がありません。
'XA': リクエストに応答した後に、そのリクエストを別のトランザクションに転送しようとしています。
'XB': リクエストを別のトランザクションに転送した後に、それに応答しようとしています。
'XC': Z1ビットが0ではありません。それは予約済であり、常に0として保持されます。
'A6': 呼出しで出力セグメント・サイズ制限を超えました
PURG
名前
PURG - そのメッセージが低速PCBに対して完了したことをIMS/TMに通知するために使用されます。
形式
I/O PCB or alternate PCB or AIB, I/O Area (optional), MOD (optional)
説明
PURG呼出しは正常ですが、送信されなかったか、メッセージが高速PCBに対してただちに送信されました。
I/O領域がPURG呼出しに提供されている場合、PURG呼出しもISRT呼出しとして機能します。つまり、PURGは、PCBに関連付けられている(現在の)メッセージを完了としてマークし、I/O領域のデータを次のメッセージの最初のセグメントとしてISRTします。最終結果は、ISRT呼出しが後に続くI/O領域のないPURG呼出しと同じです。
Tuxedo ART for IMSでは、低速PCBに対して関連付けられたメッセージが完了したとマークするため、または高速PCBに対して関連付けられたメッセージを送信するために、シミュレートされたPURG呼出しが使用されます。ただし、I/Oバッファが指定されている場合は、単一のPCBに対する複数の保留メッセージはサポートされていないため、それは無視され、したがってMODも無視されます。ただし、ステータス・コードはカスタマ・プログラムによってチェックされるため、この場合、特別なステータス・コードは追加されません。
パラメータ
I/O PCBまたは代替PCB
送信メッセージの宛先を表すPCBを指すポインタ。
AIB
呼出しに使用されるアプリケーション・インタフェース・ブロック(AIB)を指定します。このパラメータは入出力パラメータです。次のフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、PCB名IOPCBbbb (TP PCBが使用される場合)、または代替PCBの名前(代替PCBが使用される場合)を含める必要があります
AIBOALEN I/O領域の長さ。
このフィールドには、呼出しリストに指定されているI/O領域の長さを含める必要があります。
I/O領域
指定されている場合、次のメッセージの最初のセグメントとして挿入されるバッファを指すポインタです。
MOD
出力メッセージに使用されます。8バイトのMOD名は左揃えにし、必要に応じて空白を埋め込む必要があります。
結果(ステータス・コード):
'bb': 成功(2つの空白)
'AD': 関数パラメータが無効です。関数呼出しがCBLTDLIに指定されていないか、無効な関数呼び出し名がCBLTDLIに指定されています
'A3': 宛先が設定されていないが、それに対してPURGが呼び出される変更可能なTP PCB
CHNG
名前
CHNG - IMS/TMにおいてPCB内の宛先を変更するために使用されます。
形式
代替PCBまたはAIB、宛先トランザクション・コード
説明
Tuxedo ART for IMSでは、シミュレートされたCHNGにより、代替PCBの別のサービス名(のみ)が指定されます。宛先トランザクション名は、8バイト以下であり、その制限を超えている場合、それは8までに切り捨てられます。後続の空白も削除されます。トランザクション名は、それがimstrans.descファイルに存在し、かつ正しい構成である場合に、有効として評価されます。
1つのTuxedoドメイン内の1つのトランザクション・コードが、異なるドメインの他のサービスに切り替えるように設計されている場合、切り替えられるトランザクション・コードは、[imstrans.desc]構成ファイルで有効なトランザクションとして定義されている必要がありますが、それをそのクラスの制御で公開しないでください。
プログラム切替えの場合、別のトランザクション・コードが新しいターゲットになります。会話型プログラム切替えの場合、Tuxedo ART for IMSでは、元のコードおよびターゲット・コードのspaサイズに制限はありません。
パラメータ
I/O PCB
送信メッセージの宛先を表すPCBを指すポインタ。宛先名は、別のトランザクション(サービス)の名前を表す文字列です。
AIB
呼出しに使用されるアプリケーション・インタフェース・ブロック(AIB)を指定します。このパラメータは入出力パラメータです。次のフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、変更可能な代替PCBの名前を含める必要があります。
AIBOALEN I/O領域の長さ。
このフィールドには、呼出しリストに指定されているI/O領域の長さを含める必要があります
結果(ステータス・コード):
'bb': 成功(2つの空白)
'AD': 関数パラメータが無効です。宛先が指定されていません。関数呼出しが無効です。
'A1': PCBが有効ではありません。
'A2': PCBが変更可能でないか、ISRT操作がすでに実行されています。
'QH': 代替PCBに指定するトランザクションが空白であるか無効です。
CMD
名前
CMD - プログラムでIMSコマンドを発行可能にするために使用されます。
形式
I/O PCBまたはAIB、I/O領域
説明
IMSコマンドを送信または発行し、応答メッセージの最初のセグメントを取得します。
CMDは、IMSコマンドを発行するために使用されます。これは、すべてのサポートされているIMSコマンドを処理できると想定されるインタフェースにIMSコマンドを転送します。CMD呼出しは、そのインタフェースによってIMSコマンドが処理されるまで待ち、その応答メッセージの最初のフィールドを取得します。
制限
コマンドには、/DIS TRAN/DIS PGMおよび/DIS USERのみサポートされます。これらのコマンドがCMD APIによって発行されると、関連するタイトル・セグメントがI/O領域を介して返され、それには、後続のセグメントの各フィールドの意味が記述されています。
"/DISP TRAN"
Tuxedoで取得可能なトランザクション関連情報がI/O領域内に返されます。/DISP TRAN trannameの場合、返されるセグメント・タイトルは次のとおりです(llzz部分は除く)。
T70 TRAN CLS ENQCT QCT LCT PLCT CP NP LP SEGSZ SEGNO PARLM RC
trannameが永続トランザクションを表す場合、TRANCLSおよびQCTのみがサポートされ、GCMDに対して返されるセグメントに値が入ります。"tranname"が非永続トランザクションを表す場合、TRANおよびCLSのみがサポートされ、GCMDに対して返されるセグメントに値が入ります。
/DISP TRAN tranname QCNTの場合、返されるセグメントは(llzz部分を除く)、T70 TRAN GBLQCTです。
TRANのみがサポートされ、GCMDに対して返されるセグメントでGBLQCTは常にN/Aです。
フィールド長の説明は次のとおりです。
TRAN: トランザクションの名前(8バイト)。
CLS: トランザクションのクラス(3バイト)。
ENQCT: サポートされません(5バイト)
QCT: トランザクションのキュー内の残されたメッセージ数(キュー数) (5バイト)。
注意:
- trannameは、現在のTuxedo ART for IMSサーバーによってのみ処理されます。
- DISPLAY TRANは、IOAREAを指定しないCHKPの後に発行されます。
GCMDに対して返されるセグメントで、すべてのサポートされないフィールドはN/Aになります。各フィールドは1つの空白で区切られます。
"/DISP user
Tuxedoで取得可能なユーザー関連情報が返されます。返されるセグメントは(llzz部分を除く)、CUR_USER CUR_TRANです。
"/DISP PGM
Tuxedoで取得可能なプログラム関連情報が返されます。返されるセグメントは(llzz部分を除く)、CUR_PGM CUR_TRANです。
注意:
パラメータ
I/O PCB
リクエストのソースを表します。
AIB
呼出しに使用されるアプリケーション・インタフェース・ブロック(AIB)を指定します。このパラメータは入出力パラメータです。次のフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、PCB名IOPCBbbbを含める必要があります。
AIBOALEN I/O領域の長さ。
このフィールドには、呼出しリストに指定されているI/O領域の長さを含める必要があります
I/O領域
IMSコマンドとそのパラメータを含み、最初のセグメントが格納されるバッファを指すポインタ。I/O領域の一般的な形式は次のとおりです。
LLZZ/verb KEYWORD1 P1 KEYWORD2 P2, P3. Comments
LL: LLZZなどコマンド・テキストの長さが入る2バイト・フィールド。
ZZ: IMS用に予約済の2バイト・フィールド。
/: IMSコマンドが後に続くことを示します。
verb: 発行したコマンド。
KEYWORDx: 発行したコマンドに適用されるキーワード。
Px: 指定したキーワードのパラメータ。
. (ピリオド): コマンドの終わり。
結果(ステータス・コード):
'bb': 成功(2つの空白)。ただし、応答セグメントはありません。
'CC': 1つまたは複数の応答セグメントが生成されました。
'AB': セグメントI/O領域が指定されていません。
'CH': AOIコマンド・インタフェースがシステム・エラーを検出し、そのコマンドを処理できなかったため、発行したCMD呼出しはIMSによって無視されます。IMS処理は続行されます。
GCMD
名前
GCMD - CMDコマンドの応答メッセージの2番目および後続のセグメントを取得します。
形式
I/O PCBまたはAIB、I/O領域
説明
GCMDは、アプリケーション・プログラムによってCMD呼出しを使用してIMSコマンドが処理されるときに、IMS TMから2番目および後続の応答セグメントを取得します。返されるセグメントそれぞれには、前述の"CMD"呼出しのタイトル・セグメントに応じたフィールドが含まれます。最後のセグメントが取得された後に、GCMD呼出しは、"QD"ステータス・コードがPCBで返されるという結果になります。
パラメータ
I/O PCB
リクエストのソースを表すPCBを指すポインタ。
AIB
呼出しに使用されるアプリケーション・インタフェース・ブロック(AIB)を指定します。このパラメータは入出力パラメータです。次のフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、PCB名IOPCBbbbを含める必要があります。
AIBOALEN I/O領域の長さ。
このフィールドには、呼出しリストに指定されているI/O領域の長さを含める必要があります
I/O領域
最初のセグメントが格納されるバッファを指すポインタ。
結果(ステータス・コード):
'bb': セグメントは正常に取得されました(2つの空白)。
'AB': セグメントI/O領域が指定されていません。
'QD': セグメントはこれ以上ありません。
'QE': CMDの前のGCMDリクエスト。
GUID
名前
GUID - ARTIMPPサーバーの長いユーザー名モードで、完全なユーザー名の取得に使用する偽のDL/I。
形式
I/O PCBまたはAIB、I/O領域
説明
GUIDは、長いユーザー名/パスワードのモードでのみ推奨されるARTIMPPサーバーの完全ユーザー名を取得するために使用します。
パラメータ
I/O PCB
リクエストのソースを表すPCBを指すポインタ。
I/O領域
完全なユーザー名が格納されるバッファへのポインタ。LLZZに加えて、少なくとも30バイトが確保されます。
結果(ステータス・コード):
'bb': セグメントは正常に取得されました(2つの空白)。
'AB': セグメントI/O領域が指定されていません。
'AD': 指定されたPCBはI/O PCBではありません。
データベース処理
DLIライブラリでは、MPPまたはBMPプログラムから発行されたデータベース処理を実行します。指定されたセグメント検索基準に応じた1つの特定のセグメントの取得および保持、特定のセグメントの更新、特定の位置へのセグメントの挿入、特定のセグメントの削除などを実行できます。表9に、データベース処理のためのAPIの詳細を示します。
 
GU/GHU
名前
GU/GHU - 現在の位置(存在する場合)またはデータベースの先頭から基準(存在する場合)を満たす最初のセグメントを取得(および保持)します。
形式
DB PCB、GSAM PCBまたはAIB、I/O領域およびSSAリスト(オプション)またはRSA (GSAMには必須)
説明
GUは、指定されているSSAを満たし、順次処理の開始位置を確立する最初のセグメントを取得するために使用されます。GUの検索開始位置は、データベースの先頭(つまり、ルート・レベル)です。呼出しを満たす最初のセグメントを見つけた後、現在の位置が順次処理の開始位置となります。
GHUは、GUに加えて、順次書込み操作(置換、削除など)のためにセグメントをロックします。GHUはGSAMには適用されません。
パラメータ
DB PCB
すべてのDB関連情報(特にDB名)が入ります。
AIB
呼出しに使用されるAIBを指定します。このパラメータは入出力パラメータです。
これらのフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、DB PCBの名前を含める必要があります。
AIBOALEN I/O領域の長さ。
このフィールドには、呼出しリストに指定されているI/O領域の長さを含める必要があります。
I/O領域
返されるセグメントを受け取るために使用されます。
SSA:
SSAの数はmin(階層レベルの数、15)以下です
RSA:
レコード検索引数を含むプログラムの領域を指定します。この必須の入力パラメータはGSAMに対してのみ使用します。
注意:
RSA 00010000により、GSAMの最初に位置がリセットされます。
GN/GHN
名前
GN/GHN - 現在の位置から基準(存在する場合)を満たす次のセグメントを取得(および保持)します。
形式
DB PCB,GSAM PCB or AIB, I/O Area, and SSA list (optional) or RSA(opitional for GSAM)
説明
GNは、現在の位置から検索して、指定されているSSAを満たす次のセグメントを取得するために使用されます。セグメントを見つけた後、順次処理のために現在の位置が更新されます。DBに現在の位置が確立されていない場合、GNGUのように動作します(つまり、先頭から検索します)。階層型DBにおける順次取得は、常に上から下、かつ左から右(つまり、ツリーの前順取得)です。
GHNは、GNに加えて、返されるセグメントをそれに対する順次書込み操作のためにロックします。GHNGSAMには適用されません。
パラメータ
GNのパラメータの使用方法と制限事項は、GUに似ています。
RSA:
レコードのRSAが返されるプログラムの領域を指定します。この出力パラメータはGSAMに対してのみオプションで使用します。
GNP/GHNP
名前
GNP/GHNP - 確立した親の依存セグメントから基準を満たす次のセグメントを取得(および保持)します。
形式
DB PCB、GSAM PCBまたはAIB、I/O領域およびSSAリスト(オプション)
説明
GNPは、確立した親の依存セグメントで、次の修飾セグメントを取得するために使用されます。階層型DBにおける確立した親とは、前の成功したGU/GN呼出しで返された最も下位のセグメントであり、失敗したGU/GN呼出しによって取り消されます。
GHNPは、GNPに加えて、返されたセグメントを順次書込み操作のためにロックします。
パラメータ
GNP/GHNPのパラメータの使用方法と制限事項は、GUに似ています。
ISRT
名前
ISRT - 既存のセグメント・タイプの新しいオカレンスを階層型データベースに挿入するために使用されます。
形式
DB PCB, GSAM PCB or AIB, I/O Area, and SSA list or RSA(opitional for GSAM)
説明
ISRTは、既存のセグメント・タイプの新しいオカレンスを階層型データベースに挿入するために使用されます。挿入位置は、挿入されるセグメントのレベルを除いた一連の修飾SSAによって、または非修飾SSAの場合は現在の位置によって決定されます。
パラメータ
I/O
領域には、追加するセグメントが入ります。
AIB
呼出しに使用されるAIBを指定します。このパラメータは入出力パラメータです。これらのフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、DB PCBの名前を含める必要があります。
AIBOALEN I/O領域の長さ。
このフィールドには、呼出しリストに指定されているI/O領域の長さを含める必要があります。
SSA
挿入中のセグメントの位置を確立するための一連の修飾または非修飾SSAが入ります。最も下位のSSA (つまり、挿入中のセグメントのレベルにあるSSA)は非修飾である必要があります。非修飾SSAは、そのセグメント・タイプの最初のオカレンスで満たされます。
RSA
DL/IによってRSAが返されるプログラムの領域を指定します。
REPL
名前
REPL - 既存のセグメントを更新するために使用されます。
形式
DB PCB or AIB, I/O Area, and SSA list
説明
REPLは、既存のセグメントを更新するために使用されます。最初にGet Hold呼出しを使用してセグメントを取得し、その後、そのセグメントを変更および更新する必要があります。I/O領域のセグメントのフィールドの長さは変更できません。
パラメータ
パラメータの使用方法と制限事項は、GUに似ています。
DLET
名前
DLET - セグメントとその依存関係を削除するために使用されます。
形式
DB PCBまたはAIB、I/O領域およびSSAリスト(オプション)
説明
DLET呼出しは、セグメントとその依存関係を削除するために使用されます。これは、Get Hold呼出しの後に続く必要があります。修飾SSAは、DLET呼出しに指定しないでください。
パラメータ
パラメータの使用方法と制限事項は、GUに似ています。
FLD
名前
FLD: セグメント内のフィールドにアクセスし、変更するために使用されます。
形式
DB PCB or AIB, I/O Area, and SSA list
説明
FLD呼出しは、セグメント内のフィールドにアクセスし、変更するために使用されます。
パラメータ
I/O
領域には、特定のフィールドを見つけるためのフィールド検索引数が入ります。
AIB
呼出しに使用されるAIBを指定します。このパラメータは入出力パラメータです。これらのフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、DB PCBの名前を含める必要があります。
AIBOALEN I/O領域の長さ。
このフィールドには、呼出しリストに指定されているI/O領域の長さを含める必要があります。
SSA
この呼出しで使用されるSSAを指定します。この入力パラメータでは最大15個のSSAを使用できます。指定するSSAは、呼出しに定義されているデータ領域を指します。このパラメータはFLD呼出しには必須です。
POS
POS - 修飾位置(POS)呼出しは、特定の順次従属セグメントの位置を取得するために使用されます。非修飾POSは、順次従属セグメント(SDEP)データの論理的な終わりを指します。
形式
DB PCBまたはAIB、I/O領域およびSSAリスト(オプション)
説明
POSはDEDBのみをサポートします。Tuxedo ART for IMSでは、次の制限があります。
1. keywordパラメータがサポートされていません。
2. LLおよび対応する数値フィールド(フィールド4、フィールド5)は、ホスト・バイト・エンディアンに格納されます。
パラメータ
DB PCB
すべてのDB関連情報(特にDB名)が入ります
AIB
呼出しに使用されるAIBを指定します。このパラメータは入出力パラメータです。これらのフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、DB PCBの名前を含める必要があります。
AIBOALEN I/O領域の長さ。
このフィールドには、呼出しリストに指定されているI/O領域の長さを含める必要があります。I/O領域は、返された出力を受け取るために使用されます。
キーワードがサポートされていないため、I/O領域の出力形式は次のようになります。
LL Field 1 Field 2 Field 4 Field 5
LL: この2バイトの数値は全長を示します。
Field 1: この8バイトのフィールドには、AREA文のddnameが格納されます
Field 2: 次にCIを割り当てる順次従属。
Field 4: この4バイトのフィールドには、順次従属部分における未使用のコントロールの間隔数が格納されます。
Field 5: この4バイトのフィールドには、非従属オーバーフロー部分における未使用のコントロールの間隔数が格納されます
注意:
SSAリスト
挿入中のセグメントの位置を確立するための一連の修飾または非修飾SSAが入ります。最も下位のSSA (つまり、挿入中のセグメントのレベルにあるSSA)は非修飾である必要があります。非修飾SSAは、そのセグメント・タイプの最初のオカレンスで満たされます。
OPEN
名前
OPEN - GSAMデータベースを明示的に開くために使用されます。
形式
GSAM PCBまたはAIB、I/O領域
説明
GSAMデータベースを明示的に開きます。GASMデータベースに対する次の処理によって、GSAMデータベースが再度開かれることはありません。GSAMデータベースを明示的に開かない場合、他の処理によってGSAMデータベースが暗黙的に開かれます。
パラメータ
GSAM PCB
PCBに対応するGSAMデータベース。
AIB
呼出しに使用されるAIBを指定します。このパラメータは入出力パラメータです。これらのフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、GSAM PCBのPCB名を含める必要があります。
AIBOALENI/O領域の長さ。
このフィールドには、呼出しリストに指定されているI/O領域の長さを含める必要があります。I/O領域。
開いているデータ・セットの種類を指定します。
注意:
CLSE
名前
CLSE: GSAMデータベースを明示的に閉じるために使用されます。
形式
GSAM PCBまたはAIB
説明
GSAMデータベースを明示的に閉じます。GSAMデータベースを明示的に閉じない場合、IMSによってGSAMデータベースが暗黙的に閉じられます。
パラメータ
GSAM PCB
GSAMデータベースの対応するPCB。
AIB
呼出しに使用されるAIBを指定します。このパラメータは入出力パラメータです。これらのフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、GSAM PCBのPCB名を含める必要があります。
IMS/DBの様々な実装のためのプラグイン定義
IMS/DBの様々な種類の実装をサポートするため、IMS/DBのサポートは、Tuxedo ART for IMSにプラグイン可能で、プラグイン後にTuxedo ART for IMSサーバーによってロード可能な動的リンク・ライブラリ(DLL)として設計されています。このプラグアンドプレイ・メカニズムを有効にするには、DLLによってエクスポートされるAPIについて合意する必要があります。
Tuxedo ART for IMSサーバー(ARTIMPPおよびARTIBMP)は、オンラインまたはバッチCOBOLプログラムを実行するためのコンテナとして使用されます。プログラムによつて発行されるデータベース・アクセス操作を有効化するには、通常、サーバーは、データベースの実装に対してなんらかの初期化または構成を実行する必要があり、COBOLプログラムを起動する前に何かを実行する必要があり、プログラムの完了後に何かを実行する必要があり、サーバーが停止する前になんらかのクリーンアップを実行する必要があります。そのほかに、CBLTDLIを介した各データベース処理が、特定のAPIにマップされている必要があります。
IMS/DBプラグインのデータ構造定義
DB PCB構造を指すポインタは、Tuxedo ART for IMSサーバーからCOBOLプログラムに渡され、最後にIMS/DBのプラグインのdb_entry()に渡されます。プラグインが適切に機能するようにするには、各COBOLプログラムを呼び出す前にDB PCB構造に適切に入力する必要があります。この項では、DB PCBへの入力方法に関する詳細な要件を定義します。
リスト2に、DB PCB構造の例を示します。
リスト2 DB PCB構造
struct {
    char dbname[8];
    char seglevel[2];
    char stat_code[2];
    char opt[4];
    char res[4];
    char segname[8];
    char keylen[4];
    char segnum[4];
    char keyfa[IMS_FEEDAREA_LEN];
};
 
dbname: PSB内のPCB文にPROCSEQ=<name>が含まれている場合は、<name>をdbnameに移入します。それ以外の場合、PSBからのNAME=<name>の名前をdbnameに移入します。
seglevel: NULLを移入します
stat_code: 空白を移入します
opt: PSB内のPCB文からPROCOPTオプションに設定されている値を移入します
res: 何も移入しません
segname: NULLを移入します
keylen: 何も移入しません
segnum: 何も移入しません
keyfa: NULLを移入します
リスト3に、get_dbpcbattrインタフェースに使用される構造定義を示します。コンテンツはPSBファイルから読み取られ、get_dbpcbattrインタフェースを介してアプリケーションに返されます。
リスト3 get_dbpcbattrインタフェースに使用される構造定義
enum PCBTYPE {IOPCB = 1, ALTPCB = 2, GSAMPCB = 3, DBPCB = 4};
enum SEQUENTIALBUFFERING {NO = 1, COND = 2};
enum PCBPOS {SINGLE = 1, MULTIPLE = 2};
enum SENSITIVITY {READ = 1, UPDATE = 2};
struct __SENFLD {
char name[8]; /* mandatory, less than 8 filled with blank */
unsigned short start; /* mandatory, range [1-32767] */
int replace; /* optional, default is 1 */
};
 
struct SSPTR {
unsigned short pointer; /* range[1-8], default 0 */
enum SENSITIVITY sens;
};
 
struct __SENSEG {
char segname[8]; /* mandatory, less than 8 filled with blank */
char parent[8]; /* mandatory, less than 8 filled with blank */
char procopt[4]; /* optional, default filled with blank */
SSPTR ssptr[8]; /* each slot contains a subset pointer number and associated sensitivity, pointer of 0 indicates end, totally up to 8 can be specified */
char indices[8]; /* optional, default filled with blank */
SENFLD * senfld; /* optional, default is NULL */
unsigned short senfld_num; /* optional, default is 0, up to 255 SENFLD can be defined for each SENSEG */
};
 
struct __DB_PCB_ATTR { /* PCB Attributes */
enum PCBTYPE type; /* mandatory */
char dbname[8]; /* db name, default filled with blank */
char pcbname[8]; /* pcb name, optional, default filled with blank */
char procopt[4]; /* procopt , default filled with blank */
enum SEQUENTIALBUFFERING sb; /* optional, default is NO */
enum PCBPOS pos; /* optional, default is SINGLE */
int keylen; /* optional, default is invalid value 0 */
char procseq[8]; /* optional, default filled with blank */
int msdb_commit; /* optional, default is 0 */
int list; /* optional, default is 1 */
char *areas; /* area list set by SETR in DFSCTL, no change will be applied on it in ART/IMS */
int senseg_num; /* optional, default is 0 */
struct SENSEG * senseg; /* optional, default is NULL */
};
 
IMS/DBプラグインのAPI定義
IMS/DBプラグインのAPIを定義するには次の手順を実行する必要があります。
1.
extern "C" int db_init(int argc, char * argv[])
機能: 実装に必要な構成またはその他のものに対する初期化
引数: サーバーのCLOPTから渡されるパラメータ・リスト
戻り値: 0 - 成功、-1 -- 失敗
使用する場所: このAPIは、Tuxedo ART for IMSサーバーが起動する際に呼び出されます。IMS/DBの特定の実装には、初期化作業は必要ありません。単に空の関数を指定して、それが0を返すようにします。
2.
extern "C" int db_destroy()
機能: 実装に必要な構成またはその他のものに対するクリーンアップ
引数: なし。サーバーはプラグインに入力を提供できないためです
戻り値: 0 - 成功、-1 -- 失敗
使用する場所: このAPIは、Tuxedo ART for IMSサーバーが停止する際に呼び出されます。IMS/DBの特定の実装には、初期化作業は必要ありません。単に空の関数を指定して、それが0を返すようにします。
3.
extern "C" int db_pre()
機能: IMS/DB実装にアクセスできるCOBOLプログラムを起動する前に実装によって必要とされる事前アクション
引数: なし。サーバーはプラグインに入力を提供できないためです
戻り値: 0 - 成功、-1 -- 失敗
使用する場所: このAPIは、IMS/DB実装にアクセスできるCOBOLプログラムがTuxedo ART for IMSサーバーによって起動される前に呼び出されます。IMS/DBの特定の実装には、初期化作業は必要ありません。単に空の関数を指定して、それが0を返すようにします。
4.
extern "C" int db_post()
機能: IMS/DB実装にアクセスできるCOBOLプログラムを起動した後に実装によって必要とされる事後アクション
引数: なし。サーバーはプラグインに入力を提供できないためです
戻り値: 0 - 成功、-1 -- 失敗
使用する場所: このAPIは、IMS/DB実装にアクセスできるCOBOLプログラムがTuxedo ART for IMSサーバーによって起動された後に呼び出されます。IMS/DBの特定の実装には、初期化作業は必要ありません。単に空の関数を指定して、それが0を返すようにします。
5.
extern "C"
int db_entry(const char * op, __DB_PCB * pcb, void * io, char * ssa_list[], int ssa_cnt);
機能: IMS/DB実装へのアクセスのエントリ・ポイント。COBOLプログラムからデータベース・アクセスを求めて発行される各DL/I呼出しは最終的にここで処理されます。
引数:
op: 関数呼出し名(GUなど)
pcb: ユーザー提供のDB PCBのスーパークラスである__DB PCBを指すポインタ。
io: 外部実装者によって定義されたバッファDB_IO_AREAを指すポインタ。
ssa_list: 文字列の配列であり、それぞれが1つのSSAを含み、形式は外部実装者によって異なります。
ssa_cnt: ssa_list内の要素の数。値の範囲は[0..15]です。
戻り値: 0 - 成功、-1 - 失敗
使用する場所: COBOLプログラムによって発行されるDL/I DB呼出し
6.
extern "C"
const __DB_PCB_ATTR * get_dbpcbattr (struct __DB_PCB * pcbm)
機能: db pcbの追加属性を取得するために使用されます。これらの属性はPSBファイルに構成されています。
引数:
pcbm: PCBマスク・ポインタ
戻り値: PCB属性ポインタ。このAPIから返されるPCB属性構造に含まれる内容を、ユーザーが変更することはできません。入力がDB PCBまたはGSAM PCBでない場合は、nullが返されます。オプションの属性が構成されていない場合は、デフォルト値が返されます。ポインタを解放する必要はありません。
使用する場所: db pcbによって呼び出されたサード・パーティのDBプラグイン。
7.
extern "C"
int fill_dbpcb_segname (struct __DB_PCB * pcb)
機能: db pcbのセグメント名を取得するために使用されます。このインタフェースは、DBプラグインによって提供する必要があります。
引数:
pcb: PCBマスク・ポインタ(DB PCBまたはGSAM PCB)。pcbマスクのsegnameには正しい値が設定されます。
戻り値: 0 : 成功、その他: 失敗。
IMS/DBのデフォルトの実装
Tuxedo ART for IMS内では、デフォルトDLLはIMS/DBのOracleソリューションとして提供されています。
トランザクション管理
DLIライブラリは、COBOLアプリケーションによって渡される命令に従い、トランザクション管理作業(つまり、すでに行われた変更のコミット、すでに作成されたメッセージの送信またすべての変更のロールバック、すべてのメッセージの削除)を実行します。COBOLアプリケーションによってトランザクションをコミットする明確な命令が発行されない場合は、ARTIMPPによってトランザクションがコミットされます。
表10に、トランザクション管理のプロセスとコマンドを示します。
 
CHKP (基本)
名前
CHKP (基本) - 明示的なコミット・ポイントを設定するために使用されます。
説明
CHKPは、明示的なコミット・ポイントを設定するために使用されます。コミット・ポイントで、IMS/TMが、アプリケーション・プログラムによって行われた変更(通常はデータベースの更新)をコミットし、すべてのメッセージを完了としてマークして(低速PCBの場合はPURGによって)送信し、指定されたIOAREAに次の入力メッセージを取得します。
Tuxedo ART for IMSでは、tpcommit()コマンドを使用して行われた変更をコミットするために、シミュレートされたCHKPが使用されます。完了とマークされているメッセージが送信されます。明示的なPURG呼出しによってマークされていないメッセージも送信されます。
トランザクションが永続トランザクションで、永続モードのARTIMPPによって処理されているかARTIBMPTによって処理されている場合、次のメッセージはこのトランザクションの/Qから取得されます。
トランザクションが永続トランザクションでない場合、次のメッセージは取得されません。
パラメータ
I/O PCBまたはAIB、I/O領域
I/O PCB
宛先を表すPCBを指すポインタ。
AIB
呼出しに使用されるアプリケーション・インタフェース・ブロック(AIB)を指定します。このパラメータは入出力パラメータです。次のフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、PCB名IOPCBbbbを含める必要があります。
AIBOALEN I/O領域の長さ。
このフィールドには、呼出しリストに指定されているI/O領域の長さを含める必要があります。
I/O領域
次の入力メッセージを受信するためのバッファへのポインタ。この領域には、返される可能性がある最長のメッセージを格納できるだけの長さが必要です。
結果(ステータス・コード)
'bb': 成功(2つの空白)
'AD': 関数パラメータが無効です。関数呼出しがCBLTDLIに指定されていないか、無効な関数呼び出し名がCBLTDLIに指定されています。
'AB': I/O領域は提供されません。
'QC': 入力メッセージがありません。
'QF': セグメントが5文字未満です。
CHKP (シンボリック)
名前
CHKP (シンボリック): 明示的なコミット・ポイントを設定するために使用されます。プログラムを開始できるチェック・ポイントを設定し、プログラムに7つのデータ領域を保存し、現在のGSAM DB取得位置を記録します。
説明
CHKP (シンボリック)は、リカバリのために使用できます。これによって、プログラムによって行われたすべての変更がコミットされ、アプリケーション・プログラムが異常終了した場合は、そのプログラムが再開できるポイントが確立されます。さらに、シンボリックCHKP呼出しは次のことを実行できます。
Tuxedo ART for IMSでは、シミュレートされたCHKP (シンボリック)を使用して、次のことが実行されます。
1.
2.
3.
4.
注意:
ユーザーがシンボリックCHKPを使用してデータ領域を格納した後、ユーザーがXRSTを使用してプログラムを再起動する前に、ART BMPサーバーが再起動された場合、シンボリックCHKPによって格納されたデータ領域は、XRSTによってリストアされません。
CHKPレコードは、programname.psbname.logというレコード・ログ・ファイルに保存されます。環境変数ART_IMSLOGDIRは、レコード・ログ・ファイルが配置されるディレクトリを指定するために使用されます。環境変数ART_IMSLOGDIRが設定されなかった場合、そのデフォルト値は$APPDIR/IMSLOGDIRになります。
MPモードで複数のマシンがレコード・ログ・ファイルを共有する場合、ART_IMSLOGDIRは、Tuxedoドメイン内のマシンがアクセスできるNFSディレクトリを指している必要があります。CHKPレコードは常にシンボリックCHKPによってレコード・ログ・ファイルに追加され、保存されたレコードは、ユーザーがレコード・ログ・ファイルを手動で空にしないかぎり削除されません。重複するCHKPレコードは、CHKPレコード・ファイルに追加されます。
関連するすべてのGSAM/DB PCBのステータス・コードはCHKP (シンボリック)呼出しの後、空白になります。
パラメータ
I/O PCB or AIB, I/O Area, I/O Area Length, IO Area, area length, area, …
I/O PCB
宛先を表すPCBを指すポインタ。
AIB
呼出しに使用されるアプリケーション・インタフェース・ブロック(AIB)を指定します。このパラメータは入出力パラメータです。次のフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、PCB名IOPCBbbbを含める必要があります。
AIBOALEN I/O領域の長さ。
このフィールドには、呼出しリストに指定されているI/O領域の長さを含める必要があります。
I/O領域の長さ
使用されなくなりました。互換性のために、このパラメータは、依然として呼出し内に含める必要があり、かつ有効なアドレスを含んでいる必要があります。
I/O領域
入力パラメータとしては、チェック・ポイントID (8ビット)を指定するために使用されます。出力パラメータとしては、次の入力メッセージを取得するバッファを指すポインタとして使用されます。この領域には、返される可能性がある最長のメッセージを格納できるだけの長さが必要です。
領域の長さ
最初の領域からチェック・ポイントまでの長さ(バイナリ形式)を含むプログラム内の4バイトのフィールドを指定します。このパラメータは入力パラメータです。領域の長さは最大7つまで指定できます。領域の長さを指定するときには、常に領域パラメータも一緒に指定する必要があります。
領域
IMSでチェック・ポイントとして使用する、プログラム内の領域を指定します。常に領域の長さパラメータを最初に指定し、次に、領域パラメータを指定します。
結果(ステータス・コード)
'bb': 成功(2つの空白)。
'AD': 関数パラメータが無効です。Tuxedo ART for IMSによって関数呼出しが提供されていません
'AB': I/O領域は提供されません。
'QC': 入力メッセージがありません。
'QF': セグメントが5文字未満です。
ROLB
名前
ROLB - データベースの更新を取り消すために使用されます。
形式
I/O PCBまたはAIB、I/O領域
説明
ROLBは、データベースの更新を取り消すために使用されます。伝送できないすべての挿入済メッセージが取り消されます。高速PCBの場合、メッセージは、IMSがメッセージの完了を認識したとき(つまりPURG呼出しが呼び出されるとき)に、伝送に使用できるようになります。低速PCBでは、プログラムがコミット・ポイントに到達するまではメッセージが送信可能になりません。
Tuxedo ART for IMSでは、tpabort()を使用することでアプリケーション・プログラムによって行われたすべての変更をロールバックし、送信されていないメッセージ・バッファを空にするために、シミュレートされたROLB呼出しが使用されます。
永続トランザクション(TPまたはトランザクション指向BMPプログラム)では、永続モードのARTIMPPで処理されているかARTIBMPTで処理されている場合、ROLBは最後のコミット・ポイントから最初のメッセージの最初のセグメントをIOAREAに返し、/Qの最後のコミット・ポイントから最初のメッセージを削除します。
非永続トランザクション(TPまたはトランザクション指向バッチ)では、Tuxedo ART for IMSは現在処理中のメッセージの最初のセグメントのみを返します。
パラメータ
I/O PCB
宛先を表すPCBを指すポインタ。
AIB
呼出しに使用されるアプリケーション・インタフェース・ブロック(AIB)を指定します。このパラメータは入出力パラメータです。次のフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、PCB名IOPCBbbbを含める必要があります。
AIBOALEN I/O領域の長さ。
このフィールドには、呼出しリストに指定されているI/O領域の長さを含める必要があります。
I/O領域
返されたメッセージの最初のセグメントを受信するためのバッファへのポインタ。
結果(ステータス・コード):
'bb': 成功(2つの空白)。
'AD': 関数パラメータが無効です。関数呼出しがCBLTDLIに指定されていないか、無効な関数呼び出し名がCBLTDLIに指定されているか、PCBが指定されていません。
'QE': IOAREAがNULLでない場合、GUが以前に呼び出されていません。
'QC': 入力メッセージがありません。
'QF': セグメントが5文字未満です。
ROLL
名前
ROLL: データベースの更新を取り消し、Tuxedo ART for IMSに戻るために使用されます。
形式
ROLL
説明
ROLLは、データベースの更新を取り消すために使用されます。伝送できないすべての挿入済メッセージが取り消されます。高速PCBの場合、メッセージは、IMSがメッセージの完了を認識したとき(つまりPURG呼出しが呼び出されるとき)に、伝送に使用できるようになります。低速PCBでは、プログラムがコミット・ポイントに到達するまではメッセージが送信可能になりません。
Tuxedo ART for IMSでは、tpabort()を使用してアプリケーション・プログラムによって行われたすべての変更をロールバックし、未送信のメッセージ・バッファを空にするために、シミュレートされたROLL呼出しが使用されます。これは、Tuxedo ART for IMSにコントロールを返しますが、呼出し元プログラムにはコントロールを返しません。
永続トランザクション(TPまたはトランザクション指向BMPプログラム)では、永続モードのARTIMPPで処理されているかARTIBMPTで処理されている場合、ROLLは/Qの最後のコミット・ポイントから現在のメッセージを削除します。
パラメータ
ROLLの呼び出しに必要なパラメータはコール関数のみです。
結果(ステータス・コード):
ステータス・コードは返されません。
SYNC
名前
SYNC - アプリケーション・プログラムによって行われた変更(通常は、データベースの更新)をコミットするために使用されます。
形式
I/O PCBまたはAIB
説明
Tuxedo ART for IMSでは、プログラムが異常終了した場合、すでに行われた変更をコミットするためにシミュレートされたSYNCが使用され、プログラム内には再開位置が設定されません。
パラメータ
I/O PCB
宛先を表すPCBを指すポインタ。
AIB
呼出しに使用されるアプリケーション・インタフェース・ブロック(AIB)を指定します。このパラメータは入出力パラメータです。次のフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、PCB名IOPCBbbbを含める必要があります
INQY
名前
INQY - 実行環境、宛先タイプおよびステータス、およびセッション・ステータスに関する情報を要求するために使用されます。INQYは、AIBTDLIインタフェースを使用している場合にのみ有効です。
形式
AIB I/O Area
説明
IMSでサポートされているサブ関数は、NULLFINDbbbbPROGRAMbDBQUERYbのみです。
NULLサブ関数の場合、ART/IMSは、ART/IMSがサポート可能なPCB関連情報のみをI/O領域に返します。"端末の位置"および"トランザクションの位置"は、"LOCAL"を使用する場合にのみサポートされています。
FINDbbbbの場合、PCBアドレスはAIBRSA1フィールドで返されます。
64ビット・プラットフォームでは、アドレスの長さが8バイトであるため、AIBRES3の最初の4バイトも使用されます。
サブ関数PROGRAMbは、I/O領域の最初の8バイトでプログラム名を返します。
DBQUERYbサブ関数の場合、PSBで定義されているDBPCBがない場合、BJがIO PCBステータスで返されます。それ以外の場合、IO PCBステータスは、データベースの使用可能性に従って返されます。
パラメータ
AIB
呼出しに使用されるアプリケーション・インタフェース・ブロック(AIB)のアドレスを指定します。このパラメータは入出力パラメータです。次のフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBSFUNCサブ関数コード。
このフィールドには、次のように8バイトのサブ関数コードの1つが含まれている必要があります。
bbbbbbbb (Null)
DBQUERYb
FINDbbbb
PROGRAMb
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、PSBで指定されたPCBのPCB名を含める必要があります。
AIBOALEN I/O領域の長さ。
このフィールドには、呼出しリストに指定されているI/O領域の長さを含める必要があります。IMSによってこのフィールドが変更されることはありません。
I/O領域
返される出力を受信するために使用されます。
AIBでの結果:
リターン・コードおよび理由コードは、IBMのリターン・コードおよび理由コードの説明に沿って調整されます。DBQUERYbの場合、データベースの使用可能性ステータスはIOPCBステータスで表されます。
' bb' (2つの空白): 呼出しは成功し、すべてのデータベースが使用可能です。
'BJ': DB PCBがPSBに存在しません。または、PSBに使用可能なデータベースが存在しないか、PCBがPSBに存在しません。すべてのデータベースPCB (GSAMを除く)に、INQY DBQUERY呼出しの処理結果としてNAステータス・コードが含まれています。
'BK': PSB内の少なくとも1つのデータベースが使用できないか、使用可能性が制限されています。少なくとも1つのデータベースPCBに、INQY DBQUERY呼出しの処理結果としてNAまたはNUステータス・コードが含まれています。
IMSでは、DBQUERYb呼出しの後に、各DB PCBのステータス・コードを使用してDBステータスを確認することはできません。
XRST
名前
XRST - プログラムを再起動するために使用されます。プログラム内でシンボリック・チェックポイント呼出しを使用する場合、XRST呼出しを使用する必要があります。
説明
XRSTは、プログラムを再起動するために使用されます。プログラム内でシンボリック・チェックポイント呼出しを使用する場合、XRST呼出しを使用する必要があります。
Tuxedo ART for IMSでは、関連するCHKP (シンボリック)呼出しに保存されたデータをリカバリするために、シミュレートされたXRSTが使用されます。GSAMは、CHKP (シンボリック)呼び出しが行われた記録位置に再配置されるので、後続のすべての"GN"呼び出しはリカバリされた位置で続行します。関連するすべてのGSAM/DB PCBのステータス・コードは、XRSTコール(既存のCHKPIDを使用)が成功した後、空白になります。
特定のCHKP IDの場合: XRSTは、Job name + program name + psb name + CHKP IDという検索キーを使用して、レコード・ログ・ファイル内で、先頭から末尾の方向に、CHKPレコードを検索します。検索キーに一致する1つ目のCHKPレコードが検出された場合、XRSTはこのレコード内のデータをリストアし、成功を返します。検索キーに一致するCHKPレコードが存在しない場合、XRSTは異常終了します。
CHKP ID 'LAST'の場合: XRSTは、Job name + program name + psb nameという検索キーを使用して、レコード・ログ・ファイル内で、末尾から先頭の方向に、CHKPレコードを検索します。検索キーに一致する1つ目のCHKPレコードが検出された場合、XRSTはこのレコード内のデータをリストアし、成功を返します。検索キーに一致するCHKPレコードが存在しない場合、XRSTは異常終了します。
パラメータ
I/O PCB or AIB, I/O Area, I/O Area Length, IO Area, area length, area, …
I/O PCB
宛先を表すPCBを指すポインタ
AIB
呼出しに使用されるアプリケーション・インタフェース・ブロック(AIB)を指定します。このパラメータは入出力パラメータです。
次のフィールドは、AIB内で初期化されている必要があります。
AIBID Eyecatcher。
この8バイトのフィールドには、DFSAIBbbを含める必要があります。
AIBLEN AIBの長さ。
このフィールドには、アプリケーション・プログラムによって取得されたAIBの実際の長さを含める必要があります。
AIBRSNM1リソース名。
この8バイトの左揃えのフィールドには、PCB名IOPCBbbbを含める必要があります。
AIBOALEN I/O領域の長さ。
このフィールドには、呼出しリストに指定されているI/O領域の長さを含める必要があります。このパラメータは、XRSTの呼出し時には使用されません。互換性のために、このパラメータは、依然としてコード化されている必要があります。
I/O領域の長さ
使用されなくなりました。互換性のために、このパラメータは、依然として呼出し内に含める必要があり、かつ有効なアドレスを含んでいる必要があります。
I/O領域
プログラムを再起動するチェック・ポイントIDを指定するために使用されます。プログラムを通常どおり起動する場合は、I/O領域の先頭5文字を空白にする必要があります。
領域の長さ
最初の領域からチェック・ポイントまでの長さ(バイナリ形式)を含むプログラム内の4バイトのフィールドを指定します。このパラメータは入力パラメータです。領域の長さを指定するときには、常に領域パラメータも一緒に指定する必要があります。XRST呼出しで指定する領域数は、プログラムによって発行されるCHKP呼出しで指定する領域数以下にする必要があります。
領域
IMS TMでリストアする、プログラム内の領域を指定します。常に領域の長さパラメータを最初に指定し、次に、領域パラメータを指定します。
結果(ステータス・コード)
'bb': 成功(2つの空白)。
'AD': 関数パラメータが無効です。Tuxedo ART for IMSによって関数呼出しが提供されていません
Tuxedo ART for IMSの言語環境
CEE3ABD/ART3ABD
CEE3ABDは、Tuxedo ART for IMSがプログラムの実行をabendコードで終了することをリクエストします。この関数からは何も返されず、関数に関連付けられた条件もありません。Tuxedo ART for IMSでは、次の手順を実行してこの関数を起動できます。
1.
2.
3.
パラメータ
abcode
発行する異常終了コードを指定する、4095以下の4バイト整数。
clean-up
使用されません。
注意:
COBOL-IT環境では、CEE3ABD/またはART3ABDという名前を使用して、COBOLプログラムからこのAPIを呼び出すことができます。Micro Focus COBOL環境では、ART3ABDという名前を使用した場合のみ、COBOLプログラムからこのAPIを呼び出すことができます。
Tuxedo ART for IMSのMFSサポート
IMS MFS制御ブロック・サポート
メッセージ形式およびデバイス形式の定義は、定義文の別の階層セットで実行されます。表11に、すべての定義文とその説明を示します。
 
前述の表のEND文では、入力ファイルの終了を定義します。それ以降の内容はすべて無視されます。入力ファイルにENDがない場合、MFSGENによって警告メッセージが生成され、入力ファイルにそれが追加されます。
各文にはそれぞれいくつかのフィールドがあります。表12および表13に、フィールド名と値の要件の詳細を示します。他のすべての文は、現在、サポートされていないフィールドとみなされます(表14に示す)。
 
注意:
system-literalには、TIMEDATE1DATE2DATE3DATE4DATE1Y4DATE2Y4DATE3Y4DATE4Y4YYDDDMMDDYYDDMMYYYYMMDDYYYYDDDMMDDYYYYDDMMYYYYYYYYMMDDDATEJULDATEUSADATEEURDATEISOLTSEQLTNAMEが含まれます。
LTMSGおよびLPAGENOの場合、警告メッセージが表示され、何も効果はありません。表12にない他の文字列については、構文エラーが表示されます
 
 
前述の表の最後の列について、「サポート対象」とはフィールドがサポートされていることを意味し、「警告」とはフィールドはサポートされておらず、このフィールドは指定されてないかのようにツールによって無視され、警告が生成されることを意味します。「エラー」とはフィールドがサポートされておらず、ツールによってエラーが報告され、現在の定義文セットの解析に失敗することを意味します。
 
 
Tuxedo ART for IMSの非端末アクセス・サポート
MPPによってエクスポートされたサービスへの非端末アクセスをサポートし、より多くのクライアントがMPPによってエクスポートされたサービスを使用できるように、この機能によってTuxedo ART for IMSの非端末アクセス・サポートが強化されています。ユーザーは、ネイティブのOracle Tuxedoクライアント、SALTクライアント、JCAクライアントなどの非端末アプリケーションを介して、Tuxedo ART for IMS MPPサービスを利用できます。
この機能は非端末tuxedoクライアント(ネイティブのTuxedoクライアント、SALTクライアント、JCAクライアントを含む)とMQアプリケーションの両方をサポートしています。
非端末tuxedoクライアントの場合、プログラミング・インタフェースが提供されます。プログラミング・インタフェースに従って、クライアントからMPPサービスにアクセスできます。
非端末Oracle Tuxedoクライアントとは異なり、WebSphere MQアプリケーションはOracle Tuxedoクライアントではありません。MQアプリケーションと従来のIMSアプリケーションの間で伝送されるMQメッセージの形式とメッセージ・フローは、WebSphere MQアプリケーション・プログラミング・ガイドにすでに定義されています。IMS環境でMQアプリケーションを使用する場合、MQ-IMSブリッジを利用して暗黙的なMQIサポートを有効にし、書換え、再コンパイル、再リンクを行わなくても、WebSphere MQメッセージを通じて従来のIMSアプリケーションにアクセスできます。この機能では、Oracle Tuxedo MQ Adapterを利用して、MQアプリケーションをOracle Tuxedoクライアントに変換できます。
プログラミング・インタフェース
非端末Oracle Tuxedoクライアントのプログラミング・インタフェース
Tuxedo ART for IMSでは、非端末クライアントとTuxedo ART for IMSのMPPサーバーの間のブリッジとして機能するサーバー、ARTIGWが提供されます。非端末クライアントは、次に示すプログラミング・インタフェースに従って、ARTIGWサービスを呼び出します。ARTIGWはサービス・リクエストをARTMPPに転送します。
ARTIGWと非端末Oracle Tuxedoクライアントの間の唯一のインタフェースは、FML表です。
アプリケーション・バッファでIMSトランザクション(TRANS1など)を実行するには、次の手順を実行します。
1.
IMS_SVC_NAME
IMSトランザクション名(TRANS1など)。
IMS_SVC_FLAG
将来使用するために予約済。
IMS_SEG_DATA
アプリケーション・バッファ・データ。LLZZはバッファ内に必要ありません。セグメントの最大長は32764です(これはARTIMPPの制限です)。
2.
クライアントは、手順1で準備したバッファでtpcall()/tpacall()を発行します。
ret = tpcall(< tuxclt_service_name>, …)
この< tuxclt_service_name>はARTIGWの通知済サービスで、サービス名が構成可能です。詳細は、ARTIGW CONFIGURATIONを参照してください。
3.
IMS_SVC_RESULT
0: ARTIMPPがレスポンス・メッセージによってリクエストを正常に処理します。
1: ARTIMPPがレスポンス・メッセージなしでリクエストを正常に処理します。
-1: ARTIGWエラー
-2: ARTIMPPエラー
IMS_SEG_DATA
バッファに返信データが含まれています。LLZZはバッファ内に含まれていません。
IMS_SVC_SYSMSG
IMS_SVC_RESULTが負の整数の場合は、冗長エラー・メッセージ。
インタフェースのFMLフィールド表(ARTIGWFML)とヘッダー・ファイル(ARTIGWFML.h)は、$IMSDIR/includeの下にあります。リスト4に、ARTIGWFMLの内容を示します。
リスト4 ARTIGWFMLの内容
*base 30000700
#name         rel-number type flags comment
#-----        -----------   ------ ------- ------------------------
IMS_SVC_NAME    181        string
IMS_SVC_FLAG    182        long
IMS_SVC_RESULT    183        long
IMS_SEG_DATA    184        carray
IMS_SVC_SYSMSG    185        carray
 
MQアプリケーションに対してサポートされているMQメッセージ
MQ-Tuxedo ART for IMSブリッジは次のメッセージ・タイプを受け入れます。
MQIIH LLZZ<trancode><data>[LLZZ<data>][LLZZ<data>]
LLZZ<trancode><data>[LLZZ<data>][LLZZ<data>]
注意:
1. 角カッコ[ ]はオプションの複数セグメントを表しています。
2. メッセージにMQIIH構造が含まれる場合、MQMD構造のFormatフィールドはMQFMT_IMSに設定されます。
3. メッセージにMQIIH構造が含まれない場合、MQMD構造のFormatフィールドはMQFMT_IMS_VAR_STRINGに設定されます。
構成
Oracle Tuxedo MQ Adapterの構成
MQアプリケーションをサポートするには、ユーザーはTuxedo 12cR1 RP17以降を適用し、次に示す手順に従う必要があります。
1.
Oracle Tuxedo MQ Adapter構成ファイルで、TM_MQI *SERVICEセクションを次のように定義する必要があります。
MQIIH構造を使用するメッセージの場合:
*SERVICE
NAME=< mq_service_name >
FORMAT= MQIMS
TRAN = N
MQIIH構造を使用しないメッセージの場合:
*SERVICE
NAME=< mq_service_name>
FORMAT= MQIMSVS
TRAN = N
この< mq_service_name>ARTIGWの通知済サービスで、サービス名が構成可能です。詳細は、「ARTIGWの構成」を参照してください。
2.
TM_MQI構成ファイルの*SERVERセクションで、次のパラメータを指定する必要があります。
*SERVER
TPESVCFAILDATA=Y
REPLYONSVCERR=Y
MSGTYPEONTPFAIL=Y
IMPORTMQMD=Y
3.
UBBCONFIGファイルでは、TM_MQIサーバーが、WebSphere MQ Resource ManagerのTMSサーバーによって構成されたグループ内に存在する必要があります。
ARTIGWの構成
ARTIGWは、非端末クライアントとARTIMPPサーバーの間のブリッジとして機能するTuxedoサーバーです。詳細は、「サーバーの構成」を参照してください。
クロス・ドメイン構成
ARTIGWARTIMPPが異なるドメインにデプロイされている場合、ARTIGW<tuxclt_service_name>_REPLY_<grpid>_<srvid>および<mq_service_name>_REPLY_<grpid>_<srvid>という名前でサービスをエクスポートします。GRPIDSVRIDは5文字です(0で始まります)。
前述のサービス名は、ARTIMPPが属しているすべてのリモート・ドメインのDMCONFIGファイルのDM_REMOTE_SERVICESセクションで構成されている必要があります。さらに、ARTIGWが配置されている各ドメインによって適切なサービス名がエクスポートされ、サービス競合がないようにする必要があります。
たとえば、ARTIGWがドメインGWにあり、ARTIMPPがドメインMPPにあると想定します。ARTIGWは、SRVID=101, SRVGRP= GROUP1で、デフォルト・サービス名を使用するように構成されています。リスト5に、MPPおよびGWドメインに対するDMCONFIGファイルの例を示します。
リスト5 MPPおよびGWドメインのDMCONFIGファイル
*DM_REMOTE_SERVICES
IMSGW_SVC_REPLY_00001_00101
*DM_LOCAL_SERVICES
IMSGW_SVC_REPLY_00001_00101
 
注意:
1. 非端末tuxedoクライアントに対しては、ARTIGWによる変換は行われません。クライアント・アプリケーションから提供されるデータは、ARTMPPサーバーとアプリケーション・プログラムで予想される形式にする必要があります。
2. ARTIGWは、単一スレッドのTuxedoサーバーです。ユーザーはパフォーマンス調整のためにARTIGWの複数インスタンスをデプロイできます。
3. Oracle Tuxedo MQ Adapterは、MQアプリケーションとのMQIインタフェースです。メインフレームとオープン・システムでWebSphere MQの動作は異なっているため、Tuxedo MQ Adapterの動作も異なるように見える可能性があります。
たとえば、MQアプリケーションによって、MQPMO_NONEオプションが付いたメッセージがメインフレーム上に格納された場合、Oracle Tuxedo MQ Adapterは、MQアプリケーションによってMQCMITが呼び出されるまで、IMSトランザクションをトリガーしません。
注意: オープン・システムでは、IMSトランザクションはすぐにトリガーされます。
4. MQアプリケーションでは、メッセージの処理中にARTIGWまたはARTIMPPによって予期しないエラーが発生した場合、レポート・メッセージが生成され、元のメッセージによって指定されている応答キューに送信されます。レポート・メッセージには元のメッセージのデータは含まれておらず、エラー・メッセージの詳細を示す文字列のみが含まれています。
制限
非端末Oracle Tuxedoクライアントの制限事項
1.
グローバル・トランザクションはサポートされていません。ARTIGWへのtpcallがグローバル・トランザクションの場合、TPNOTRANフラグを設定する必要があります。
2.
ARTIMPPサービスへのアクセス時にアクセス制御違反がある場合、非端末クライアントはアクセス制御違反のようなエラー・メッセージをすぐには取得せず、タイムアウトが発生するまで待機します。ULOGを確認して、詳細なエラー・レポートを取得する必要があります。
MQアプリケーションの制限事項
1.
コミット・モード0 (COMMIT_THEN_SEND)のみがサポートされています。Tuxedo ART for IMSでは、MQIIHに設定されているコミット・モード値に関係なく、常にトランザクションがコミット・モード0として処理されます。
2.
3.
4.
5.
6.
Tuxedo ART for IMSの永続メッセージ・サポート
Tuxedo ART for IMSでは、ALT PCBを使用するプログラムに対してのみ、永続メッセージがサポートされます。ALT PCBによるプログラム切替えでは、ターゲット・トランザクションが永続トランザクションの場合、メッセージはそのトランザクションの/Qに格納されます。永続トランザクションの定義方法については、imsresource.descに関する項を参照してください。
永続メッセージをサポートするために、ARTIMPPは2つの実行モードで区別されます。1つは標準モードのARTIMPPで、もう一方は永続モードのARTIMPPです。2つのARTIMPPサーバー・モードの定義方法については、ARTIMPPの構成に関する項を参照してください。
標準モードのARTIMPPはトランザクションをサービスとして通知し、端末リクエストやARTIGWからのリクエストなど、フロントエンドからの標準サービス・リクエストを処理します。サービス・リクエストはTuxedoフレームワークによってスケジュールされ、Tuxedo IPCキュー経由で渡されます。
永続モードのARTIMPPは、サービスを通知しません。これは、CLASSが属している永続トランザクションのすべての/Qが、ARTIMPPの" -l class_list"パラメータに対応しているかどうかをモニターします。永続トランザクションの/Qからメッセージを取得し、トランザクションに対応するプログラムを実行します。
ARTIBMPTは永続メッセージのサポートに関連するサーバーでもあります。ARTIBMPTが提供するトランザクション指向BMPプログラムは、永続トランザクションのみである必要があります。"トランザクション指向BMP"の詳細は、ARTIBMPTの構成に関する項を参照してください。トランザクション指向BMPプログラムでは、GU操作によってトランザクションの/Qからメッセージを取得します。
サーバーの構成
表18に、サーバー構成のプロセスとコマンドを示します。
 
ARTIMPPと同じ。ただし、これには、RMとしてOracle Databaseが必要です。
ARTIBMPと同じ。ただし、これには、RMとしてOracle Databaseが必要です。
異なるドメインに配置されているARTICTLARTIMPPの間のメッセンジャとして機能します。
ARTICTL
名前
ARTICL - 3270端末をTuxedo ART for IMSランタイムに結合するために使用されます。
形式
Tuxedo ART for IMS 12cリリース2 (12.2.2) GAまたはローリング・パッチ001の場合:
ARTICTL SRVGRP="identifier"
SRVID="number"
CLOPT="[servopts options] -- -n netaddr -L pnetaddr [-K seconds][-S ssladdr] [-m minh] [-M maxh] [-x session-per-handler] [-p profile-name][-z mine] [-Z maxe][-D [+H handler-number]]"
Tuxedo ART for IMS 12cリリース2 (12.2.2)ローリング・パッチ002以降の場合:
ARTICTL SRVGRP="identifier"
SRVID="number"
CLOPT="[servopts options] -- -n netaddr -L pnetaddr [-K seconds][-S ssladdr] [-m minh] [-M maxh] [-x session-per-handler] [-p profile-name][-z mine] [-Z maxe][-d trace-level]"
説明
UBBCONFIGファイルのMACHINESセクションでMAXWSCLIENTSパラメータを指定する必要があります。MAXWSCLIENTSは、ARTICTLに対して特別な意味を持つ唯一のパラメータです。MAXWSCLIENTSは、3270端末専用に予約されているアクセス・スロットの数を、起動時にOracle ARTに通知します。
MAXWSCLIENTSには、1つのノードに接続できる3270ターミナルの最大数を指定します。デフォルトは0です。指定しないと、ターミナルから指定されたマシンに接続できません。
構文はMAXWSCLIENTS=numberです。
パラメータ
-n netaddr
このアドレスは、TN3270端末エミュレータがARTICTLサブシステムに接続する場所を指定します。アドレスは、標準インターネットURL書式の文字列です。次に例を示します。
//computer:4000は、マシン・コンピュータのポート4000を示します。文字、1-256、A-Za-z0-9[/:-]。必須のオプション。
-L pnetaddr
このアドレスは、TCPLとCTLHの間でARTICTLサブシステムによって内部で使用されます。アドレスは、標準インターネットURL書式の文字列です。次に例を示します。
//computer1:4001は、マシン・コンピュータのポート4000を示します。文字、1-256、A-Za-z0-9[/:-]。必須のオプション。
[-m minh]
ARTICTLによって開始されるハンドラ・プロセスの最小数であるminhは、1-255の数であり、そのデフォルト値は1です。ハンドラ・プロセスの実際の数は、システム負荷に基づいて、常にminhmaxhの間にあります。
注意:
minhは1-255の数ですが、システム・リソースの制限に従って、それは、(FD_SETSIZE - 24)以下である必要があります。FD_SETSIZEは、1つのプロセスで一度に開くことができるファイルの最大数を意味します。この値は、システム・コマンドulimit -nを使用して取得できます。
[-M maxh]
ARTICTLによって開始されるハンドラ・プロセスの最大数であるmaxhは、1-1000の数であり、デフォルト値は1000です。ハンドラ・プロセスの実際の数は、システム負荷に基づいて、常に minhmaxhの間にあります。
注意:
maxhは1-1000の数ですが、システム・リソースの制限に従って、それは、(FD_SETSIZE - 24)以下である必要があります。FD_SETSIZEは、1つのプロセスで一度に開くことができるファイルの最大数を意味します。この値は、システム・コマンドulimit -nを使用して取得できます。
[-x session-per-handler]
CTLHがARTICTLサブシステムで同時に維持できるセッションの数。
数値、1-255。デフォルト値は32です。
[-K seconds]
ARTICTLと3270端末の間のキープアライブ・メッセージ間隔を秒数で指定します。接続の最大許容アイドル時間よりも小さい整数である必要があります。-Kオプションを設定しないと、キープアライブ・メッセージは送信されません。
[-S ssladdr]
3270端末エミュレータがARTICTLにSSL経由で接続する場所を指定します。アドレスは、標準インターネットURL書式の文字列です。たとえば、//computer:5000は、computerというマシン上のポート5000を示します。文字、1-256、A-Z、a-z、0-9、[/:-]-nオプションが指定されない場合、[-S ssladdr]必須です。
[-p profile-name]
デフォルトのセキュリティ・プロファイル・ファイルの名前。詳細は、「セキュリティ構成」を参照してください。デフォルト値は~/.tuxAppProfileです。
注意:
Tuxedoドメインへの参加には、ARTICTLはセキュリティ・プロファイルに格納されているAPP_PWのみ使用します。ARTICTLで使用されるユーザー名/ユーザー・パスワードは3270端末からのものです。
-z minencryptbits
このオプションは、端末とARTICTLハンドラの間でネットワーク・リンクを確立する際に必要な暗号化の最小レベルを指定します。0は暗号化が行われないことを示し、40、56、128および256は暗号化キーの長さをビット単位で指定します。ここで指定する最小レベルの暗号化が満たされない場合、リンクの確立は失敗します。デフォルトは0です。-sオプションが指定されない場合、このオプションは無視されます。
–Z maxencryptbits
このオプションは、ワークステーション・クライアントとワークステーション・ハンドラの間でネットワーク・リンクを確立する際に必要な暗号化の最大レベルを指定します。0は暗号化が行われないことを示し、40、56、128および256は暗号化キーの長さをビット単位で指定します。デフォルトはLLEの場合128、SSLの場合256です。このオプションは、56ビットまたは128/256ビットのOracle Tuxedoセキュリティ・アドオン・パッケージがインストールされている場合にのみ使用できます。
-sオプションが指定されない場合、このオプションは無視されます。
[-D [+H handler-number]]
このオプションは、Tuxedo ART for IMS 12cリリース2 (12.2.2) GAまたはローリング・パッチ001に適用されます。
-Dオプションは、ARTICTLサーバーのトレース・ログを有効にするために使用されます。指定しない場合、無効です。+H handler-numberオプションは、ARTICTLHサーバーで有効なハンドラ数のうち、最初にブートした数にかぎり、ARTICTLHサーバーのトレース・ログを有効にするために使用されます。handler-numberが0の場合、トレース・ログは、現在のARTICTLサーバーから作成されたすべてのARTICTLHサーバーで有効になります。すべてのトレース・ログは、/tmpディレクトリに配置されます。
[-d trace-level]
このオプションは、Tuxedo ART for IMS 12cリリース2 (12.2.2)ローリング・パッチ002以降に適用されます。
-dオプションは、サーバーのトレース・レベルを設定するために使用されます。設定しない場合、デフォルトのトレース・レベルは-1で、エラー情報のみがトレース・ログ・ファイルに出力されることを意味します。使用できるトレースレベル値は、01または2です。
0: 関数スタック情報がログに記録されます。
1: デバッグ・トレース情報がログに記録されます。
2: より詳細なデータ情報がログに記録されます。
*MACHINES
DEFAULT:
MAXWSCLINETS = 20
...
*SERVERS
ARTICTL SRVGRP="MFSGRP"
SRVID=1000
RESTART=Y GRACE=0
CLOPT="-- -n //hostname:4000 -L //hostname:4002 -m 1 -M 10"
ARTIMPP
名前
ARTIMPP - TPタイプCOBOL/Cプログラムのサービス・ハンドラおよびコンテナ。
形式:
ARTIMPP SRVGRP="identifier"
SRVID="number"
CLOPT="[servopts options] -- -l class_list [-V][-p][-m cobol mode][-D trace-level][-x parameter list for DB plugin]"
説明
ARTIMPPは、TPタイプCOBOL/Cプログラムのサービス・ハンドラおよびコンテナとして機能するTuxedoサーバーです。ARTIMPPには2つの実行モードがあります。1つは標準モード(CLOPT-pの指定なし)のARTIMPP、もう一方は永続モード(CLOPT-pを指定)のARTIMPPです。
標準モードのARTIMPPは、フロントエンドから受け取ったサービス・リクエスト(端末、ARTIGWからのリクエスト)に従って、対応するCOBOL/Cプログラムを起動します。
永続モードのARTIMPPは、ARTIMPPCLOPTにある-l class_listパラメータでクラスが定義されている永続トランザクションの/Qをモニターします。これは/Qからメッセージを受信し、対応するCOBOL/Cプログラムを起動します。
パラメータ
[-l class_list]
トランザクション・クラスのリスト(1,3,5など)、クラス範囲(1-3など)またはすべてのクラス(つまり*)を指定します。クラスがclass_listで指定されているサービスは、標準モードのARTIMPPによって通知されます。
-p
ARTIMPPは永続モードです。永続モードのARTIMPPはサービスやトランザクションを通知しません。
-V
サーバーのパフォーマンス・トレースを有効にします。
[-m cobol mode]
ユーザーのCOBOLプログラムの起動方法を指定します。詳細は、「環境変数」「ARTIMS_COBOL_MODE」を参照してください。
[-D trace-level]
このオプションは、サーバーのトレース・レベルを設定するために使用されます。使用可能なtrace-levelの値には、0、1、2が含まれます。設定しない場合、デフォルトのトレース・レベルは-1で、エラー情報のみがトレース・ログ・ファイルに出力されます。トレース・レベルは次のように定義されています。
0 : 関数スタック情報がログに記録されます。
1 : デバッグ・トレース情報がログに記録されます。
2 : より詳細なデータ情報がログに記録されます。
[-x]
データベース・プラグインが使用されるサーバーを示します。-xに続く残りのパラメータ・リストはdb_init()に渡されます。
Oracle IMS/DBソリューションの場合、パラメータ・リストは次のとおりです。
-o host:port:dra
これは、IMS/DB用のOracleプラグインで必要とされるパラメータです。
host
接続先のODBAプロキシのホスト名またはipv4アドレス。
port
ODBAリクエストを受信するためのODBAプロキシのポート。
dra
アクセス先のIMS/DBシステムが定義されているDRA表の名前(例: CLOPT="-A -- -x -o zosmachine:1234:BEA1")
注意:
UBBCONFIGファイルでARTIMPPサーバーが永続モードに構成されており、imsresource.descで永続トランザクションが構成されている場合、UBBCONFIGファイルで、imsresource.descの/Qの構成に従って(ARTIMPPの前に) TMQUEUEサーバーを構成する必要もあります。
Tuxedo ART for IMSを起動する前に、imsresource.desc内の情報に従って/Qも作成する必要があります。
制限
ROLBまたはROLLを発行する永続トランザクションの場合、トランザクションは永続モード・サーバーの1つのARTIMPPによってのみ処理できます。つまり、(imstrans.descで定義された)トランザクションのCLASS定義は、永続モード・サーバーの1つのARTIMPP-lパラメータのみと一致します。
ARTIMPP_ORA
説明
ARTIMPP_ORAは、ARTIMPPのすべての機能を備えています。また、外部リソース・マネージャ(RM)として使用されるOracle Databaseもサポートできます。これは、Oracle Databaseによって提供されるいくつかのライブラリを使用します。Oracle Databaseでこの環境変数を使用するには、UBBCONFIGファイルでRMセクションを適切に構成する必要があります。
ARTIBMP
名前
ARTIBMP - BATCHタイプCOBOL/Cプログラムのプログラム・コンテナ。
形式:
ARTIBMPSRVGRP="identifier"
SRVID="number"
CLOPT="[servopts options] -- [-V][-m cobol mode][-D trace-level][-x parameter list for DB plugin] "
説明
ARTIBMPは、BATCHタイプのCOBOL/Cプログラムのプログラム・コンテナとして機能するOracle Tuxedoサーバーであり、受信したプログラム名に応じて対応するCOBOL/Cプログラムを起動します。エラーや異常終了がなく、ユーザー・プログラムもクラッシュしていない場合、ユーザー・プログラムのリターン・コードはDFSRRC00です。
パラメータ
-V
サーバーのパフォーマンス・トレースを有効にします。
[-m cobol mode]
ユーザーのCOBOLプログラムの起動方法を指定します。詳細は、「環境変数」「ARTIMS_COBOL_MODE」を参照してください。
[-D trace-level]
このオプションは、サーバーのトレース・レベルを設定するために使用されます。使用可能なtrace-levelの値には、0、1、2が含まれます。設定しない場合、デフォルトのトレース・レベルは-1で、エラー情報のみがトレース・ログ・ファイルに出力されます。トレース・レベルは次のように定義されています。
0 : 関数スタック情報がログに記録されます。
1 : デバッグ・トレース情報がログに記録されます。
2 : より詳細なデータ情報がログに記録されます。
[-x]
データベース・プラグインが使用されるサーバーを示します。-xに続く残りのパラメータ・リストはdb_init()に渡されます。
Oracle IMS/DBソリューションの場合、パラメータ・リストは次のとおりです。
-o host:port:dra
これは、IMS/DB用のOracleプラグインで必要とされるパラメータです。
host
接続先のODBAプロキシのホスト名またはipv4アドレス。
port
ODBAリクエストを受信するためのODBAプロキシのポート。
dra
アクセス先のIMS/DBシステムが定義されているDRA表の名前(例: CLOPT="-A -- -x -o zosmachine:1234:BEA1")
ARTIBMPT
名前
ARTIBMPT - トランザクション指向バッチ・プログラムを処理するOracle Tuxedoサーバー。
形式
ARTIMPP SRVGRP="identifier" SRVID="number"
CLOPT="[servopts options] -- -l class_list [-m cobol mode][-D trace-level] [-x parameter list for DB plugin] "
説明
トランザクション指向BMPプログラムは、ARTIBMPTによって処理され、${IN}パラメータの指定されたDFSRRC00によってトリガーされる必要があります。トランザクション指向BMPプログラムは、imstrans.descで定義され、imsapps.descでもTYPE=BATCHによって定義されているプログラムです。
トランザクション指向BMPプログラムは永続トランザクションにする必要があり、imsresource.descで定義する必要があります。ARTIBMPTサーバーは、トランザクション指向BMPプログラムのみを処理します。
エラーや異常終了がなく、ユーザー・プログラムもクラッシュしていない場合、ユーザー・プログラムのリターン・コードはDFSRRC00です。
パラメータ
[-l class_list]
トランザクション・クラスのリスト(1,3,5など)、クラス範囲(1-3など)またはすべてのクラス(つまり*)を指定します。クラスがclass_listで指定されているサービスは、ARTIBMPTによって通知されます。
[-m cobol mode]
ユーザーのCOBOLプログラムの起動方法を指定します。詳細は、「環境変数」「ARTIMS_COBOL_MODE」を参照してください。
[-D trace-level]
このオプションは、サーバーのトレース・レベルを設定するために使用されます。使用可能なtrace-levelの値には、0、1、2が含まれます。設定しない場合、デフォルトのトレース・レベルは-1で、エラー情報のみがトレース・ログ・ファイルに出力されます。トレース・レベルは次のように定義されています。
0 : 関数スタック情報がログに記録されます。
1 : デバッグ・トレース情報がログに記録されます。
2 : より詳細なデータ情報がログに記録されます。
[-x]
データベース・プラグインが使用されるサーバーを示します。-xに続く残りのパラメータ・リストはdb_init()に渡されます。
Oracle IMS/DBソリューションの場合、パラメータ・リストは次のとおりです。
-o host:port:dra
これは、IMS/DB用のOracleプラグインで必要とされるパラメータです。
host
接続先のODBAプロキシのホスト名またはipv4アドレス。
port
ODBAリクエストを受信するためのODBAプロキシのポート。
dra
接続先のIMS/DBを指定する表の名前。このパラメータはオプションで、構成された場合は、すべてのDB操作がODBAを介して実行されます。そうでない場合、すべてのDB操作はオープン・システム上の実際のDB実装を介して実行されます。DRA表の名前は、4バイトの大文字で指定する必要があります。
注意:
ARTIBMPTUBBCONFIGファイルで構成されており、トランザクション指向BMPトランザクションがimsresource.descで構成されている場合、UBBCONFIGファイルで、imsresource.descの/Qの構成に従ってTMQUEUEサーバーを構成する必要もあります。
制限
ROLBまたはROLLを発行するトランザクション指向BMPプログラムの場合、トランザクションは1つのARTIBMPTサーバーによってのみ処理できます。
つまり、(imstrans.descで定義された)トランザクションのCLASS定義は、1つのARTIBMPTサーバーの-l class_listパラメータのみと一致します。
ARTIBMP_ORA
説明
ARTIBMP_ORAは、ARTIBMPのすべての機能を備えています。また、外部リソース・マネージャ(RM)として使用されるOracle Databaseもサポートできます。これは、Oracle Databaseによって提供されるいくつかのライブラリを使用します。Oracle Databaseでこの環境変数を使用するには、UBBCONFIGファイルでRMセクションを適切に構成する必要があります。
ARTIADM
名前
ARTIADM - Tuxedo ART for IMSランタイムの管理を担当するOracle Tuxedoサーバー。
形式
ARTIADM SRVGRP="identifier"
SRVID="number"
CLOPT="[servopts options]--[-D trace-level]"
説明
分散ターゲット環境では、構成の伝播を実現するために、このサーバーを各ノードで構成できます。これらのサーバーを使用すると、構成ファイルはマスター・ノード上で構成することのみが必要となり、管理サーバーによって、各スレーブ・ノードに構成ファイルが伝播されます。
起動時に、マスター・ノード上で動作している管理サーバーは、ディレクトリ${ART_IMS_CONFIG}にあるすべての構成ファイルを読み込みます。スレーブ・ノード上で動作する各管理サーバーの起動起動時には、マスター・ノード上の管理サーバーと通信して、構成ファイルの内容をフェッチします。
続いてスレーブ・ノード上の管理サーバーは、スレーブ・ノード上のディレクトリ${ART_IMS_CONFIG}にある、対応する構成ファイルに書き込みます。存在しない場合は、新しい構成ファイルが作成されます。構成ファイル同期関数はオプションです。デフォルトでは、この関数は無効になっています。
パラメータ
[-D trace-level]
このオプションは、サーバーのトレース・レベルを設定するために使用されます。使用可能なtrace-levelの値には、0、1、2が含まれます。設定しない場合、デフォルトのトレース・レベルは-1で、エラー情報のみがトレース・ログ・ファイルに出力されます。トレース・レベルは次のように定義されています。
0 : 関数スタック情報がログに記録されます。
1 : デバッグ・トレース情報がログに記録されます。
2 : より詳細なデータ情報がログに記録されます。
ARTITERM
名前
ARTITERM - 異なるドメインに配置されているARTICTLARTIMPPの間のメッセンジャとして機能します。
形式:
ARTITERM SRVGRP="identifier"
SRVID="number"
CLOPT=""
説明
クロス・ドメイン環境では、ARTITERMサーバーは、異なるドメインに配置されているARTICTLARTIMPPの間のメッセンジャとして使用されます。ARTITERMは、ARTIMPPに特別なサービスを提供し、したがって、ARTIMPPはデータをARTITERMに渡すことができ、それは次にそのデータをARTICTLに渡します。
ARTIGW
名前
ARTIGW - 非端末クライアントとARTIMPPサーバーの間のブリッジとして機能するOracle Tuxedoサーバー。
形式:
ARTIGWSRVGRP="identifier"
SRVID="number"
CLOPT="[servopts options] [-m mq_service_name] [-s tuxclt_service_name] [-V][-D trace-level]"
説明
ARTIGWは、非端末クライアントとARTIMPPサーバーの間のブリッジとして機能するOracle Tuxedoサーバーです。主な機能は次のとおりです。
MQアプリケーションのリクエスト・メッセージの場合、MQメッセージを、ARTIMPPで使用可能な形式に変換します。応答メッセージの場合は、ARTIMPPの応答メッセージをMQメッセージに変換します。
非端末Oracle Tuxedoクライアント・リクエスト・メッセージの場合、ARTIGWは、クライアントのFML32バッファをプログラムが必要とするメッセージ形式に転送する役割を果たし、そのメッセージをMPPに送信します。次にMPPメッセージをデコードして、標準のFML32バッファをクライアントに送信します。
セッション管理を使用して、非同期のARTIMPP応答と元のARTIGWクライアント・リクエストを関連付けます。
セッション管理を使用して、ARTIMPPからの非同期の応答と、ARTIGWクライアントからの元のリクエストを関連付けます。
パラメータ
mq_service_name
MQアプリケーションのメッセージ処理専用のサーバーによって通知されるサービス名を指定します。これはオプション・パラメータであり、このパラメータがない場合、デフォルト・サービス名の<IMSGW_MQ_SVC>は通知されません。
tuxclt_service_name
非端末tuxedoクライアントのメッセージ処理専用のサーバーによって通知されるサービス名を指定します。これはオプション・パラメータであり、このパラメータがない場合、デフォルト・サービス名の<IMSGW_MQ_SVC>は通知されません。
-V
サーバーのパフォーマンス・トレースを有効にします。
[-D trace-level]
このオプションは、サーバーのトレース・レベルを設定するために使用されます。使用可能なtrace-levelの値には、0、1、2が含まれます。設定しない場合、デフォルトのトレース・レベルは-1で、エラー情報のみがトレース・ログ・ファイルに出力されます。トレース・レベルは次のように定義されています。
0 : 関数スタック情報がログに記録されます。
1 : デバッグ・トレース情報がログに記録されます。
2 : より詳細なデータ情報がログに記録されます。
注意:
mq_service_nametuxclt_service_nameはどちらも、先頭を<domainid>_にすることはできません。そうでなければ、ARTIGWはレスポンス・メッセージを正しく取得できません。この場合、<domainid>は、ARTIMPPが属しているドメインのIDです。
IMSCONN
名前
IMSCONN - IMS ConnectクライアントをTuxedo ART for IMSランタイムに結合するために使用されます。
形式:
IMSCONN SRVGRP="identifier"
SRVID="number"
CLOPT="[servopts options] -- -n netaddr -L pnetaddr [-K seconds][-S ssladdr] [-m minh] [-M maxh] [-x session-per-handler] [-z mine] [-Z maxe] [-d trace-level]"
説明
UBBCONFIGファイルのMACHINESセクションでMAXWSCLIENTSパラメータを指定する必要があります。MAXWSCLIENTSは、IMSCONNに対して特別な意味を持つ唯一のパラメータです。MAXWSCLIENTSは、IMS Connectクライアント専用に予約されているアクセス・スロットの数を、起動時にOracle ARTに通知します。
MAXWSCLIENTSの場合は、ノードに接続するIMS Connectクライアントの最大数を指定します。デフォルトは0です。指定しないと、IMS Connectクライアントから指定されたマシンに接続できません。
構文はMAXWSCLIENTS=numberです。
パラメータ:
-n netaddr
このアドレスは、IMS ConnectクライアントがARTICTLサブシステムに接続する場所を指定します。アドレスは、標準インターネットURL書式の文字列です。たとえば、//computer:4000は、マシン・コンピュータ上のポート4000を示します
文字、1-256、A-Za-z0-9[/:-]。必須のオプション。
-L pnetaddr
このアドレスは、IMSCONNIMSCONNHの間でIMSCONNサブシステムによって内部で使用されます。アドレスは、標準インターネットURL書式の文字列です。たとえば、//computer1:4001は、マシン・コンピュータ上のポート4000を示します
文字、1-256、A-Za-z0-9[/:-]。必須のオプション。
[-K seconds]
IMSCONNとIMS Connectクライアントの間のキープアライブ・メッセージ間隔を秒数で指定します。接続の最大許容アイドル時間よりも小さい整数である必要があります。-Kオプションを設定しないと、キープアライブ・メッセージは送信されません。
[-m minh]
IMSCONNによって開始されるハンドラ・プロセスの最小数。minhは、1-255の数であり、そのデフォルト値は1です。ハンドラ・プロセスの実際の数は、システム負荷に基づいて、常に minhmaxhの間にあります。
注意:
minhは1-255の数ですが、システム・リソースの制限に従って、それは、(FD_SETSIZE - 24)以下である必要があります。FD_SETSIZEは、1つのプロセスで一度に開くことができるファイルの最大数を意味します。この値は、システム・コマンドulimit -nを使用して取得できます。
[-M maxh]
IMSCONNによって開始されるハンドラ・プロセスの最大数。maxhは、1-1000の数であり、デフォルト値は1000です。ハンドラ・プロセスの実際の数は、システム負荷に基づいて、常に minhmaxhの間にあります。
注意:
maxhは1-1000の数ですが、システム・リソースの制限に従って、それは、(FD_SETSIZE - 24)以下である必要があります。FD_SETSIZEは、1つのプロセスで一度に開くことができるファイルの最大数を意味します。この値は、システム・コマンドulimit -nを使用して取得できます。
[-x session-per-handler]
IMSCONNHIMSCONNサブシステムで同時に維持できるセッションの数。
数値、1-255。デフォルト値は32です。
[-S ssladdr]
IMS ConnectクライアントがIMSCONNにSSL経由で接続する場所を指定します。アドレスは、標準インターネットURL書式の文字列です。たとえば、//computer:5000は、computerというマシン上のポート5000を示します
文字、1-256、A-Za-z0-9[/:-]。-nオプションが指定されない場合、[-S ssladdr]は必須です。
-z minencryptbits
このオプションは、IMS ConnectクライアントとIMSCONNハンドラの間でネットワーク・リンクを確立する際に必要な暗号化の最小レベルを指定します。0は暗号化が行われないことを示し、40、56、128および256は暗号化キーの長さをビット単位で指定します。ここで指定する最小レベルの暗号化が満たされない場合、リンクの確立は失敗します。デフォルトは0です。-sオプションが指定されない場合、このオプションは無視されます。
- Z maxencryptbits
このオプションは、IMS ConnectクライアントとIMSCONNハンドラの間でネットワーク・リンクを確立する際に許容される暗号化の最大レベルを指定します。0は暗号化が行われないことを示し、40、56、128および256は暗号化キーの長さをビット単位で指定します。デフォルトはLLEの場合128、SSLの場合256です。このオプションは、56ビットまたは128/256ビットのOracle Tuxedoセキュリティ・アドオン・パッケージがインストールされている場合にのみ使用できます。
-sオプションが指定されない場合、このオプションは無視されます。
[-d trace-level]
-dオプションは、サーバーのトレース・レベルを設定するために使用されます。設定しない場合、デフォルトのトレース・レベルは-1で、エラー情報のみがトレース・ログ・ファイルに出力されることを意味します。使用できるトレースレベル値は、0、1または2です。
*MACHINES
DEFAULT:
MAXWSCLINETS = 20
...
*SERVERS
IMSCONN SRVGRP="MFSGRP"
SRVID=1000
RESTART=Y GRACE=0
CLOPT="-- -n //hostname:4000 -L //hostname:4002 -m 1 -M 10"
ODBAPROX
名前
ODBAPROX - z/OS上のソケット・サーバーであり、TCP/IPを介してTuxedo ART for IMSサーバーと通信するものです。
形式:
ODBAPROX -h host -l command_port -p odba_port -n max_handler_num [-D]
説明
ODBAプロキシは、ソケット・サーバーであり、TCP/IPを介してTuxedo ART for IMSサーバーと通信します。ODBAPROXは、Tuxedo ART for IMS内のプログラムと通信するように開発され、これらのプログラムのかわりにデータベース処理を実行します。
パラメータ:
[-h]
ODBAプロキシが動作しているホスト(ホスト名またはipv4アドレス)を指定します。
[-l]
外部ユーティリティからコマンドを受信するためのポートを指定します。
[-p]
odbaリクエストを受信するためのポートを指定します。
[-n]
起動するハンドラの最大数を指定します。
[-D]
標準出力でのデバッグ情報の出力を有効化します。
詳細は、『Oracle Tuxedo Application Runtime for IMSユーザーズ・ガイド』のODBAプロキシの使用方法に関する項を参照してください。
セキュリティ構成
認証構成
Tuxedoでは、セキュリティ・メカニズムのどのタイプでも、Tuxedo ATMIアプリケーションに参加するためのプロセスの一部として、すべてのユーザーにアプリケーション・パスワードの入力が要求されますが、Tuxedo ART for IMSでは、IMSがz/OS上に配置されている場合と同じ動作を保つために、それは削除されました。ユーザーは、アプリケーション・パスワードをNULLとして維持する必要があります。Tuxedoアプリケーション・パスワードを構成する方法の詳細は、Tuxedoのドキュメントを参照してください。USER_AUTHおよびACL/必須ACLセキュリティ・メカニズムでは、ユーザーはTuxedo ART for IMSランタイムに参加するために有効なユーザー名とパスワードを入力することを要求されます。ユーザーごとのパスワードは、tpusrという名前のファイルに格納されたユーザー名に関連付けられているパスワードと一致する必要があります。クライアント名は使用されません。tpusrのパスワードおよびユーザー名に対するユーザーごとのパスワードの照合は、Tuxedo認証サーバーAUTHSVRによって提供される、Tuxedo認証サービスAUTHSVCによって行われます。Tuxedo USER_AUTHおよびACL/必須ACL認証を構成する方法の詳細は、Tuxedoドキュメントを参照してください。
詳細は、『Oracle Tuxedoユーザーズ・ガイド』のATMIアプリケーションでのセキュリティの使用方法に関する項を参照してください。
SSL構成
Tuxedo ART for IMSでは、次の既存のUBBCONFIGファイル・パラメータを使用して、SSL識別文字列およびSSL証明書の暗号化パスワードの場所に関する情報が構成されます。
詳細は、『Oracle Tuxedoユーザーズ・ガイド』のATMIアプリケーションでのセキュリティの使用方法に関する項を参照してください。
環境変数
*.desc*.psbなどの構成ファイルが配置されている絶対パスを指定するためにTuxedo ART for IMSによって必要とされる環境変数。これはARTIMPPARTIMPP_ORAARTIBMPARTIBMP_ORAARTIBMPTARTIADMに必須の環境変数です。
GSAMファイルが配置されているコンテナ・パス。
MFSGENによって生成された制御ブロック・ファイルが配置されている絶対パスを指定するためにARTICTLによって必要とされる環境変数。これは、PATH環境変数に類似した一連のパスであり、セパレータは:です。この変数が指定されていない場合、PATH APPDIRが使用されます。MFSを使用する場合、これはARTICTLに必須の環境変数です。
すべてのレコード・ログ・ファイルの格納先ディレクトリを指定します。レコード・ログ・ファイルはCHKP (シンボリック)およびXRSTで使用されます。指定しなかった場合、ART_IMSLOGDIRのデフォルト値は$APPDIR/IMSLOGDIRになります。MPモードでOracle Tuxedoドメイン内の複数のマシンがレコード・ログ・ファイルを共有する場合、ART_IMSLOGDIRは、Oracle Tuxedoドメイン内のマシンがアクセスできるNFSディレクトリを指している必要があります。
ユーザー名を大文字に変換するかどうかを指定するために、ARTICTLによって必要とされる環境変数。Yを設定すると、すべてのユーザー名の文字が大文字に変換されます。Nを設定するか、または設定しない場合は、変換されません。
ユーザーのCOBOLプログラムの起動/取消し方法を指定します(Micro Focus COBOLのみ)。COBOL-ITの場合は無視されます。表19に、使用可能な値と説明を示します。設定しない場合、デフォルト値はMF_SUBSYSです。
 
SUBSYSTEMメソッドを使用します。
COBFUNCメソッドを使用します。
デフォルトのCANCEL動作でcobcallを使用します。
物理的なCANCEL動作でcobcallを使用します。
論理的なCANCEL動作でcobcallを使用し、論理的なキャンセル操作の一部として、.dllコードおよび共有オブジェクト・コードを物理的にキャンセルします。
論理的なCANCELcobcallを使用し、論理的なキャンセル操作の一部として、.dllコードおよび共有オブジェクト・コードを物理的にキャンセルしません。
CANCEL動作なしでcobcallを使用します。
動的BMP設定を指定します。値はYまたはNに設定できます。
Yに設定した場合、BMPサーバーはBMPプログラムの実行後終了します。"N"に設定した場合、BMPサーバーはBMPプログラムの実行後も存続します。
設定しない場合、デフォルトはNです。
アプリケーション例外として捕捉するシグナル番号のリストを指定します。各数値は、ART_IMS_EXCEPTION_TO_CATCH=8,11,4のようにカンマで区切って指定します。
この環境変数が設定されない場合、デフォルト・リスト(SIGSEGV,SIGILL,SIGBUS,SIGFPE)が使用されます。誤ったシグナル番号が指定された場合は無視され、警告メッセージがULOGファイルに書き込まれます。捕捉できない正しいシグナル番号が指定された場合(SIGKILLSIGSTOPなど)、サーバーの起動が失敗し、警告メッセージがULOGファイルに書き込まれます。
ユーザー・アプリケーションによって生成された重大な例外が捕捉された場合のサーバーの動作を指定します。値はKEEPまたはABORTに設定できます。
ABORTに設定した場合、ユーザー・アプリケーションからの例外が捕捉されると、サーバーMPP/BMPは中止されます。サーバーのコア・ファイルはシステムの構成に基づいて生成される場合とされない場合があります。
KEEPに設定した場合、サーバーは起動したままになります。設定しない場合、デフォルト値はKEEPです。
ログオン画面のディレクトリを指定します。これは、$IMSDIRのサブディレクトリである必要があります。設定しない場合、デフォルト値はsysmapで、これは、$IMSDIR/sysmapのログオン画面が使用されることを意味します。$IMSDIR/sysmap2では別のログオン画面が定義されており、sysmap2sysmapの間の違いは、ユーザー名およびパスワードの入力フィールドの位置のみです。ユーザー定義のログオン画面の詳細は、$IMSDIR/sysmap2readmeファイルを参照してください。
Micro Focus COBOL環境に必要な環境変数。これは、動的にロードされるCOBOLプログラムを検索する1つ以上のディレクトリを定義します。その使用方法は、UNIX PATHに似ています。これはMicro Focus COBOLに必須の環境変数です。
COBOL-ITを使用している場合、COBOLプログラムの検索順序を定義するためにCOBOL-ITによってCOB_LIBRARY_PATHが必要とされます。これは、動的にロードされるCOBOLプログラムを検索する1つ以上のディレクトリを定義します。その使用方法は、Unix PATHに似ています。これはCOBOL-ITに必須の環境変数です。
DFSRRC00BMP/BMPTプログラムのレスポンスを待機するときのタイムアウト秒の値を指定するために使用されます。これには、次のルールが使用されます。
定義されない場合、またはその値が0、負の値、または0xFFFFFFFFよりも大きい値に設定されている場合、タイムアウトは許可されません。DFSRRC00は、BMP/BMPTからのレスポンスを受信するまで待機します。
その値が0xFFFFFFFFよりも小さい正の値に設定されている場合、DFSRRC00は、指定されたタイムアウト値に達するか、またはタイムアウト値の範囲内でBMP/BMPTからレスポンスを受信するまで待機します。
アウトバウンド・データのどのエンコーディング・タイプを使用するかを指定します。値には、z/OSプラットフォームで使用されるEBCDICエンコーディング・タイプであれば、任意のタイプを指定できます。この変数を指定しない場合は、IBM-37が使用されます。この変数を指定する場合は、INTERCODEも指定する必要があります。
プログラムのダンプ・タイプを指定します。ダンプ・ファイルは、次のいずれかの条件が満たされたときに生成されます。
CEE3ABD/ART3ABDが呼び出される場合(MF環境でCEE3ABDが呼び出される場合を除く)。
DLI ROLLが呼び出される場合。
ART_IMS_EXCEPTION_TO_CATCHまたはデフォルト・シグナル・リスト(ART_IMS_EXCEPTION_TO_CATCHが未設定の場合)で指定されたシグナルが捕捉される場合。
表20に、使用可能な値と説明を示します。
 
IMS_DUMP_TYPEが構成されていない場合、デフォルト値はNONEですが、ARTIMS_EXCEPTION_HANDLINGABORTに設定されている場合、シグナルの捕捉時にSYSTEM_DUMPが有効になります。表21に、ダンプ・タイプのすべての組合せを示します。
 
表22に、ダンプ・ファイル生成の要件を示します
 
CIT環境では、COBOLプログラムは-g-fmem-infoまたは-debugフラグ付きでコンパイルする必要があります。
両方ともCOBOL_DUMPSYSTEM_DUMPの要件を超えていること。
すべてのダンプ・ファイルは$APPDIRに配置されます。
プロセス・ダンプ・ファイル名は、core.${server name}.${timestamp}.${pid}です。
CITダンプ・ファイル名は、CIT.core.${program name}.${timestamp)です。
DFSRRC00のため、ARTIBMPサーバーに送信する必要のある、接頭辞DD_の付く環境変数以外のすべて環境変数名の指定に使用されます。すべての環境変数の名前はカンマで区切ります。DFSRRC00を起動する前に設定する必要があります。
ARTIMSでは、従来の8バイトのユーザー名/パスワードを使用した端末からのログインIMS以外に、最大30バイトのユーザー名/パスワードもサポートされています。この環境変数は、従来のユーザー名/パスワードと長いユーザー名/パスワードを切り替えるために使用します。デフォルト・モードは従来の8バイトのユーザー名/パスワードです。
IMS_LONG_USERNAMEYに設定した場合、最大30バイトのユーザー名/パスワードが使用されます。それ以外の場合、従来の8バイトのユーザー名/パスワードが使用されます。
パフォーマンス・トレースのグローバル・スイッチ。IMS_PERF_ENABLEY/Nに設定した場合、パフォーマンス・トレースのオン/オフが制御され、UBBCONFIGファイル設定より優先されます。
IMS_PERF_ENABLEが設定されていない場合、パフォーマンスの動作はUBBCONFIGファイルの-Vオプションの使用により設定されます。
プログラム起動ログのグローバル・スイッチ。IMS_PRO_LOGY/Nに設定している場合、プログラム起動ログのオン/オフが制御されます。
Yに設定している場合、MPP/BMPサーバーでのトランザクションやプログラムの開始/終了時に、プログラム起動ログ・ファイルに、transaction name, program name, Sstart time, Eend time, group id, server idの形式でトレース行が追加されます。
注意:
設定しない場合、デフォルト値はNです。
IMSステータス情報を収集するための共有メモリーを作成するには、IPCKEYを指定します。IPCKEYを有効なIPC値に設定した場合にのみ、ARTIMSAGENTを使用してIMSドメインからリアルタイム情報を取得できます。
デバッグ・トレース、プログラム起動ログ、パフォーマンス・トレース・レポートが置かれるパスを指定します。Tuxedo ART for IMSサーバーに、このディレクトリに対する書込み権限と実行権限の両方が割り当てられている必要があります。
指定しない場合、デフォルトでは$APPDIR/logに置かれます。
インストール済Tuxedo ART for IMSサブシステムのルート・パス(絶対パス)が含まれている環境変数。ARTICTLを使用して端末からの接続を受け付ける場合、これは必須の環境変数です。
インバウンド・データのどのエンコーディング・タイプを使用するかを指定します。値には、ユニバーサル・プラットフォームで使用されるエンコーディング・タイプであれば、任意のタイプを指定できます。この変数を指定しない場合は、ASCIIが使用されます。この変数を指定する場合は、EXTERCODEも指定する必要があります。
 
コマンドとパラメータ
表23に、3270端末上で入力でき、Tuxedo ART for IMSで処理できるコマンドおよび関連するパラメータを示します。
 
構成ファイル
この項のすべての構成ファイルで、キーおよび非リテラル値について大文字と小文字が区別されません(例: bool (yes|no)およびenum)。リテラル値とそれらの大文字小文字は保持されます。コメント行には、前に"*"を付ける必要があります。構成ファイルにエラーがある場合、または構成ファイルに矛盾がある場合、サーバーは起動に失敗する場合があります。
構成ファイルは次のとおりです。
構成ファイルの一般的な形式は次のとおりです。
リスト6 一般的な構成ファイルの形式
[section name]
Field1=value1
Field2=value2
….
[section name]
….
[section name]
 
トランザクション定義 - imstrans.desc
表24に、z/OS上のIMSのTRANSACT MACROからフィールド名がマップされた構成ファイルの例を示します
 
アプリケーション定義 - imsapps.desc
表25に、z/OS上のIMSのAPPLCTN MACROからフィールド名がマップされた構成ファイルの例を示します。
 
永続トランザクションの定義 - imsresource.desc
このファイルに定義されているすべてのトランザクションが永続トランザクションです。プログラム切替えを介した永続トランザクションのメッセージは/Qに格納されます。Tuxedo ART for IMSを起動する前に、各永続トランザクションにそれぞれ対応するキュー・スペース(キュー名=トランザクション名としてこのファイルに構成されているもの)に/Qを作成する必要があります。表26に、imsresource.desc内のフィールド名を示します。
 
リスト7に、キュー・スペースと参照用のキューを作成するためのスクリプト例を示します。このスクリプトを実際の要件に応じてカスタマイズできます。詳細は、Oracle Tuxedo /Qのガイドを参照してください。
リスト7 キュー・スペースの作成スクリプトの例
qmadmin ${ARTIMS QSPACE_DEVICE} <<!end
crdl . . .
qspacecreate . . .
qcreate TRAN11 fifo none 2 30 80% 0 ""
qcreate TRAN12 fifo none 2 30 80% 0 ""
!end
--->
qmadmin ${ARTIMS QSPACE_DEVICE} <<!
echo
crdl ${ARTIMS QSPACE_DEVICE} 0 10000
qspacecreate
${QUEUE_SPACENAME}
22839
5000
50
1000
1000
10000
errque
y
16
qopen ${QUEUE_SPACENAME}
qcreate TRAN11 fifo none 2 30 80% 0% ""
qcreate TRAN12 fifo none 2 30 80% 0% ""
qcreate errque fifo none 2 30 80% 0% ""
q
!
 
ROLBまたはROLLを発行する永続トランザクションの場合、トランザクション・キューの作成の再試行回数は、比較的大きな数に設定する必要があります(最大で2147483647)。
注意:
データベース定義 - imsdbs.desc
imsdbs.descは、$ART_IMS_CONFIGの下にあります。
一部のimsdbs.descフィールド構成は、z/OS上のIMSのなんらかのDBD文からマップされています。ROLBまたはROLLを発行する永続トランザクションの場合、トランザクション・キューの作成の再試行回数は、比較的大きな数に設定する必要があります(設定可能な最大値は2147483647)。
注意:
 
GSAMGSAM DBを意味します
次のフィールドはACCESS=GSAMにのみ適用可能であり、ACCESS != GSAMの場合は無視されます
入力ファイル名。この名前がJCL内で同じDD名を使用して定義されている場合、実際の入力ファイルは、JCL内のDD名に関連付けられているDSNNAMEによって決定されます。そうでない場合、実際の入力ファイルは$ART_IMS_DB/Input file nameになります。
出力ファイル名。この名前がJCL内で同じDD名を使用して定義されている場合、実際の出力ファイルは、JCL内のDD名に関連付けられているDSNNAMEによって決定されます。そうでない場合、実際の出力ファイルは$ART_IMS_DB/Output File Nameになります。
RECFM=Vの場合はレコードの最小長。その値の範囲は1~268435455
RECFM=Vの場合はレコードの最大長。その値の範囲は1~268435455
RECFM=Fの場合はレコード長で、値の範囲は2~32579
PSB定義 - $appname.psb
$appnameは、imsapps.descでタイプがTPと定義されているCOBOLアプリケーション・プログラムの名前であり、$appname.psbは、それに対応するPSB定義ファイルです。タイプがBATCHのアプリケーション・プログラムの場合は、$appname.psbは使用されず、DFSRRC00を呼び出すスクリプトによってPSBが提供される必要があります。
LIST=YESの[imspcb]セクションの数は(最大) 31です。IOPCBを含むPCBの最大数は32です。
注意:
LIST=NOの[imspcb]セクションはカウントされません。
表28に、z/OS上のIMSのPCB文からフィールド名がマップされた構成ファイルの例を示します。
 
タイプがDBである場合、このフィールドはDB名を表します。このフィールドは、GSAM PCBの場合に構成する必要がありますが、DB PCBの場合はオプションです。詳細は、PROCSEQフィールドを参照してください。
このフィールドが構成されている場合、それがDB PCBの最初の8バイトに入力される必要があり、それ以外の場合は、NAME=によって指定された値が、DB PCBの最初の8バイトに入力される必要があります。DB PCBに対して、少なくとも1つのNAM=およびPROCSEQ=が構成されている必要があります。
このフィールドでは、関連するデータベースに対するアクセス権限を定義します。このフィールドは、TYPE=GSAM|DBの場合にのみ有効であり、構成されているがTYPE=TPの場合は無視されます。
GSAM: G|GS - 取得のみ。L|LS - 取得と追加
DEDB: Tuxedo ART for IMSサーバーは、PROCOPTの妥当性を確認しません。これは、z/OS上のIMSから移行されたもので、DBプラグインによってのみ使用されます
次のフィールドはTYPE=DB、つまりGSAM PCBにのみ適用可能であり、構成されているがTP!=DBの場合は無視されます
MSDBコミット・ビューを指定します。
このPCBに属しているSENSEG名を指定します。現在のPSBファイルで一意である必要があります。
セクション名は、imspcbセクションでSENSEG項目によって定義します。
SENSEG - PROCOPT
SENSEG - INDICES
このSENSEGに属しているSENFLD名を指定します。現在のPSBファイルで一意である必要があります。
セクション名は、sensegセクションでSENFLD項目によって定義します。
SENFLD - REPLACE
セグメント定義 - segments.desc
segments.descは、データベース内のセグメントを定義したものです。各データベース(GSAMデータベースを除く)にそれぞれ1つのsegments.descが割り当てられ、$ART_IMS_CONFIG/db/$dbnameの下に配置されています。
segments.desc内のフィールドは、DBDのSEGM文からマッピングされています。
 
注意:
可変長セグメントの場合、BYTES定義がSEGM文からマップされ(BYTES= (max bytes,min bytes)など)、最大バイト数は最小バイト数以上である必要があります。可変長セグメントは、2バイト・フィールドで始まる必要があり、それによって、その2バイトの長さのフィールドを含めたセグメントの長さが定義されます。
SEGPGM_A2ESEGPGM_E2AおよびSSAPGM_A2EKFAPGM_E2Aの場合:
1. 上述の4つのパラメータがどれもsegments.descで定義されていない場合、$segname.descが存在する必要があり、後述するデータ変換を行うために$segname.descが使用されます。
2. SEGPGM_A2EおよびSEGPGM_E2A
SEGPGM_A2EおよびSEGPGM_E2Aは、両方とも定義するか、両方とも定義しないかのいずれかにする必要があります。SEGPGM_A2ESEGPGM_E2Aが定義済の場合、ODBAプラグインはSEGPGM_A2E/SEGPGM_E2Aを使用してセグメント・データの変換を実行します。この場合、$segname.descが存在していても、$segname.descがセグメント・データの変換の実行に使用されることはありません。
SEGPGM_A2ESEGPGM_E2Aが定義されていない場合、ODBAプラグインは$segname.descのFIELDS定義を使用してセグメント・データの変換を実行します。
3. SSAPGM_A2E
SSAPGM_A2Eが定義されている場合、ODBAプラグインは定義済のCOBOLプログラムを使用して、このセグメントの限定されたSSAの変換を実行します。
SSAPGM_A2Eが定義されていない場合、ODBAプログラムは$segname.descKEYフィールド・タイプ定義を使用して、このセグメントのSSAのKEY値を変換します。
4. KFAPGM_E2A
KFAPGM_E2Aが定義されている場合、ODBAプラグインは定義済のCOBOLプログラムを使用して、このセグメントのキー・フィードバック領域のデータ変換を実行します。
KFAPGM_E2Aが定義されていない場合、ODBAプログラムは$segname.descFBAFIELD定義を使用して、このセグメントのキー・フィードバック領域のデータ変換を実行します。
前述のCOBOLプログラムの生成およびコンパイル方法は、『Oracle Tuxedo Application Rehosting Workbenchユーザー・ガイド』および『Oracle Tuxedo Application Rehosting Workbenchリファレンス・ガイド』のバッファ変換に関する項を参照してください。
Tuxedo ART for IMSサーバーを起動する前に、コンパイル済の変換プログラムをCOBPATH (Micro Focus COBOLの場合)またはCOB_LIBRARY_PATH (CITの場合)の下に配置します。
セグメント内の定義 - $segname.desc
$segname.descは、セグメント内のフィールドを定義します。$segname.descは、imsdbs.descでGSAMとMSDBのどちらでもないアクセス・タイプが定義されているデータベースに対してのみ存在します。$segname.desc$ART_IMS_CONFIG/db/$dbnameの下に配置されています。
 
TYPE=Mの場合のみ必要(必須)。
たとえば、format=3,P;4,C;3,pのようにします。
1. PIECE-TYPEC/P/Xにする必要があります。
フィールド・タイプの定義はDBDのFIELD文によるものだけではありません。ユーザーはCOBOLプログラムでの使用方法に従ってフィールド・タイプを定義する必要もあります。
フィールドのタイプを定義しない場合、デフォルトのフィールド・タイプはCになります。
表31に、COBOLプログラムでの使用方法に基づくフィールド定義のマッピング表を示します。
 
会話/変換ルールは次のとおりです。
取得またはISRT呼出しが完了すると、ODBAプロキシからキー・フィードバック領域が返されます。DB PCBでキー・フィードバック領域を変換するために、FBAFIELDという名前の特別なFIELDが予約されています。
セグメントの連結キーは、各親のキーと独自のキーから構成されます。キーの書式は左から右へと配置され、ルート・セグメントのキー形式で始まり、階層パスに沿って定義されます。
$segmentで定義されるこの特別なFIELD(FBAFIELD)によって、セグメントの連結キーの書式を定義する必要があります。キー・フィードバック領域は、segnameでのこのフィールドの定義に従って変換されます。
リスト8に、$segname.descの定義例を示します。
リスト8 定義例
[field]
NAME=FBAFIELD
START=0
BYTES=11
TYPE=M
FORMAT=5,P;6,C
 
STARTは0にする必要があります。
BYTESはキー・フィードバック領域の長さ合計(つまり連結キーの長さ合計)を定義します。
TYPEは連結キーのタイプを定義します。連結キーに異なるタイプが含まれる場合は、TYPEMに設定する必要があります。
TYPE=Mの場合、FORMATで連結キーの書式を定義する必要があります。
$segname.descで特別なFIELD(FBAFIELD)が定義されていない場合、segnameではキー・フィードバック領域がデフォルトでTYPE Cとして変換されます。
注意:
デバッグ定義 - imsdebug.desc
imsdebug.descは、すべてのプログラム・デバッグ情報を定義します(現在はCOBOLプログラムのデバッグのみが対象)。
 
Micro Focus COBOLアプリケーション・プログラムでは、DEBUGIDはCOBOLでアニメーションを有効にするために必要な文字列です。最大40文字の文字列です。文字列には、英数字およびアンダースコア文字を含めることができます。
COBOL-IT COBOLアプリケーション・プログラムでは、DEBUGIDは1から999999999の範囲に含まれる数字です
z/OSトランザクション定義 - zostrans.desc
zostrans.descファイルは、z/OSに残っているすべてのトランザクションを定義します。これらすべてのトランザクションは、サブトランザクションとしてのみ呼び出す必要があり、現在は非会話型トランザクションのみがサポートされます。
 
ホワイト・リスト - IMS.WHITE
imsgenconfにより、IMS.WHITE (形式は次のとおり)にリストされているトランザクション/アプリケーションの構成が作成されます。
リスト9 IMS.WHITEの形式
[TRANCODE]
TRAN1
TRAN2
TRAN3
[APPPSB]
PSB1
PSB2
PSB3
 
[TRANCODE]セクション: ブラック/ホワイト・リストにトランザクション・コードを定義します。各トランザクション・キーは、最大で8文字です。
[APPPSB]セクション: ブラック/ホワイト・リストにバッチ・アプリケーション・プログラムのPSB名を定義します。各PSBキーは、最大で8文字です。
ブラック・リスト - IMS.BLACK
imsgenconfにより、IMS.BLACKに定義されていないトランザクション/アプリケーションの構成が作成されます。形式は次のとおりです。
リスト10 IMS.BLACKの形式
[TRANCODE]
TRAN1
TRAN2
TRAN3
[APPPSB]
PSB1
PSB2
PSB3
 
[TRANCODE]セクション:
ブラック/ホワイト・リストにトランザクション・コードを定義します。各トランザクション・キーは、最大で8文字です。
[APPPSB]セクション:
ブラック/ホワイト・リストにバッチ・アプリケーション・プログラムのPSBNAMEを定義します。各PSBキーは、最大で8文字です。
COBOL/Cランタイムのサポート
SYSIN/SYSOUTの処理
Tuxedo ART for IMSでは、Micro Focus COBOL環境で、Tuxedo ART for IMSバッチCOBOLプログラム内に記述されたACCEPT/DISPLAY文のSYSIN/SYSOUTリダイレクションがサポートされます。これをサポートするために、Tuxedo ART for IMSは"ARTEXTFH"という名前の新規ファイル・ハンドラを追加します($IMSDIR/coblib_mf/BMPにあります)。
ARTIMPPサーバー用にARTEXTFHという同じ名前の別のファイル・ハンドラがあり、その動作はMicro Focus COBOLのデフォルト・ファイル・ハンドラと同じです。
このファイル・ハンドラは$IMSDIR/coblib_mf/MPPにあります。これらの2つのファイル・ハンドラは、ARTIBMPまたはARTIMPPサーバーによってロードされます。デフォルト・ファイル・ハンドラの動作が適さないケースがある場合、ユーザーはこれらの2つのファイル・ハンドラ・ファイルを切り替えるか、ユーザー指定のファイル・ハンドラと置き換えます。
注意:
この機能を使用するには、次の手順を実行します。
1.
INDD
OUTDD
CALLFH("ARTEXTFH")
2.
バッチ・プログラムを実行する前に、環境変数DD_SYSINおよびDD_SYSOUTを設定し、これらを使用してSYSIN/SYSOUTファイルを指定する必要があります。artbatchを使用してIMSジョブをトリガーする場合、通常はこれを設定します。
STDIN/STDOUTリダイレクト
Cのプログラムでは、STDIN/STDOUT/STDERRSYSIN/SYSOUT/SYSOUTファイルにリダイレクトされます。SYSINが定義されていないか、アクセスできない場合、リダイレクトは起きません。
SYSOUTが定義されていないか、アクセスできない場合、STDOUT/STDERR$APPDIR/SYSOUTファイルにリダイレクトされます。
COBOLモード
COBOL-ITでは、SUBSYSモードのみがサポートされます。Micro Focus COBOLでは、次の7つのCOBOLモードがサポートされます。
デフォルト値はMF_SUBSYSです。詳細は、「環境変数」を参照してください。
これらのCOBOLモードは、環境変数ARTIMS_COBOL_MODEで設定するか、または各BMP/MPPサーバーのUBBCONFIGファイルのCLOPTで設定します。CLOPTのパラメータは-m COBOL_MODEです(たとえば、-m MF_SUBSYS)。
COBOLモード構成の組合せのルールとして、次の4つがあります。
1.
環境変数設定がない場合は、CLOPTMF_SUBSYSがデフォルトとなります。
2.
3.
CLOPTのみを使用する場合は、すべてがCLOPTで制御されます。
4.
環境変数およびCLOPTを使用する場合は、CLOPTが優先されます。
COBOLプログラムのデバッグ
ART IMSでは、Micro Focus COBOLおよびCOBOL-IT COBOLでユーザーCOBOLプログラムのデバッグがサポートされます。animツールを使用してMicro Focus COBOLプログラムをデバッグし、deetツールを使用してCOBOL-IT COBOLプログラムをデバッグできます。デバッグする必要のあるすべてのトランザクション/プログラムを構成ファイルimsdebug.descで構成できます。デバッグできるのは、このファイルで構成されたトランザクション/プログラムのみです。この構成ファイルを変更してから、imsadminツールを使用してオンライン・システムでそれを有効にできます。
COBOLのデバッグをサポートするには、MFでデバッグ情報を出力するようにすべてのCOBOLプログラムをコンパイルする必要があり、.idyファイルが存在する必要があります。
Micro Focus COBOLを使用したデバッグ
Micro Focus COBOLを使用してデバッグするには、次の手順を実行します。
1.
${ART_IMS_CONFIG}imsdebug.desc構成ファイルを作成または変更します。
2.
tmshutdown/tmbootを使用してサーバーを再起動するか、imsadminを使用してオンライン・システムで構成を再ロードします。
3.
現在の端末または新しい端末でanimを起動します。animは待機状態のままである必要があります。
4.
トランザクション/プログラムを起動します。これにより、animがCOBOLプログラムにアタッチされ、デバッグの準備が整います。
注意:
COBOL-IT COBOLを使用したデバッグ
COBOL-IT COBOLを使用してデバッグするには、次の手順を実行します。
1.
${ART_IMS_CONFIG}imsdebug.desc構成ファイルを作成または変更します。
2.
tmshutdown/tmbootを使用してサーバーを再起動するか、imsadminを使用してオンライン・システムで構成を再ロードします。
3.
4.
vncserverを使用してVNC環境を開始できます。
VNC xtermで、deet -p yourDEBUGIDコマンドを使用してデバッグを開始します。これにより、DeetグラフィックUIが起動され、COBOLプログラムがアタッチされます。
DeetグラフィックUIの詳細は、COBOL-IT COBOLのドキュメントを参照してください。
注意:
関連項目
Oracle Tuxedo ART for IMSユーザーズ・ガイド

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved