ユーザー・ガイド

     前  次    新規ウィンドウで目次を開く  新規ウィンドウで索引を開く  PDFとして表示 - 新規ウィンドウ  Adobe Readerを入手 - 新規ウィンドウ
コンテンツはここから始まります

CPI-Cを使用したクライアント・アプリケーションの統合

この章には次のトピックが含まれます:

 


概要

共通プログラミング・インタフェース・コミュニケーション(CPI-C)は、APPCを実装するための共通アプリケーション・プログラミング・インタフェース(API)を提供します。CPI-Cには、異なるプラットフォームにわたるプログラム間通信用の一貫した一連の関数が用意されています。

オープン・システム(Windows、Linux、Unix)で実行される顧客アプリケーションでは、IBM CICSおよびIMS TMで実行されるメインフレーム・アプリケーションとのAPPC通信にCPI-Cインタフェースを使用できます。このようなメインフレーム・アプリケーションをTuxedo ARTにリホストした後、オープン・システム・アプリケーションでは、変更を回避するか最小限に抑えるために、リホストされたメインフレーム・アプリケーションと通信するためのCPI-C/APPCインタフェースを保持する必要があります。CPI-CインタフェースのTuxedo ART CICSサポートを使用して、顧客アプリケーションはアプリケーション・コードを変更せずに、リホストされたメインフレーム・アプリケーションと引き続き通信できます。

ART CICS CPI-Cサポートでは次のものがカバーされます。

表0-1 ART CICS CPI-Cサポートの範囲
CPI-Cアプリケーション(クライアント)
CPI-Cアプリケーション(サーバー)
Windows VSクライアント
WebLogic JAMクライアント
CICSアプリケーション
Tuxedoワークステーション・クライアント(WSC)経由
WTC経由
ARTCTRN/1
WSC用WSL/WSH
WTC用ドメイン・ゲートウェイ
MS Visual Studio C/C++、32ビット
JDK 1.6以上、64ビット
COBOL/C、64ビット

ART CICS CPI-C統合では、Windows VS C/C++アプリケーション(Tuxedo WSC経由)およびJavaアプリケーション(WTC経由)のサポートが提供され、アプリケーションはクライアントとして機能し、APPCプロトコルを使用して、ART CICSサーバーで実行されるリホストされたメインフレームCPI-Cアプリケーションと相互運用します。

Tuxedo ART CICS CPI-Cサポートには、次のコンポーネントが含まれます。

詳細は、「サポートされるCPI-Cシナリオ」を参照してください。

クライアント・アプリケーションの影響

Windows Visual Studio C/C++環境

このサポートで提供されるART CICS CPI-Cライブラリを使用して、Windowsアプリケーションを再構築/再リンクする必要があります。新しいライブラリでは同じAPIがサポートされるため、アプリケーションにリンクした後、コード変更は必要ありません。

このライブラリは、Tuxedoとの通信チャネルとしてWindows上のTuxedoワークステーション・クライアント(WSC)を使用します。このTuxedoコンポーネントをWindowsにインストールし、構成する必要があります。詳細は、「クライアント側の構成」を参照してください。

WebLogic Java環境

WebLogicユーザーは、CPI-Cインタフェースへのメイン・アクセス・ポイントを提供する新しいバージョンのcallService()クラスおよびCPI-CインタフェースのART CICS実装を提供するjavaクラス・ファイルを使用して、EJBパッケージを再生成する必要があります。

これらのクラスでは、Tuxedoとの通信チャネルとしてWebLogic-Tuxedo Connector (WTC)が使用されます。このWebLogicコンポーネントをWebLogic Serverにインストールし、構成する必要があります。詳細は、「クライアント側の構成」を参照してください。

ASCII-EBCDICデータ変換

メインフレーム・アプリケーションではEBCDICデータ・エンコーディングが使用されており、WindowsおよびWebLogicアプリケーションは呼出しでASCII-EBCDIC変換を指定する必要があります。ART CICSにリホストされた場合、これらのメインフレーム・アプリケーションはASCIIデータ・エンコーディングを使用して実行されるため、変換は必要ありません。WindowsまたはWebLogicアプリケーションがASCII-EBCDICデータ変換を指定する場合、Tuxedo ART CICSアプリケーションの使用時に無効にする必要があります。

 


サポートされるCPI-Cシナリオ

リホストされたCICSトランザクションを呼び出すWindowsアプリケーション

Windowsサーバー上のクライアント・アプリケーションは、クライアント側とサーバー側の両方のコードでCPI-C APIを使用してTuxedo上のCICSサーバー・アプリケーションと通信します。ART CICS CPI-Cライブラリを持つWindowsアプリケーションではTuxedoワークステーション・クライアントが使用され、CPI-C APIはART CICS CPI-Cライブラリによる内部Tuxedo ATMI呼出しによって処理されます。ARTCTRNサーバーは、ART CICS RuntimeのCPI-Cインタフェースも提供します。リホストされたCICSアプリケーションはコード変更なしでCPI-Cインタフェースを直接使用できます。

