dc_rpc_open
名称
アプリケーションプログラムの開始
形式
ANSI C ,C++の形式
#include <dcrpc.h>
int dc_rpc_open(DCLONG flags)
K&R版 C の形式
#include <dcrpc.h>
int dc_rpc_open(flags)
DCLONG flags;
機能
OpenTP1の各種関数を使う準備をします。
dc_rpc_open関数はメイン関数で呼び出します。すべてのOpenTP1の関数を呼び出す前に,プロセスで1回だけ呼び出してください。メイン関数での初期化手順を次に示します。
UAPにトランザクション属性を指定している場合は,そのノードでOpenTP1のトランザクションサービスとプロセスサービスが実行中であることが前提になります。dc_rpc_open関数は,OpenTP1がOSの開始に伴って,またはdcstartコマンドによって正常開始したあとでないと実行できません。OpenTP1が正常開始する前にdc_rpc_open関数を呼び出すと,DCRPCER_OLTF_NOT_UPでエラーリターンします。この場合は,dc_rpc_call関数などのOpenTP1の関数は使えません。
UAPトレースは,dc_rpc_open関数が正常に終了したあとに呼び出したすべてのOpenTP1の関数について取得されます。そのため,dc_rpc_open関数がエラーリターンした場合のUAPトレースは,取得されている場合も取得されていない場合もあります。
UAPで値を設定する引数
●flags
DCNOFLAGSを設定します。
リターン値
リターン値 | リターン値(数値) | 意味 |
---|---|---|
DC_OK | 0 | 正常に終了しました。 |
DCRPCER_INVALID_ARGS | -301 | 引数が間違っています。 |
DCRPCER_PROTO | -302 | dc_rpc_open関数はすでに呼び出しています。 |
DCRPCER_FATAL | -303 | 初期化に失敗しました。以降,OpenTP1の関数は使えません。 |
DCRPCER_OLTF_NOT_UP | -315 | UAPがあるノードのOpenTP1が実行していません。 |
DCRPCER_STANDBY_END | -369 | 待機系のユーザサーバが,待機の終了を要求されました。 |
DCRPCER_SEC_INIT | -371 | セキュリティ機能を使ったOpenTP1が,セキュリティ環境の初期化処理でエラーになりました。 |
指定例
#include <dcrpc.h>
main(){
if(dc_rpc_open(DCNOFLAGS) < 0){
fputs("cannot begin usrserv1",stderr);
goto RPC_CLOSE;
}
if(dc_rpc_mainloop(DCNOFLAGS) < 0)
fputs("cannot begin usrserv1",stderr);
/* サービス関数が呼び出されて実行されます。 */
/* この間,メイン関数には制御は戻りません */
RPC_CLOSE:
dc_rpc_close(DCNOFLAGS);
}
注意事項
dc_rpc_open関数は,定義ファイルで設定した内容に従って,UAPが使うOpenTP1の各機能の環境設定(初期化)をします。
初期化処理では,UAPプロセスでオープンするファイルディスクリプタの最大数をOSに対して設定します。したがって,dc_rpc_open関数の発行後,UAPプロセスでオープンするファイルディスクリプタの最大数をOSに対して再設定(変更)しないでください。変更した場合の動作は保証できません。