|
Oracle Tuxedo Application Runtime for IMS (Tuxedo ART for IMS)リファレンス・ガイドでは、Tuxedo ART for IMSソフトウェアとともに配布されるシステム・プロセスおよびコマンドについて説明します。
表1に、Tuxedo ART for IMSのユーティリティを示します。
chgcobol.sh - Tuxedo ART for IMSに対してMicro Focus COBOLとCOBOL-ITの間を切り替えるために使用されるシェル・スクリプト。
Micro Focus COBOLとCOBOL-ITの両方を同じホストにインストールしておくことができ、相互に切替え可能です。chgcobol.shは、Micro Focus COBOLとCOBOL-IT間の切り替えに使用されます。COBOLランタイムの切り替えには、最初にTuxedo ART for IMSアプリケーションを停止する必要があります。
cit
mf
./chgcobol.sh
./chgcobol.sh mf
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を使用すると、現在実行中のBATCHプログラムを確認できます。
トランザクションやプログラムの開始/終了時に、プログラム起動ログ・ファイルに、次の形式でトレース行が追加されます: "transaction name, program name, Sstart time, Eend time, group id, server id" (注意: 使用する場合、"-"は空の値を示します)。
2つの重複するFML32フィールド(IMS_BMP_APPNAME_ROUTEとIMS_JOB_NAME_ROUTE)を、DFSRRC00がBMPサービスを呼び出すときに、ルーティング・フィールドとして使用できます。このため、特定のアプリケーション・プログラムまたはバッチ・ジョブを特定のBMPサーバー・グループにルーティングできます。これらの2つのFML32フィールドは、$IMSDIR/include/ROUTEFMLで定義されています。
| 注: | 将来の使用に備えて、16個の追加のパラメータが予約されていますが、現在サポートされていません。 |
BMP
${MBR}
${PSB}
{IN}
{CKPTID}
| 注: | ${MBR}が空の場合、DFSRRC00はエラーによってすぐに終了します。 |
| 注: | ${IN}が空の場合、ARTIBMP/ARTIBMP_ORAにリクエストが送信され、BMPプログラムが呼び出されます。 |
| 注: | ${IN}が空でない場合、ARTIBMPTにリクエストが送信され、トランザクション・コードが${IN}であるトランザクション指向BMPプログラムが呼び出されます。 |
genimsprofile - セキュリティ・プロファイル・ジェネレータ
genimsprofile [-f <output_file>]
このユーティリティは、Tuxedoアプリケーションのセキュリティ・プロファイルを生成します。このユーティリティが起動されると、Tuxedoアプリケーション・パスワード、ユーザー名およびユーザー・パスワードの入力を求められます。出力は、ユーザー名と暗号化されたパスワードを含むセキュリティ・プロファイル・ファイルです。生成されたセキュリティ・プロファイル・ファイルは、imsadmin、ARTICTLおよびDFSRRC00で、Tuxedoドメインに参加するために使用できます。
-f <output_file>
imsadmin - Tuxedo ART for IMSのランタイム管理ツール。
imsadmin [-p <profile>] -l PGM1, PGM2imsadmin [-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]
このユーティリティは、実行中のIMSシステムへの変更を行うための管理ツールとして使用できます。これにより、IMSシステムにプログラムの再ロード・リクエストを送信できます(変更済のユーザーのCOBOLプログラムが再ロードされます)。これはまた、構成の検証またはIMSシステムへの再ロード・リクエストにも使用されます。
[-p <profile>]
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
u
-c
-d <ディレクトリ>
-x flushperf|cleanperf|enableperf|disableperf
flushperf: パフォーマンス・トレースをログ・ファイルにフラッシュします。 cleanperf: パフォーマンス・トレースのログ・ファイルをクリーンアップします。 enableperf: パフォーマンス・トレースを有効化します。 disableperf: パフォーマンス・トレースを無効化します。
-x settracelevel number
[-m machine]
[-g groupid]
[-s serverid]
machine、groupidおよびserveridパラメータを指定しない場合、アクションは、UBBCONFIG SERVERSセクションに指定したすべての適用可能なサーバーに適用されます。1つ以上のパラメータを指定すると、アクションは、指定したサーバーにのみ適用されます。 適用可能なサーバーには、ARTIMPP*/ARTIBMP*/ARTIGW/ARTIADMが含まれます。現在、この機能では、ARTICTL/ARTICTLHの動的トレース制御はサポートされません。
| 注: | flushperfまたはcleanperfを指定する場合、これら2つのアクションはすべての適用可能なサーバーに適用されるため、-m、-gおよび-sは省略できます。 |
| 注: | パフォーマンス・トレースが有効になると、デバッグ・トレースは自動的に無効になります。 |
[-v]
[-h]
PGM1およびPGM2を再ロードするには、imsadmin -l PGM1,PGM2と入力します。PGM1およびPGM2を再ロードするには、imsadmin -p /home/app/imsprofile -l PGM1,PGM2と入力します。 /opt/ims_configにある場合、imsadmin -c -d /opt/ims_configと入力して新しい構成ファイルを検証できます。imsadmin -u -d /opt/ims_configと入力します。imsadmin -x settracelevel 2と入力します。3で、グループIDが6など)のデバッグ・トレースをクローズする場合、imsadmin -x settracelevel -1 -s 3 -g 6と入力します。 10のグループに含まれるサーバーのパフォーマンス・トレースを有効にする場合、imsadmin -x enableperf -g 10と入力します。LMIDがSITE1のマシンに存在するサーバーのパフォーマンス・トレースを無効にする場合、imsadmin -x disableperf -m SITE1と入力します。 imsadmin -x flushperfと入力します。imsadmin -x cleanperfと入力します。
imsgenconf - Tuxedo ART for IMSの構成生成ツール。
imsgenconf -i inputdir [-o outputdir] [-h]
imsgenconfを使用すると、特定のトランザクションおよびバッチ・アプリケーション用のTuxedo ART for IMSの構成を生成できます。
ファイル生成処理中、imsgenconfにより、Tuxedo ART for IMSがそのフィールド定義に応じて使用するフィールド定義が検証されます。検証に失敗した場合、特定のエラーがレポートされ、構成ファイルの生成が停止されます。
成功した場合、レポート・ファイル(imsgenconf_report)が出力ディレクトリに生成されます。現在、このレポート・ファイルには、トランザクションが定義ファイル名と行番号とともに含まれます。
-i inputdir
[-o outputdir]
[-h]
imsperf - Tuxedo ART for IMSのランタイム・パフォーマンス分析ツール
トランザクションおよびアプリケーションのパフォーマンス・レポートを生成するには、このツールを使用します。
-dオプションを指定すると、指定したパスの下でパフォーマンス・トレース・ファイルが検索されます。
-dオプションを指定しない場合、パフォーマンス・トレースはまず$IMS_TRACE_PATHの下で検索され、次に$APPDIR/logの下で検索されます。詳細は、 『Tuxedo ART for IMSユーザーズ・ガイド』を参照してください。
imsperfにより、パフォーマンス・トレース・ファイルと同じディレクトリに、トランザクション/アプリケーションのパフォーマンス・レポートが次のような形式で生成されます。
時間の単位はマイクロ秒です。このCSV形式のレポート・ファイルは、直接開くことができます。パフォーマンス・レポートに含まれる処理の説明を表2に示します。
[-d path]
[-h]
/home/oracle/logの下にパフォーマンス・トレース・レポートを生成するには、次のようにします。
MFSGEN: ARTICTLサーバーのバイナリ制御ブロック・ジェネレータ。
mfsgen [-options…] files
このユーティリティは、ART MFSの開発に使用します。ユーザーが記述した制御文をMFSバイナリ制御ブロックに変換します。
図 1は、MFSGENワークフローを示しています。

