11.19 型付きバッファのエラー
プロセスに対するリクエストまたは応答が不明なタイプのバッファで送信された場合、型付きバッファのエラーが返されます。リクエスト・データ・バッファの送信先のサービスでバッファ・タイプが認識されない場合、tpcall()
、tpacall()
およびtpconnect()
関数はTPEITYPE
を返します。
プロセスで認識されるバッファ・タイプは、構成ファイルとプロセスにリンクされているOracle Tuxedoシステム・ライブラリの両方で識別されるものです。これらのライブラリは、プロセスで認識される型付きバッファを識別するデータ構造体を定義および初期化します。プロセスごとにライブラリを作成するか、またはバッファ・タイプが定義されたアプリケーション固有のファイルのコピーをアプリケーションで用意することができます。アプリケーションでは、バッファ・タイプ・スイッチと呼ばれるバッファ・タイプ・データ構造体をプロセスごとに設定できます。詳細は、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』のtuxtypes(5)
およびtypesw(5)
に関する項を参照してください。
呼出し側で認識されないか、または使用できないバッファで応答メッセージが送信されると、tpcall()
、tpgetrply()
、tpdequeue(3c)
およびtprecv()
関数はTPEOTYPE
を返します。呼出し側で使用できないバッファの場合、そのバッファ・タイプはタイプ・スイッチに含まれています。ただし、返されたタイプは応答の受信用に割り当てられたタイプと一致せず、また呼出し側は異なるバッファ・タイプを使用することはできません。呼出し側は、flags
に
を設定して、このプリファレンスを示します。その場合、厳密なタイプ・チェックが行われ、違反が見つかるとTPNOCHANGE
TPEOTYPE
が返されます。デフォルトでは、緩やかなタイプ・チェックが行われます。その場合、呼出し側で認識される限り、最初に割り当てられたタイプ以外のバッファ・タイプが返されることもあります。応答の送信では、応答バッファは呼出し側で認識できるものでなければなりません。また、厳密なタイプ・チェックが指定されている場合は、それに従う必要があります。
親トピック: エラーの管理