13 CPI-Cを使用したクライアント・アプリケーションの統合
この章のトピックは、次のとおりです:
13.1 概要
共通プログラミング・インタフェース・コミュニケーション(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サポートでは次のものがカバーされます。
表13-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ビット |
Tuxedo ART CICS CPI-Cサポートには、次のコンポーネントが含まれます。
- Windowsでは、ライブラリ
kixcpicws.dll
。これはWindows SNAサポートのかわりに通信にTuxedo WSCを使用して、Windows CPI-C/SNAライブラリのかわりとしてCPI-Cインタフェースを提供します。 - WebLogicでは、CPI-Cインタフェースを実装する一連のJavaクラス。これはJAM beanを置き換え、Tuxedoドメインの通信サポートにWTCを使用します。
- Tuxedo ART CICS runtimeでは、
ARTCTRN
サーバーで動作し、CPI-Cを使用してCOBOL/CプログラムをサポートするCPI-Cライブラリ。詳細は、「サポートされるCPI-Cシナリオ」を参照してください。
さらに、ART CICS CPI-C統合では、Windows VS C/C++アプリケーション(Tuxedo WSC経由)およびJavaアプリケーション(WTC経由)のサポートが提供され、アプリケーションはクライアントとして機能し、APPCプロトコルを使用して、ART CICSサーバーで実行されるリホストされたメインフレームCPI-Cアプリケーションと相互運用します。
13.1.1 クライアント・アプリケーションの影響
この項の内容は次のとおりです。
13.1.1.1 Windows Visual Studio C/C++環境
このサポートで提供されるART CICS CPI-Cライブラリを使用して、Windowsアプリケーションを再構築/再リンクする必要があります。新しいライブラリでは同じAPIがサポートされるため、アプリケーションにリンクした後、コード変更は必要ありません。
このライブラリは、Tuxedoとの通信チャネルとしてWindows上のTuxedoワークステーション・クライアント(WSC)を使用します。このTuxedoコンポーネントをWindowsにインストールし、構成する必要があります。
関連項目:
クライアント側の構成親トピック: クライアント・アプリケーションの影響
13.1.1.2 WebLogic Java環境
WebLogicユーザーは、CPI-Cインタフェースへのメイン・アクセス・ポイントを提供する新しいバージョンのcallService()
クラスおよびCPI-CインタフェースのART CICS実装を提供するjavaクラス・ファイルを使用して、EJBパッケージを再生成する必要があります。
関連項目:
クライアント側の構成親トピック: クライアント・アプリケーションの影響
13.1.1.3 ASCII-EBCDICデータ変換
メインフレーム・アプリケーションではEBCDICデータ・エンコーディングが使用されており、WindowsおよびWebLogicアプリケーションは呼出しでASCII-EBCDIC変換を指定する必要があります。ART CICSにリホストされた場合、これらのメインフレーム・アプリケーションはASCIIデータ・エンコーディングを使用して実行されるため、変換は必要ありません。WindowsまたはWebLogicアプリケーションがASCII-EBCDICデータ変換を指定する場合、Tuxedo ART CICSアプリケーションの使用時に無効にする必要があります。
親トピック: クライアント・アプリケーションの影響
13.2 サポートされるCPI-Cシナリオ
この項には次の情報が含まれます:
親トピック: CPI-Cを使用したクライアント・アプリケーションの統合
13.2.1 リホストされた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インタフェースを直接使用できます。
図13-1 Windows Server上の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および通信サポートが提供されます。
親トピック: サポートされるCPI-Cシナリオ
13.2.2 リホストされた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インタフェースの実装を実現します。
図13-2 Windows Server上の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および通信サポートが提供されます。
親トピック: サポートされるCPI-Cシナリオ
13.3 サーバー側の構成
サーバーを構成するには、次のタスクを実行する必要があります。
13.3.1 ART CICSリソース構成
この項には次の情報が含まれます:
親トピック: サーバー側の構成
13.3.1.1 systems.descでのCICSリージョンの定義
クライアントおよびサーバーのSYSID
を構成します。次の例では、Windowsクライアント用のKIXA
で、sysidはKIXA
、APPLID
はARTKIXA
です。CPI-Cサーバー用のKIXB
で、sysid
はKIXB
、APPLID
はARTKIXB
です。
[KIXA]
APPLID=ARTKIXA
[KIXB]
APPLID=ARTKIXB
親トピック: ART CICSリソース構成
13.3.1.2 connections.descでのCICS APPC接続の定義
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
親トピック: ART CICSリソース構成
13.3.1.3 transactions.descでのCICSトランザクションの定義
サーバー側のCPI-Cトランザクションを構成します。次の例では、BC32
をサーバー側のCPI-Cトランザクションとして構成します。
BC32;DTPAPBK;APPC server; xxxxxxxx
親トピック: ART CICSリソース構成
13.3.2 Oracle Tuxedoの構成
この項の内容は次のとおりです。
親トピック: サーバー側の構成
13.3.2.1 UBBCONFIG構成
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"
- MACHINESセクションを構成します。
-
MAXWSCLIENTS
: マシンごとのWSC
の最大数を指定します。 -
MAXACCESSERS
:MAXWSCLIENTS
に、掲示板に接続されたTuxedoサーバーの数を加えたものです(UBBCONFIG
にリストされたすべてのサーバーおよび許可される最大WSL/WSH
サーバーを含みます)。
-
- 接続側WebLogicサーバーの
SERVERS
セクションでドメイン・サーバーを構成します。例:DMADM SRVID=1030 SRVGRP=DMGRP
GWADM SRVID=1040 SRVGRP=GWGRP
GWTDOMAIN SRVID=1050 SRVGRP=GWGRP
ノート:
UBBCONFIG
はtmloadcf
でコンパイルしてください。
親トピック: Oracle Tuxedoの構成
13.3.2.2 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
ノート:
DMCONFIG
はdmloadcf
でコンパイルしてください。
親トピック: Oracle Tuxedoの構成
13.4 クライアント側の構成
この項の内容は次のとおりです。
13.4.1 Windowsクライアントの構成
Windowsクライアントはcminit()
によって設定されるsym_dest_name
を使用してターゲットART CICSサーバーに接続します。sym_dest_name
は、ターゲットART CICSサーバーのsysid
として設定する必要があります。
- Tuxedo/WSクライアントを使用するには、Windowsで2つの環境変数を設定する必要があります。
TUXDIR=c:/tuxedo
これはTuxedoのインストール場所です。
WSNADDR=//gumby:9977
これは、
WSL
のCLOPTの-n
パラメータからのTuxedoサーバーWSL接続のホスト名とポートです。
- CPI-C /WSクライアントの
sysid
を指定するために、KIX_CPI-C_WSSYSID
が導入されました。これは、CPI-C /WSクライアントとCPI-C CICSサーバー間の接続を確立するために必要です。これは、connections.desc
にリストされているクライアントsysid
に設定する必要があります(この例ではKIXA
)。 - CPI-Cクライアントのランタイム・ログを追跡するために、ログ・ファイル・パスを表示する新しい環境変数が導入されました。
ARTKIX_CLIENT_LOGPATH
が設定されない場合、ログはローカル・ディレクトリに出力されます。ARTKIX_CLIENT_LOGPATH=c:/tmp/ARTKIX_client.log
親トピック: クライアント側の構成
13.4.2 WebLogicクライアントの構成
WTCの管理マニュアルで説明されているように、Tuxedoドメインに接続するための基本WTCアクセス・ポイント構成以外のCPI-C javaクラスを使用するには、特定の構成は必要ありません。WTCではon_startup
およびon_demand
接続ポリシーがサポートされており、複数のTuxedoドメインまたは複数のマシンにわたってデプロイされた単一のドメイン(MPモード・ドメイン)へのプライマリと代替のアクセス・ポイント間のフェイルオーバーとフェイルバックをサポートできます。
親トピック: クライアント側の構成
13.5 Oracle Tuxedoのタイムアウト制御
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
13.5.1 UBBCONFIGでの設定
SCANUNIT numeric_value
サービス・リクエスト内で古いトランザクションやタイムアウト・ブロッキング呼出しを見つけるためにBBLが定期的なスキャンを行う間隔(秒単位)。この値はBBLによるスキャン処理の基本単位として使用されます。この値は、tpbegin()
でで指定できるトランザクション・タイムアウト値と、BLOCKTIME
パラメータで指定されるブロッキング・タイムアウト値に影響します。SANITYSCAN
、BBLQUERY
、DBBLWAIT
およびBLOCKTIME
パラメータは、この単位であり、システム内のその他の時間制限の操作に使用されます。SCANUNIT
は、5の倍数で0より大きく60秒以下でなければなりません。デフォルトは10秒です。
BLOCKTIME numeric_value
ブロッキング呼出し(応答の受信など)の後、タイムアウトするまでの時間を基本SCANUNIT
の乗数で指定します。BLOCKTIME
の値は0より大きくなければなりません。このパラメータの指定がない場合は、(SCANUNIT * BLOCKTIME
)が約60秒になるようにデフォルト値が設定されます。
親トピック: Oracle Tuxedoのタイムアウト制御
13.5.2 セキュリティ
ART CICS CPI-CはCPI-Cセキュリティ・インタフェース(cmscsu/cmscsp
)から渡されたユーザー/パスワードをチェックし、その後内部でローカルTuxedoセキュリティ・チェックを実行します。ユーザー/パスワードは、Tuxedoセキュリティ・フレームワークで設定したセキュリティ・レベルに基づいて追加する必要があります。
親トピック: Oracle Tuxedoのタイムアウト制御
13.5.3 スケーリング
より多くの同時接続をサポートするために構成をスケーリングするには、次のことができます。
- より多くの同時Windows接続を処理するために、複数の
WSL
を構成し、TuxedoドメインのWSH
最小/最大制限を大きくします。 - より多くの同時WebLogic接続のために複数のWTCアクセス・ポイントを処理するように、複数のTuxedoドメイン・ゲートウェイを構成します。
- CICSトランザクションのより多くのインスタンスを並行して実行するために、複数の
ARTCTRN
サーバーを構成します。CPI-Cは対話型プロトコルであるため、各サーバーはユーザー・レスポンスを待機してブロックします。構成するサーバーの数は、CICSトランザクションの同時ユーザーの数におおむね対応する必要があります。
親トピック: Oracle Tuxedoのタイムアウト制御
13.5.4 診断
デバッグのためにランタイムログが出力されます。KIX_TRACE_LEVEL
環境変数を設定して、1から9のログ・レベルを制御できます。
親トピック: Oracle Tuxedoのタイムアウト制御
13.5.5 パッケージ化/インストール
ART CICS runtimeはART CICS CPI-Cサポートのために動的ライブラリを提供します。ライブラリのWindowsバージョンの名前はkixcpicws.dll
、Linuxバージョンの名前はlibkixcpicws.so
です。ART CICS CPI-Cライブラリを使用するには、構築するプロジェクトにMicrosoft/IBM CPI-Cライブラリのかわりにこのライブラリを構築/リンクすることのみが必要です。
- Tuxedoワークステーション・クライアントを使用するWindows/Linuxの場合
Windowsライブラリは、個別のWindows配布パッケージで提供されます。ライブラリ
kixcpicws.dll
の現在のバージョンはVC6で構築され、Windows server 2003のMicrosoft Windows (32ビット)tuxedo81_win
配布からTuxedoワークステーション・クライアントで動作保証されます。ライブラリを使用するには、kixcpicws.dll
をアプリケーションにリンクするか、実行時に*.dll
を動的に開く必要があります。 - WTCを使用するWebLogic Serverの場合
ART CICSはオーバーロードされた
callService()
メソッドのソース・コードを提供し、一連のJavaクラス・ファイルを提供してCPI-Cインタフェースの実装を実現します。ART CICSによって提供される新しいバージョンのcallService()
およびjavaクラス・ファイルを使用してEJBパッケージを再生性する必要があります。
親トピック: Oracle Tuxedoのタイムアウト制御