BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedoホーム   |   BEA Tuxedo C リファレンス   |   先頭へ   |   前へ   |   次へ   |   目次

 


tpadvertise(3c)

名前

tpadvertise()-サービス名の宣言を行うルーチン

形式

#include <atmi.h>
int tpadvertise(char *svcname, void (*func)(TPSVCINFO *))

機能説明

tpadvertise() 使用するとサーバは提供するサービスを宣言することができます。デフォルトの設定では、サーバのサービスは、サーバのブート時に宣言され、サーバのシャットダウン時にその宣言が解除されます。

複数サーバ単一キュー (MSSQ) セットに属するすべてのサーバは、同じサービス・セットを提供しなければなりません。これらのルーチンは、MSSQ セットを共有する全サーバを宣言することによってこの規則を適用します。

tpadvertise() は、サーバ (あるいは、呼び出し元の MSSQ セットを共有するサーバのセット) の svcname を宣言します。svcname に NULL あるいは NULL 文字列 ("") を指定することはできません。また、長さは 15 文字までとしてください(UBBCONFIG(5) の SERVICES セクションを参照)。func は BEA Tuxedo ATMI システムのサービス関数のアドレスです。この関数は、svcname に対する要求をサーバが受け取ったときに起動されます。func に NULL を指定することはできません。明示的に指定された関数名 (servopts(5) 参照) は、128 文字までの長さを指定できます。15 文字を超える名前は受け入れられますが、15 文字に短縮されます。短縮された名前が他のサービス名と一致しないように確認する必要があります。

svcname がすでにサーバに対して宣言されていて、func がその現在の関数と一致する (すでに宣言されている名前に一致する切り捨てられた名前も含まれます) 場合、tpadvertise() は正常に終了します。ただし、svcname がすでにサーバに対して宣言されていても、func が現在の関数と一致しない場合には (切り捨てられた名前がすでに宣言されている名前と同じ場合にも)、エラーが返されます。

'.' で始まるサービス名は、管理用サービスのために予約されています。アプリケーションがこれらのサービスの一つを宣言しようとするとエラーが返されます。

戻り値

異常終了すると、tpadvertise() は -1 を返し、tperrno() を設定してエラー条件を示します。

エラー

異常終了時には、tpadvertise()tperrno() を次のいずれかの値にセットします

[TPEINVAL]

svcname が NULL または NULL 文字列 ("") であるか、ピリオド (".") で開始するか、または func が NULL である場合。

[TPELIMIT]

領域に制限があるため、svcname を宣言できない場合(UBBCONFIG(5)RESOURCES セクションの MAXSERVICES を参照)。

[TPEMATCH]

svcname がサーバに対してすでに宣言されているが、func 以外の関数で宣言されている場合。この関数は異常終了しても、svcname はその現在の関数で宣言されたまま変わりません (すなわち、func は現在の関数と振り変わりません)。

[TPEPROTO]

tpadvertise() が不正なコンテキストで呼び出された場合 (たとえば、クライアントによって)。

[TPESYSTEM]

BEA Tuxedo システムのエラーが発生しました。エラーの正確な内容はログ・ファイルに書き込まれます。

[TPEOS]

オペレーティング・システムのエラーが発生しました。

関連項目

tpservice(3c)tpunadvertise(3c)

 

先頭へ戻る 前のトピックへ 次のトピックへ