目次 前 次 PDF


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

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サポートでは次のものがカバーされます。
 
ART CICS CPI-C統合では、Windows VS C/C++アプリケーション(Tuxedo WSC経由)およびJavaアプリケーション(WTC経由)のサポートが提供され、アプリケーションはクライアントとして機能し、APPCプロトコルを使用して、ART CICSサーバーで実行されるリホストされたメインフレームCPI-Cアプリケーションと相互運用します。
Tuxedo ART CICS CPI-Cサポートには、次のコンポーネントが含まれます。
Windowsでは、ライブラリkixcpicws.dll。これはWindows SNAサポートのかわりに通信にTuxedo WSCを使用して、Windows CPI-C/SNAライブラリのかわりとしてCPI-Cインタフェースを提供します。
Tuxedo ART CICS runtimeでは、ARTCTRNサーバーで動作し、CPI-Cを使用してCOBOL/Cプログラムをサポートする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インタフェースを直接使用できます。リホストされた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リソース構成
systems.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構成
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"
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
注意:
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として設定する必要があります。
これはTuxedoのインストール場所です。
これは、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
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セキュリティ・フレームワークで設定したセキュリティ・レベルに基づいて追加する必要があります。
スケーリング
より多くの同時接続をサポートするために構成をスケーリングするには、次のことができます。
より多くの同時Windows接続を処理するために、複数のWSLを構成し、TuxedoドメインのWSH最小/最大制限を大きくします。
CICSトランザクションのより多くのインスタンスを並行して実行するために、複数のARTCTRNサーバーを構成します。CPI-Cは対話型プロトコルであるため、各サーバーはユーザー・レスポンスを待機してブロックします。構成するサーバーの数は、CICSトランザクションの同時ユーザーの数におおむね対応する必要があります。
診断
デバッグのためにランタイム・ログが出力されます。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パッケージを再生性する必要があります。

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved