目次 前 次 PDF


CICS Runtimeの非3270sターミナルとの統合

CICS Runtimeの非3270sターミナルとの統合
この章には次のトピックが含まれます:
インタフェース
非3270sターミナルは、Tuxedo ATMI tpcall()を介してリクエストを送信し、レスポンスを取得します。tpcall()のサービス名は、次の項で説明されている規則に従う必要があります。さらに、サーバーARTWTRN/ARTWTR1と交換できたデータ・バッファ・タイプはTuxedo FML32のみです。詳細なFML32フィールドおよび各データ構造については、次の項で説明しています。
サービス名規則
非3270sクライアントによって呼び出されたサービスをTN3270ターミナルによって呼び出されたサービスと区別するために、ARTWTRN/ARTWTR1サーバーでは、各CICSトランザクションを名前の接頭辞WEB_の付いたTuxedoサービスとして通知します。クライアントがARTWTRN/ARTWTR1にリクエストを送信するとき、tpcallのサービス名はこの規則に従う必要があります。
Fml32バッファ定義
非3270sクライアントとARTWTRN/ARTWTR1とのインタフェースとなるのは、Tuxedo FML32バッファのみです。すべてのアプリケーション・データと一部のターミナル制御情報は、FML32バッファにカプセル化されます。
表1に、すべてのFML32フィールドを示します。これらは$KIXDIR/include/msgflds32で公開されます。
 
現在のMAPSETの名前で、クライアントのUIで表示されます。
現在のMAPの名前で、クライアントのUIで表示されます。
コマンドCICS SENDCICS SEND MAPCICS SEND TEXTおよびCICS SEND CONTROLのターミナル制御文字。
前述のCICS APIは一部の制御オプション(FREEKBALARMERASEERASEUPCURSORなど)で呼び出されることがあります。したがって、これらの制御オプションは、このFMLフィールドに挿入する必要があります。
CICS RECEIVEおよびCICS RECEIVE MAPの実行時の注意IDおよびカーソルの位置。
CX_WEB_APPDATA
メインフレームCICSによって、マップセット・ファイルからコピーブックを生成するユーティリティが提供されます。コピーブックは、トランザクションによりCICS SEND/RECEIVE MAPが呼び出されるときに、アプリケーション・データの構造を定義するために使用されます。
ART CICS Runtimeでは、対応するユーティリティtcxmapgenも提供されており、マップセット・ファイルからコピーブックが生成されます。tcxmapgenにより生成されるコピーブックの構造が、メインフレームCICSで生成されるものとほとんど同じであることに関して、クライアントとARTWTRN/1との間で交換されるアプリケーション・データは、各マップセットのコピーブックでの定義に従う必要があります。
CICS SEND/RECEIVECICS SEND TEXTの場合、ARTWTRN/1とクライアントでは、フィールドCX_WEB_APPDATAにプレーン・テキストの文字を挿入すれば済みます。
ヘッド・ファイルは、ART CICSオフライン・ユーティリティtcxmapgenにより実行時にBMSファイルから生成されたコピーブックとは、オープン・システムでのデータ構造の配置が原因で、一致しない可能性があります。カスタマが、適切なFILLERを埋め込んで、コピーブックを調整することが必要になる場合があります。
CX_WEB_CTRL_CHAR
メインフレームCICSでは、アウトバウンド・データ・ストリームは、アプリケーション・プログラムからターミナルに次の書式で送信されるデータ・ストリームです。
| Command | Write Control Character | Indicate Cursor | Orders | Data | Orders | Data | ...
CMDによって、ターミナルで実行される関数が定義されます。ARTWTRN/1はWとEWをサポートします。これは1バイトです。
WCCは、CMD関数の実行方法を指示します。これは1バイトで、次の書式となります。
| 0 | 1 | 2/3 | 4 | 5 | 6 | 7 |
| * | Reset | Printout | Start | Sound | Keyboard | Reset |
| | | Format | Print | Alarm | Restore | MDT |
SEND MAP/TEXTコマンドでカーソル・オプションを設定するなら、カーソル・オプションのないSENDコマンドの場合、ICを次の書式で3270データ・ストリームのヘッダーに挿入する必要があります。このコマンドでオプションERASEを設定する場合、カーソルは画面の左上隅に配置されます。
| SBA | ROW | COL | IC |
前述のCMD、WCCおよびICに加えて、その他の制御文字(EUAなど)も、3270データ・ストリームのヘッダーに含めることができます。
ART CICS Runtimeでは、FMLフィールドCX_WEB_CTRL_CHARを12バイトのCARRAYと定義し、これらの制御文字を格納します。ただし、このリリースでは、主に使用されるCMD、WCCおよびICをサポートする予定です。このフィールドのデータの順序は次のとおりです。
| CMD | WCC | SBA | ROW | COL | IC | ...
このフィールドでは最初の6文字のみが使用されて残りの6文字はX'00'で予約され、これらの文字のコードはASCIIではなくEBCDICとして設定されます。カーソルを設定する必要がない場合、SBAROWCOLおよびICにはバッファ内でX'00'が設定されます。ICがCICSコマンドのオプション・カーソルを介して設定されるのではなく、MAPSET/MAPファイルで設定される場合、このフィールドにはICが設定されず、カスタマは自分でICを処理する必要があります。
CX_WEB_AID
メインフレームCICSでは、インバウンド・データ・ストリームが、ターミナルからアプリケーション・プログラムに送信され、注意識別子(AID)と、その直後にカーソルまたはデータが含まれます。AIDは、次の書式で、インバウンド・データ・ストリームの送信の原因となったアクションを記述します。
| AID | ROW | COL |
ART CICS Runtimeでは、FMLフィールドCX_WEB_AIDをこれらの3文字を格納するように定義したため、AIDは常にキーボードのファンクション・キー([Enter]、[Clear]、[F01]から[F24]など)となります。ROWおよびCOLは、ターミナルからアプリケーション・プログラムにインバウンド・データ・ストリームを送信するとき、現在のカーソルの位置を意味します。これらの文字のコードは、ASCIIではなく、EBCDICとして設定されます。
Oracle Tuxedo外部DPL通信インタフェース
クライアント
ART for CICSを使用すると、ユーザーはネイティブのTuxedoクライアントまたはTuxedo ud32ユーティリティから分散プログラム・コールを作成できます。
クライアントはTuxedo FML32フィールドまたはRECORDを使用してARTDPLと通信します。
Tuxedo FML32バッファを使用する場合、COMMREAをリクエスト/レスポンスで交換し、ミラー・トランザクションとTWAを検証し、さらにCHANNELおよびCONTAINERを使用することもできます。
Tuxedo RECORDバッファを使用する場合、RECORDデータ領域を使用してCOMMAREAを交換できます。ミラー・トランザクション、TWAまたはCHANNEL/CONTAINERはサポートされていません。
インタフェース
Tuxedoクライアントは、Tuxedo ATMI tpcall()を介してリクエスト/レスポンスを送受信します。また、サーバーARTDPLと交換できるデータ・バッファ・タイプは、Tuxedo FML32またはRECORDのみです。ARTDPLサービスの詳細は、「DPLサーバー(ARTDPL)」の項を参照してください。
ARTDPLサービス・コールの作成
Tuxedoクライアントからアクセス可能な、ARTDPLによって公開されるサービスには次の3つの種類があります。ユーザーは、実際のシナリオに応じていずれか1つを選択できます。
DPL <program>は、TuxedoサービスとしてARTDPLによって通知できます。また、サービス名の接頭辞はCICSリージョン<sysid>_ です。これには、現在のARTDPLサーバーが属しています。クライアントがこのサービスをコールしてCOMMAREAARTDPLサーバーと交換しようとする場合は、次のFML32フィールドがリクエストに存在します。
CX_USERID
CXMW_MESSAGE
一方、FML32フィールドCX_PROGRAMは存在しません。これは、ARTDPLサーバーは、実行するDPLプログラムの名前をサービス名から認識できるためです。
ミラー・トランザクションおよびTWAを有効化できます。詳細は、次の項を参照してください。
タイプB: MIRROR_<transid>
タイプC: <applid>_MIRROR_<transid>
ミラー・トランザクションもTuxedoサービスによって通知できます。サービス名の接頭辞はMIRROR_または<applid>_MIRROR_となります。この場合、ミラー・トランザクションとTWAは常に有効です。ユーザーは、まず、ミラー・トランザクションとTWAサイズをtransactions.descで構成する必要があります。クライアントがこの2つのサービスをコールしてCOMMAREAARTDPLサーバーと交換しようとする場合は、次のFML32フィールドがリクエストに存在する必要があります。
RECORDをデータ・バッファとして使用してARTDPLサーバーを呼び出すには、呼び出されるプログラムに対してprograms.descIN-TYPEおよびOUT-TYPEを構成する必要があります。RECORDを使用する場合、TuxedoクライアントはタイプAサービスのみを使用できます。
Fml32バッファ定義
表2に、すべてのFML32フィールドを示します。これらは$KIXDIR/include/msgflds32で公開されます。
 
