ABAPデーモンは、ABAPデーモンクラスのオブジェクトです。それらはそこからインスタンス化されるため、このドキュメントでは「ABAPデーモンインスタンス」という用語も使用されます。
デーモンのインスタンス化のコンテキストでは、自動起動されていないABAPデーモンと自動起動されたABAPデーモンを区別する必要があります。
非自動デーモンの起動
ABAPプログラムまたはABAPランタイム環境では、ファクトリメソッドCL_ABAP_DAEMON_CLIENT_MANAGER〜STARTを呼び出すことによってデーモンを登録することができます。
デーモンのインスタンス化では、ABAPデーモンクラスの名前、トランザクションSM59で設定したRFC宛先名、デーモンインスタンスの名前、セッションの優先度、PCPパラメータなどのインポートパラメータをメソッドに提供する必要があります。デーモンにデータを提供し、デーモンのインスタンス化の結果やデーモンインスタンスIDなどのパラメータをエクスポートするアプリケーション。
詳細については、非自動開始ABAPデーモンのインスタンス化を参照してください。
自動デーモン起動の構成
ファクトリメソッドCL_ABAP_DAEMON_STARTUP_MANAGER〜CREATE_FOR_CURRENT_PROGRAMは、デーモンの起動設定を開始し、タイプIF_ABAP_DAEMON_STARTUP_CONFIGのオブジェクトを提供します。オブジェクトのメソッドは、構成エントリを作成および変更するために使用されます。次に、システムまたはアプリケーションサーバインスタンス(ASインスタンス)が起動されると、インタフェースメソッド(クリエータプログラム)を呼び出すABAPプログラムのデーモンが自動的に作成されます。
デーモンは、構成フェーズ中にABAPプログラム(作成者プログラム)の特定のクライアントのシステムユーザー(作成者ユーザー)によって構成されます。起動フェーズでは、サーバーの起動手順がトリガーされます。各ASインスタンスの起動構成を自動的にチェックし(トポロジタイプによっても異なります)、構成されたデーモンを起動します。それに加えて、構成もチェックされます。
-
ASインスタンスの開始時、開始状態。
-
ASインスタンスが停止したとき。
-
ASインスタンスがアクティブ状態からパッシブ状態に、またはその逆に切り替わったとき。
-
システムのアップグレードが終了したとき(アップグレード中はシステムがロックされています)。
-
トランザクションSMDAEMONで[再試行][起動]ボタンを選択してデーモンを手動で再起動する場合。
-
インターフェイスIF_ABAP_DAEMON_STARTUP_CONFIGのメソッドEXECUTEを呼び出す場合(この場合、システムは現在のクリエータプログラムについてのみスタートアップコンフィギュレーションをチェックしますが、ASインスタンス全体についてはチェックしません)。
自動デーモン起動の場合、2種類の起動構成から選択します。これは、デーモンに必要なユーザーとそのログオン情報を指定する方法が異なります。
-
a)静的RFC宛先を使用したスタートアップコンフィギュレーション
-
b)信頼できるユーザー関係を使用した起動構成
a)静的RFC宛先を指定します。デーモンは、この宛先のトランザクションSM59で指定したユーザーから開始します。
b)デーモンは、動的RFC宛先を使用する信頼できるユーザーから開始します。これには、サーバーの起動手順を実行する技術的なABAPユーザー(デフォルトではDDICユーザー)と、実行フェーズでデーモンを実行するユーザー(信頼できるユーザー)との間に信頼関係が必要です。
定義されたトポロジタイプに関して、デーモンは、システムのすべてのアクティブなASインスタンス、または特定のサーバーグループに属するASインスタンスのABAPデーモンクラスから開始されます。実行フェーズでは、デーモンは作成者プログラムと同じシステムおよび同じクライアントで実行されます。デーモンは、作成者ユーザーまたは別のシステムユーザーで実行できます。
自動起動設定の詳細については、ABAPデーモンの自動起動の設定を参照してください。