-l
-d dir
*.MSGおよび*.FMT)およびリスト・ファイルなどすべての出力ファイルを格納するターゲット・ディレクトリとして既存のディレクトリを指定します。 これは、デフォルトで<current directory>/formatです。
FILE.MSG
FILE.FMT
FILE.lst
0
1
2
ソース・ファイルfile.mfsを変換するには、次のコマンドを使用します。
$mfsgen file1.mfs file.mfs file3.mfs
| 注: | 入力ファイル.mfs接尾辞は必須ではありません。 |
odbastop: z/OS上のODBAプロキシを停止するために使用されるオープン・システム・ツール。
odbastop -l host -p port -c cmd
オープン・システム上でodbastopを使用して、z/OS上で実行されているODBAプロキシを停止します。
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()引数リストは削除されました(argc、argv、envpなど)。メインフレームでは、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の移植を処理できません。 |
makefile を手動で変更し、他の従属Cファイルを追加する必要があります。ctdli/aibtdliの呼出しはサポートされていません。gmakeを使用する必要があります。ims.hなど)をメインフレームからオープン・システムにコピーする必要があります。 prepro-ims.plのパラメータ、終了コード、およびサポート・モードを、それぞれ表 3、表 4および表 5に示します。
ソース・プログラムはリスト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);
..
}
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上の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は、動的にロードされるライブラリのグループ内に実装されます。サポート対象のDL/I機能は、次のとおりです。
表 6は、サポート対象のDL/Iインタフェースを示しています。
CBLTDLI: OS/39におけるIMS/TMでのDL/I呼出しの0エントリ。
Tuxedo ART for IMSでは、CBLTDLIは、DLIライブラリのエントリとして機能する関数です。CBLTDLIは、それに渡された関数コードに基づいて適切な関数を呼び出します。
関数コード(GUなど)、I/O PCBまたは代替PCB、I/O領域、MOD
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名の指定の詳細なルールは、次のとおりです。
$appname.psb構成ファイル内のlabel=で構成する必要があり、AIBマスクで適切に指定されている必要があります。各代替PCBの名前(ラベル)は、1つのPSB内(つまり、1つの$appname.psbファイル内)で一意である必要があります。
$appname.psb構成ファイル内のlabel=で構成する必要があり、AIBマスクで適切に指定されている必要があります。各DB PCBの名前(ラベル)は、1つのPSB内(つまり、1つの$appname.psbファイル内)で一意である必要があります。
Tuxedo ART for IMSでは、CTDLIは、DLIライブラリのエントリとして機能する関数です。CTDLIは、それに渡された関数コードに基づいて適切な関数を呼び出します。
関数呼び出し(GUなど)、PCB (I/O PCBまたは代替PCB)、I/O領域、入力または出力バッファ。
op引数は、実行するDL/I関数を指定します。ctdli()呼出し形式は、選択した関数によって異なります。詳細は、「CBLTDLI」を参照してください。
| 注: | CTDLIを使用する場合、SSAパラメータは、ポインタ・パラメータである必要があります。 |
DL/Iは、受信メッセージの処理およびIMS/TMでのPCBに対する送信メッセージの構築を担当します。Tuxedo ART for IMSでは、メッセージ・キューおよびメッセージ配信はTuxedoインフラストラクチャが担当するため、受信メッセージの処理は現在のリクエスト・メッセージにのみ関係します。DLIライブラリは、COBOLアプリケーションからのリクエストに基づいて最初および後続のセグメント(FMLフィールド)を取得できます。送信メッセージを構築するために、各PCBは中間記憶域として関連するメッセージ・バッファ(FML)を持っており、メッセージが送信される前にそのメッセージ・データがそこに格納されます。メッセージ処理用の詳細なAPIを、表 8に示します。
GU: IMS/TM環境のメッセージ・キューから最初のセグメントを取得するために使用されます。
GUは、メッセージ・キューの最初のセグメントを取得するために使用されます。会話型トランザクションの場合、メッセージの最初のセグメントは常にSPAです。 Tuxedo ART for IMSでは、処理中のメッセージのFMLバッファの最初のフィールドを取得するために、シミュレートされたGU呼出しが使用されます。会話型トランザクションの場合、GU呼出しは、常にSPAのフィールドを取得し、それ以外の場合はユーザー・データの最初のフィールドを取得します。
I/O PCB
AIB
I/O領域
'AD': 関数パラメータが無効です。関数呼出しがCBLTDLIに指定されていないか、無効な関数呼び出し名がCBLTDLIに指定されています。
GN: IMS/TM環境のメッセージ・キューから後続のセグメントを取得するために使用されます。
最後のセグメントが取得された後、GN呼出しは、QDステータス・コードがPCBで返されるという結果になります。Tuxedo ART for IMSでは、処理中のメッセージのFMLバッファの次のフィールドを取得するために、シミュレートされたGN呼出しが使用されます。
SI/O PCB
AIB
I/O領域
'AD': 関数パラメータが無効です。関数呼出しがCBLTDLIに指定されていないか、無効な関数呼び出し名がCBLTDLIに指定されています。
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
AIB
I/O領域
MOD
'AD': 関数パラメータが無効です。関数呼出しがCBLTDLIに指定されていないか、無効な関数呼び出し名がCBLTDLIに指定されています。
'XA': リクエストに応答した後に、そのリクエストを別のトランザクションに転送しようとしています。
'XB': リクエストを別のトランザクションに転送した後に、それに応答しようとしています。
'XC': Z1ビットが0ではありません。それは予約済であり、常に0として保持されます。
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
I/O領域
MOD
'AD': 関数パラメータが無効です。関数呼出しがCBLTDLIに指定されていないか、無効な関数呼び出し名がCBLTDLIに指定されています
'A3': 宛先が設定されていないが、それに対してPURGが呼び出される変更可能なTP PCB
CHNG: IMS/TMにおいてPCB内の宛先を変更するために使用されます。
Alternate PCB or AIB、宛先トランザクション・コード
Tuxedo ART for IMSでは、シミュレートされたCHNGにより、代替PCBの別のサービス名(のみ)が指定されます。宛先トランザクション名は、8バイト以下であり、その制限を超えている場合、それは8までに切り捨てられます。後続の空白も削除されます。トランザクション名は、それがimstrans.descファイルに存在し、かつ正しい構成である場合に、有効として評価されます。
1つのTuxedoドメイン内の1つのトランザクション・コードが、異なるドメインの他のサービスに切り替えるように設計されている場合、切り替えられるトランザクション・コードは、[imstrans.desc]構成ファイルで有効なトランザクションとして定義されている必要がありますが、それをそのクラスの制御で公開しないでください。
プログラム切替えの場合、新しいターゲットは別のトランザクション・コードです。会話型プログラム切替えの場合、Tuxedo ART for IMSでは、元のコードおよびターゲット・コードのspaサイズに制限はありません。
I/O PCB
AIB
'AD': 関数パラメータが無効です。宛先が指定されていません。関数呼出しが無効です。
'A2': PCBが変更可能でないか、ISRT操作がすでに実行されています。
'QH': 代替PCBに指定するトランザクションが空白であるか無効です。
CMD: プログラムでIMSコマンドを発行可能にするために使用されます。
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が永続トランザクションを表す場合、TRAN、CLSおよびQCTのみがサポートされ、GCMDに対して返されるセグメントに値が入ります。"tranname"が非永続トランザクションを表す場合、TRANおよびCLSのみがサポートされ、GCMDに対して返されるセグメントに値が入ります。
"/DISP TRAN tranname QCNT"の場合、返されるセグメントは次のとおりです(llzz部分を除く)。T70 TRAN GBLQCTTRANのみがサポートされ、GCMDに対して返されるセグメントでGBLQCTは常にN/Aです。
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です。
| 注: | 現在、前述の3つのコマンドでは他のすべてのパラメータは無視されます。前述の3つのサポートされているもの以外のコマンドがCMD呼出しによって発行されると、応答セグメントなしで成功ステータスが返されます。 |
'bb': 成功(2つの空白)。ただし、応答セグメントはありません。
'CC': 1つまたは複数の応答セグメントが生成されました。
'CH': AOIコマンド・インタフェースがシステム・エラーを検出し、そのコマンドを処理できなかったため、発行したCMD呼出しはIMSによって無視されます。IMSの処理は続行されます。
GCMD: CMDコマンドの応答メッセージの2番目および後続のセグメントを取得します。
I/O PCB or AIB, I/O Area
GCMDは、アプリケーション・プログラムによってCMD呼出しを使用してIMSコマンドが処理されるときに、IMS TMから2番目および後続の応答セグメントを取得します。返されるセグメントそれぞれには、前述の"CMD"呼出しのタイトル・セグメントに応じたフィールドが含まれます。最後のセグメントが取得された後に、GCMD呼出しは、"QD"ステータス・コードがPCBで返されるという結果になります。
'bb': セグメントは正常に取得されました(2つの空白)。
GUID - ARTIMPPサーバーの長いユーザー名モードで、完全なユーザー名の取得に使用する偽のDL/I。
I/O PCB or AIB, I/O Area
GUIDは、長いユーザー名/パスワードのモードでのみ推奨されるARTIMPPサーバーの完全ユーザー名を取得するために使用します。
'bb': セグメントは正常に取得されました(2つの空白)。
'AD': 指定されたPCBはI/O PCBではありません。
DLIライブラリは、MPPまたはBMPプログラムから発行されたデータベース処理を実行します。これは、指定されたセグメント検索基準に応じた1つの特定のセグメントの取得および保持、特定のセグメントの更新、特定の位置へのセグメントの挿入、特定のセグメントの削除などを実行できます。データベース処理の詳細なAPIを、表 9に示します。
GU/GHU: 現在の位置(存在する場合)またはデータベースの先頭から基準(存在する場合)を満たす最初のセグメントを取得(および保持)します。
DB PCB,GSAM PCBまたはAIB, I/O Area, and SSA list (optional)またはRSA (Mandantory for GSAM)
GUは、指定されているSSAを満たし、順次処理の開始位置を確立する最初のセグメントを取得するために使用されます。GUの検索開始位置は、データベースの先頭(つまり、ルート・レベル)です。呼出しを満たす最初のセグメントを見つけた後、現在の位置が順次処理の開始位置となります。
GHUは、GUに加えて、順次書込み操作(置換、削除など)のためにセグメントをロックします。GHUはGSAMには適用されません。
GN/GHN: 現在の位置から基準(存在する場合)を満たす次のセグメントを取得(および保持)します。
DB PCB,GSAM PCB or AIB, I/O Area, and SSA list (optional) or RSA(opitional for GSAM)
GNは、現在の位置から検索して、指定されているSSAを満たす次のセグメントを取得するために使用されます。セグメントを見つけた後、順次処理のために現在の位置が更新されます。DBに現在の位置が確立されていない場合、GNはGUのように動作します(つまり、先頭から検索します)。階層型DBにおける順次取得は、常に上から下、かつ左から右(つまり、ツリーの前順取得)です。
GHNは、GNに加えて、返されるセグメントをそれに対する順次書込み操作のためにロックします。GHNはGSAMには適用されません。
GNのパラメータの使用方法と制限事項は、GUに似ています。
GNP/GHNP: 確立した親の依存セグメントから基準を満たす次のセグメントを取得(および保持)します。
DB PCB, GSAM PCB or AIB, I/O Area, and SSA list (オプション)
GNPは、確立した親の依存セグメントで、次の修飾セグメントを取得するために使用されます。階層型DBにおける確立した親とは、前の成功したGU/GN呼出しで返された最も下位のセグメントであり、失敗したGU/GN呼出しによって取り消されます。
GHNPは、GNPに加えて、返されたセグメントを順次書込み操作のためにロックします。
GNP/GHNPのパラメータの使用方法と制限事項は、GUに似ています。
ISRT: 既存のセグメント・タイプの新しいオカレンスを階層型データベースに挿入するために使用されます。
DB PCB, GSAM PCB or AIB, I/O Area, and SSA list or RSA(opitional for GSAM)
ISRTは、既存のセグメント・タイプの新しいオカレンスを階層型データベースに挿入するために使用されます。挿入位置は、挿入されるセグメントのレベルを除いた一連の修飾SSAによって、または非修飾SSAの場合は現在の位置によって決定されます。
DB PCB or AIB, I/O Area, and SSA list
REPLは、既存のセグメントを更新するために使用されます。最初にGet Hold呼出しを使用してセグメントを取得し、その後、そのセグメントを変更および更新する必要があります。I/O領域のセグメントのフィールドの長さは変更できません。
パラメータの使用方法と制限事項は、GUに似ています。
DLET: セグメントとその依存関係を削除するために使用されます。
DB PCB or AIB, I/O Area, and SSA list (オプション)
DLET呼出しは、セグメントとその依存関係を削除するために使用されます。これは、Get Hold呼出しの後に続く必要があります。修飾SSAは、DLET呼出しに指定しないでください。
パラメータの使用方法と制限事項は、GUに似ています。
FLD: セグメント内のフィールドにアクセスし、変更するために使用されます。
DB PCB or AIB, I/O Area, and SSA list
FLD呼出しは、セグメント内のフィールドにアクセスし、変更するために使用されます。
FLD呼出しに必須です。
POSはDEDBのみをサポートします。Tuxedo ART for IMSでは、次の制限があります。 1. keywordパラメータはサポートされていません。 2.LLおよび対応する数値フィールド(フィールド4、フィールド5)は、ホスト・バイト・エンディアンに格納されます。
| 注: | I/Oデータ領域には、24バイトのDEDBのすべての領域の位置情報が入ります。 |
OPEN: GSAMデータベースを明示的に開くために使用されます。
GSAM PCB or AIB, i/o area
GSAMデータベースを明示的に開きます。GASMデータベースに対する次の処理によって、GSAMデータベースが再度開かれることはありません。GSAMデータベースを明示的に開かない場合、他の操作によってGSAMデータベースが暗黙的に開かれます。
| 注: | このパラメータは無視されます。IMS/DBに対するOracleの実装では、GSAMデータベースをローカル・ファイル・システムでシミュレートするため、I/O領域はデータ・セットの種類を指定するために使用されません。$appname.psbでPROCOPTオプションを使用して、データ・セットが読取り専用であるか、取得および追加されるかどうかを定義します。 |
GSAM PCB
AIB
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にマップされている必要があります。
DB PCB構造を指すポインタは、Tuxedo ART for IMSサーバーからCOBOLプログラムに渡され、最後にIMS/DBのプラグインのdb_entry()に渡されます。プラグインが適切に機能するようにするには、各COBOLプログラムを呼び出す前にDB PCB構造に適切に入力する必要があります。この項では、DB PCBへの入力方法に関する詳細な要件を定義します。
DB PCB構造の例をリスト2に示します。
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];
}; リスト3は、get_dbpcbattrインタフェースに使用される構造定義を示しています。コンテンツはPSBファイルから読み取られ、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を定義するには次の手順を実行する必要があります。
extern "C" int db_init(int argc, char * argv[])
引数: サーバーのCLOPTから渡されるパラメータ・リスト。
使用する場所: このAPIは、Tuxedo ART for IMSサーバーが起動する際に呼び出されます。IMS/DBの特定の実装には、初期化作業は必要ありません。単に空の関数を指定して、それが0を返すようにします。
機能: 実装に必要な構成またはその他のものに対するクリーンアップ
引数: なし。サーバーはプラグインに入力を提供できないためです。
使用する場所: このAPIは、Tuxedo ART for IMSサーバーが停止する際に呼び出されます。IMS/DBの特定の実装には、初期化作業は必要ありません。単に空の関数を指定して、それが0を返すようにします。
機能: IMS/DB実装にアクセスできるCOBOLプログラムを起動する前に実装によって必要とされる事前アクション。
引数: なし。サーバーはプラグインに入力を提供できないためです。
使用する場所: このAPIは、IMS/DB実装にアクセスできるCOBOLプログラムがTuxedo ART for IMSサーバーによって起動される前に呼び出されます。IMS/DBの特定の実装には、初期化作業は必要ありません。単に空の関数を指定して、それが0を返すようにします。
機能: IMS/DB実装にアクセスできるCOBOLプログラムを起動した後に実装によって必要とされる事後アクション。
引数: なし。サーバーはプラグインに入力を提供できないためです。
使用する場所: このAPIは、IMS/DB実装にアクセスできるCOBOLプログラムがTuxedo ART for IMSサーバーによって起動された後に呼び出されます。IMS/DBの特定の実装には、初期化作業は必要ありません。単に空の関数を指定して、それが0を返すようにします。
extern "C" int db_entry(const char * op, __DB_PCB * pcb, void * io, char * ssa_list[], int ssa_cnt);
機能: IMS/DB実装へのアクセスのエントリ・ポイントCOBOLプログラムから発行されたデータベース・アクセスのための各DL/I呼び出しは、最終的にそれによって処理されます。
pcb: ユーザー提供のDB PCBのスーパークラスである__DB PCBを指すポインタ。
io: 外部実装者によって定義されたバッファDB_IO_AREAを指すポインタ。
ssa_list: 文字列の配列であり、それぞれが1つのSSAを含み、形式は外部実装者によって異なります。
ssa_cnt: ssa_list内の要素の数。値の範囲は[0..15]です。
使用する場所: COBOLプログラムによって発行されるDL/I DB呼出し。
extern "C"
const __DB_PCB_ATTR * get_dbpcbattr (struct __DB_PCB * pcbm)
機能: db pcbの追加属性を取得するために使用されます。これらの属性はPSBファイルで構成されます。
戻り値: PCB属性ポインタ。このAPIから返されるPCB属性構造に含まれる内容を、ユーザーが変更することはできません。入力がDB PCBまたはGSAM PCBでない場合は、nullが返されます。オプションの属性が構成されていない場合は、デフォルト値が返されます。ポインタを解放する必要はありません。
使用する場所: db pcbによって呼び出されたサード・パーティのDBプラグイン。
extern "C"
int fill_dbpcb_segname (struct __DB_PCB * pcb)
機能: db pcbのセグメント名を取得するために使用されます。このインタフェースはDBプラグインによって提供されます。
pcb: PCBマスク・ポインタ(DB PCBまたはGSAM PCB)。pcbマスクのsegnameには正しい値が設定されます。
Tuxedo ART for IMS内では、デフォルトDLLはIMS/DBのOracleソリューションとして提供されています。
DLIライブラリは、COBOLアプリケーションによって渡される命令に従い、トランザクション管理作業(つまり、すでに行われた変更のコミット、すでに作成されたメッセージの送信またすべての変更のロールバック、すべてのメッセージの削除)を実行します。COBOLアプリケーションによってトランザクションをコミットする明確な命令が発行されない場合は、ARTIMPPによってトランザクションがコミットされます。
表 10は、トランザクション管理のプロセスおよびコマンドを示しています。
CHKP (基本): 明示的なコミット・ポイントを設定するために使用されます。
CHKPは、明示的なコミット・ポイントを設定するために使用されます。コミット・ポイントで、IMS/TMが、アプリケーション・プログラムによって行われた変更(通常はデータベースの更新)をコミットし、すべてのメッセージを完了としてマークして(低速PCBの場合はPURGによって)送信し、指定されたIOAREAに次の入力メッセージを取得します。
Tuxedo ART for IMSでは、tpcommit()コマンドを使用して行われた変更をコミットするために、シミュレートされたCHKPが使用されます。完了とマークされているメッセージが送信されます。明示的なPURG呼出しによってマークされていないメッセージも送信されます。
トランザクションが永続トランザクションで、永続モードのARTIMPPによって処理されているか、ARTIBMPTによって処理されている場合、次のメッセージはこのトランザクションの/Qから取得されます。
トランザクションが永続トランザクションでない場合、次のメッセージは取得されません。
'AD': 関数パラメータが無効です。関数呼出しがCBLTDLIに指定されていないか、無効な関数呼び出し名がCBLTDLIに指定されています。
CHKP (シンボリック): 明示的なコミット・ポイントを設定するために使用されます。プログラムを開始できるチェック・ポイントを設定し、プログラムに7つのデータ領域を保存し、現在のGSAM DB取得位置を記録します。
CHKP (シンボリック)は、リカバリのために使用できます。これによって、プログラムによって行われたすべての変更がコミットされ、アプリケーション・プログラムが異常終了した場合は、そのプログラムが再開できるポイントが確立されます。さらに、シンボリックCHKP呼出しは次のことを実行できます。
Tuxedo ART for IMSでは、シュミレートされたCHKP (シンボリック)を使用して、次のことが実行されます。
tpcommit()を使用して、すでに行われた変更をコミットします。これは基本CHKPと同じです。 CHKPと同じ次のメッセージを取得します。GSAM DBの現在の取得位置を記録します。| 注: | ユーザーがシンボリック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, …
最初の領域からチェック・ポイントまでの長さ(バイナリ形式)を含むプログラム内の4バイトのフィールドを指定します。このパラメータは、入力パラメータです。最大7つの領域の長さを指定できます。領域の長さごとに、領域パラメータを指定することも必要です。
'AD': 関数パラメータが無効です。Tuxedo ART for IMSによって関数呼出しが提供されていません
ROLB: データベースの更新を取り消すために使用されます。
ROLBは、データベースの更新を取り消すために使用されます。伝送できないすべての挿入済メッセージが取り消されます。高速PCBの場合、メッセージは、IMSがメッセージの完了を認識したとき(つまりPURG呼出しが呼び出されるとき)に、伝送に使用できるようになります。低速PCBでは、プログラムがコミット・ポイントに到達するまではメッセージが送信可能になりません。
Tuxedo ART for IMSでは、tpabort()を使用することでアプリケーション・プログラムによって行われたすべての変更をロールバックし、送信されていないメッセージ・バッファを空にするために、シミュレートされたROLB呼出しが使用されます。
永続トランザクション(TPまたはトランザクション指向BMPプログラム)では、永続モードのARTIMPPで処理されているか、ARTIBMPTで処理されている場合、ROLBは最後のコミット・ポイントから最初のメッセージの最初のセグメントをIOAREAに返し、/Qの最後のコミット・ポイントから最初のメッセージを削除します。
非永続トランザクション(TPまたはトランザクション指向バッチ)では、Tuxedo ART for IMSは現在処理中のメッセージの最初のセグメントのみを返します。
'AD': 関数パラメータが無効です。関数呼出しがCBLTDLIに指定されていないか、無効な関数呼び出し名がCBLTDLIに指定されているか、PCBが指定されていません。
'QE': IOAREAがNULLでない場合、GUが以前に呼び出されていません。
ROLL: データベースの更新を取り消し、Tuxedo ART for IMSに戻るために使用されます。
ROLLは、データベースの更新を取り消し、挿入されたが伝送に使用できないすべてのメッセージを取り消します。高速PCBの場合、メッセージは、IMSがメッセージの完了を認識したとき(つまりPURG呼出しが呼び出されるとき)に、伝送に使用できるようになります。低速PCBでは、プログラムがコミット・ポイントに到達するまではメッセージが送信可能になりません。
Tuxedo ART for IMSでは、tpabort()を使用してアプリケーション・プログラムによって作成されたすべての変更をロールバックし、未送信のメッセージ・バッファを空にするために、シミュレートされたROLL呼出しが使用されます。これは、Tuxedo ART for IMSにコントロールを返しますが、呼出し元プログラムにはコントロールを返しません。
永続トランザクション(TPまたはトランザクション指向BMPプログラム)では、永続モードのARTIMPPで処理されているか、ARTIBMPTで処理されている場合、ROLLにより/Qの最後のコミット・ポイントから現在のメッセージが削除されます。
SYNC: アプリケーション・プログラムによって行われた変更(通常は、データベースの更新)をコミットするために使用されます。
I/O PCB or AIB
Tuxedo ART for IMSでは、プログラムが異常終了した場合、すでに行われた変更をコミットするためにシミュレートされたSYNCが使用され、プログラム内には再開位置が設定されません。
INQY: 実行環境、宛先タイプおよびステータス、およびセッション・ステータスに関する情報を要求するために使用されます。INQYは、AIBTDLIインタフェースを使用している場合にのみ有効です。
IMSでは、次のサブ関数のみがサポートされています。NULL、FINDbbbb、PROGRAMb、DBQUERYb。
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ステータスは、データベースの使用可能性に従って返されます。
戻りコードおよび理由コードは、IBMの戻りコードおよび理由コードの説明に沿って調整されます。"DBQUERYb"の場合、データベースの使用可能性ステータスは、IOPCBステータスです。
' bb' (2つの空白): 呼出しは成功し、すべてのデータベースが使用可能です。
'BJ': DB PCBがPSBに存在していません。または、PSB内のデータベースのいずれも使用可能でないか、PSBにPCBが存在していません。すべてのデータベースPCB (GSAMを除く)には、INQY DBQUERY呼出しの処理結果としてNAステータス・コードが含まれています。
'BK': PSBの少なくとも1つのデータベースが、使用可能でないか、使用可能性が制限されています。少なくとも1つのデータベースPCBに、INQY DBQUERY呼出しの処理結果としてNAまたはNUステータス・コードが含まれています。
IMSでは、"DBQUERYb"呼出しの後に、各DB PCBのステータス・コードを使用してDBステータスを確認することはできません。
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, …
次のフィールドは、AIB内で初期化されている必要があります。
XRST呼出し中に使用されません。互換性のために、このパラメータは、依然としてコード化されている必要があります。
'AD': 関数パラメータが無効です。Tuxedo ART for IMSによって関数呼出しが提供されていません
CEE3ABDは、Tuxedo ART for IMSがプログラムの実行を異常終了コードで終了することをリクエストします。この関数からは何も返されず、関数に関連付けられた条件もありません。Tuxedo ART for IMSでは、次の手順を実行してこの関数を起動できます。
abcode
clean-up
| 注: | COBOL-IT環境では、CEE3ABD/またはART3ABDという名前を使用して、COBOLプログラムからこのAPIを呼び出すことができます。Micro Focus COBOL環境では、ART3ABDという名前を使用した場合のみ、COBOLプログラムからこのAPIを呼び出すことができます。 |
メッセージ形式およびデバイス形式の定義は、定義文の別の階層セットで実行されます。表11は、すべての定義文とそれらの説明を示しています。
前述の表の"END"文は、入力ファイルの終わりを定義します。その後のすべてのコンテンツは無視されます。入力ファイルに"END"がない場合、MFSGENによって警告メッセージが生成され、入力ファイルにそれが追加されます。
文の名前ごとに、いくつかのフィールドがあります。詳細なフィールド名および値の要件を、表12および表13に示します。他のすべての文は、現在、サポートされていないフィールドとみなされます(表14に示す)。
| 注: | system-literals include: TIME, DATE1, DATE2, DATE3, DATE4, DATE1Y4, DATE2Y4, DATE3Y4, DATE4Y4, YYDDD, MMDDYY, DDMMYY, YYMMDD, YYYYDDD, MMDDYYYY, DDMMYYYY, YYYYMMDD, DATEJUL, DATEUSA, DATEEUR, DATEISO, LTSEQ, LTNAME. |
| 注: | LTMSGおよびLPAGENOの場合、警告メッセージが表示され、何も効果はありません。表12にない他の文字列については、構文エラーが表示されます。 |
前述の表の最後の列について、「サポート対象」とはフィールドがサポートされていることを意味し、「警告」とはフィールドはサポートされておらず、このフィールドは指定されてないかのようにツールによって無視され、警告が生成されることを意味します。「エラー」とはフィールドがサポートされておらず、ツールによってエラーが報告され、現在の定義文セットの解析に失敗することを意味します。
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メッセージ形式と、MQアプリケーションと従来のIMSアプリケーション間のメッセージ・フローは、WebSphere MQアプリケーション・プログラミング・ガイドですでに定義済です。IMS環境では、MQアプリケーションがMQ-IMSブリッジを使用して暗黙的なMQIサポートを有効にすることで、従来のIMSアプリケーションをリライト、再コンパイル、再リンクしなくても、WebSphere MQメッセージがそれらにアクセスできるようにします。この機能では、Oracle Tuxedo MQ Adapterを利用して、MQアプリケーションをOracle Tuxedoクライアントに変換します。
Tuxedo ART for IMSでは、非端末クライアントとTuxedo ART for IMSのMPPサーバー間のブリッジとして機能するサーバー、ARTIGWが提供されます。非端末クライアントは、次に示すプログラミング・インタフェースに従って、ARTIGWサービスを呼び出します。ARTIGWはサービス・リクエストをARTMPPに転送します。
ARTIGWと非端末Oracle Tuxedoクライアント間の唯一のインタフェースは、FML表です。
アプリケーション・バッファでIMSトランザクション(TRANS1など)を実行するには、次の手順を実行します。
IMS_SVC_NAMEIMSトランザクション名("TRANS1"など)。
IMS_SVC_FLAG将来使用するために予約されたフィールド。
IMS_SEG_DATAアプリケーション・バッファ・データ。LLZZはバッファ内に必要ありません。セグメントの最大長は32764です(これはARTIMPPの制限です)。
tpcall()/tpacall()を発行します。 ret = tpcall(< tuxclt_service_name>, …)
この< tuxclt_service_name>はARTIGWの通知済サービスで、サービス名が構成可能です。詳細は、ARTIGW CONFIGURATIONを参照してください。
0: ARTIMPPがレスポンス・メッセージによってリクエストを正常に処理します。
1: ARTIMPPがレスポンス・メッセージなしでリクエストを正常に処理します。
インタフェースのFMLフィールド表(ARTIGWFML)とヘッダー・ファイル(ARTIGWFML.h)は、$IMSDIR/includeの下にあります。リスト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-Tuxedo ART for IMSブリッジは次のメッセージ・タイプを受け入れます。
| 注: |
| 注: | 1. 角カッコ[ ]はオプションの複数セグメントを表しています。 |
| 注: | 2. メッセージにMQIIH構造が含まれる場合、MQMD構造の「フォーマット」フィールドはMQFMT_IMSに設定されます。 |
| 注: | 3. メッセージにMQIIH構造が含まれない場合、MQMD構造の「フォーマット」フィールドはMQFMT_IMS_VAR_STRINGに設定されます。 |
MQアプリケーションをサポートするには、ユーザーはTuxedo 12cR1 RP17以降を適用し、次に示す手順に従う必要があります。
TM_MQI *SERVICEセクションを次のように定義する必要があります。 この< mq_service_name>はARTIGWの通知済サービスで、サービス名が構成可能です。詳細は、「ARTIGWの構成」を参照してください。
TM_MQI構成ファイルの*SERVERセクションで、次のパラメータを指定する必要があります。UBBCONFIGファイルでは、TM_MQIサーバーが、WebSphere MQ Resource ManagerのTMSサーバーによって構成されたグループ内に存在する必要があります。 ARTIGWは、非端末クライアントとARTIMPPサーバー間のブリッジとして機能するTuxedoサーバーです。詳細は、「サーバーの構成」を参照してください。
ARTIGWとARTIMPPが異なるドメインにデプロイされている場合、ARTIGWは<tuxclt_service_name>_REPLY_<grpid>_<srvid>および<mq_service_name>_REPLY_<grpid>_<srvid>という名前でサービスをエクスポートします。GRPIDとSVRIDは5文字です(0で始まります)。
前述のサービス名は、ARTIMPPが属しているすべてのリモート・ドメインのDMCONFIGファイルのDM_REMOTE_SERVICESセクションで構成されている必要があります。さらに、ARTIGWが配置されている各ドメインによって適切なサービス名がエクスポートされ、サービス競合がないようにする必要があります。
たとえば、ARTIGWがドメインGWにあり、ARTIMPPがドメインMPPにあると想定します。ARTIGWは、SRVID=101, SRVGRP= GROUP1で、デフォルト・サービス名を使用するように構成されています。リスト5は、MPPおよびGWドメインに対するDMCONFIGファイルの例を示しています。
| 注: |
| 注: | 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によって予期しないエラーが発生した場合、レポート・メッセージが生成され、元のメッセージによって指定されている応答キューに送信されます。レポート・メッセージには元のメッセージのデータは含まれておらず、エラー・メッセージの詳細を示す文字列のみが含まれています。 |
COMMIT_THEN_SEND)のみがサポートされています。Tuxedo ART for IMSでは、MQIIHに設定されているコミット・モード値に関係なく、常にトランザクションがコミット・モード0として処理されます。ULOGファイルにもあります。 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は、サーバー構成のプロセスとおよびコマンドを示しています。
ARTICL - 3270端末をTuxedo ART for IMSランタイムに結合するために使用されます。
CLOPT="[servopts options] -- -n netaddr -L pnetaddr [-S ssladdr] [-m minh] [-M maxh] [-x session-per-handler] [-p profile-name][-z mine] [-Z maxe]
[-D [+H handler-number]]"
UBBCONFIGファイルのMACHINESセクションでMAXWSCLIENTSパラメータを指定する必要があります。MAXWSCLIENTSは、ARTICTLに対して特別な意味を持つ唯一のパラメータです。MAXWSCLIENTSは、3270端末専用に予約されているアクセス・スロットの数を、起動時にOracle ARTに通知します。
MAXWSCLIENTSに対して、ノードに接続できる3270端末の最大数を指定します。デフォルトは0です。指定しない場合、端末から、指定されたマシンに接続できません。
-n netaddr
-L pnetaddr
[-m minh]
minhとmaxhの間にあります。 | 注: | minhは1-255の数ですが、システム・リソースの制限に従って、それは、(FD_SETSIZE - 24)以下である必要があります。FD_SETSIZEは、1つのプロセスで一度に開くことができるファイルの最大数を意味します。この値は、システム・コマンドulimit -nを使用して取得できます。 |
[-M maxh]
ARTICTLによって開始されるハンドラ・プロセスの最大数であるmaxhは、1-1000の数であり、デフォルト値は1000です。ハンドラ・プロセスの実際の数は、システム負荷に基づいて、常に minhとmaxhの間にあります。 | 注: | maxhは1-1000の数ですが、システム・リソースの制限に従って、それは、(FD_SETSIZE - 24)以下である必要があります。FD_SETSIZEは、1つのプロセスで一度に開くことができるファイルの最大数を意味します。この値は、システム・コマンドulimit -nを使用して取得できます。 |
[-x session-per-handler]
[-S ssladdr]
//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
[-D [+H handler-number]]
-Dオプションは、ARTICTLサーバーのトレース・ログを有効にするために使用されます。指定しない場合、無効です。+H handler-numberオプションは、ARTICTLHサーバーで有効なハンドラ数のうち、最初にブートした数にかぎり、ARTICTLHサーバーのトレース・ログを有効にするために使用されます。handler-numberが0の場合、トレース・ログは、現在のARTICTLサーバーから作成されたすべてのARTICTLHサーバーで有効になります。すべてのトレース・ログは、/tmpディレクトリに配置されます。
*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: TPタイプCOBOL/Cプログラムのサービス・ハンドラおよびコンテナ。
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は、ARTIMPPのCLOPTにある"-l class_list"パラメータでクラスが定義されている永続トランザクションの/Qをモニターします。これは/Qからメッセージを受信し、対応するCOBOL/Cプログラムを起動します。
[-l class_list]
class_listで指定されているサービスは、標準モードのARTIMPPによって通知されます。
-p
-V
[-m cobol mode]
[-D trace-level]
[-x]
Oracle IMS/DBソリューションの場合、パラメータ・リストは次のとおりです。
-o host:port:dra
これは、IMS/DB用のOracleプラグインで必要とされるパラメータです。
| 注: | 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のすべての機能を備えています。また、外部リソース・マネージャ(RM)として使用されるOracle Databaseもサポートできます。これは、Oracle Databaseによって提供されるいくつかのライブラリを使用します。Oracle Databaseでこの環境変数を使用するには、UBBCONFIGファイルでRMセクションを適切に構成する必要があります。
ARTIBMP: BATCHタイプCOBOL/Cプログラムのプログラム・コンテナ。
CLOPT="[servopts options] -- [-V][-m cobol mode][-D trace-level][-x parameter list for DB plugin] "
ARTIBMPは、BATCHタイプのCOBOL/Cプログラムのプログラム・コンテナとして機能するTuxedoサーバーであり、受信したプログラム名に応じて対応するCOBOLプログラムを起動します。エラーや異常終了がなく、ユーザー・プログラムもクラッシュしていない場合、ユーザー・プログラムのリターン・コードはDFSRRC00です。
-V
[-m cobol mode]
[-D trace-level]
[-x]
Oracle IMS/DBソリューションの場合、パラメータ・リストは次のとおりです。
-o host:port:dra
これは、IMS/DB用のOracleプラグインで必要とされるパラメータです。
ARTIBMPT: トランザクション指向バッチ・プログラムを処理するOracleTuxedoサーバー。
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]
class_listで指定されているサービスは、ARTIBMPTによって公開されます。
[-m cobol mode]
[-D trace-level]
[-x]
Oracle IMS/DBソリューションの場合、パラメータ・リストは次のとおりです。
-o host:port:dra
これは、IMS/DB用のOracleプラグインで必要とされるパラメータです。
| 注意: | ARTIBMPTがUBBCONFIGファイルで構成されており、トランザクション指向BMPトランザクションがimsresource.descで構成されている場合、UBBCONFIGファイルで、imsresource.descの/Qの構成に従ってTMQUEUEサーバーを構成する必要もあります。 |
ROLBまたはROLLを発行するトランザクション指向BMPプログラムの場合、トランザクションは1つのARTIBMPTサーバーによってのみ処理できます。
つまり、(imstrans.descで定義された)トランザクションのCLASS定義は、1つのARTIBMPTサーバーの"-l class_list"パラメータのみと一致します。
ARTIBMP_ORAは、ARTIBMPのすべての機能を備えています。また、外部リソース・マネージャ(RM)として使用されるOracle Databaseもサポートできます。これは、Oracle Databaseによって提供されるいくつかのライブラリを使用します。Oracle Databaseでこの環境変数を使用するには、UBBCONFIGファイルでRMセクションを適切に構成する必要があります。
ARTIADM - Tuxedo ART for IMSランタイムの管理を担当するOracle Tuxedoサーバー。
CLOPT="[servopts options]--[-D trace-level]"
分散ターゲット環境では、このサーバーを各ノード上に構成して、構成の通知を実行することができます。これらのサーバーを使用すると、マスター・ノード上では、構成ファイルのみ構成する必要があり、管理サーバーは構成ファイルを各スレーブ・ノードに通知します。
起動時に、マスター・ノード上で動作している管理サーバーは、ディレクトリ${ART_IMS_CONFIG}にあるすべての構成ファイルを読み込みます。スレーブ・ノード上で動作する各管理サーバーの起動起動時には、マスター・ノード上の管理サーバーと通信して、構成ファイルの内容をフェッチします。
続いてスレーブ・ノード上の管理サーバーは、スレーブ・ノード上のディレクトリ${ART_IMS_CONFIG}にある、対応する構成ファイルに書き込みます。存在しない場合は、新しい構成ファイルが作成されます。構成ファイル同期関数はオプションです。デフォルトでは、この関数は無効になっています。
[-D trace-level]
ARTITERM: 異なるドメインに配置されているARTICTLとARTIMPPの間のメッセンジャとして機能します。
クロス・ドメイン環境では、ARTITERMサーバーは、異なるドメインに配置されているARTICTLとARTIMPPの間のメッセンジャとして機能するために使用されます。ARTITERMは、ARTIMPPに特別なサービスを提供し、したがって、ARTIMPPはデータをARTITERMに渡すことができ、それは次にそのデータをARTICTLに渡します。
ARTIGW: 非端末クライアントとARTIMPPサーバー間のブリッジとして機能するOracle Tuxedoサーバー。
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
<IMSGW_MQ_SVC>は通知されません。
tuxclt_service_name
<IMSGW_MQ_SVC>は通知されません。
-V
[-D trace-level]
| 注意: | mq_service_nameとtuxclt_service_nameはどちらも、先頭を"<domainid>_"にすることはできません。そうでなければ、ARTIGWはレスポンス・メッセージを正しく取得できません。この場合、<domainid>は、ARTIMPPが属しているドメインのIDです。 |
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]
[-l]
[-p]
[-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アプリケーションにおけるセキュリティの使用に関する項を参照してください。
Tuxedo ART for IMSでは、次の既存のUBBCONFIGファイル・パラメータを使用して、SSL識別文字列およびSSL証明書の暗号化パスワードの場所に関する情報が構成されます。
詳細は、Oracle Tuxedoユーザーズ・ガイドのATMIアプリケーションにおけるセキュリティの使用に関する項を参照してください。
ART_IMS_CONFIG *.descや*.psbなどの構成ファイルが配置されている絶対パスを指定するためにTuxedo ART for IMSによって必要とされる環境変数。これはARTIMPP、ARTIMPP_ORA、ARTIBMP、ARTIBMP_ORA、ARTIBMPT、ARTIADMに必須の環境変数です。
ART_IMS_DBART_IMS_FMT MFSGENによって生成された制御ブロック・ファイルが配置されている絶対パスを指定するためにARTICTLによって必要とされる環境変数。これは、PATH環境変数に類似した一連のパスであり、セパレータは:です。この変数が指定されていない場合、PATH APPDIRが使用されます。MFSを使用する場合、これはARTICTLに必須の環境変数です。
ART_IMSLOGDIR すべてのレコード・ログ・ファイルが配置されるディレクトリを指定します。レコード・ログ・ファイルは、CHKP (シンボリック)とXRSTによって使用されます。指定しなかった場合、ART_IMSLOGDIRのデフォルト値は$APPDIR/IMSLOGDIRになります。MPモードでOracle Tuxedoドメイン内の複数のマシンがレコード・ログ・ファイルを共有する場合、ART_IMSLOGDIRは、Oracle Tuxedoドメイン内のマシンがアクセスできるNFSディレクトリを指している必要があります。
ARTIMS_CAPITAL_USERID ユーザー名を大文字に変換するかどうかを指定するために、ARTICTLによって必要とされる環境変数。Yを設定すると、すべてのユーザー名の文字が大文字に変換されます。Nを設定するか、または設定しない場合は、変換されません。
ARTIMS_COBOL_MODE ユーザーのCOBOLプログラムの起動/取消方法を指定します(Micro Focus COBOLのみ)。これはCOBOL-ITでは無視されます。表に19に、使用可能な値と説明を示します。設定しない場合、デフォルト値はMF_SUBSYSです。
ARTIMS_DYNAMIC_BMP 動的BMP設定を指定します。値は"Y"または"N"に設定できます。
"Y"に設定した場合、BMPサーバーはBMPプログラムの実行後終了します。"N"に設定した場合、BMPサーバーはBMPプログラムの実行後も存続します。
ART_IMS_EXCEPTION_TO_CATCH アプリケーション例外として捕捉するシグナル番号のリストを指定します。各番号は、カンマで区切ります(ART_IMS_EXCEPTION_TO_CATCH=8,11,4など)。
この環境変数が設定されない場合、デフォルト・リスト(SIGSEGV,SIGILL,SIGBUS,SIGFPE)が使用されます。誤ったシグナル番号が指定された場合は無視され、警告メッセージがULOGファイルに書き込まれます。捕捉できない正しいシグナル番号が指定された場合(SIGKILL、SIGSTOPなど)、サーバーの起動が失敗し、警告メッセージがULOGファイルに書き込まれます。
ARTIMS_EXCEPTION_HANDLING ユーザー・アプリケーションによって生成された重大な例外が捕捉された場合のサーバーの動作を指定します。値は、KEEPまたはABORTに設定できます。
ABORTに設定した場合、ユーザー・アプリケーションからの例外が捕捉されると、サーバーMPP/BMPは中止されます。サーバーのコア・ファイルはシステムの構成に基づいて生成される場合とされない場合があります。
KEEPに設定した場合、サーバーは起動したままになります。設定しない場合、デフォルト値はKEEPです。
ARTIMS_LOGON_SCREEN ログオン画面ディレクトリを指定します。これは$IMSDIRのサブディレクトリである必要があります。設定しない場合、デフォルト値はsysmapで、これは、$IMSDIR/sysmapのログオン画面が使用されることを意味します。$IMSDIR/sysmap2では別のログオン画面が定義されており、sysmap2とsysmapの間の違いは、ユーザー名およびパスワードの入力フィールドの位置のみです。ユーザー定義のログオン画面の詳細は、$IMSDIR/sysmap2のreadmeファイルを参照してください。
COBPATHMicro Focus COBOL環境で必要とされる環境変数。これは、動的にロードされるCOBOLプログラムを検索する1つ以上のディレクトリを定義します。その使用方法は、UNIX PATHに似ています。これはMicro Focus COBOLに必須の環境変数です。
COB_LIBRARY_PATH COBOL-ITを使用している場合、COBOLプログラムの検索順序を定義するためにCOBOL-ITによってCOB_LIBRARY_PATHが必要とされます。これは、動的にロードされるCOBOLプログラムを検索する1つ以上のディレクトリを定義します。その使用方法は、Unix PATHに似ています。これはCOBOL-ITに必須の環境変数です。
DFSRRC00_TIMEOUT_SEC DFSRRC00は、 BMP/BMPTプログラムのレスポンスを待機する、DFSRRC00のタイムアウト秒の値を指定するために使用されます。これには、次のルールが使用されます。
EXTERCODE アウトバウンド・データのどのエンコーディング・タイプを使用するかを指定します。この値は、z/OSプラットフォームで使用されるどのEBCDICエンコーディング・タイプでもかまいません。この変数が指定されていない場合、IBM-37が使用されます。この変数が指定されている場合、INTERCODEも指定する必要があります。
IMS_DUMP_TYPEプログラムのダンプ・タイプを指定します。次のいずれかの条件が満たされる場合、ダンプ・ファイルが生成されます。
CEE3ABD/ART3ABDが呼び出される場合(MF環境でCEE3ABDが呼び出される場合を除く)。DLI ROLLが呼び出される場合。ART_IMS_EXCEPTION_TO_CATCHまたはデフォルト・シグナル・リスト(ART_IMS_EXCEPTION_TO_CATCHが未設定の場合)で指定されたシグナルが捕捉される場合。表に20に、使用可能な値と説明を示します。
IMS_DUMP_TYPEが構成されていない場合、デフォルト値はNONEですが、ARTIMS_EXCEPTION_HANDLINGがABORTに設定されている場合、シグナルの捕捉時にSYSTEM_DUMPが有効になります。表21に、ダンプ・タイプのすべての組合せを示します。
表22に、ダンプ・ファイル生成の要件を示します
IMS_ENV_LIST DFSRRC00のため、ARTIBMPサーバーに送信する必要のある、接頭辞"DD_"の付く環境変数以外のすべて環境変数名の指定に使用されます。すべての環境変数の名前はカンマで区切ります。DFSRRC00を起動する前に設定する必要があります。
IMS_LONG_USERNAME ARTIMSは、従来の8バイトのユーザー名/パスワードを使用した端末からのログインIMSをサポートし、ユーザー名パスワードは最大で30バイトまでです。この環境変数は、従来のユーザー名/パスワードと長いユーザー名/パスワードとを切り替えるために使用します。デフォルト・モードは従来の8バイトのユーザー名/パスワードです。
IMS_LONG_USERNAMEを"Y"に設定した場合、最大30バイトのユーザー名/パスワードが使用されます。それ以外の場合、従来の8バイトのユーザー名/パスワードが使用されます。
IMS_PERF_ENABLE パフォーマンス・トレースのためのグローバル・スイッチです。IMS_PERF_ENABLEをY/Nに設定した、パフォーマンス・トレースのオン/オフが制御され、UBBCONFIGファイル設定より優先されます。
IMS_PERF_ENABLEが設定されていない場合、パフォーマンスの動作はUBBCONFIGファイルの-Vオプションの使用により設定されます。
IMS_PRO_LOG プログラム起動ログのグローバル・スイッチ。IMS_PRO_LOGをY/Nに設定している場合、プログラム起動ログのオン/オフが制御されます。
Yに設定している場合、MPP/BMPサーバーでのトランザクションやプログラムの開始/終了時に、プログラム起動ログ・ファイルに、次の形式でトレース行が追加されます: transaction name, program name, Sstart time, Eend time, group id, server id.
| 注意: | 使用する場合、"-"は空の値を示します。 |
IMS_TRACE_PATHデバッグ・トレース、プログラム起動ログ、パフォーマンス・トレース・レポートが起きれるパスを指定します。Tuxedo ART for IMSサーバーには、このディレクトリの書込み権限と実行権限の両方が必要です。
指定しない場合、デフォルトでは$APPDIR/logに置かれます。
IMSDIR インストール済Tuxedo ART for IMSサブシステムのルート・パス(絶対パス)が含まれている環境変数。ARTICTLを使用して端末からの接続を受け付ける場合、これは必須の環境変数です。
INTERCODE インバウンド・データのどのエンコーディング・タイプを使用するかを指定します。この値は、一般的なプラットフォームで使用されるどのエンコーディング・タイプでもかまいません。この変数を指定しなかった場合、ASCIIが使用されます。この変数が指定されている場合、EXTERCODEも指定する必要があります。
表23は、3270端末上で入力でき、Tuxedo ART for IMSで処理できるコマンドおよび関連するパラメータを示しています。
この項のすべての構成ファイルで、キーおよび非リテラル値について大文字小文字が区別されません。例: bool (yes|no)およびenumリテラル値とそれらの大文字小文字は保持されます。コメント行には、前に"*"を付ける必要があります。構成ファイルにエラーがある場合、または構成ファイルに矛盾がある場合、サーバーは起動に失敗する場合があります。
[section name]
Field1=value1
Field2=value2
….
[section name]
….
[section name]
…
表24は、z/OS上のIMSのTRANSACT MACROからフィールド名がマップされた構成ファイルの例を示しています。
表25は、z/OS上のIMSのAPPLCTN MACROからフィールド名がマップされた構成ファイルの例を示しています。
このファイルで定義されるトランザクションはすべて永続トランザクションです。プログラム切替えによる永続トランザクションに対するメッセージは/Qに格納されます。Tuxedo ART for IMSを起動する前に、このファイル内に構成されているキュー・スペースに対応して、キュー名をトランザクション名と同じにして、すべての永続トランザクション用の/Qを作成する必要があります。表26に、imsresource.descのフィールド名をリストします。
リスト7は、キュー・スペースと参照用のキューを作成するためのスクリプト例を示しています。このスクリプトを実際の要件に合わせてカスタマイズできます。詳細は、Oracle Tuxedo /Qのガイドを参照してください。
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)。
| 注意: | 再試行回数は、特定のメッセージが永続トランザクションに入れられる回数の2倍以上の数に設定することをお薦めします。 |
imsdbs.descは、 $ART_IMS_CONFIGの下にあります。
一部のimsdbs.descフィールド構成は、z/OS上のIMSのなんらかのDBD文からマップされています。ROLBまたはROLLを発行する永続トランザクションの場合、トランザクション・キューの作成の再試行回数は、比較的大きな数に設定する必要があります(設定可能な最大値は2147483647)。
| 注意: | 再試行回数は、特定のメッセージが永続トランザクションに入れられる回数の2倍以上の数に設定することをお薦めします。 |
$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文からフィールド名がマップされた構成ファイルの例を示しています。
segments.descは、データベース内のセグメントを定義します。1つのデータベース(GSAMデータベースを除く)は、1つのsegments.descを持ち、それは$ART_IMS_CONFIG/db/$dbnameの下にあります。
segments.desc内のフィールドは、DBDのSEGM文からマッピングされています。
| 注: | 可変長セグメントの場合、BYTES定義がSEGM文からマップされ(BYTES= (max bytes,min bytes)など)、最大バイト数は最小バイト数以上である必要があります。可変長セグメントは、2バイト・フィールドで始まる必要があり、それによって、その2バイトの長さのフィールドを含めたセグメントの長さが定義されます。 |
| 注: | SEGPGM_A2E、SEGPGM_E2AおよびSSAPGM_A2E、KFAPGM_E2Aの場合: |
| 注: | 1. 上述の4つのパラメータがどれもsegments.descで定義されていない場合、$segname.descが存在する必要があり、後述するデータ変換を行うために$segname.descが使用されます。 |
| 注: | 2. SEGPGM_A2EとSEGPGM_E2A。 |
| 注: | SEGPGM_A2EとSEGPGM_E2Aは、両方合わせて定義済であるか、未定義である必要があります。SEGPGM_A2EとSEGPGM_E2Aが定義済の場合、ODBAプラグインはSEGPGM_A2E/SEGPGM_E2Aを使用してセグメント・データの変換を実行します。この場合、$segname.descが存在していても、$segname.descがセグメント・データの変換の実行に使用されることはありません。 |
| 注: | SEGPGM_A2EとSEGPGM_E2Aが未定義の場合、ODBAプラグインは$segname.descのFIELDS定義を使用してセグメント・データの変換を実行します。 |
| 注: | 3. SSAPGM_A2E |
| 注: | SSAPGM_A2Eが定義されている場合、ODBAプラグインは定義済のCOBOLプログラムを使用して、このセグメントの限定されたSSAの変換を実行します。 |
| 注: | SSAPGM_A2Eが定義されていない場合、ODBAプログラムは$segname.descのKEYフィールド・タイプ定義を使用して、このセグメントのSSAのKEY値を変換します。 |
| 注意: | 4. KFAPGM_E2A。 |
| 注意: | KFAPGM_E2Aが定義されている場合、ODBAプラグインは定義済のCOBOLプログラムを使用して、このセグメントのキー・フィードバック領域のデータ変換を実行します。 |
| 注意: | KFAPGM_E2Aが定義されていない場合、ODBAプログラムは$segname.descのFBAFIELD定義を使用して、このセグメントのキー・フィードバック領域のデータ変換を実行します。 |
| 注意: | 上述の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は、imsdbs.descでGSAMとMSDBのどちらでもないアクセス・タイプが定義されているデータベースに対してのみ存在します。$segname.descは$ART_IMS_CONFIG/db/$dbnameの下に配置されています。
フィールド・タイプの定義はDBDのFIELD文によるものだけではありません。ユーザーはCOBOLプログラムでの使用方法に従ってフィールド・タイプを定義する必要もあります。
フィールドのタイプを定義しない場合、デフォルトのフィールド・タイプはCになります。
表31は、COBOLプログラムでの使用方法に基づくフィールド定義のマッピング表を示しています。
取得またはISRT呼出しが完了すると、ODBAプロキシからキー・フィードバック領域が返されます。DB PCBでキー・フィードバック領域を変換するために、FBAFIELDという名前の特別なFIELDが予約されています。
セグメント連結キーは、それぞれの親のキーと独自のキーで構成されます。キー形式は左から右へと配置され、ルート・セグメントのキー形式で始まり、階層パスが続きます。
$segmentで定義されているこの特別なFIELD(FBAFIELD)によって、セグメントの連結キーの形式を定義する必要があります。キー・フィードバック領域は、segnameでのこのフィールドの定義に従って変換されます。
リスト8は、$segname.descの定義例を示しています。
[field]
NAME=FBAFIELD
START=0
BYTES=11
TYPE=M
FORMAT=5,P;6,C
BYTESはキー・フィードバック領域の長さ合計(つまり連結キーの長さ合計)を定義します。
TYPEは連結キーのタイプを定義します。連結キーに異なるタイプが含まれる場合は、TYPEをMに設定する必要があります。
キーの形式がTYPE=Mの場合、FORMATで連結を定義する必要があります。
$ segname.descで特別なFIELD(FBAFIELD)が定義されていない場合、segnameではキー・フィードバック領域がデフォルトでTYPE Cとして変換されます。
| 注意: | SSAの検索キー・フィールドの場合、フィールド名は、DBDで定義されている検索KEY FIELD名、およびSSAで使用されている名前と同じである必要があります。 |
imsdebug.descは、すべてのプログラム・デバッグ情報を定義します(現在はCOBOLプログラムのデバッグのみが対象)。
zostrans.descファイルは、z/OSに残っているすべてのトランザクションを定義します。これらすべてのトランザクションは、サブトランザクションとしてのみ呼び出す必要があり、現在は非会話型トランザクションのみがサポートされます。
トランザクション入力メッセージのバッファ・コンバータ・プログラム。ART for Workbenchは、入力メッセージ/セグメント構造を記述したコピーブックに基づいてこれを生成できます。これは、Z/OSでサブトランザクションを呼び出す前にデータ変換を処理します。
CONVが指定されない場合、ART for IMSは、デフォルトでASCIIをEBCDICに変換するため、入力メッセージのすべてのバイトは文字として処理されます。
コンバータ・プログラムの生成方法については、『Oracle Tuxedo Application Rehosting Workbenchリファレンス・ガイド』を参照してください。
|
imsgenconfにより、IMS.WHITE(形式は次のとおり)にリストされているトランザクション/アプリケーションの構成が作成されます。
[TRANCODE]
TRAN1
TRAN2
TRAN3
[APPPSB]
PSB1
PSB2
PSB3
[TRANCODE]セクション: ブラック/ホワイト・リストにトランザクション・コードを定義します。各トランザクション・キーは、最大で8文字です。
[APPPSB]セクション: ブラック/ホワイト・リストにバッチ・アプリケーション・プログラムのPSB名を定義します。各PSBキーは、最大で8文字です。
imsgenconfにより、IMS.BLACKに定義されていないトランザクション/アプリケーションの構成が作成されます。形式は次のとおりです。
[TRANCODE]
TRAN1
TRAN2
TRAN3
[APPPSB]
PSB1
PSB2
PSB3
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つのファイル・ハンドラ・ファイルを切り替えるか、ユーザー指定のファイル・ハンドラと置き換えます。
| 注意: | 現在、この機能はCOBOL-ITではサポートされていません。 |
Cのプログラムでは、STDIN/STDOUT/STDERRはSYSIN/SYSOUT/SYSOUTファイルにリダイレクトされます。SYSINが定義されていないか、アクセスできない場合、リダイレクトは起きません。
SYSOUTが定義されていないか、アクセスできない場合、STDOUT/STDERRは$APPDIR/SYSOUTファイルにリダイレクトされます。
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つがあります。
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を使用してデバッグするには、次の手順を実行します。
| 注意: | デバッグが終了したら、状況に応じて、デバッグしたプログラムをデタッチする必要があります。 |
COBOL-IT COBOLを使用してデバッグするには、次の手順を実行します。
${ART_IMS_CONFIG}でimsdebug.desc構成ファイルを作成または変更します。 tmshutdown/tmbootを使用してサーバーを再起動するか、"imsadmin"を使用してオンライン・システムで構成を再ロードします。vncserverを使用してVNC環境を開始できます。 VNC xtermで、deet -p yourDEBUGIDコマンドを使用してデバッグを開始します。これにより、DeetグラフィックUIが起動され、COBOLプログラムがアタッチされます。
| 注意: | デバッグが終了したら、状況に応じて、デバッグしたプログラムをデタッチする必要があります。 |
|