ABAPデーモンを使用する必要があるABAPプログラムは、マネージャクラスCL_ABAP_DAEMON_CLIENT_MANAGERのメソッドを呼び出すことにより、デーモンを開始および停止することができます。
ABAPデーモンを開始します
以下のサンプルコードは、STARTメソッドのインターフェースを示しています。
STARTメソッドのパラメーターは次のとおりです。
- I_CLASS_NAME:ABAPデーモンクラスの名前を定義します。このクラスは、「ABAPデーモンクラスの実装」セクションで指定されている要件を満たしている必要があります。
- I_DESTINATION(オプション;デフォルト値NONE):ABAPデーモンの登録時に使用されるRFC宛先の名称。このパラメータは、トランザクションSM59で定義できるRFC宛先のサブセットをサポートします。宛先タイプは次のとおりです。
- 内部接続(タイプI)
- 負荷分散の有無にかかわらず、ABAP接続(タイプ3 )。さらに、宛先は、同じシステムに属するアプリケーションサーバーインスタンス(ASインスタンス)を参照する必要があります。ログオン手順を指定する場合、RFCユーザーは同じシステムとクライアントにいる必要があります。
- 上記の宛先タイプの1つを参照する論理接続(タイプL )。
RFC宛先の詳細については、ABAPデーモンRFC宛先を参照してください。
- I_NAME:ABAPデーモンクラスのインスタンスであるデーモンの名前、つまり使用法の説明またはカテゴリ(例:production_line_10-14)を伝達します。この情報は、さまざまなデーモンを分類および識別するための監視トランザクションSMDAEMONでも使用されます。これには、小文字と大文字の文字、区切り文字としての「-」、「_」、「/」など、限られた範囲のASCII7ビット文字セットが含まれます。
- I_PRIORITY(オプション):デーモンイベントの実行に対するABAPデーモンセッションの優先度を指定します。クラスCL_ABAP_DAEMON_CLIENT_MANAGERで定義されている有効な優先度の値は次のとおりです。
- 優先度が高い:CO_SESSION_PRIORITY_HIGH
- 中優先度(デフォルト): CO_SESSION_PRIORITY_NORMAL
- 低優先度:CO_SESSION_PRIORITY_LOW
セッション優先度のリソースクォータと実行時実行時間の動作は、次のASインスタンスプロファイルパラメータによって異なります。
- 作業プロセスのクォータ: rdisp / scheduler / prio_normal/max_quotaおよびrdisp/scheduler / prio_low/max_quota。
- 最大セッションランタイム: rdisp / scheduler / prio_high / max_runtime、 rdisp / scheduler / prio_normal / max_runtime、 rdisp / scheduler / prio_low / max_runtime、およびrdisp/max_wprun_time。
- I_PARAMETER(オプション):アプリケーションがABAPデーモンに特定のデータを提供できるようにします。このデータはタイプPCP(プッシュチャネルプロトコル)です。AMC /APCアプリケーションに導入されたインターフェイスタイプIF_AC_MESSAGE_TYPE_PCPを参照してください。このパラメーターは、デーモン固有のイベントハンドラーメソッド( ON_ACCEPT、ON_START、 ON_MESSAGE、ON_ERROR、 ON_STOPなど)のデーモンインスタンスで、コンテキストメソッドGET_START_PARAMETERを介してアクセスできます。
- E_SETUP_MODE:開始アクションの結果を提供し、デーモンインスタンス化のIF_ABAP_DAEMON_EXTENSION〜ON_ACCEPTフェーズ中に決定されます。IF_ABAP_DAEMON_EXTENSION〜CO_SETUP_MODE-ACCEPT以外の値は、デーモンを開始できなかったことを意味します。デーモンを開始できない場合、返されたセットアップモードは、デーモンの開始が拒否された理由を示します。アプリケーションは、 ON_ACCEPTに次の拒否コードのいずれかを設定できます。
- 一般拒否: IF_ABAP_DAEMON_EXTENSION〜CO_SETUP_MODE-拒否。
- アプリケーション固有の拒否コード(> = 1000):アプリケーションは、1000以上のオフセットを持つランタイム固有の拒否コードを返すことができます。つまり、定数値IF_ABAP_DAEMON_EXTENSION〜CO_SETUP_MODE-REJECT_OFFSET(1000)を拒否コードに追加します。 。
さらに、システムは次のいずれかの理由でデーモンの起動を拒否する場合があります。
- サーバーシャットダウンモード:ターゲットASインスタンスはソフトシャットダウンモードです。設定モードIF_ABAP_DAEMON_EXTENSION〜CO_SETUP_MODE-SERVER_SHUTDOWNが返されます。
- システムシャットダウンモード:システム全体がソフトシャットダウンモードになっています。設定モードIF_ABAP_DAEMON_EXTENSION〜CO_SETUP_MODE-SYSTEM_SHUTDOWNが返されます。
- デーモンの最大数に達しました。ASインスタンスでサポートされるABAPデーモンセッションの数は、プロファイルパラメータrdisp / daemon/max_sessionsによって制限されます。設定モードIF_ABAP_DAEMON_EXTENSION〜CO_SETUP_MODE-MAX_DAEMONS_REACHEDが返されます。
-
サーバーの準備ができていません:ターゲットASインスタンスはまだ起動フェーズにあり、ABAPデーモンを起動する準備がまだできていません。設定モードIF_ABAP_DAEMON_EXTENSION〜CO_SETUP_MODE-SERVER_NOT_READYが返されます。
- E_INSTANCE_ID:デーモンにメッセージを送信したり、デーモンを停止したりするために使用できる内部デーモンインスタンスIDを提供します。
ABAPデーモンを停止します
以下のコードは、STOPメソッドのインターフェースを示しています。