1 Oracle Tuxedo Mainframe Adapter for TCP Gatewayの基本知識

Oracle Tuxedo Mainframe Adapter for TCP Gateway(以後TMA TCP Gatewayと呼ぶ)製品は、ドメイン・ベースのゲートウェイ接続という特性を持ち、Oracle Tuxedoシステムのアプリケーション・プログラムが、TMA TCP Gatewayゲートウェイをサポートする別のOLTPシステムのアプリケーション・プログラムと連携して、トランザクション型ではない処理を実行できるようにする製品です。これらには次のものが含まれます。

  • IBM MVSシステムのCICS
  • IBM MVSシステムのIMS/TM

TMA TCP Gatewayは、Oracle Tuxedoリージョンの外側にあるサービスに透過的にアクセスするように設計されています。また、TMA TCP Gatewayを使用すると、リモートのアプリケーション・プログラムからもローカル・サービスにアクセスできるようになります。

この章では、次の項目について説明します。

1.1 基礎的な知識

このドキュメントが対象としている読者は、TMA TCP Gatewayの構成と管理を担当するシステム管理者です。それ以外にもプログラマ向けに、TMA TCP Gatewayを介してデータを送信するクライアント・プログラムやサービス・ルーチンの開発に役に立つ情報も記載しています。

このドキュメントでは、TMA TCP Gatewayコンポーネントと、TMA TCP Gatewayアプリケーションをビルドするツールの使用手順について説明しています。

このガイドでは、TMA TCP Gatewayの構成と管理を行う手順、およびOracle Tuxedo環境にTMA TCP Gatewayを組み込む手順について説明しています。この他に次の内容についても説明しています。

  • TMA TCP Gatewayによるサービス・リクエスト(ローカルからのサービス・リクエスト、リモート・システムからのサービス・リクエスト)の処理の仕組みに関する説明
  • TMA TCP GatewayとOracle Tuxedoアプリケーション・プログラムの関係に関する説明
  • TMA TCP Gatewayの構成および管理する上で知っておくと役に立つ概念や手順に関する説明

1.2 Oracle TMA TCP GatewayとOracle Tuxedoのアーキテクチャ

Oracle Tuxedoリージョンは、ネットワーク状に接続されたOracle Tuxedoシステム同士または連携可能なとシステム同士の間で相互にやり取りするクライアント・プログラムとサーバー・プログラムから構成されます。リージョン内の任意のコンピュータで実行している任意のサーバー・プログラムが提供するサービスを、どのクライアント・プログラムからもリクエストできます。サービスからサーバーへのマップに登録情報を使用しているため、サーバー・プログラムの配置の透過性が維持されます。

次の図は、TMA TCP Gatewayが、TCP/IPネットワーク・ソフトウェアを介してリモート・リージョンやシステムとの間でリクエストを送受信することにより、この透過的アクセスを拡張していることを示しています。

図1-1 Oracle TMA TCP Gatewayを介したサービス呼出しのルーティング


Oracle TMA TCP Gatewayを介したサービス呼出しのルーティング

前述の図に示すように、1つのリージョン内ではTMA TCP GatewayはOracle TuxedoソフトウェアとTCP/IPの間に位置します。

  • ローカルのクライアント・プログラムがリクエストをリモート・システムに送信すると、TMA TCP Gatewayがそのリクエストをリモート・システムに転送可能なフォーマットのメッセージに変換します。リモート・システムからレスポンスが戻されるときにも、TMA TCP Gatewayがこれらのレスポンスを、ローカル・クライアントのプログラムによる処理が可能な応答に変換します。
  • リモートのクライアント・プログラムがリクエスト・メッセージを送信すると、TMA TCP Gatewayがそのメッセージをローカルのサービス・ルーチンによる処理が可能なリクエストに変換します。また、ローカルのサービス・ルーチンが応答を送信すると、TMA TCP Gatewayがその応答をリモート・サービスによる処理が可能なメッセージに変換します。

TMA TCP Gateway製品はTuxedoドメインのゲートウェイとして実装されます。Oracle Tuxedoの標準的なサービス・リクエストを受け付け、標準的な応答を戻します。

単独のTMA TCP Gatewayゲートウェイが複数の通信相手と接続する場合も、その通信相手をゲートウェイと呼びます。それぞれの通信相手(ゲートウェイ)はネットワーク上の一意のエンドポイントです。

TMA TCP Gatewayの構成の中にリモート・システムの指定がありますが、それでもOracle Tuxedoソフトウェアからリモート・システムを認識することはできません。たとえば、TMA TCP Gatewayを介してアクセス可能なリモート・システムの指定は、UBBCONFIGファイルのMACHINESセクションの中にはありません。