ミラー・トランザクションとTWA
前提条件
ミラー・トランザクションとそのTWAサイズをtransactions.descに定義する必要があります。定義は、CICSシステム・ミラー・トランザクションCSMI/CVMIまたはカスタマイズ済トランザクションになります。詳細は、『Oracle Tuxedo Application Runtime for CICSユーザー・ガイド』ARTDPLでのTWAのサポートに関する項を参照してください。
次の例では、2つのミラー・トランザクションを定義しています。CSMIはシステム・デフォルトのミラー・トランザクションで、MIR1はユーザー定義のミラー・トランザクションです。
CSMI;SIMPAPP;system default mirror tran;DFHMIRS; ; ; ; ; ; ;ENABLED; ; ; ; ;15000
MIR1;SIMPAPP;user defined mirror tran;DFHMIRS; ; ; ; ; ; ;ENABLED; ; ; ; ;10000
ターゲットのミラー・トランザクションとそのTWAサイズをARTDPLへのリクエストに指定します。次のFML32フィールドが存在する必要があります。
CX_TRANSID:
実行済DPLプログラムで使用されるターゲットのミラー・トランザクションを指定します。CX_TRANSIDがリクエストに存在しない場合は、システム・ミラー・トランザクションCSMI/CVMIが配置されます。CSMI/CVMItransactions.descに存在しない場合、SYSIDERRが発生します。指定したCX_TRANSIDtransactions.descで定義されている有効なミラー・トランザクションでない場合は、SYSIDERRが発生します。
実行済DPLプログラムのEIBTRNID
ARTDPLへのリクエストに、CX_TRANSIDが存在する場合は、ARTDPLCX_TRANSIDの値としてEIBTRNIDを設定します。CX_TRANSIDが存在しない場合は、EIBTRNIDはシステム・ミラー・トランザクションCSMI/CVMIに設定されます。
ABEND条件
DPLプログラムが中断すると、ARTDPLサーバーがTPFAILSをクライアントに返します。ユーザーは、ARTDPLのレスポンスのFML32フィールドCX_ABENDCODEからCICS ABENDコードを取得できます。
関連項目

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