こんばんは、カズヤんです。
最近、フリーランスの話を先輩にしてからというものの、先輩のモチベが120%まで上がり、SAP社によるADM100という研修に沿った内容のテキストを用いて、バッグエンドの学習を見てもらっています。今日は、本当に基礎の基礎のインスタンスやログオングループのところを教えてもらったので、自分の知識定着のためにも共有させてもらいます。
僕はインフラエンジニア向けの研修チームにいたのですが、サーバーについてはよく分かっていません。
開発演習でDNSサーバーを構築しましたが今は何も覚えていませんwww
(DNSはドメイン名とIPアドレスを対応させているということ以外忘れましたwww)
SAPにおいては、アプリケーションサーバーはインスタンスと呼ばれており、SAP独自の構成となっており一旦しっかり学習しないと仕組みを理解するのは容易ではないと思います。以下にて説明していきます。
通常、アプリを開発する際には、OS上にアプリを乗っけますが、
SAPでは、OS上にNet Weaver というミドルウェアがあり、Net Weaverの中にBasisというコンポーネントが含まれています。これは、以前の記事においても説明しましたね
Basisの中には、インスタンスが存在し、インスタンスには以下の3つの要素が含まれます。ディスパッチャー、ワークプロセス、メインメモリ領域です。
■ディスパッチャ
処理の順番待ちをしているワークプロセスを効率的に配分する役割を担います。ディスパッチャは各ワークプロセスに1つのみ存在します。SAPに限らずLINUXとかUNIXなら、ps -efで見れますよね。てことは、ディスパッチャもあるはず..
■ワークプロセス
SAP Basisでは、下記5つのワークプロセスが存在します。
(1) エンキューワークプロセス
SAPレベルでのロック処理はエンキューワークプロセスにて実行されます。
セントラルインスタンスに特有のワークプロセスです。
(2) バッググランドワークプロセス
ダイアログワークプロセスと異なり、非対話型のワークプロセスです。
夜間バッチ処理など、時間やイベントがジョブのトリガーとなっている際に実行されるワークプロセスです。
(3) ダイアログワークプロセス
バッググラウンドワークプロセスと異なり、対話型のワークプロセスです。
対話型のため、ユーザがジョブを実行すると即座にプロセスが起動しジョブが実行されます。
(4) 更新ワークプロセス
時間のかかる処理はバッググラウンドにて更新が実行されます。その際に、更新ワークプロセスが実行されます。
(5) スプールワークプロセス
スプールとは印刷を実行する際に、データを直接プリンタに送るのでなく、処理の順番が来るまで待機することです。スプールワークプロセスがこのような処理に実行されます。
■メインメモリ領域(プログラムバッファ)
どのインスタンスにも、メモリ領域が存在します。このプログラムバッファにより、同じプログラムをわざわざデータベースに読み込む必要なく迅速に処理が行えます。プログラムバッファが大きければ大きいほど、プログラムの処理速度が高速になります。
これらを図にすると、下記のような感じです。
このポリゴンみたいのが一個のインスタンスだと思ってもらえればいいっすww
この隙間部分がプログラムバッファ領域という感じですね。
ちなみに、このワークプロセス数は自由に変えられるそうです。
ダイアログワークプロセスやエンキューワークプロセスは必ず1つ以上は存在しなければならないそうですが、お客さんがシステムに要求するパフォーマンスやシステムが耐えられる負荷次第で変更できるということです(SAP Note 39412参照)。
ただ、ワークプロセス数は構築案件での話ですので、運用の場合はワークプロセスと機能だけを覚えておけば問題ないはずです。
ちなみにあるインスタンスのワークプロセスのステータスに関しては、
SAPにおけるTrcd: SM50にて確認ができます。
SAP Basisの仕組みは、OSの仕組みと似ていることが多いので、OSのコンピューティングの仕組みに精通された方なら飲み込みが早いと思います。転じて、SAP Basisの仕組みを学べば、OSのコンピューティングの仕組みも少し詳しくなると思います。
SAP Basis業務をやられている方の助けになれば幸いです。
Oracle試験とSAPコンサル試験引き続き頑張ります。
では、今日はここで失礼します。