5.2.2 システムで提供されるサービス: tpsvrinit( )関数
サーバーの起動時に、Oracle Tuxedoシステムの
main()
はその初期化時、つまりサービス・リクエストの処理を開始する前に、tpsvrinit(3c)を呼び出します。
アプリケーションがこの関数のカスタム・バージョンをサーバーに提供していない場合、main()
で提供されるデフォルトの関数が使用され、この関数は、リソース・マネージャをオープンし、エントリを中央イベント・ログに記録してサーバーの起動が成功したことを示します。中央ユーザー・ログは自動的に生成されるファイルで、userlog(3c)関数を呼び出して、プロセスがこのファイルにメッセージを書き込みます。中央イベント・ログの詳細は、「エラーの管理」を参照してください。
tpsvrinit()
関数を使用すると、アプリケーションで要求される次のような初期化プロセスを行うことができます。
- コマンド行オプションの取得
- データベースのオープン
以降の項では、tpsvrinit()
を呼び出すことによって、これらの初期化タスクがどのように行われるのかをサンプル・コードで示します。次のサンプル・コードでは示していませんが、このルーチン内ではメッセージ交換を行うこともできます。ただし、非同期応答が未処理のままでtpsvrinit()
ルーチンが制御を戻すと、このルーチンは失敗します。その場合、Oracle Tuxedoシステムでは応答は無視されて、サーバーが正常に終了します。
また、「エラーの管理」で説明されているように、tpsvrinit()
関数で、トランザクションを開始したり終了することもできます。
tpsvrinit()
関数の呼出しには、次のシグネチャを使用します。
int
tpsvrinit(int argc, char **argv)