上の図は、Tuxedo Workstation Protocol対話を通じてTuxedoドメインのKIXSリージョン内のCPI-CサーバーCICSプログラムと通信するWindowsサーバー上のCPI-Cクライアント・アプリケーションを示しています。CPI-Cクライアント・ライブラリは、1台以上のARTCTRNサーバー(対話型トランザクション/プログラム用のART CICSアプリケーション・サーバー)で実行されるCICSトランザクションへのtpconnect()呼出しとの接続を確立し、Tuxedo対話型tpsend()/tprecv() API呼出しを使用してCMSEND/CMRCVを模倣します。青の網掛け部分で示された両方の側のアプリケーション・コードは変更されないままとなり、Tuxedo ARTインフラストラクチャ・コンポーネントによってすべての必要なAPIおよび通信サポートが提供されます。

リホストされたCICSトランザクションを呼び出すWebLogicアプリケーション

WebLogicのJavaクライアント・アプリケーションは、iWay JAMを介してサーバー側のCICSアプリケーションと通信します。クライアント側ではJAMによって提供されるRMI callService()が使用され、サーバー側ではCPI-CインタフェースとCICS APPCインタフェースが使用されます。ART CICSはクライアント側でcallService()メソッドをオーバーロードし、callService()はアプリケーション・データをCICSアプリケーションと交換する一連のCPI-C呼出しで構成されます。ART CICSはオーバーロードされたcallService()メソッドのソース・コードを提供し、一連のJavaクラス・ファイルを提供してCPI-Cインタフェースの実装を実現します。

上の図に示すように、EJBアプリケーションはWebLogicサーバー上でCPI-Cクライアントとして実行され、対話型プロトコルを使用するTuxedoドメイン・ゲートウェイへのWTC接続を介してKIXSリージョン内のCPI-CサーバーCICSプログラムと通信します。CPI-Cクライアント・ライブラリは、ARTCTRN (対話型トランザクション/プログラム用のART CICSアプリケーション・サーバー)によって発行されるCICSトランザクションへのtpconnect()呼出しを介して接続を確立し、Tuxedo対話型tpsend()/tprecv() API呼出しを使用してCMSEND/CMRCVを模倣します。青の網掛け部分で示された両方の側のアプリケーション・コードは変更されないままとなり、Tuxedo ARTインフラストラクチャ・コンポーネントによってすべての必要なAPIおよび通信サポートが提供されます。

 


サーバー側の構成

ART CICSリソースの構成

system.descでのCICSリージョンの定義

クライアントおよびサーバーのSYSIDを構成します。次の例では、Windowsクライアント用のKIXAで、sysidはKIXAAPPLIDARTKIXAです。CPI-Cサーバー用のKIXBで、sysidKIXBAPPLIDARTKIXBです。

[KIXA]

APPLID=ARTKIXA

[KIXB]

APPLID=ARTKIXB

connections.descでのCICS APPC接続の定義

connections.descprotocolを構成します。次の例では、KIXAKIXBに接続し、protocolAPPCです。リソース・グループDTPAPBKは、後でトランザクション定義に使用します。

[KIXA]
group=DTPAPBK
protocol=APPC
netname=ARTKIXA
maximum=5,2
[KIXB]
group=DTPAPBK
protocol=APPC
netname=ARTKIXB
maximum=5,3

transactions.descでのCICSトランザクションの定義

サーバー側のCPI-Cトランザクションを構成します。次の例では、BC32をサーバー側のCPI-Cトランザクションとして構成します。

BC32;DTPAPBK;APPC server; xxxxxxxx

Oracle Tuxedoの構成

UBBCONFIG構成

注意: UBBCONFIGtmloadcfでコンパイルしてください。

DMCONFIG構成

WTC Tuxedoドメイン構成のDMCONFIGを構成します。次の例を参照してください。

*DM_LOCAL_DOMAINS
DOM               GWGRP="GWGRP"
                  TYPE=TDOMAIN
                  DOMAINID=KIXD
*DM_REMOTE_DOMAINS
wldom1            TYPE=TDOMAIN DOMAINID=TDOM2  ACL_POLICY=GLOBAL
*DM_TDOMAIN
wldom1            NWADDR="//10.0.0.1:5669"
DOM               NWADDR="//10.0.0.2:5022"
*DM_LOCAL_SERVICES
KIXR_CPIS         LDOM=DOM
注意: DMCONFIGdmloadcfでコンパイルしてください。

 


