プログラミング・ガイド

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

WebサービスのOracle Tuxedo ATMIプログラミング

この章の内容は以下のとおりです。

 


概要

Oracle SALTでは、外部WebサービスをOracle Tuxedoドメインにインポートできます。外部WebサービスをOracle Tuxedoドメインにインポートするには、最初にWSDLファイルをロードして変換する必要があります。Oracle SALT WSDL変換ユーティリティ(wsdlcvt)は、各wsdl:operationをOracle SALTのプロキシ・サービスに変換します。変換されたSALTのプロキシ・サービスを標準的なOracle Tuxedo ATMI関数を使用して直接に呼び出すことができます。

Oracle SALTのプロキシ・サービスの呼出しはGWWSサーバーに送信します。リクエストはOracle Tuxedoタイプ・バッファからSOAPメッセージに変換して、対応する外部Webサービスに送信します。外部Webサービスからのレスポンスは、Oracle Tuxedoタイプ・バッファに変換して、Oracle Tuxedoアプリケーションに返します。GWWSはプロキシ仲介として機能します。

サービスを呼び出す時にエラーが発生する場合、GWWSサーバーはtperrnoによりエラー・ステータスを設定します。このエラー・ステータスはOracle Tuxedoアプリケーションによって取得できます。これにより、SALTのプロキシ・サービスのエラー・ステータスを検出し、処理することができます。

 


WSDLモデルのOracle Tuxedoモデルへの変換

Oracle SALTでは、WSDL変換ユーティリティ(wsdlcvt)が提供されています。このユーティリティを使用すると、WSDLファイルで定義されたサービスにアクセスするためにOracle Tuxedo ATMIプログラムを開発できるよう、外部WSDLファイルをOracle Tuxedoの特定の定義ファイルに変換できます。

WSDL-to-Tuxedoオブジェクトのマッピング

Oracle SALTは、次のルールを使用してWSDLオブジェクト・モデルをOracle Tuxedoモデルに変換します。

表5-1に、WSDLファイルとOracle Tuxedo定義ファイル間の詳細マッピングとの関係を示します。

表5-1 WSDLモデル/Oracle Tuxedoモデルのマッピング・ルール
WSDLオブジェクト
Oracle Tuxedo/SALT定義ファイル
Oracle Tuxedo/SALT定義オブジェクト
/wsdl:binding
SALT Webサービスの定義ファイル(WSDF)
/WSBinding
/wsdl:portType
/WSBinding/Servicegroup
/wsdl:binding/soap:binding
/WSBinding/SOAP
/wsdl:portType/operation
メタデータ入力ファイル(MIF)
/WSBinding/service
/wsdl:types/xsd:schema
FML32フィールド定義表
フィールド名のタイプ

 


SALTのプロキシ・サービスの呼出し

次の項では、Oracle Tuxedoアプリケーションから変換されたSALTのプロキシ・サービスの呼出し方法について説明します。

Oracle SALTでサポートされている通信パターン

Oracle SALTでは、発信サービスの呼出しに対するOracle Tuxedoリクエスト/レスポンスの通信パターンのみがサポートされています。Oracle Tuxedoアプリケーションは、次の通信Oracle Tuxedo ATMIによりSALTのプロキシ・サービスをリクエストすることができます。

Oracle SALTには、次のOracle Tuxedo通信パターンはサポートされていません。

Oracle Tuxedo発信呼出しのプログラミング: メイン・ステップ

GWWSを起動してOracle SALTのプロキシ・サービスを公開する場合、このサービスを呼び出すためにOracle Tuxedoアプリケーションを生成できます。SALTのプロキシ・サービスをアクセスするプログラムを開発するには、次の手順に従います。

GWWSから戻ったエラー・コードの管理

外部Webサービスをアクセスする時にGWWSサーバーにエラーが発生した場合、Oracle Tuxedoアプリケーションがエラーを診断できるようにtperrnoを設定します。表5-2に、使用可能なOracle SALTのプロキシ・サービスtperrno値を示します。

表5-2 GWWS/Tuxedoフレームワークから返されたエラー・コード
TPERRNO
考えられるエラーの原因
TPENOENT
リクエストされたSALTのプロキシ・サービスはGWWSにより公開されていません。
TPESVCERR
外部Webサービスのアプリケーションから返されたHTTPレスポンス・メッセージは無効です。
外部Webサービスのアプリケーションから返されたSOAPレスポンス・メッセージは非整形式です。
TPEPERM
認証に失敗します。
TPEITYPE
Oracle Tuxedoリクエスト・タイプ・バッファをSOAPリクエスト・メッセージのXMLペイロードに変換する時にメッセージの変換に失敗します。
TPEOTYPE
SOAPレスポンス・メッセージのXMLペイロードをOracle Tuxedoレスポンス・タイプ・バッファに変換する時にメッセージの変換に失敗します。
TPEOS
システム・リソースに制限があるため、リクエストが拒否されます。
TPETIME
タイムアウトが発生されます。 このタイムアウトはBBL BLOCKTIMEまたはSALTの発信呼出しタイムアウトです。
TPSVCFAIL
外部WebサービスはSOAPフォルト・メッセージを返します。
TPESYSTEM
GWWSの内部エラー。詳細は、ULOGを参照します。

Oracle Tuxedoアウトバウンド・アプリケーションでのフォルト・メッセージの処理

リストされたすべてのルールは、WSDL入力/出力メッセージをOracle Tuxedoメタデータinbuf/outbufの定義にマップするために使用されます。いくつかのルールを変更すると、WSDLファイルのデフォルト・メッセージをOracle Tuxedoメタデータerrbufにマップすることができます。

エラー・マッピングのルール

メタデータerrbufをSOAPフォルト・メッセージにマップするために、TuxモードおよびXSDモードという2つのモードがあります。

表5-3には、アウトバウンドSOAPフォルトのerrbuf定義を示します。

表5-3 アウトバウンドSOAPフォルトのErrbuf定義
Metaパラメータ
SOAPバージョン
必須
メモ
faultcode
1.1
string
はい
 
faultstring
1.1
string
はい
 
faultactor
1.1
string
いいえ
 
detail
1.1
fml32
いいえ
wsdl:faultが定義されていない場合、このフィールドにはXMLフィールドが含まれます。
コード
1.2
fml32
はい
値と省略可能なサブコードが含まれます。
理由
1.2
fml32
はい
複数のテキストが含まれます。
ノード
1.2
string
いいえ
 
ロール
1.2
string
いいえ
 
詳細
1.2
fml32
いいえ
詳細フィールドと同じです。


  先頭に戻る       前  次