|
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クライアントDFSRRC00ARTICTL サーバー 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サーバーが適切に起動した後、ユーザーはトランザクション処理プログラムまたはバッチ・プログラムを実行できます。
|