クライアント側の構成

Windowsクライアントの構成

Windowsクライアントはcminit()によって設定されるsym_dest_nameを使用してターゲットART CICSサーバーに接続します。sym_dest_nameは、ターゲットART CICSサーバーのsysidとして設定する必要があります。

WebLogicクライアントの構成

WTCの管理マニュアルで説明されているように、Tuxedoドメインに接続するための基本WTCアクセス・ポイント構成以外のCPI-C javaクラスを使用するには、特定の構成は必要ありません。WTCではon_startupおよびon_demand接続ポリシーがサポートされており、複数のTuxedoドメインまたは複数のマシンにわたってデプロイされた単一のドメイン(MPモード・ドメイン)へのプライマリと代替のアクセス・ポイント間のフェイルオーバーとフェイルバックをサポートできます。

 


Oracle Tuxedoのタイムアウト制御

Tuxedoでは、構成を通じて複数のタイプのタイムアウトが強制されます。ブロックされた操作のタイムアウト制御は、UBBCONFIGSCANUNIT設定とBLOCKTIME設定に応じて異なります。これらはどちらもRESOURCESセクションでグローバルに設定でき、さらにBLOCKTIMEは、UBBCONFIGSERVICESセクションでサービスごとに設定できます。詳細は、「UBBCONFIGでの設定」を参照してください。

これは、UBBCONFIGでのグローバル・タイムアウト管理の例です。この例では、BLOCKTIME x SCANUNITは40秒です。クライアントは、実際にレスポンスを取得するまでCMRCVでブロックします。40秒以内に完了しない場合、TPETIMEを戻してタイムアウトをレポートし、CMRCVはエラーCM_RESOURCE_FAILURE_RETRYを戻します。

*RESOURCES
	BLOCKTIME      8
	SCANUNIT        5

これは、UBBCONFIGでのトランザクションのきめ細かいタイムアウト管理の例です。この例では、グローバル・タイムアウト設定は60秒(12 x 5)に指定されていますが、TuxedoサービスKIXB_B32 (region/SYSID KIXBでCICSトランザクションB32にマップされる)は40秒(8x5)のタイムアウトが設定されています。*SERVICESセクションで明示的なBLOCKTIMEが指定されていない他のトランザクションは、グローバル・タイムアウト設定によって制御されます。

*RESOURCES
	SCANUNIT        5
	BLOCKTIME    12
*SERVICES
	KIXB_B32 BLOCKTIME 8

UBBCONFIGでの設定

SCANUNIT numeric_value

サービス・リクエスト内で古いトランザクションやタイムアウト・ブロッキング呼出しを見つけるためにBBLが定期的なスキャンを行う間隔(秒単位)。この値はBBLによるスキャン処理の基本単位として使用されます。この値は、tpbegin()でで指定できるトランザクション・タイムアウト値と、BLOCKTIMEパラメータで指定されるブロッキング・タイムアウト値に影響します。SANITYSCANBBLQUERYDBBLWAITおよびBLOCKTIMEパラメータは、この単位の倍数であり、システム内のその他の時間制限の操作に使用されます。SCANUNITは、5の倍数で0より大きく60秒以下でなければなりません。デフォルトは10秒です。

BLOCKTIME numeric_value

ブロッキング呼出し(応答の受信など)の後、タイムアウトするまでの時間を基本SCANUNITの乗数で指定します。BLOCKTIMEの値は0より大きくなければなりません。このパラメータの指定がない場合は、(SCANUNIT * BLOCKTIME)が約60秒になるようにデフォルト値が設定されます。

 


セキュリティ

ART CICS CPI-CはCPI-Cセキュリティ・インタフェース(cmscsu/cmscsp)から渡されたユーザー/パスワードをチェックし、その後内部でローカルTuxedoセキュリティ・チェックを実行します。ユーザー/パスワードは、Tuxedoセキュリティ・フレームワークで設定したセキュリティ・レベルに基づいて追加する必要があります。

 


スケーリング

より多くの同時接続をサポートするために構成をスケーリングするには、次のことができます。

 


診断

デバッグのためにランタイムログが出力されます。KIX_TRACE_LEVEL環境変数を設定して、1から9のログ・レベルを制御できます。

 


パッケージ化/インストール

ART CICS RuntimeはART CICS CPI-Cサポートのために動的ライブラリを提供します。ライブラリのWindowsバージョンの名前はkixcpicws.dll、Linuxバージョンの名前はlibkixcpicws.soです。ART CICS CPI-Cライブラリを使用するには、構築するプロジェクトにMicrosoft/IBM CPI-Cライブラリのかわりにこのライブラリを構築/リンクすることのみが必要です。


  先頭に戻る       前  次