TMA TCP Gatewayゲートウェイは自身の制御情報を共有メモリーに維持しますが、これはOracle Tuxedoソフトウェアが自分自身を掲示板に維持することとほぼ同じです。TMA TCP GatewayからはOracle Tuxedo掲示板にアクセスできますが、Oracle TuxedoからはTMA TCP Gatewayの制御情報にアクセスできません。

1.3 運用上の注意事項

運用上の注意事項は、機能を使用する際に常に意識する必要がある制限事項です。TMA TCP Gatewayの運用上の注意事項としては、次のものがあります。

ノート:

これから説明するローカルのアプリケーション・プログラムとは、Oracle Tuxedoの管理下にあるユーザー側のリージョンの内側にあるアプリケーション・プログラムです。リモートのアプリケーション・プログラムとは、Oracle Tuxedoの管理下にあるユーザー側のリージョンの外側にあるアプリケーション・プログラムです。
  • TMA TCP Gatewayソフトウェアは会話型のやり取りをサポートしていません。
  • TMA TCP Gatewayソフトウェアはトランザクション型でないやり取りのみをサポートしています。
  • tpsprio()関数を使用するローカルのクライアント・プログラムとサーバー・プログラムは、TMA TCP Gatewayがサービス・リクエストをデキューするときの優先順位を設定します。このプロセスはリモート・システムの優先順位にはまったく影響を与えません。
  • ローカルのクライアント・プログラムは、tpbroadcast()関数を使用して、リモートのクライアント・プログラムとの間で任意通知型のメッセージを送受信することができません。
  • ローカル・サービスは、tpbroadcast()関数やtpnotify()関数を使用して、リモートのクライアント・プログラムとの間でメッセージを送受信することができません。
  • ローカルのクライアント・プログラムとサーバー・プログラムがtpgprio()関数を使用してリモート・サービスの優先順位を確認する場合は、ローカルのTMA TCP Gatewayリクエスタの優先順位が戻されます。

これらの運用上の注意事項に関する背景的な説明は、「Oracle TMA TCP Gatewayの処理の仕組みの理解」を参照してください

1.4 Oracle TMA TCPの機能

次の機能は今回のバージョンのTMA TCPに備わっています。

1.4.1 ドメインベースのゲートウェイ接続

TMA TCP製品にはドメイン・ベースのアーキテクチャが採用されており、双方向通信、リクエスト/レスポンスのサポート、およびMVS Open Transaction Manager Access (OTMA)インタフェースのサポートが実現されています。

1.4.2 セキュリティ

TMA TCP Gateway製品は、リモート・ゲートウェイから渡されるユーザー名に基づいて、Oracle Tuxedoのサービスに対するアクセス権限を付与します。

TMA TCP for CICS製品からトランザクションを開始したり、プログラムにリンクできます。Oracle Tuxedoのセキュリティ機構からTMA TCP製品にユーザーIDの値が渡されて、トランザクションの開始前にセキュリティが適切かどうかテストされます。

TMA TCP for IMS製品には、セキュリティが強化されたOTMAインタフェースが備わっています。このインタフェースの特徴は、Oracle Tuxedoのリクエスタが、OTMAサーバーのインタフェースを介してユーザーIDを送信し、RACFなどのサード・パーティのセキュリティ・パッケージで認証できることです。

TMA TCP Gatewayは、TMA TCP for CICSまたはTMA TCP for IMSとの通信時にTLS暗号化をサポートします。

1.4.3 接続の多重化

TMA TCP Gatewayでは、接続を1つ確立すると、その接続を介して複数のリクエストを同時に処理できます。このような特徴を接続の多重化といいます。2つの接続ゲートウェイは、接続時にどちらの側でも受付け可能な同時接続数を決定します。接続が確立されると、クライアントは複数のリクエスト(同時接続数の最大数まで送信可)をサーバー・ゲートウェイに送信できるようになります。接続を多重化すると、ソケットなどのシステム・リソースをTMA TCP Gatewayが有効活用できます。

ノート:

それぞれの接続は片方向であるため、相手側のプラットフォーム上のクライアントは、リモート・サーバーとの通信に同じ接続を使用できません。

1.4.4 ドメイン・ネーム・サーバーのサポート

TMA TCP製品では、ドメイン・ネーム・サーバー(DNS)によるIPアドレスの解決がサポートされています。つまり、ドメイン・ネーム・サーバー側でIPアドレスを変更するため、TMA TCP Gatewayを再構成せずにアドレスを変更できます。

1.5 GWIDOMAINゲートウェイ・コンポーネント

TMA TCP製品は、GWIDOMAINゲートウェイという1つのコンポーネントで構成されています。このゲートウェイの役割は、着信リクエストと発信リクエストの両方を仲介することです。すべてのリモート・ゲートウェイとの接続も維持します。

