目次に戻る スタンドアロン環境と分散環境

サーバーの構成は、1台のサーバーのみで構成されるスタンドアロン環境と、複数のサーバーからなる分散環境の2つのパターンがあります。

※DSM Ver6.0では分散環境をサポートしていません。ご注意ください。

スタンドアロン環境


スタンドアロン環境は、1台のサーバーマシン(DSMSRV1台)だけで構成される環境で、同ホストにWebサーバーも存在します。
スタンドアロン環境
※「セッション管理情報」は共有メモリー上にあります。

このときの設定ファイル(dsm.ini)は、以下のように指定します。


[DSMSRV]
MainServer=OFF
;MainServerNameを設定しないでください。

コンソール用管理ツールである「dsm」で「dsm /i」とし、以下のメッセージがあるかどうか確認してください。

DSMSRV(ALONE) is ready......

スタンドアロン環境でDSMSRVを停止する場合は、「dsm.ini」の[DSMSRV]セクションのDsmHost0において以下のような指定をしてください。

DsmHost0=localhost , S


分散環境


分散環境は、複数台のサーバーマシンで構成され、メインDSMSRVとサブDSMSRVが同時に存在する環境です。
分散環境
メインDSMSRVとサブDSMSRVの指定は、設定ファイル(dsm.ini)で指定します。

分散環境における仕様
1台のメインサーバーと複数のサブサーバーで分散環境を構築した場合、分散の仕様は以下のようになります。

設定ファイル(dsm.ini)の[DSMSRV]セクションのDsmHostxでのCurBNOMAD・MaxBNOMADの役割は以下のようになります。

メインサーバーに対して連続したアクセスがあるとき、
CurBNOMADの数までB/NOMADセッションが使用されると別のサーバーに処理を分散させます。
さらに、このサーバーのB/NOMADセッションの使用数がCurBNOMADの数にまで達すると、また別のサーバーに処理を分散させます。
メインサーバーで指定されているすべてのサーバー(メインサーバー・サブサーバー)で、B/NOMADセッション使用数がCurBNOMADの数まで達した場合は、各サーバーのMaxBNOMAD(DsmHostxの設定)の数までB/NOMADセッションを使用していきます。
さらにそれ以上のアクセスがあった場合は、「NOMADの起動数が最大値に達しているか使用可能なNOMADがありません。」のエラーメッセージをブラウザに返します。

ただし、localhostでのMaxBNOMAD([DSMSRV]セクションのDsmHost0での指定)は、分散設定の値ではなく、[DSMCGI]セクションのMaxBNOMAD設定値が用いられます。
[DSMCGI]セクションのMaxBNOMADが未設定の場合は、デフォルトの「40」が用いられます。
[DSMSRV]セクションのlocalhostのMaxBNOMAD値は使われません。

例えば、メインサーバーで以下のように設定されている場合は、
App1が連続でメインサーバーに対してアクセスした場合に、次のような流れで分散されます。

「tasmania」で B/NOMAD 0〜19のセッションを使用
「monaco」で B/NOMAD 0〜14のセッションを使用
「tasmania」で B/NOMAD 20〜29のセッションを使用
「monaco」で B/NOMAD 15〜24のセッションを使用
これ以上のApp1に対するアクセスがあると「NOMADの起動数が最大値に達しているか使用可能なNOMADがありません。」のエラーメッセージを表示します。


[DSMSRV]
MainServer=ON
DsmHost0=localhost , R , 5 , 40 , App2:App3
DsmHost1=tasmania , R , 20 , 30 , App1
DsmHost2=monaco , R , 15 , 25 , App1:App10:App20
DsmHost3=hongkong , R , 15 , 35

ただし、各B/NOMADセッションで保持中のアプリケーションがTimeOutになった場合(保持から待機になる場合)は、セッションに対し再度アクセスできますので、上記の順にB/NOMADセッションを使用するとはかぎりません。


分散環境の設定例
メインサーバーとして「tasmania」、サブサーバーとして「hongkong」「monaco」という3台のサーバーが存在する場合の分散環境の設定例を説明します。

分散環境の例

メインサーバー「tasmania」のdsm.ini


[DSMCGI]
MaxBNOMAD=20

[DSMSRV]
MainServer=ON
DsmHost0=localhost , R , 10 , 20 , App1:App2
DsmHost1=hongkong , R , 15 , 25 , App10
DsmHost2=monaco , R , 20 , 40 , App1


サブサーバー「hongkong」のdsm.ini


[DSMSRV]
MainServer=OFF
MainServerName=tasmania

サブサーバー「monaco」のdsm.ini


[DSMSRV]
MainServer=OFF
MainServerName=tasmania

上記の設定の場合、App1のアプリケーションにアクセスした場合、「tasmania」と「monaco」に分散できます。
「hongkong」では、App10とApp1・App2以外のアクセスを許すので、App1へのアクセスは「hongkong」に分散されません。

「tasmania」へのNOMADアプリケーション(App1)の起動が、B/NOMADセッションの0〜9(CurBNOMADの値分)行われると、それ以上のアクセスは「monaco」に分散します。
「hongkong」では、NOMADアプリケーション(App1)の指定がないため、分散されません。
「monaco」はB/NOMADセッションの0〜19(CurBNOMADの値分)起動できます。
それ以上のアクセスがあった場合は、各サーバーのMaxBNOMAD値(メインサーバーのDsmHostxでの指定)まで起動できます。

連続して、App1に対してアクセスがあったとすると、以下のように各サーバーのB/NOMADセッションを使用します。
「tasmania」で B/NOMAD 0〜9のセッションを使用
「monaco」で B/NOMAD 0〜19のセッションを使用
「tasmania」で B/NOMAD 10〜19のセッションを使用
「monaco」で B/NOMAD 20〜39のセッションを使用

※「tasmania」(メインサーバー)のMaxBNOMADの値は、[DSMCGI]セクションの値が参照されます。
[DSMSRV]セクションのDsmHost0のMaxBNOMAD値は参照されません。

つまり、NOMADアプリケーションApp1を起動する場合、このシステムでは60(20+40)アクセスまで、クライアントからのアクセスを同時に処理できる、ということになります。
ただし、サーバーで立ち上がる各B/NOMADについて、各サーバー上のdsm.iniのTimeOutMinの時間(分)が経過した段階で、セッションが自動で解放されていきます。これにより、時間が経てば再びクライアント側からサーバーへのアクセスが可能となります。


分散環境のメリット


分散環境では、各サーバーに対しアプリケーションのHTMLファイルとNOMADプロシージャの両方を配置しないといけない、という手間のかかる点はありますが、スタンドアロン環境に比べ、以下のようなメリットがあります。