TPADVERTISE
形式
01 SERVICE-NAME PIC X(15). 01 PROGRAM-NAME PIC X(32). 01 TPSTATUS-REC. COPY TPSTATUS. CALL "TPADVERTISE" USING SERVICE-NAME PROGRAM-NAME TPSTATUS-REC.
機能
TPADVERTISEは,サーバで提供するサービスを広告します。TPADVERTISEを実行しない場合,サーバのサービスは,ブート時に広告されて,シャットダウンされたときに広告が取り消されます。
TPADVERTISEは,サーバのSERVICE-NAMEを広告します。SERVICE-NAMEは,15文字以下にしてください。ただし,SPACES(空白)は使えません。長過ぎる名称でも有効となりますが,15文字に切り詰められます。切り詰められた名称が ほかのサービス名と一致しないようにしてください。
PROGRAM-NAMEは,サービスプログラムの名称です。このプログラムは,SERVICE-NAMEへのサービス要求がサーバに受信されたら,いつでも起動されます。PROGRAM-NAMEには,SPACES(空白)を設定しないでください。
SERVICE-NAMEがすでにそのサーバで広告されていて,PROGRAM-NAMEが広告されているプログラムと一致した場合は,TPADVERTISEは正常にリターンします(切り詰められた名称が,すでに広告されていた名称と一致していた場合も含みます)。しかし,そのSERVICE-NAMEがすでにそのサーバで広告されていた場合でも,PROGRAM-NAMEが広告されているプログラムと一致しないときは,エラーリターンします(切り詰められた名称が,すでに広告されている名称と一致していた場合にも起こります)。
『データ領域』
『●SERVICE-NAME
応答するサービスのサービス名を設定します。』
『●PROGRAM-NAME
サービスプログラム名を設定します。』
『●TPSTATUS-REC
TPADVERTISEの実行結果を示すリターン値が設定されます。』
リターン値
成功した場合,TPADVERTISEはTP-STATUSにTPOKを設定します。
エラー
次のような場合,TPADVERTISEはエラーリターンして,次のうちどれか一つの値をTP-STATUSに設定します。
- TPEINVAL
-
SERVICE-NAMEかPROGRAM-NAMEのどちらかがSPACES(空白)になっています。またはPROGRAM-NAMEに設定した値が有効な名称ではありません。
- TPELIMIT
-
領域の制限で,SERVICE-NAMEを広告できません。
- TPEMATCH
-
SERVICE-NAMEはすでにそのサーバで広告されていますが,PROGRAM-NAMEのプログラムではありません。TPADVERTISEが失敗しても,SERVICE-NAMEは,現在広告しているプログラムを広告したままです(つまり,PROGRAM-NAMEは現在広告されているプログラムと置き換わりません)。
- TPEPROTO
-
TPADVERTISEが間違った状況で呼ばれました。
- TPESYSTEM
-
コミュニケーションリソースマネジャシステムでエラーが起こりました。厳密なエラーの性質は,product-specificな方法で定義されます。
- TPEOS
-
オペレーティングシステムにエラーが起こりました。厳密なエラーの性質は,product-specificな方法で定義されます。
関連項目
TPSVCSTART,TPUNADVERTISE
『OpenTP1で使う場合の注意事項』
-
『TPADVERTISEは,SPPでだけ呼び出せます。サーバの起動時には,ユーザサービス定義で指定した,すべてのサービスが自動的に広告されます。このプログラムのユーザサービス定義で指定してあるサービス名とプログラムの組み合わせだけ広告できます。』
-
『OpenTP1では,TPADVERTISEを呼び出すUAPのサービスグループと,広告されているサービスを広告したUAPのサービスグループが同じである場合は,広告済みと見なして,正常リターンします。サービスグループが一致していない場合は,エラーリターンします。』
-
『OpenTP1では,PROGRAM-NAMEは20文字まで有効です。』