1.6 TMA TCP GatewayとOracle Tuxedoアプリケーション・プログラムの関係

Oracle Tuxedoソフトウェアが備えている高度な配置の透過性は、TMA TCP Gateway製品にも引き継がれています。具体的に言うと、実質的にはどのようなケースでも、プログラマはリモート・システムが提供するサービスについて詳しく知る必要がありません。

TMA TCP Gateway製品は、Oracle Tuxedoの主要な通信方式である、リクエスト/応答通信を(同期型と非同期型のいずれも)サポートしています。

データを交換する際に、Oracle Tuxedoのすべてのバッファ・タイプを使用できます。これには次のものがあります:

  • X/Openの標準XATMIバッファ・タイプ
    • X_OCTET
    • X_C_TYPE
    • X_COMMON
  • Oracle Tuxedo ATMIバッファ
    • CARRAY
    • STRING
    • FML
    • VIEW

X/Openの3つのバッファ・タイプはそれぞれ、Oracle Tuxedo ATMIバッファ・タイプに相当します。実際に相当するもとの次のとおりです。

  • X_OCTETCARRAYに相当します
  • X_C_TYPEVIEWに相当します
  • X_COMMONVIEWに相当しますが、C言語とCOBOL言語の両方に共通なフィールド・タイプのサブセットのみ表します

1.6.1 VIEW定義

状況によっては、型付きバッファをターゲット・システムで受入れ可能なフォーマットに変換する必要があります。この目的のために、Oracle Tuxedoシステムの標準的なVIEW定義の仕組みが採用されています。

VIEW定義を使用すると、異なるプログラミング環境(CとCOBOLなど)の間の入出力データをマップできるようになります。また、システム間のデータ表現が自動的に変換されるようになります。

VIEW定義は、プログラマまたはシステム管理者が作成できます。詳細は、「Oracle TMA TCP Gatewayのデータ・マッピングに関する構成」を参照してください。プログラミングに関する注意事項の詳細は、「Oracle TMA TCP Gatewayの処理の仕組みの理解」を参照してください。

1.6.2 FMLバッファのサポート

FMLバッファをサポートしていないシステムまたはリージョンと直接通信するときに、FMLアプリケーションに対する透過性を確保した形で、TMA TCP GatewayがFMLバッファとユーザー定義レコードのレイアウトとの相互変換を実行できます。したがって、リモート・アプリケーションのレコード・レイアウトを記述したVIEW定義を作成しておけば、その定義をレコードとFMLバッファとの相互変換に使用できます。サービスの記述の一部であるVIEWの指定は、GWICONFIGファイル(TMA TCP Gateway構成ファイル)とDMCONFIGファイルの中で行います。

このようにATMIバッファとレコード構造との間で相互変換することで、TMA TCP GatewayはFMLデータを格納したフィールド化バッファをリージョン間で送信します。TMA TCP Gatewayソフトウェアは、VIEW定義とフィールドの記述を使用して、送信元のリージョンでFMLバッファからユーザー定義レコードにデータを変換します。

代替のデータ・マッピング用のツールを使用して、メインフレーム・アプリケーションで扱うことが可能なフォーマットにFMLバッファをマップできます。代替のデータ・マッピング・ツールを使用できるようにTMA TCP Gatewayを構成する方法の詳細は、「Oracle TMA TCP Gatewayのデータ・マッピングに関する構成」および「Oracle TMA TCP Gatewayの構成」を参照してください

1.7 TMA TCP GatewayとOracle Tuxedoの管理の関係

TMA TCP Gatewayの管理ツールと管理機能はOracle Tuxedoの管理ツールに完全に一体化しています。具体的な例を次に示します。

  • システム管理者は、Oracle Tuxedoの構成に通常のTuxedoドメイン・ゲートウェイとしてTMA TCP Gatewayを定義します。
  • TMA TCP Gatewayのドメイン構成ファイル(DMCONFIG)に、ローカルのOracle Tuxedoサービス名をリモート・サービス名にマップする方法を指定します。また、GWICONFIGファイルに、TMA TCP Gatewayが入出力データのトランスレートおよび変換に使用するVIEW定義を指定します。
  • 実行時に、システム管理者はOracle Tuxedoのサブコマンドを使用してTMA TCP Gatewayとその関連プロセスを管理します。

TMA TCP Gatewayの構成の詳細は、「Oracle TMA TCP Gatewayの構成」を参照してください。TMA TCP Gatewayの管理コマンドの詳細は、Oracle Tuxedo管理者ガイドOracle Tuxedoドメイン・ユーザー・ガイドを参照してください。