Oracle Tuxedo Application Runtime for IMS Users (Tuxedo ART for IMS)は、オープン・プラットフォーム(たとえば、OS/390またはMVS/ESA環境上のIBM IMS/TM)上で同じ関数をエミュレートするために使用されます。
このガイドには、UNIX/Linuxプラットフォーム上でOn Line Transaction Processing (OLTP)アプリケーションを開発および実行する場合に、Tuxedo ART for IMSを構成および使用するための説明と手順が記載されています。
IMS Transaction Managerは、IMSの下で実行されているアプリケーションへのアクセスを提供します。同じOS/390システム、他のOS/390システム、または他の非OS/390プラットフォーム上の端末やワークステーション、または他のアプリケーション・プログラムから使用できます。IMS Database Managerコンポーネントは、IMS階層型データベース・モデルを使用するデータベースをサポートします。それは、IMS Transaction Managerの下で実行されているアプリケーションからこれらのデータベースへのアクセスを提供します。IMSには、制御リージョンと従属リージョンがあります(たとえば、メッセージ処理リージョン、メッセージのバッチ処理(BMP)リージョンなど)。
IMS制御リージョンは、IMSサブシステムの中心となるポイントを提供します。これは、Transaction Manager関数のためのSNAネットワークへのインタフェースと、非SNAネットワークにアクセスするためのTransaction Manager OTMAインタフェースを提供します。IMSサブシステムの操作のためにOS/390へのインタフェースを提供します。様々な従属リージョンで実行されているアプリケーション・プログラムを制御およびディスパッチします。IMS MPPリージョンは、IMS Transaction Managerコンポーネント(つまり、オンライン・プログラム)へのメッセージ入力を処理するために使用されます。アドレス空間では、アプリケーション・プログラムが自動的にロードされることはありませんが、作業が使用可能になるまで待機します。BMPリージョンは、2つのサブタイプで構成されています。IMSメッセージ・キューからメッセージを読み取って処理するメッセージ・ドリブンBMP(トランザクション指向BMPとも呼ばれる)と、IMSメッセージを処理しないがIMS DBへのアクセス権を持つ非メッセージBMP(バッチ指向)です。
z/OS上のIMSの機能をエミュレートするために、Tuxedo ART for IMSは、Oracle Tuxedoの制御の下で実行されるサーバーのグループを提供します(必須サーバーとオプションのサーバーを含む)。必須サーバーには、ARTICTL
、ARTIMPP
およびARTIBMP
があります。オプション・サーバーには、ARTIADM
およびARTITERM
があります。さらに、Tuxedo ART for IMSは、サーバーを支援するDLLとユーティリティのグループを提供します。z/OS上のIMSからTuxedo ART for IMSへのマッピング・リストは、次のとおりです。
DFSUPAA0
: MFSGEN
ユーティリティ DFSRRC00
: Oracle TuxedoクライアントDFSRRC00
ARTICTL
サーバー ARTIMPP
、MPPを実行するコンテナARTIBMP
、BMPを実行するコンテナARTIMPP/ARTIBMP
アドレス空間で実行するライブラリを指定します。Tuxedo ART for IMSのアーキテクチャ全体を図1に示します。
Tuxedo ART for IMSは次のもので構成されます。
Tuxedo ART for IMSは、作業リクエストを受信します。このリクエストは、リモート端末で入力されています。これは、通常、IMSに対して、実行する作業の種類と使用するデータを特定するトランザクション・コードで構成されています。それらはすべて、ARTICTL
のART MFS言語ユーティリティを介してメインフレーム上の元のファイルから解析されたMFS制御ブロック定義に従います。
ARTICTL
によって、リモート端末接続が処理され、3270データ・ストリームがEBCDICからASCIIに変換されます。その後、DIFに従ってデータ・ストリームからの情報が解析され、ARTIMPP
のMIDに従ってメモリーにメッセージ・セグメントが保存されます。
ARTIMPP
によって特定のプログラム(COBOLのもの)が起動されて制御されます。それによって、リクエスト・データが使用されてリモート・オペレータ・リクエストが実行されます。また、作業リクエストに応じてリモート・オペレータに対するデータも準備されます(たとえば、作業の完了の確認、問合せへの応答など)。
最後に、プログラムによって準備されたデータが、最初に作業を要求した端末に送り返されます。このプロセスは前述のワーク・フローのちょうど反対です。
ARTIMPP
とは異なり、ARTIBMP
は、リモート端末によってではなく、ARTIBMP
に固有のOracle Tuxedoクライアント(たとえば、DFSRRC00
)によってアクティブ化されます。
Tuxedo ART for IMSサーバーは次のとおりです。
詳細は、Oracle Tuxedo Application Runtime for IMSリファレンス・ガイドのサーバー構成に関する項を参照してください。
図 2は、ARTICTL
が、デバイスまたはリモート・プログラムからの入力データをIMSへのプレゼンテーション用に書式設定し、アプリケーション・プログラム・データを出力デバイスまたはリモート・プログラムへのプレゼンテーション用に書式設定することで、アプリケーション・プログラムをどのようにデバイス非依存にできるのかを示しています。
MS/MFSは、次の3つのコンポーネントで構成されています。
各部分の機能を詳細に説明する前に、もう1つのオフライン・ユーティリティであるART MFS言語ユーティリティMFSGEN
について説明する必要があります。MFSGEN
は、メインフレーム上の4つのタイプのMFS制御ブロックを、オープン・プラットフォーム上のバイナリ・ファイルに転送し、そのファイルをフォーマット・サービス・ライブラリによって読み取れるようにするために使用されます。MFSGEN
もTuxedo ART for IMSの重要な機能です。
アプリケーション・プログラムおよび端末またはリモート・プログラム用に入力および出力を書式設定するために指定する必要があるMFS制御ブロックには、4つのタイプがあります。
注意: | このドキュメント全体で、用語「メッセージ・ディスクリプタ」はMIDとMODの両方を指します。「デバイス書式」とはDIFとDOFの両方を指します。MOD、DOF、DIFおよびMIDはそれぞれ、特定のメッセージを処理します。プログラムが送信する一意のメッセージごとにMODおよびDOFが、プログラマが受信する一意のメッセージごとにDIFおよびMIDが必要です。 |
端末制御リスナー(CTLL)プロセスは、ARTICTL
サブシステムで実行される標準Oracle Tuxedoサーバーです。これは、ARTICTL
が開始されたときに起動します。
CTLLは、端末リスナー・サーバーのロールを実行します。これは、3270でアプリケーションと接続するパブリック・アドレスでリスニングします。それによって、受信接続リクエストごとに、ハンドラ・プロセスの1つにこの接続が送信されます。詳細な機能は次のとおりです。
端末制御ハンドラ(CTLH)プロセスは、端末I/O、ユーザー認証、およびユーザーにかわって行うリクエストされたトランザクションの呼出しなど複数の接続を管理します。ユーザーがトランザクションをリクエストするたびに、このトランザクション・リクエストをCTLHが(tpacall()
を介して)メッセージ処理リージョン(ARTIMPP
)に送信します。詳細な機能は次のとおりです。
接続リクエストが端末エミュレータから着信すると、それはCTLHプロセスの1つによって受け入れられ、処理されます。これらのプロセスによって、ARTICTL
サブシステムの入力および出力が管理されます。端末がARTICTL
サブシステムに接続すると、ARTCTLH
が、端末のかわりにOracle Tuxedoクライアントとして機能します。端末からトランザクションIDを入力すると、ARTCTLH
によってそのトランザクションIDがOracle Tuxedoサービス識別子に変換され、tpacall()
が呼び出されます。その後、Oracle Tuxedoによって、そのトランザクションが端末3270データ・ストリームとともにMPPサーバーにルーティングされてトランザクションが実行されます。
CTLHは、セッション管理を実行します。端末を使用してARTICTL
サブシステムに接続すると、CTLHによって新しいユーザー・セッションがその接続に対して確立され、その端末に対するすべての後続の画面I/Oが処理されます。パフォーマンス拡張として、各CTLHプロセスは、複数のセッションを同時に管理できます。ポートからエミュレータを切断すると、CTLHはセッションを終了します。
CTLHは、ASCIIとEBCDICの間の変換を実行します。CTLHは、3270データ・ストリームを端末との間で送受信する前または後に、ASCIIとEBCDICの間のデータ変換を実行します。
CTLH
は、メッセージ・フォーマット・サービス・ライブラリ(LIBMFS)を呼び出すことでメッセージ書式設定を実行します。CTLH
は、端末からデータを受信すると、そのデータ・ストリームを分割し、DIF制御ブロックに従って有用な情報を抽出し、MID制御ブロックに従ってアプリケーション・プログラムによって使用されるメッセージを作成します。CTLH
は、アプリケーション・プログラムから返されたメッセージを受信すると、そのメッセージを分割し、MOD制御ブロックに従って有用なセグメントを抽出します。その後、それが、DOF制御ブロックに従ってデータ・ストリームを作成し、端末に送信します。
各MID/MOD MSG文で定義されているメッセージ書式設定には3つのタイプがあります(OPT=1/2/3)。メッセージ書式設定の各タイプは、ARTICTL
およびARTIMPP
によって処理される様々なMSG定義を定義します(パフォーマンスのためにMSGのいくつかのフィールドまたはセグメントは削除されます)。各MSGタイプの利点と詳細は、IMS/TMのプログラミングに関する項を参照してください。
アプリケーション・プログラムでは、ARTICTL
とARTIMPP
の間で使用されるMSGタイプに関して考慮する必要はありません。ARTIMPP
によって、MSGはアプリケーション・プログラムに送信される前にそのI/O領域で調整されます。ARTICTL
およびARTIMPP
は、OPTをサポートしていません。それらはアプリケーション・プログラムが認識可能な一般的なタイプ(MSGのフィールドもセグメントも削除しない)を使用してMSGを処理します。
ARTICTLサブシステムは、次の6つの端末タイプをサポートしています。
ARTICTL
サブシステムがブートするときに、CTLHがTN3270Eプロトコル・ネゴシエーションを実行し、端末のタイプとIDがネゴシエーションを介して判別され("IBM-3278-2-E"など)、CTLHがその端末のタイプに対応する3270データ・ストリームを処理します。
メッセージ・フォーマット・サービス・ライブラリ(LIBMFS)は、CTLHによってリンクされているライブラリとして配布され、各CTLHプロセスで実行され、制御ブロック管理も処理します。これによって、制御ブロックがリクエストされると、適切な制御ブロックが検索されてキャッシュに読み込まれ、保持されます。リクエストが終了すると、制御ブロックはキャッシュからクリアされます。
IMSシステム・コマンド( /FORMAT
、/SIGN
、/EXIT
など)も、TCPハンドラで処理されます。
Tuxedo ART for IMSは、4つのタイプのOracle Tuxedoセキュリティ・メカニズムをサポートしています(セキュリティなし、APP_PW
、ユーザーレベル認証(USER_AUTH
)およびアクセス制御リスト(ACLまたは必須ACL))。
メインフレームIMSにアプリケーション・パスワードはないため、Tuxedo ART for IMSセキュリティのアプリケーション・パスワードは削除します。
注意: | tmloadcf を使用している場合、アプリケーション・パスワード文字を入力しないでください。[Enter]キーを押すことでそれをNULLのままにします。 |
認証に失敗した場合、端末にエラー・メッセージが表示されますが、端末をクリアして他のトランザクションを実行できます。
/Sign off
"を使用して、現在のユーザーをサインオフします。 ユーザーがTuxedo ART for IMSランタイムからサインオフすると、サインオン画面が表示され、ユーザーはそれを使用して直接再度サインオンできます。ユーザーはその画面をクリアして、システム・コマンド"/Sign
"、"/Sign on
"、"/Sign
on username password"を使用してART IMSランタイムに再度サインオンすることもできます。
ユーザー名とパスワードの最大長はメインフレームと同じ8(文字)です。
詳細は、Oracle Tuxedoユーザーズ・ガイドのATMIアプリケーションにおけるセキュリティの使用に関する項を参照してください。
ARTICTL
は、TCP/IPおよびメッセージ書式サービスを介して3270端末へのアクセスを提供します。ARTICTL
は、ユーザー入力に基づいて画面を書式設定し、3270端末から入力を受信し、3270端末から受信したメッセージをOracle Tuxedoリクエストに変換し、リクエストを処理のためにARTIMPP
に送信し、ARTIMPP
から応答を受信し、応答を書式設定し、元の端末に送り返します。
標準モード(CLOPT
で-p
の指定なし)のARTIMPP
は、サービス・コンテナとして機能するように設計されたOracle Tuxedoサーバーです。これは、初期化中に構成ファイルに基づいて、サービスのセットを公開し、それが公開したサービスへのリクエストを受信する一方で、対応するCOBOL/Cアプリケーション・プログラムを呼び出し、応答をリクエスタ(通常はARTICTL
サーバー)に送り返します。サービスは、UNIX上で、メインフレームのトランザクション・コードに相当するものです。
永続モード(CLOPT
で-p
オプションを指定)のARTIMPP
は、すべてのTPトランザクション(imsresource.desc
で定義されたトランザクション)の/Qを監視します。1つの永続トランザクションの1つの/Qにメッセージが発生したら、そのメッセージを/Qから取得して、対応するCOBOL/Cアプリケーション・プログラムを呼び出してから、リクエスタにレスポンスを返します。
標準モードのARTIMPP
は、起動中に一連の構成ファイルに基づいてサービスのセットを動的に公開します。ARTIMPP
サーバーに含められるすべてのサービス(トランザクション・コード)はimstrans.descで定義されており、その中で定義されている各トランザクション・コードは、公開される同じ名前を持つサービスに対応しています。imsapps.descには、ARTIMPP
によって呼び出されるCOBOL/Cアプリケーション・プログラムがすべて定義されています。各$appname.psb
は、そのアプリケーションによって必要とされる代替PCBを定義します。詳細は、「ARTIMSの構成」を参照してください。構成ファイルが変更されている場合、ARTIMPP
は、再起動中に変更のみを受け入れることができます。さらに、ARTIMPP
は、TPタイプのアプリケーションのみをサポートしています。
ARTIMPP
によって公開される各サービス(トランザクション・コード)には、サービスを処理する定義済COBOLアプリケーション名があります。ARTIMPP
は、サービスに対するリクエストを受信する一方で、そのリクエストされたサービスに対応するCOBOLアプリケーション名を見つけ、MicroFocusライブラリのサポートを得てその関数を呼び出します。各COBOLアプリケーションは、
.gnt
ファイルにコンパイルされ、ディレクトリにCOBOL検索順序で格納されます。MicroFocus COBOL環境では、プログラム検索順序は、環境変数$COBPATH
によって定義されます。
注意: | COBOL-IT COBOL 環境では、プログラム検索順序は、$COB_LIBRARY_PATH によって定義されます。 |
ARTIMPP
サーバーの各インスタンスは、トランザクション・コードのどのクラスがそれによって公開されるのかを指定できます。このメカニズムは、デプロイメントの調整に使用できます。
サービスのために呼び出されたCOBOLアプリケーション・プログラムが、トランザクションを明示的にコミットまたはロール・バックしない場合、ARTIMPP
サーバーがトランザクションを暗黙的にコミットします。
ARTIMPP
では、1つのリクエストが、1つのトランザクション・コードによって、別のトランザクション・コードに転送されること、つまり、プログラムの切替えがサポートされています。プログラムの切替えは、非会話型トランザクション・コードから別の非会話型トランザクション・コードへ、会話型トランザクション・コードから別の会話型トランザクション・コードまたは非会話型トランザクション・コードへの場合に実行できます。1つの会話コードと別の会話コードとの間のプログラム切替えは、遅延および即時切替えがサポートされています。遅延プログラム切替えは、元のトランザクション・コードが、SPAに含まれている別のトランザクション・コードを持つ端末(切替えターゲット)に返されることを意味し、端末がメッセージを再度送信すると、そのメッセージはその切替えターゲットにルーティングされます。即時プログラム切替えは、元のものがメッセージを別のトランザクション・コードに転送し、それが端末に応答することを意味します。非会話型トランザクション・コード間のプログラム切替えは、即時切替えのみがサポートされています。応答モード・トランザクション・コードから非応答モード・トランザクション・コードへのプログラム切替えの場合、ARTIMPP
では、それに制限を設けていませんが、ユーザーは、このようなプログラム切替えの設計には注意する必要があります。それは、応答モード・トランザクションには、応答が必要ですが、非応答モード・トランザクションでは、端末に応答しない場合があるためです。
ALT PCB
による即時のプログラム切替えでは、ターゲット・トランザクションが永続トランザクション(imsresource.descで定義されたトランザクション)の場合、そのターゲット・トランザクションに関するメッセージは/Qに格納されます。永続モードのARTIMPP
がこのトランザクションを処理します。ターゲット・トランザクションが非永続トランザクションの場合、ARTIMPP
がトランザクション・サービスを呼び出し、標準モードのARTIMPP
がこのトランザクションを処理します。
注意: | ACLが権限制御メカニズムとして有効化されている場合は、切替えチェーンのすべてのトランザクション・コードは、チェーン内で最初のトランザクション・コードを実行するエンド・ユーザーからアクセスできる必要があります。それ以外の場合、結果は予測不能であり、起こり得る結果の1つは端末が応答しない可能性があることです。 |
ARTIMPP_ORA
は、ARTIMPP
のすべての機能を備えています。外部リソース・マネージャ(RM)として使用されるOracle Databaseもサポートできます。これは、Oracle Databaseによって提供されるいくつかのライブラリを必要とします。Oracle DatabaseでARTIMPP_ORA
を使用するには、RMセクションをUBBCONFIG
ファイルで適切に構成する必要があります。
ARTIBMP
は、固定サービスARTIBMP_SVC
を公開するOracle Tuxedoサーバーであり、BMPクライアントは、このサービスをリクエストして、COBOLで記述された指定されたBMPプログラムを呼び出すことができます。
ARTIBMP_SVC
は、ARTIBMP
クライアントから渡されたメッセージから指定されたBMPプログラム名および関連付けられたPSB名を取得し、リクエストされたプログラムが有効なバッチ・プログラム(BATCHタイプを持ち、imsapps.descで構成されている)であり、指定されたPSBも有効であることを確認して、プログラムを呼出し、結果または完了通知を同期的にクライアントに返します。
ARTIBMPT
はトランザクション指向BMPサーバーです。IN
が割り当てられた状態でDFSRRC00
が呼び出された場合、トランザクション・コードは他のパラメータとともにARTIBMPT
に渡されます。ARTIBMPT
は、COBOL/Cで記述された指定のBMPを呼び出すことでトランザクションを処理します。BATCHアプリケーションのみがサポートされています。ARTIBMPT
は、トランザクション指向BMP
アプリケーションのみを処理できます。トランザクション指向BMPアプリケーションは、パラメータ・リストの$MBR
で定義され、imsapps.desc
でもTYPE=BATCH
によって定義されているアプリケーションです。
注意: | 現時点で、ARTIBMPT はクライアント端末のメッセージはサポートしていません。トランザクション指向BMPアプリケーション/トランザクションは永続トランザクションにする必要があり、そのためにはimsresources.desc で定義する必要があります。 |
ARTIBMP_ORA
は、ARTIBMP
のすべての機能を備えています。外部リソース・マネージャ(RM)として使用されるOracle Databaseもサポートできます。これは、Oracle Databaseによって提供されるいくつかのライブラリを必要とします。Oracle DatabaseでARTIBMP_ORA
を使用するには、RMセクションをUBBCONFIG
ファイルで適切に構成する必要があります。
MPモードでは、ARTIADM
は、選択内容に基づいてブートでき、マスターからスレーブ・ノードに構成ファイルをダウンロードします。それは、Oracle Tuxedoサーバーであり、各ノードは、最大1つのARTIADM
をデプロイする必要があります。ARTIADM
をブートする場合、ARTICTL
より前にブートする必要があり、ART_IMS_CONFIG
環境変数を各ノードに設定する必要があります。
クロスドメイン・モードでは、ARTICTL
およびARTIMPP
が同じドメインにない場合、ARTITERM
が使用されて、ARTIMPP
からARTICTL
に応答が返されます。つまり、ARTITERM
は、ARTIMPP
からARTICTL
への仲介者として機能します。
ARTIGW
は、非端末クライアントとARTIMPP
サーバー間のブリッジとして機能するOracle Tuxedoサーバーです。主な機能は次のとおりです。
MQアプリケーションのリクエスト・メッセージの場合、MQメッセージを、ARTIMPP
で使用可能な形式に変換します。応答メッセージの場合は、ARTIMPP
の応答メッセージをMQメッセージに変換します。
非端末Oracle Tuxedoクライアント・リクエスト・メッセージの場合、ARTIGW
は、クライアントのFML32バッファをプログラムが必要とするメッセージ形式に転送する役割を果たし、そのメッセージをMPPに送信します。次にMPPメッセージをデコードして、標準のFML32バッファをクライアントに送信します。
注意: | ARTIMS は同機種マシン間のみでデプロイできます。COBOLアプリケーション・プログラムはARTIMPP サーバーとARTIBMP サーバーによって呼び出されるからです。ARTIMS サーバー間で渡されるメッセージはCOBOLプログラムによって入力されますが、ARTIMS サーバーは、メッセージのCOBOLプログラムで定義されたコピーブックを認識しません。 |
ARTIMS
には3種類のデプロイメント環境(SHM、MPおよびDomain)があります。SHMは、すべてのARTIMS
サーバーが、1つの単一マシンにデプロイされることを意味します。MPは、ARTIMS
サーバーが1つのTuxedoドメインに属する複数のマシンにわたってデプロイされることを意味します。Domainは、ARTIMS
サーバーが複数のTuxedoドメインにわたってデプロイされることを意味します。
SHMモードでは、ARTICTL
およびARTIMPP
が必要であり、ユーザーがBATCHプログラムを実行する必要がある場合はARTIBMP
も必要です。MPモードでは、(SHMモードで必要なサーバーのほかに)ARTIADM
も必要です。MPモードでは、1つのマシンにARTICTL
とARTIMPP/ARTIBMP
のどのような組合せも含めることができます。ドメインでは、MPモードで必要なサーバーのほかに、ARTITERM
も、ARTICTL
が配置されるすべてのドメインに必要です。ドメイン・モードのデプロイメントは特別に記述します。
注意: | ドメイン・モードではMPのARTIADM は必要ありません。 |
ARTITERM
は、ドメインのUBBCONFIG
ファイルで構成されているドメインIDとハードコードされた文字列"RPLYSVC
"からなる名前(つまり${DOMAINID}_RPLYSVC
)を持つサービスをエクスポートします。前述のサービス名は、すべてのリモート・ドメインのDMCONFIG
ファイルの*DM_REMOTE_SERVICES
セクションで構成されている必要があります。
さらに、ARTITERM
が配置されている各ドメインによって適切なサービス名がエクスポートされるようにするため、およびそのようなサービス間で競合がないようにするために、ドメインIDフィールドがすべてのドメインに対してUBBCONFIG
で一意になるように構成および保持される必要があります。
たとえば、デプロイするドメインが3つあり、それらのUBBCONFIG
ファイルで構成されているドメインIDがそれぞれDOM1
、DOM2
、およびDOM3
であるとします。ARTITERM
サーバーはDOM1
とDOM2
に存在します。上述のデプロイメント・ルールに従うと、DOM3
に対するDMCONFIG
ファイルではDOM1_RPLYSVC
およびDOM2_RPLYSVC
を宣言し、DOM2
に対するDMCONFIG
ファイルではDOM1_RPLYSVC
を宣言し、DOM1
に対するDMCONFIG
ファイルではDOM2_RPLYSVC
を宣言する必要があります。
DL/I呼出しCHKPは、IMSの最後のチェック・ポイント以降に構築されたメッセージを送信し、行われた変更をコミットするために使用されます。DL/I呼出しROLBは、最後のチェック・ポイント以降に行われたすべての変更および構築されたが送信されなかったすべてのメッセージを中止します。ARTIMS
では、ARTIMPP
またはARTIBMP
は、2つのチェック・ポイント間の間隔をトランザクションとして処理する必要があります。さらに、リソース・マネージャが将来追加される可能性があります。
注意: | NO_XA オプションは、ARTIMPPまたはARTIBMPが常駐している各ドメインで構成できません。 |
Tuxedo ART for IMSを有効化するには、サーバーを起動する前に次の環境変数を設定する必要があります。
IMSDIR
をTuxedo ART for IMS製品のインストール・ルートを指すように設定し、ART_IMS_CONFIG
を構成ファイルの場所を指定するように設定し、ART_IMS_FMT
を制御ブロック・ファイルの場所を指定するように設定し、ART_IMS_DB
をGSAMファイルの場所を指定するように設定し、COBPATH
をCOBOL .gnt
ファイルの場所を指定するように設定する必要があります。
マルチバイト・キャラクタセット(MBCS)のサポートを有効化するには、サーバーを起動する前にARTICTL
の次の環境変数を設定する必要があります。
INTERCODE
を、オープン・プラットフォームで使用するエンコーディング・タイプに設定し、EXTERCODE
をz/OSプラットフォームで使用するEBCDIC
エンコーディング・タイプに設定します。
詳細は、 Oracle Tuxedo Application Runtime for IMSリファレンス・ガイドを参照してください。
この項のすべての構成ファイルで、キーおよび非リテラル値について大文字小文字が区別されません。例: bool (yes|no)
およびenum
リテラル値とそれらの大文字小文字は保持されます。コメント行には、前に"*"を付ける必要があります。
構成ファイルの一般的な形式をリスト1に示します。
[section name]
Field1=value1
Field2=value2
….
[section name]
….
[section name]
…
詳細は、 Oracle Tuxedo Application Runtime for IMSリファレンス・ガイドを参照してください。
Tuxedo ART for IMSは、アプリケーション・パスワード(APP_PW
)、ユーザー・レベル認証(USER_AUTH
)、およびACL/必須ACLの3種類のTuxedoセキュリティ・メカニズムをサポートしています。
Oracle Tuxedoでは、セキュリティ・メカニズムのどのタイプでも、すべてのユーザーがOracle Tuxedo ATMIアプリケーションの参加のプロセスの一部としてアプリケーション・パスワードを入力することが要求されますが、Tuxedo ART for IMSでは、IMSがz/OS上に配置されている場合と同じ動作を保持するためにそれは削除されました。ユーザーはアプリケーション・パスワードをNULLとして保持する必要があります。詳細は、Oracle Tuxedoユーザーズ・ガイドのATMIアプリケーションにおけるセキュリティの使用に関する項を参照してください。
USER_AUTH
およびACL/必須ACLセキュリティ・メカニズムでは、ユーザーはTuxedo ART for IMSランタイムに参加するために有効なユーザー名とパスワードを入力することが要求されます。ユーザーごとのパスワードは、tpusr
という名前のファイルに格納されたユーザー名に関連付けられているパスワードと一致する必要があります。クライアント名は、使用されません。tpusr
のパスワードおよびユーザー名に対するユーザーごとのパスワードの照合は、Oracle Tuxedo認証サーバーAUTHSVR
によって提供される、Oracle Tuxedo認証サービスAUTHSVC
によって行われます。
詳細は、Oracle Tuxedoユーザーズ・ガイドのATMIアプリケーションにおけるセキュリティの使用に関する項を参照してください。
Tuxedo ART for IMSは3種類のSIGNコマンドをサポートしています。
Tuxedo ART for IMSは、次のユーティリティを使用します。
詳細は、 Oracle Tuxedo Application Runtime for IMSリファレンス・ガイドを参照してください。
このユーティリティは、ART MFSの開発に使用します。ユーザーが記述した制御文をMFSバイナリ制御ブロックに変換します。
図 3は、MFSGEN
ワークフローを示しています。詳細は、 Oracle Tuxedo Application Runtime for IMSリファレンス・ガイドを参照してください。
chgcobol.sh
は、MicrofocusとCOBOL-ITの両方が存在している場合、それらの間でCOBOLランタイムを切り替えるために使用されます。また、引数を付けずに現在使用されているCOBOLランタイムも表示できます。 Oracle Tuxedo Application Runtime for IMSリファレンス・ガイド
DFSRRC00
はDFSRRC00
からの入力を常に待機しているARTIBMP
サーバーをアクティブ化するために使用されます。DFSRRC00
パラメータは、ワークベンチによってJCLから変換されたスクリプトから渡された文字列です。
prepro-ims.pl
は、z/OS上のCプログラムを、Tuxedo ART for IMSによって呼び出せる適切なCプログラム形式に変換するために使用されます。詳細は、Oracle Tuxedo Application Runtime for IMSリファレンス・ガイドを参照してください。
odbastop
は、オープン・システム上のツールであり、z/OS上のODBAプロキシを停止するために使用されます。
stoproxy
は、z/OS上にあり、z/OS上のODBAプロキシを停止するために使用されます。
z/OS上のIMSの制御の下に実行されているCOBOLアプリケーションを移行するには、次の手順を実行する必要があります。
z/OS上のIMSからのCOBOLソース・プログラムは、最初にART Workbenchによって変換する必要があります。変換後、変換されたソース・プログラムはMicroFocusまたはCOBOL-ITコンパイラで.gnt
ファイルにコンパイルできます。COBOLソース・プログラムの変換の詳細は、ART Workbenchのドキュメントを参照してください。COBOLソース・プログラムのコンパイルの詳細は、MicroFocusまたはCOBOL-ITのドキュメントを参照してください。
たとえば、2つのCOBOLソース・プログラムが変換され、コンパイルされます。
DFSIVAP1.cbl
( DFSIVAP1.gnt
にコンパイル)は、MPPプログラムです。
DFSIVAP2.cbl
( DFSIVAP2.gnt
にコンパイル)は、BMPプログラムです。
.gnt
ファイルは、$COBPATH
(MicroFocus)または$COB_LIBRARY_PATH
(COBOL-IT)の下に配置する必要があります。
Tuxedo ART for IMSでz/OS上のIMSから移行されたCOBOLアプリケーションを実行するには、いくつかの重要な構成ファイルを、そのCOBOLアプリケーションに関連するIMSマクロに基づいてカスタマイズする必要があります。
MPPプログラムを実行するには、リスト1に示すプログラムに対応するトランザクション・コードが必要です。
[imstran]
name=TRAN1
response=no
edit=ULC
appname=DFSIVAP1
class=2P
トランザクション・コードTRAN1
は、アプリケーションDFSIVAP1
に対応しています。
各COBOLアプリケーションは、それがMPPとBMP (BMPT)のどちらのプログラム(TPまたはBATCH)であるかを識別するそれ自体の定義を持っている必要があります。リスト2は、2つのアプリケーションを定義するimsapps.desc
の例を示しています。
[imsapp]
name=DFSIVAP1
type=TP
[imsapp]
name=DFSIVAP2
type=BATCH
IMSでアプリケーションを実行するには、1つのPSBが必要です。Tuxedo ART for IMSでは、アプリケーションのPSBマクロは.psb
構成ファイルにマップされます。MPPプログラムの場合、その.psb
ファイルの接頭辞はアプリケーション名、つまり、$appname.psb
である必要があります。BMPおよびBMPTプログラムの場合、その.psb
ファイルの接頭辞はIMSアプリケーションのネーミング・ルールに従った任意の名前にすることができます。DFSIVAP1
およびDFSIVAP2
の.psb
ファイルを、次に示します。1つのI/O PCBおよび.psb
に定義されているPCBは、COBOLプログラムが起動されたときにそのパラメータとしてそのプログラムに渡されます。
DFSIVAP1.psb
[imspcb]
modify=yes
express=no
[imspcb]
modify=yes
express=no
DFSIVAP1.psb
から、アプリケーションDFSIVAP1
には、1つのI/O PCBと2つの代替PCBがその引数として必要であることがわかります。
DFSIVAPX.psb
[imspcb]
type=GSAM
name=DFSIVD5I
procopt=G
[imspcb]
type=GSAM
name=DFSIVD5O
procopt=LS
[imspcb]
type=GSAM
name=TSTIVD5O
procopt=LS
DFSIVAPX.psb
から、アプリケーションDFSIVAP2
には、1つのI/O PCBと3つのGSAM PCBが必要であることがわかります。
詳細は、 Oracle Tuxedo Application Runtime for IMSリファレンス・ガイドを参照してください。
Tuxedo ART for IMSでIMS COBOLアプリケーションを実行するには、次のサーバーをTuxedoアプリケーションで起動する必要があります。
ARTIMPP
: MPPアプリケーションの実行を担当するサーバー
ARTIBMP
: BMPアプリケーションの実行を担当するサーバー
詳細は、Oracle Tuxedoドキュメントのファイル形式、データ記述方法、MIBおよびシステム・プロセスのリファレンスのUBBCONFIG(5)に関する項
およびOracle Tuxedo Application Runtime for IMSリファレンス・ガイドのTuxedo ART for IMSサーバー・パラメータに関する項を参照してください。
MPPプログラムDFSIVAP1
を実行するには、3270端末を開き、UBBCONFIG
ファイルで定義されているホスト名およびポートを使用してARTICTL
サーバーに接続し、画面を書式設定して、トランザクション・コードTRAN1
を入力します。DFSIVAP1.gnt
がARTIMPPサーバーによって起動されます。
BMPプログラムDFSIVAP2
を実行するには、ユーザーは、ART Workbenchによってz/OS上の対応するJCLをシェル・スクリプトに変換し、それをJOBとしてART Batchランタイムによって実行できるようにする必要があります。そのJOBによって、ユーティリティDFSRRC00
が起動され、ARTIBMP
サーバーによって公開されている特定のサーバーが起動され、それによってリクエストされたCOBOLアプリケーションが起動されます。詳細は、ART Workbenchのドキュメントを参照してください。
z/OS上のIMSの制御の下に実行されているCアプリケーションを移行するには、次の手順を実行する必要があります。
prepro-ims.pl
を使用してCソース・コードを変換します。たとえば、2つのCソース・プログラムおよびims.hがダウンロードされます。
ims.h
は、IBM IMSでサポートされているヘッダー・ファイルです。
prepro-ims.pl -i source-file -o dest-file [-m yourmakefile]
メインフレームのims.hも、prepro-ims.pl
で処理できます。"??=
"または"#pragma
"で始まる行はコメントアウトされます。
MPPプログラムを実行するには、リスト5に示すプログラムに対応するトランザクション・コードが必要です。
[imstran]
name=TRAN3
response=no
edit=ULC
appname=TESTMPP1
class=2P
ファイルimsapps.descでLANGを構成します。LANGは、次のように、実行するプログラムがCOBOLまたはCタイプであることを示します。
[imsapp]
name=TESTMPP1
type=TP
LANG=C
[imsapp]
name=TESTBMP1
type=BATCH
LANG=C
IMSでアプリケーションを実行するには、1つのPSBが必要です。Tuxedo ART for IMSでは、アプリケーションのPSBマクロは.psb
構成ファイルにマップされます。MPPプログラムの場合、その.psb
ファイルの接頭辞はアプリケーション名、つまり、$appname.psb
である必要があります。BMPプログラムの場合、その.psb
ファイルの接頭辞はIMSアプリケーションのネーミング・ルールに従った任意の名前にすることができます。TESTMPP1
およびTESTBMP1
の.psb
ファイルは、次のとおりです。1つのI/O PCBおよび.psb
に定義されているPCBは、Cプログラムが起動されたときにそのパラメータとしてそのプログラムに渡されます。
TESTMPP1.psb
[imspcb]
modify=yes
express=no
[imspcb]
modify=yes
express=no
TESTBMP1.psb
[imspcb]
type=GSAM
name=DFSIVD6I
procopt=G
[imspcb]
type=GSAM
name=DFSIVD6O
procopt=LS
[imspcb]
type=GSAM
name=TSTIVD6O
procopt=LS
ZOSINC=-I/path/containing/ims/header/from/mainframe
を設定することでmakefileを変更します。
1つのプログラムに複数のソース・ファイルが必要であるため、makefileを変更します。
testmpp.c
は、libartimstestmpp.so
にコンパイルされます。
testbmp.c
は、libartimstestbmp.so
にコンパイルされます。
構成ファイルのAPPNAME
は、プリプロセッサによって変換されたアプリケーション名と同じであることが必要です。
つまり、<filename> corresponds libartims<filename>.so
となります。
環境変数LD_LIBRARY_PATH
は、その元のリストの最初にこれらのライブラリ・ファイルが含まれているディレクトリを追加することで再定義する必要があります。
ただし、LD_LIBRARY_PATH
はLinuxおよびSolarisのみに対応します。AIXでは、かわりにLIBPATH
が使用されます。
例: libartimstestmpp.so
およびlibartimstestbmp.so
は、LD_LIBRARY_PATH
(Linux/Solaris)またはLIBPATH(AIX)
の下に配置されている必要があります。
MPP
プログラムtestmpp
を実行するには、3270端末を開き、UBBCONFIG
ファイルで定義されているホスト名およびポートを使用してARTICTL
サーバーに接続し、画面を書式設定して、トランザクション・コードTRAN3
を入力します。testmpp
がARTIMPP
サーバーによって起動されます。
BMPプログラムtestbmp
を実行するには、ユーザーは、ART Workbenchによってz/OS上の対応するJCLをシェル・スクリプトに変換し、それをJOBとしてART Batchランタイムによって実行できるようにする必要があります。そのJOBによって、ユーティリティDFSRRC00
が起動され、ARTIBMP
サーバーによって公開されている特定のサーバーが起動され、それによってリクエストされたCアプリケーションが起動されます。詳細は、ART Workbenchのドキュメントを参照してください。
Tuxedo ART for IMSは、IMS/TMの機能の大部分をシミュレートできますが、IMS/DBの実装を備えていません。それは、IMS/DBが、特別に設計された階層型データベースであるためです。Tuxedo ART for IMSの制御の下で実行されているCOBOL/CプログラムがIMS/DBにアクセスできるようにするために、オラクル社ではTuxedo ART for IMSでのオープン・データベース・アクセス(ODBA)のサポートを提供しています。
ODBAを使用すると、Tuxedo ART for IMSで実行されているプログラムが、z/OS上に配置されているIMS/DBに透過的に接続できます。COBOL/Cプログラムが、IMS/DBにアクセスするためのDL/I呼出しを発行するたびに、基盤となっているライブラリによってそのDL/I呼出しがリクエスト・メッセージに変換され、それがIMS/DBと同じz/OSイメージ上に配置されているプロキシに送信されます。そのプロキシは、受信リクエストに従ってデータベース処理を実行し、Tuxedo ART for IMSで実行されているプログラムにその結果を送り返します。
組込みのデータベース・ソリューションの原理は、それをTuxedo ART for IMSにプラグインし、ただちに有効に動作できるプラグインとして設計および開発することです。基本的に、プラグインは共有ライブラリとして設計され、実行時にTuxedo ART for IMSサーバーによって呼び出されるAPIの必須セットをエクスポートします。プラグインの実装はすべて、その定義に従う必要があります。詳細は、Oracle Tuxedo Application Runtime for IMSリファレンス・ガイドを参照してください。
リファレンス・ガイドのプラグイン定義として、ODBAを介したIMS/DBのサポートも定義に基づいた共有ライブラリとして実装され、単にTuxedo ART for IMSインストールにバンドルされているデフォルト・バージョンに置き換えて使用できます。
IMS/DBのOracleプラグインのサポート・リストは次のとおりです。
IMS/DB用のOracleプラグインでは、GSAMデータベース、データ・エントリ・データベース、および他の完全な機能を備えたデータベースがサポートされています。つまり、MSDB (Main Storage DB) を除くすべての種類のIMS/DBデータベースです。
この実装内では、GSAM DBは、UNIXファイル・システム上の実装であり、他のものはIMSシステムによって提供されているODBAプロトコルを介してサポートされています。
z/OS上のIMS/DBへのOracle IMS/DB接続のために、オープン・システムとz/OS上のTuxedo ART for IMS制御の下で実行されているプログラム間に通信が必要です。ODBAプロトコルによって必要とされているため、IMS/DBと同じz/OSイメージ上で実行されている別のアドレス空間が、Tuxedo ART for IMS内のプログラムと通信するように開発され、これらのプログラムのかわりにデータベース処理を実行します。
Oracle IMS/DBでは(COBOL/Cプログラムで発行される)次のDL/I呼出しがサポートされています。
ARTIMPP
/ARTIMBP
に対してIMS/DB用のOracleプラグインで必要とされるパラメータを構成する必要があります。次に例を示します。
CLOPT="-A -- -l 1 -x -o zoshost:port:BEA1"
詳細は、Oracle Tuxedo Application Runtime for IMSリファレンス・ガイドを参照してください。
各データベースは、様々なセグメントで構成されており、各セグメントは様々なフィールドで構成されています。したがって、データベースの構成は、セグメント定義とフィールド定義の2種類のファイルで構成されます。
imsdbs.desc
は、 $ART_IMS_CONFIG
の下にあります。imsdbs.desc
構成のいくつかのフィールドは、z/OS上のIMSのいくつかのDBD文からマッピングされています。
segments.descは、データベース内のセグメントを定義し、$segname.desc
はセグメント内のフィールドを定義します。それらは$ART_IMS_CONFIG/db/$dbname
の下に配置されています。
$segname.desc
は、アクセス・タイプがimsdbs.desc
で定義されたGSAMでもMSDBでもないデータベースに対してのみ存在します。
$appname.psb
で関連するフィールドを構成することも必要です。詳細は、ARTIMSリファレンス・ガイドを参照してください。
IMS/DBサポートは、ODBAを介して提供されます。このサポートは次の2つの部分で構成されています。
注意: | ODBAプロキシ・ディレクトリは、Tuxedo ART for IMSのインストールが完了した後に$IMSDIR ディレクトリの下に生成されます。 |
$IMSDIR
ディレクトリにインストールされていると想定)。 z/OSのコンポーネントは$IMSDIR/odbaproxy/mvs
ディレクトリの下にあります。次のものが含まれます。
Linux 64ビット(OEL/RHEL)、AIX 64ビット、およびSolaris (Sparc) 64ビットがサポートされています。$IMSDIR/bin
の下にあるodbastop
は、MVS上で実行されているODBAプロキシを停止するために使用されるユーティリティです。$IMSDIR/lib
の下にあるlibdlidb.so
は、IMS/DBへのTuxedo ART for IMSランタイム接続のためのOracleプラグインです。
z/OS上にTuxedo ART for IMS ODBAプロキシをインストールするには、次の手順を実行します。
ローカル・ファイルORACLE.ODBA.BACK.XMI
を、z/OS上のデータセットUSER.ODBA.XMI
にアップロードします(ftpバイナリ・モード)。
USER.ODBA.JCL(RESTORE)
を変更して、それをユーザーの環境に合ったものにします。VOL=SER
を、実行可能ファイルで構成されたターゲットPDSが作成されるボリュームに変更する必要があります。RENAMEU
は、ソース名とターゲット名を指定します。ソース名は保持する必要があり、ユーザーはターゲット名を、たとえばUSER.ODBASERV.LOAD
などに変更できます。DSN
を、手順4で設定したDSNAME
値に設定します(それがUSER.ODBA.BAK
に設定されていると想定します)。 RESTORE
ジョブを送信し、それが正常に完了したことを確認します。これで実行可能ファイルがUSER.ODBASERV.LOAD
という名前のPDSに抽出されました。 z/OS ODBAのベスト・プラクティスに関するドキュメントによると、アプリケーション・プログラムの実行中に頻繁にスレッドを作成および分解すると、タイミングに関連するエラーが発生する可能性があります。DRA起動パラメータで、MINTHREADS
をMAXTHREADS
と同じ値に設定することをお薦めします。
Tuxedo ART for IMSサーバーとともにODBAプロキシを使用するには、次の4つの手順を実行する必要があります。
詳細は、Oracle Tuxedo Application Runtime for IMSリファレンス・ガイドを参照してください。
UBBCONFIG
およびTuxedo ART for IMSリソースを定義した後、UBBCONFIG
をコンパイルし、tmboot
コマンドまたはOracle Enterprise Manager TSAMPlusプラグインで提供されるコントロールを使用してそのOracle Tuxedoドメインを起動することで、Tuxedo ART for IMSを実行します。
Tuxedo ART for IMSは、z/OS上のODBAプロキシを停止する前に停止する必要があります。tmshutdown
コマンド、またはOracle Enterprise Manager TSAMPlusプラグインで提供されているコントロールを使用します。
IMS/DBを使用するには、次の4つの手順を実行する必要があります。
Oracleプラグインを適用する前に、最初にODBAプロキシを起動し、Tuxedo ART for IMSサーバーからの接続リクエストをリスニングする必要があります。ODBAプロキシは、JCLによってバッチ・モードで起動する必要があります。ODBAプロキシの起動方法は、ODBAプロキシ・インストレーション・ガイドを参照してください。
関連する構成ファイル$appname.psb
、imsdbs.desc
(必要に応じてsegments.desc/$segname.desc
)などを変更します。
ARTIMPP/ARTIBMP構成のODBAパラメータのプット。UBBCONFIGをリロードし、ARTIMPP/ARTIBMPを起動します。
Tuxedo ART for IMSサーバーが適切に起動した後、ユーザーはトランザクション処理プログラムまたはバッチ・プログラムを実行できます。