SAP ABAPプロセス

今回はABAPベースのSAPシステム ( SAP NetWeaver AS ABAP 、 ABAP Platform ) の処理を実行するプロセスについてご説明します。
なお、今回ご説明するプロセスはOS上で実行されているプロセスを対象としており、内部プロセスは対象外とないります。
■ プロセスの種類
ABAPベースのSAPシステムでは、以下のプロセスが実行されます。
- メッセージサーバ ( Message Server )
- エンキューサーバ ( Enqueue Server )
- ディスパッチャ ( Dispatcher )
- ワークプロセス ( Work Process )
- インターネット通信マネージャ ( ICM )
- インターネットグラフィックサービス ( IGS )
- ゲートウェイ ( Gateway )

● メッセージサーバ ( Message Server )
SAPシステム内の全てのインスタンスを管理するプロセス。
メッセージサーバはSAPGUIからログオンする際のログオン先インスタンスの振り分け ( 負荷分散 ) 、インスタンス間の通信を管理する役割を持ちます。
SAPシステム内で1プロセスのみ存在し、ABAP SAP Central Services インスタンス ( ASCS ) で起動します。
● エンキューサーバ ( Enqueue Server )
SAPシステムにおけるロック管理を実行するプロセス。
SAP Kernel 7.49まではエンキューワークプロセスというプロセスが存在していましたが、SAP Kernel 7.50以降はエンキューワークプロセスは廃止されて、エンキューサーバに変わりました。
SAP Note 2146940 – Desupport of Enqueue Work Process
SAPシステムでのロックはエンキューサーバ内の共有メモリにあるロックテーブルでロック操作を実行して、ロックを管理します。
SAPシステム内で1プロセスのみ存在し、ABAP SAP Central Services インスタンス ( ASCS ) で起動します。
● ディスパッチャ ( Dispatcher )
ユーザからの各種リクエストや、メッセージサーバからのログオンやインスタンス間のリクエストを受け付けて、ワークプロセスへ振り分けを実行するプロセス。
ディスパッチャはPrimary Application Server インスタンス ( PAS ) およびAdditional Application Server インスタンス ( AAS ) それぞれで起動し、各インスタンス内で1プロセスのみ存在します。
なお、ディスパッチャはTCP通信しか受け付けないため、HTTP通信でのリクエストを振り分けする場合は、Webベースのディスパッチャ ( Web Dispatcher ) を使用する必要があり、Web DispatcherはスタンドアロンWeb DispatcherかASCSインスタンスの組込みWeb Dispatcherを使用する必要があります。
● ワークプロセス ( Work Process )
SAPシステム内のユーザ処理を実行するプロセス。
ワークプロセスはPrimary Application Server インスタンス ( PAS ) およびAdditional Application Server インスタンス ( AAS ) で起動します。
ワークプロセスは用途ごとに下記のワークプロセスが存在します。
SAP Note 39412 – How many work processes should be configured?
・ダイアログワークプロセス ( Dialog Work Process )
ABAPプログラム/汎用モジュールなどの実行や画面表示などのダイアログ処理やRFC/HTTP通信の処理など、ユーザからの操作の処理を実行するプロセス。
ダイアログワークプロセスはユーザの対話形式の処理に使用されるため、処理が長時間化しないように実行時間の制限が可能となります。SAP Kernel 7.4x以降では、ダイアログワークプロセスに優先度の機能が追加されました。セッションタイプに応じて、高 ( High ) 、中 ( Normal ) 、低 ( low ) の優先度が設定されるようになり、優先度ごとに実行時間を制限することが可能となりました。
SAP Note 2918906 – Deprecation of Profile Parameter “rdisp/max_wprun_time”
SAP Note 2001276 – Changed configuration as of 7.40 SP2
・バックグラウンドワークプロセス ( Background Work Process )
ジョブなどのバックグラウンド処理を実行するプロセス。
バックグラウンドワークプロセスはダイアログワークプロセスと異なり、バックグラウンド処理を実行する目的のため、実行時間に制限はありません。
・更新ワークプロセス ( Update Work Process )
ダイアログ処理やバックグラウンド処理で発生するデータベースへの変更処理 ( Insert , Update , Delete ) を実行するプロセス。
更新ワークプロセスは2つのタイプがあります。
- V1更新用プロセス ・・・重要な更新依頼 ( 1次変更 ) で実行されるプロセス
- V2更新用プロセス ・・・重要性の低い更新依頼 ( 2次変更 ) で実行されるプロセス
V2更新ワークプロセスは任意となり、V2更新ワークプロセスが存在しない場合は、全ての更新依頼をV1更新ワークプロセスで実行されます。
・スプールワークプロセス ( Spool Work Process )
SAPシステムでの印刷処理を実行するプロセス。
スプールワークプロセスは、印刷処理における出力データの作成、出力依頼の処理、プリンタ ( スプーラ ) への出力データの転送を実行します。
◆ ワークプロセス数の設定方法
各ワークプロセスのプロセス数はプロファイルパラメータによって設定します。
ワークプロセス | プロファイルパラメータ |
---|---|
ダイアログワークプロセス | rdisp/wp_no_dia |
バックグラウンドワークプロセス | rdisp/wp_no_btc |
更新 ( V1 ) ワークプロセス | rdisp/wp_no_vb |
更新 ( V2 ) ワークプロセス | rdisp/wp_no_vb2 |
スプールワークプロセス | rdisp/wp_no_spo |
◆ ワークプロセスの制約事項
各ワークプロセスにそれぞれ制約および推奨があります。
- 各PAS / AASインスタンスでのワークプロセス ( ダイアログ、バックグラウンド、更新 ( V1 / V2 ) 、スプール ) の合計の最大数は512プロセスとなる。
- ダイアログワークプロセスは各PAS / AASインスタンスで最低でも2プロセス以上に設定する必要がある。
- ダイアログワークプロセスは非ダイアログワークプロセス ( バックグラウンド、更新 ( V1 / V2 ) 、スプール ) の合計数以上が推奨。
- バックグラウンドワークプロセスは全PAS / AASインスタンスで最低でも1プロセス以上に設定する必要がある。
- 更新 ( V1 ) ワークプロセスは全PAS / AASインスタンスで 最低でも1プロセス以上に設定する必要がある。
- 更新 ( V2 ) ワークプロセスは全PAS / AASインスタンスで2プロセス以上が推奨。
- スプールワークプロセスは全PAS / AASインスタンスで 最低でも1プロセス以上に設定する必要がある。
SAP Note 39412 – How many work processes should be configured?
SAP Note 934109 – Work process status “On Hold RFC”
SAP Note 108799 – How many spool work processes for each instance?
SAP Note 19706 – Tuning the Spooler
SAP Note 9942 – Maximum number of work processes
● インターネット通信マネージャ ( ICM )
HTTP、HTTPS、SMTPを使用した外部からSAPシステムへの通信および、SAPシステムから外部への通信を実行するプロセス。
ICMプロセスはPrimary Application Server インスタンス ( PAS ) およびAdditional Application Server インスタンス ( AAS ) で起動します。
● インターネットグラフィックサービス ( IGS )
SAPシステム内のデータまたは別のソースデータをグラフィック/非グラフィックとして出力を実行するプロセス。
IGSプロセスはPrimary Application Server インスタンス ( PAS ) およびAdditional Application Server インスタンス ( AAS ) で起動します。
● ゲートウェイ ( Gateway )
ワークプロセスと外部プログラム間の通信および別インスタンス ( PAS、AAS ) のワークプロセス間の通信を実行するプロセス。
ゲートウェイプロセスはPrimary Application Server インスタンス ( PAS ) およびAdditional Application Server インスタンス ( AAS ) で起動します。