次の方法で共有


routproc

routproc 関数は、ルーティング手順のサンプルです。 アプリケーションの一部として指定する必要があります。 これは、動的アクセス・モジュール (DMOD) によって呼び出され、このアプリケーションに対するメッセージの場合とそうでない場合があります。DMOD は、メッセージを受け入れるまで順番にルーティング・プロシージャーを呼び出します。

構文

  
DWORD routproc(   
BUFHDR *msgptr,   
USHORT locl,   
USHORT retstat   
);  

パラメーター

msgptr
DMOD によってルーティング プロシージャに渡されるメッセージへのポインター。

locl
メッセージの受信元のロケール ( retstat が返されたメッセージを示す場合)、またはパスが失われた場所 ( retstat がパス エラーを示す場合)。

retstat
通話の理由:

CEDINMSG (1)—メッセージが返されました。

CEDINLLN (2)— パス エラー (下記の「解説」を参照)。

戻り値

TRUE
ルーティング手順がメッセージを受け入れた。


メッセージはこのルーティング手順用ではありません。

注釈

ルーティング手順では、まず、次のように、Open 応答メッセージを処理する sbpurcvx を呼び出す必要があります。

sbpurcvx(>msgptr, locl, retstat)

sbpurcvx からの TRUE のリターン コードは、sbpurcvx がメッセージを受け入れたことを示します。このアプリケーションに対して Open エラー応答が受信され、リソースの場所が続行されています。 ルーティングプロシージャはメッセージをこれ以上処理せず、DMOD がそれ以上ルーティングプロシージャを呼び出すのを防ぐために TRUE を 返す必要があります。

sbpurcvx からの FALSE のリターン コードは、ルーティング手順で次のことが必要であることを示します。

  • メッセージがこのアプリケーション用の場合は、メッセージの責任を負い、TRUE 返して、DMOD がそれ以上のルーティング手順を呼び出さないようにします。

  • メッセージがこのアプリケーション用でない場合は、 FALSE を 返して、DMOD がさらにルーティングプロシージャを試行するようにします。

    パス エラーが返された場合、 msgptr は有効なメッセージを指させず、指定されたローカリティ値に対して関数管理インターフェイス (FMI) メッセージは返されません。 アプリケーションは、このローカリティを使用してすべてのセッションを終了する役割を担います。 ルーティングプロシージャは FALSE を返す必要があります。 これにより、失われたローカリティが他のすべてのルーティング手順に確実に報告されます。

    メッセージがこのアプリケーション用の場合、ルーティング手順は、メッセージを直ちに処理するか、アプリケーション キューにメッセージを配置してから、セマフォを使用してアプリケーションをポストすることができます。 詳細については、「 メッセージの受信」を参照してください。