共通プログラミング・インタフェース・コミュニケーション(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サポートでは次のものがカバーされます。
ART CICS CPI-C統合では、Windows VS C/C++アプリケーション(Tuxedo WSC経由)およびJavaアプリケーション(WTC経由)のサポートが提供され、アプリケーションはクライアントとして機能し、APPCプロトコルを使用して、ART CICSサーバーで実行されるリホストされたメインフレームCPI-Cアプリケーションと相互運用します。
Tuxedo ART CICS CPI-Cサポートには、次のコンポーネントが含まれます。
詳細は、「サポートされるCPI-Cシナリオ」を参照してください。
このサポートで提供されるART CICS CPI-Cライブラリを使用して、Windowsアプリケーションを再構築/再リンクする必要があります。新しいライブラリでは同じAPIがサポートされるため、アプリケーションにリンクした後、コード変更は必要ありません。
このライブラリは、Tuxedoとの通信チャネルとしてWindows上のTuxedoワークステーション・クライアント(WSC)を使用します。このTuxedoコンポーネントをWindowsにインストールし、構成する必要があります。詳細は、「クライアント側の構成」を参照してください。
WebLogicユーザーは、CPI-Cインタフェースへのメイン・アクセス・ポイントを提供する新しいバージョンのcallService()
クラスおよびCPI-CインタフェースのART CICS実装を提供するjavaクラス・ファイルを使用して、EJBパッケージを再生成する必要があります。
これらのクラスでは、Tuxedoとの通信チャネルとしてWebLogic-Tuxedo Connector (WTC)が使用されます。このWebLogicコンポーネントをWebLogic Serverにインストールし、構成する必要があります。詳細は、「クライアント側の構成」を参照してください。
メインフレーム・アプリケーションではEBCDICデータ・エンコーディングが使用されており、WindowsおよびWebLogicアプリケーションは呼出しでASCII-EBCDIC変換を指定する必要があります。ART CICSにリホストされた場合、これらのメインフレーム・アプリケーションはASCIIデータ・エンコーディングを使用して実行されるため、変換は必要ありません。WindowsまたはWebLogicアプリケーションがASCII-EBCDICデータ変換を指定する場合、Tuxedo ART CICSアプリケーションの使用時に無効にする必要があります。
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および通信サポートが提供されます。
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および通信サポートが提供されます。
クライアントおよびサーバーのSYSID
を構成します。次の例では、Windowsクライアント用のKIXA
で、sysidはKIXA
、APPLID
はARTKIXA
です。CPI-Cサーバー用のKIXB
で、sysid
はKIXB
、APPLID
はARTKIXB
です。
[KIXA]
[KIXB]
connections.desc
でprotocol
を構成します。次の例では、KIXA
はKIXB
に接続し、protocol
はAPPC
です。リソース・グループDTPAPBK
は、後でトランザクション定義に使用します。
[KIXA]
group=DTPAPBK
protocol=APPC
netname=ARTKIXA
maximum=5,2
[KIXB]
group=DTPAPBK
protocol=APPC
netname=ARTKIXB
maximum=5,3
サーバー側のCPI-Cトランザクションを構成します。次の例では、BC32
をサーバー側のCPI-Cトランザクションとして構成します。
BC32;DTPAPBK;APPC server; xxxxxxxx
SERVERS
セクションでARTCTRN
サーバーを構成します。次の例では、CLOPTで-s
を使用してKIXB
リージョンを指定し、-l
を使用してCICSリソース・グループを指定しています。MIN/MAX
の値は、アプリケーションでサポートする必要がある同時対話の数に合わせて調整できます。APPC/CPI-Cは対話モードのプロトコルであるため、ARTCTRN
サーバーは、クライアントがCMRCV
を実行するまでCMSEND
上でブロックし、クライアントがCMSEND
を実行するまでCMRCV
上でブロックします。ARTCTRN
SRVGRP=GRP02
SRVID=30
CONV=Y
MIN=1 MAX=1 RQADDR=QKIX030 REPLYQ=Y
CLOPT="-o /stdout_ctrn -e /stderr_ctrn -r -- -s KIXB -l DTPSUB:DTPAPBK"
SERVERS
セクションでワークステーション・リスナー(WSL
)を構成します。次の例では、2つのWSH
が最初に起動され、最大5つのWSH
を起動できます(WSH
につき最大5 /WSクライアント)。WSL SRVGRP=G1 SRVID=10 CLOPT="-A -- -n //gumby:9977 -m 2 -M 5 -x5"
SERVERS
セクションでドメイン・サーバーを構成します。例: DMADM SRVID=1030 SRVGRP=DMGRP
GWADM SRVID=1040 SRVGRP=GWGRP
GWTDOMAIN SRVID=1050 SRVGRP=GWGRP
注意: | UBBCONFIG はtmloadcf でコンパイルしてください。 |
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
注意: | DMCONFIG はdmloadcf でコンパイルしてください。 |
Windowsクライアントはcminit()
によって設定されるsym_dest_name
を使用してターゲットART CICSサーバーに接続します。sym_dest_name
は、ターゲットART CICSサーバーのsysid
として設定する必要があります。
sysid
を指定するために、KIX_CPI-C_WSSYSID
が導入されました。これはCPI-C /WSクライアントとCPI-C CICSサーバー間の接続を確立するために必要です。これは、connections.desc
にリストされているクライアントsysid
に設定する必要があります(この例ではKIXA
)。ARTKIX_CLIENT_LOGPATH
が設定されない場合、ログはローカル・ディレクトリに出力されます。ARTKIX_CLIENT_LOGPATH=c:/tmp/ARTKIX_client.log
WTCの管理マニュアルで説明されているように、Tuxedoドメインに接続するための基本WTCアクセス・ポイント構成以外のCPI-C javaクラスを使用するには、特定の構成は必要ありません。WTCではon_startup
およびon_demand
接続ポリシーがサポートされており、複数のTuxedoドメインまたは複数のマシンにわたってデプロイされた単一のドメイン(MPモード・ドメイン)へのプライマリと代替のアクセス・ポイント間のフェイルオーバーとフェイルバックをサポートできます。
Tuxedoでは、構成を通じて複数のタイプのタイムアウトが強制されます。ブロックされた操作のタイムアウト制御は、UBBCONFIG
のSCANUNIT
設定とBLOCKTIME
設定に応じて異なります。これらはどちらもRESOURCES
セクションでグローバルに設定でき、さらにBLOCKTIME
は、UBBCONFIG
のSERVICES
セクションでサービスごとに設定できます。詳細は、「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
SCANUNIT numeric_value
tpbegin()
でで指定できるトランザクション・タイムアウト値と、BLOCKTIME
パラメータで指定されるブロッキング・タイムアウト値に影響します。SANITYSCAN
、BBLQUERY
、DBBLWAIT
および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ライブラリのかわりにこのライブラリを構築/リンクすることのみが必要です。
Windowsライブラリは、個別のWindows配布パッケージで提供されます。ライブラリkixcpicws.dll
の現在のバージョンはVC6で構築され、Windows Server 2003のMicrosoft Windows (32ビット) tuxedo81_win
配布からTuxedoワークステーション・クライアントで動作保証されます。このライブラリを使用するには、kixcpicws.dll
をアプリケーションにリンクするか、実行時に*.dll
を動的に開く必要があります。
ART CICSはオーバーロードされたcallService()
メソッドのソース・コードを提供し、一連のJavaクラス・ファイルを提供してCPI-Cインタフェースの実装を実現します。ART CICSによって提供される新しいバージョンのcallService()
およびjavaクラス・ファイルを使用してEJBパッケージを再生成する必要があります。