#include <dcvrpc.h>
DCLONG dc_rpc_call_to_s(
DCCLT_ID cltid, struct DCRPC_BINDING_TBL *direction,
char *group, char *service, char *in,
DCULONG *in_len, char *out,
DCULONG *out_len,
DCLONG flags)
#include <dcvrpc.h>
DCLONG dc_rpc_call_to(
struct DCRPC_BINDING_TBL *direction,
char *group, char *service,
char *in, DCULONG *in_len, char *out,
DCULONG *out_len, DCLONG flags)
#include <dcvrpc.h>
DCLONG dc_rpc_call_to_s(
DCCLT_ID cltid, struct DCRPC_BINDING_TBL CLTFAR *direction,
char CLTFAR *group, char CLTFAR *service, char CLTFAR *in,
DCULONG CLTFAR *in_len, char CLTFAR *out,
DCULONG CLTFAR *out_len,
DCLONG flags)
#include <dcvrpc.h>
DCLONG dc_rpc_call_to(
struct DCRPC_BINDING_TBL CLTFAR *direction, char CLTFAR *group,
char CLTFAR *service, char CLTFAR *in, DCULONG CLTFAR *in_len,
char CLTFAR *out, DCULONG CLTFAR *out_len, DCLONG flags)
dc_rpc_call_s関数と同様に,SPPのサービスを要求します。dc_rpc_call_to_s関数では,サービスグループ名とサービス名に加え,ホスト名を該当するサービス関数の検索のキーとして使用し,サービスの要求先を限定します。
この関数を発行する前にDCRPC_DIRECT_SCHEDULE()を発行し,DCRPC_BINDING_TBL構造体を作成しておく必要があります。引数directionにDCRPC_BINDING_TBL構造体へのアドレスを指定します。それ以外のインタフェースは,dc_rpc_call_s関数と同じです。
リターン値 | 数値 (10進数) | 意味 |
---|---|---|
DC_OK | 0 | 正常終了しました。 |
DCRPCER_INVALID_ARGS | -2401 | 引数に指定した値が誤っています。 |
DCRPCER_PROTO | -2402 | dc_rpc_open_s関数が実行されていません。 または,常設コネクション確立中にこの関数を発行しています。 または,トランザクションの範囲内でこの関数を発行しています。 |
DCRPCER_NO_BUFS | -2404 | 必要なバッファが確保できませんでした。または,リソース不足が発生しました。 |
DCRPCER_NET_DOWN | -2406 | ネットワーク障害が発生しました。 |
DCRPCER_TIMED_OUT | -2407 | dc_rpc_call_to_s関数の処理で時間切れ(タイムアウト)が発生しました。または,サービス要求したSPPが処理完了前に異常終了しました。 |
DCRPCER_MESSAGE_TOO_BIG | -2408 | 入力パラメタ長が最大値を超えました。 |
DCRPCER_REPLY_TOO_BIG | -2409 | 返ってきた応答の長さが,CUPで用意した領域を超えています。 |
DCRPCER_NO_SUCH_SERVICE_GROUP | -2410 | groupに指定したサービスグループ名は定義されていません。 または,ソケット受信型(ユーザサービス定義receive_from=socket指定)のユーザサーバへサービス要求を行いました。 または,クライアント環境定義DCCLTONLYTHISNODEの指定がNのとき,サービス要求先のSPPが未起動です。 |
DCRPCER_NO_SUCH_SERVICE | -2411 | serviceに指定したサービス名は定義されていません。 |
DCRPCER_SERVICE_CLOSED | -2412 | serviceに指定したサービスが存在するサービスグループは,閉塞されています。 |
DCRPCER_SERVICE_TERMINATING | -2413 | 指定したサービスは終了処理中です。 |
DCRPCER_SERVICE_NOT_UP | -2414 | クライアント環境定義DCCLTONLYTHISNODEの指定がYのとき,サービス要求先のSPPが未起動です。 または,クライアント環境定義DCWATCHTIMの指定が0のとき,処理完了前に異常終了しました。 |
DCRPCER_OLTF_NOT_UP | -2415 | 指定したサービスが存在するノードのOpenTP1が実行されていません。 |
DCRPCER_SYSERR_AT_SERVER | -2416 | 指定したサービスでシステムエラーが発生しました。 |
DCRPCER_NO_BUFS_AT_SERVER | -2417 | 指定したサービスでメモリ不足が発生しました。 |
DCRPCER_SYSERR | -2418 | システムエラーが発生しました。 |
DCRPCER_INVALID_REPLY | -2419 | サービス関数がOpenTP1に返した応答長が,1からDCRPC_MAX_MESSAGE_SIZE※までの範囲にありません。 |
DCRPCER_OLTF_INITIALIZING | -2420 | サービス要求されたノードにあるOpenTP1は,開始処理中です。 |
DCRPCER_TRNCHK | -2427 | 負荷を分散する先のノードにあるOpenTP1のバージョンが古いため,ノード間負荷バランス機能を実行できません。このリターン値は,ノード間負荷バランス機能を使用しているSPPにサービスを要求した場合にだけ戻ります。 |
DCRPCER_TESTMODE | -2466 | ユーザサービス定義でtest_mode=noと指定したSPPに対してサービス要求しました。 |
DCRPCER_SECCHK | -2470 | サービス要求先のSPPは,セキュリティ機能で保護されています。dc_rpc_call_to_s関数を呼び出したUAPには,サーバUAPへのアクセス権限がありません。 |
DCRPCER_SERVICE_TERMINATED | -2478 | サービス要求先のSPPが処理完了前に異常終了しました。この値はクライアント環境定義DCEXTENDFUNCTIONに00000001を指定した場合に戻ります。00000000を指定しているか指定を省略していると,リターン値にはDCRPCER_TIMED_OUT,またはDCRPCER_SERVICE_NOT_UPが戻ります。 |
DCCLTER_INVALID_CLTID | -2544 | cltidに指定したクライアントIDは,dc_clt_cltin_s関数で受け取ったクライアントIDと異なっています。 |
DCRPCER_PORT_IN_USE | -2547 | 指定したポート番号は使用されています。または,OSが自動的に割り当てるポート番号が不足しています。 |
SPPの状態 | クライアント環境定義DCCLTONLYTHISNODEの指定値 | ||
---|---|---|---|
指定ノード | 他ノード | N,または省略 | Y |
負荷が同じ場合 | 指定ノードのSPPにスケジュールされます。 | 指定ノードのSPPにスケジュールされます。 | |
指定ノードのSPPより他ノードのSPPの方が負荷が低い場合 | 他ノードのSPPにスケジュールされます。 | 指定ノードのSPPにスケジュールされます。 | |
起動 | 閉塞(受付可) | 指定ノードのSPPの負荷レベルによって変わってきます。指定ノードのSPPの負荷が低い場合は,指定ノードのSPPにスケジュールされます。指定ノードのSPPの負荷が高い場合は,他ノードのSPPにスケジュールされます。 | 指定ノードのSPPにスケジュールされます。 |
閉塞(受付可) | 起動 | 他ノードのSPPの負荷レベルによって変わってきます。他ノードのSPPの負荷が低い場合は,他ノードのSPPにスケジュールされます。他ノードのSPPの負荷が高い場合は,指定ノードのSPPにスケジュールされます。 | 指定ノードのSPPにスケジュールされます。 |
閉塞(受付不可) | 起動 | 他ノードのSPPにスケジュールされます。 | 関数は,DCRPCER_SERVICE_CLOSEDでエラーリターンします。 |
停止 | 起動 | 他ノードのSPPにスケジュールされます。 | 関数は,DCRPCER_SERVICE_NOT_UPでエラーリターンします。 |
停止 | 停止 | 関数は,DCRPCER_NO_SUCH_SERVICE_GROUPでエラーリターンします。 | 関数は,DCRPCER_SERVICE_NOT_UPでエラーリターンします。 |