外部インタフェースを使用すると、非CICSアプリケーションでCICSプログラムを呼び出すことで、CICSリソースへのアクセスおよび更新ができます。CICSとの通信時に、外部インタフェースを使用すると、非CICSプログラムにより、どのCICSシステムでもリソースへのアクセスおよび更新ができます。この外部インタフェースの使用方法により、CICSアプリケーション用のグラフィカル・ユーザー・インタフェース(GUI)・フロント・エンドの開発などの活動がサポートされ、CICSシステムと非CICSシステムとの統合が可能になります。
Oracle Tuxedo Application Runtime for CICS and Batchは、メインフレーム・アプリケーションのIBM z/OSからOracle Tuxedoを実行するオープン・システム・アプリケーション・グリッドへの移行のためのターゲット環境を提供します。
カスタマがOracle Tuxedo Application Runtime for CICSの使用を選択した場合、ECIエミュレータによりカスタマは、コード変更なしで既存のプログラムを使用し続けることができます。
CICS Transaction GatewayおよびCICS Universal Clientでは、C、C++、COBOL、COM、.NETおよびJAVA用のECIプログラミング・インタフェースを提供します。プログラミング・インタフェースの実装を動的ロード・ライブラリ(DLL)で実行することに関して、ECIエミュレータの基本的な考えは、ライブラリを置換することです。これによりユーザーは、まるで何も変わらなかったかのように、自分のアプリケーションを使用し続けることができます。DLLでは、ECIリクエストはTuxedoにルーティングされ、Tuxedoで提供されるすべての利点を活用します。
次の図は、ECIエミュレータがどのように機能するかを示しています。このマニュアルでは、ECI C APIに重点を置きます。
注: | ECI C APIでは、ECI v1 API CICS_ExternalCall (ECI_Parms )のみがサポートされています。 |
注: | 詳細は、「CICSコマンドとパラメータの範囲」のサポートされているECI C APIパラメータに関する項を参照してください。 |
サポートされているプラットフォームは、サポート対象のプラットフォームに関する項にリストされています。
ECIエミュレータの配信はZIPパッケージで、1つのcclapi32.dllファイルとその他のTuxedo依存ファイルが含まれています。ECIエミュレータを使用するには、ユーザーはCICS Transaction GatewayまたはCICS Universal Clientをインストールし、元のcclapi32.dllが置かれているディレクトリの下でパッケージを解凍し、元のDLLを配信されたものに置き換えます。
典型的な例では、ユーザー・アプリケーションはWindowsで実行されるのに対し、ART CICSはLinuxで実行されます。ECIクライアントとART CICSとを接続するには、Tuxedo /WSが使用されます。
ユーザーは、ECIクライアント・アプリケーションを呼び出す前に、環境変数を設定する必要があります。例:
ECIリクエストによって起動されるCICSプログラムは、次に示すように、ART CICS RuntimeでDPLプログラムとして構成される必要があります。
ECI呼出しのCICS_ExternalCall
(ECI_Parms
)で、eci_program_name
パラメータを使用してプログラム名を指定し、eci_system_name
パラメータを使用してシステム名を指定します。
注: | ART CICSのDPL構成の詳細は、「Distributed Program Link (DPL)の実装」を参照してください。 |
ユーザー・アプリケーションのコード・ページがサーバーのものと異なる場合、COMMAREAでのデータ変換を実行する必要があり、従来のユーザー・アプリケーションと新規作成ユーザー・アプリケーションの2つのケースを処理する必要があります。
従来のアプリケーションの場合、COMMAREAのデータは、従来のアプリケーションがサーバーに接続する前に、EBCDICに変換できます。ただし、ART CICS上のデータ・フローがASCII形式であることに関しては、ECIエミュレータは、ECIリクエストがART CICSにルーティングされる前に、COMMAREAをEBCDICからASCIIに変換する必要があり、戻された情報を元のEBCDICに変換する必要もあります。
新規作成アプリケーションの場合、ユーザーは変換操作を行う必要はなく、ASCIIを直接使用できます。これを行うために、環境変数CTG_CLIENT_CHARSET
を紹介します。値がEBCDICに設定されている場合、ECIエミュレータでは、EBCDICとASCIIの間でCOMMAREAのデータ変換を実行します。これに対して、この環境が設定されていないか、その値がEBCDICでない場合、変換は行われません。
ECIパラメータ・ブロック・フィールドでは、指定されたユーザーIDとパスワードが、サーバーでその後のセキュリティ・チェックに使用されます。通常、eci_userid
とeci_password
が使用されますが、これらは8文字のフィールドです。したがって、8文字を超えるユーザーIDまたはパスワードが必要な場合、ユーザーはeci_userid
とeci_password
をNULLに設定し、かわりにフィールドeci_userid2
とeci_password2
を使用する必要があります。
ART CICSのセキュリティ・メカニズムがECIリクエストでのセキュリティ・メカニズムと異なることに関しては、セキュリティがユーザーID、パスワードおよびアプリケーション・パスワードを必要とするART CICSで有効であるのに対し、ECIパラメータではアプリケーション・パスワードが定義されていない場合、問題が発生します。この問題の解決策として、ECIエミュレータではユーザーのために2つの方法が用意されています。
セキュリティがART CICSで有効になっていない場合、ECIパラメータにユーザーIDとパスワードが指定されても、セキュリティ・チェックは行われません。
Tuxedo / WSを使用すれば、/WSリモート・クライアントに接続する代替ネットワーク・アドレスを構成できます。この機能は、ECIエミュレータでフェイルオーバーの実装に使用されます。もっと正確に言えば、この機能によりユーザーは、UBBCONFIG
で複数のWSLサーバーを構成し、すべての代替ネットワーク・アドレスをクライアント側にして環境変数WSNADDR
を設定できます。
たとえば、ユーザーは、最初のアドレスが使用できない場合、環境変数を“set WSNADDR=//bjlinux16:46249, //bjlinux16:46246”として設定できます。すると、次のアドレスは自動的に取得されます。
このエミュレータには、ユーザーが遭遇した問題を診断するメカニズムが用意されています。エミュレータ・ログを有効にするために、ユーザーは、環境変数CTG_CLIENT_TRACE_FILE
を設定してログ・ファイル名を指定し、CTG_CLIENT_TRACE_LEVEL
でログ・レベルを設定できます。
ログ・レベルは、0 (ログなし)、1 (エラー)、2 (警告)、3 (情報)および4 (デバッグ)の0から4までの範囲です。
環境変数CTG_CLIENT_TRACE_FILE
が設定されていない場合は、userlogが使用されます。
環境変数CTG_CLIENT_TRACE_LEVEL
が設定されていない場合、デフォルトのログ・レベルはエラーに設定され、エラー・ログのみが出力されます。CTG_CLIENT_TRACE_LEVEL
が無効なログ・レベル(負の数字など)に設定されている場合、デバッグ・レベルが使用されます。
ASCIIとEBCDICの間のeci_commarea
全体では、エンコード/デコードのみがサポートされ、MBCSはサポートされません。