7 ECIクライアントのサポート
この章のトピックは、次のとおりです:
7.1 概要
外部インタフェースを使用すると、非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エミュレータによりカスタマは、コード変更なしで既存のプログラムを使用し続けることができます。
親トピック: ECIクライアントのサポート
7.2 はじめに
CICS Transaction GatewayおよびCICS Universal Clientでは、C、C++、COBOL、COM、.NETおよびJAVA用のECIプログラミング・インタフェースを提供します。プログラミング・インタフェースの実装を動的ロード・ライブラリ(DLL)で実行することに関して、ECIエミュレータの基本的な考えは、ライブラリを置換することです。これによりユーザーは、まるで何も変わらなかったかのように、自分のアプリケーションを使用し続けることができます。DLLでは、ECIリクエストはTuxedoにルーティングされ、Tuxedoで提供されるすべての利点を活用します。
次の図は、ECIエミュレータがどのように機能するかを示しています。このマニュアルでは、ECI C APIに重点を置きます。
図7-1 ECIエミュレータ

ノート:
ECI C APIでは、ECI v1 APICICS_ExternalCall
(ECI_Parms
)のみがサポートされています。
詳細は、「CICSコマンドとパラメータの範囲」のサポートされているECI C APIパラメータに関する項を参照してください。
親トピック: ECIクライアントのサポート
7.4 インストールと設定
この項には次の情報が含まれます:
7.4.1 インストール
ECIエミュレータの配信はZIPパッケージで、1つのcclapi32.dllファイルとその他のTuxedo依存ファイルが含まれています。ECIエミュレータを使用するには、ユーザーはCICS Transaction GatewayまたはCICS Universal Clientをインストールし、元のcclapi32.dllが置かれているディレクトリの下でパッケージを解凍し、元のDLLを配信されたものに置き換えます。
親トピック: インストールと設定
7.4.2 ART CICSへのECI接続
典型的な例では、ユーザー・アプリケーションはWindowsで実行されるのに対し、ART CICSはLinuxで実行されます。ECIクライアントとART CICSとを接続するには、Tuxedo /WSが使用されます。
ユーザーは、ECIクライアント・アプリケーションを呼び出す前に、環境変数を設定する必要があります。例:
TUXDIRを設定=<配信されたパッケージの解凍先>
WSNADDRの設定=//<マシン>:<ポート>
親トピック: インストールと設定
7.4.3 ART CICSでの構成
ECIリクエストによって起動されるCICSプログラムは、次に示すように、ART CICS RuntimeでDPLプログラムとして構成される必要があります。
programs.desc
でプログラムを構成し、REMOTESYSTEM
フィールドにシステム名を指定します。- ubbconfigで
ARTDPL
サーバーを構成し、ARTDPL -s
オプションを使用してシステム名を指定します。ECI呼出しの
CICS_ExternalCall
(ECI_Parms
)で、eci_program_name
パラメータを使用してプログラム名を指定し、eci_system_name
パラメータを使用してシステム名を指定します。ノート:
ART CICSのDPL構成の詳細は、「Distributed Program Link (DPL)の実装」を参照してください。
親トピック: インストールと設定
7.5 エンコードとデコード
ユーザー・アプリケーションのコード・ページがサーバーのものと異なる場合、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クライアントのサポート
7.6 セキュリティ
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エミュレータでは、ECIパラメータからユーザーIDとパスワードを読み取り、
tpinit()
の実行時に、アプリケーション・パスワードの空の文字列を入力することができます - 環境変数
CTG_APP_PWD
でアプリケーション・パスワードを指定します。これが定義されると、この変数のコンテンツが、アプリケーション・パスワードとして使用されます。
セキュリティがART CICSで有効になっていない場合、ECIパラメータにユーザーIDとパスワードが指定されても、セキュリティ・チェックは行われません。
親トピック: ECIクライアントのサポート
7.7 フェイルオーバー
Tuxedo / WSを使用すれば、/WSリモート・クライアントに接続する代替ネットワーク・アドレスを構成できます。この機能は、ECIエミュレータでフェイルオーバーの実装に使用されます。もっと正確に言えば、この機能によりユーザーは、UBBCONFIG
で複数のWSLサーバーを構成し、すべての代替ネットワーク・アドレスをクライアント側にして環境変数WSNADDR
を設定できます。
たとえば、ユーザーは、最初のアドレスが使用できない場合、環境変数を“set WSNADDR=//bjlinux16:46249, //bjlinux16:46246”として設定できます。すると、次のアドレスは自動的に取得されます。
親トピック: ECIクライアントのサポート
7.8 診断
このエミュレータには、ユーザーが遭遇した問題を診断するメカニズムが用意されています。エミュレータ・ログを有効にするために、ユーザーは、環境変数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
が無効なログ・レベル(負の数字など)に設定されている場合、デバッグ・レベルが使用されます。
親トピック: ECIクライアントのサポート
7.9 制限と互換性
この項には次の情報が含まれます:
親トピック: ECIクライアントのサポート
7.9.2 互換性
- 大分部のECIリターン・コードは、Tuxedoで一致するエラー・コードがありません。ECIの呼び出しに失敗し、一致するTuxedoエラー・コードがない場合、このエミュレータでは、汎用エラー・コード
ECI_ERR_SYSTEM_ERROR
のみを戻し、ユーザーは、ログ出力を有効にすることにより、詳細なエラー情報を表示し、問題を診断できます。サポートされているECI定義のリターン・コードは次のとおりです。ECI_NO_ERROR
ECI_ERR_SYSTEM_ERROR
ECI_ERR_INVALID_EXTEND_MODE
ECI_ERR_INVALID_CALL_TYPE
- ECIエミュレータでは、カスタマの従来のECIプログラムと新規に作成されたECIクライアントの両方をサポートします。
親トピック: 制限と互換性