サーバーの開始/終了

1.SPOOL-WRITER サーバー・デーモンの開始(STRSPLSVR)

「SPOOL-WRITER サーバー・デーモンの開始」はTCP/IP通信によって
Spoolライターをご使用になるために、PC側から通信を開始する前に
事前に サーバー・デーモンとして開始しておかねばならない処理です。

TCP/IP通信の場合はこの処理によってサーバー・デーモンが待機して
初めて PCとの通信を開始することができます。

このメニューに登録されているコマンド「STRSPLSVR」 は
メニューからではなくても 単独でも実行することができます。
最も簡単な開始の方法はIBM i のコマンド入力画面より

SPOOLWTR/STRSPLSVR + [実行キー]

によって開始することです。
あるいは

SPOOLWTR/STRSPLSVR + [F4キー]

によって起動すると次の画面が表示されますが、
これはメニューから選択した場合と 同じです。

SPOOLライター・サーバー・デーモンは Ver5.0 より
HTTPサーバーAlaska のサブ・セット機能 と
従来の Spoolライター・サーバーの両方の機能を併せ持つように改良されました。
これは新しい 「Spoolライター On the Web」 の ブラウザからのアクセスを可能とするものです。
Alaska のサブ・セットとしての HTTPサーバーとしての機能は、
お客様の利用範囲をより柔軟で拡張性高い、運用への貢献となります。

SPOOL-WRITER サーバー

開始 *YES = SPOOLライターのサーバーを開始します。
*NO = サーバーは開始されません。
待機PORT サーバー・デーモンが待機のために使用するPORT番号。
初期値は「3007」ですが、変更する場合は
PC側の指定も変更しなければなりません。

SBMJOB スケジュール

開始日 *CURRENT = 今だけサーバーを開始します。
*WEEKLY = 月曜日から金曜日に開始をスケジュールします。
*ALL = 毎日、開始をスケジュールします。
開始時刻 サーバーを開始する時刻を24時間表示で指定します。
ユーザー サーバー・デーモンを実行させるユーザー・プロフィール を 指定します。
省略時のユーザーは QSECOFR です。
アクセス・ログ サーバーのログの出力を指定します。
初期値は *NO ですが *YES にするとサーバーのアクセス・ログを
OUTQ: SPOOLWTR/QEZJOBLOG に出力します。
ジョブ待ち行列 サーバー・デーモンが投入されるジョブ待ち行列
開始ジョブを投入する待ち行列 子ブロセスが投入されるジョブ待ち行列

追加のパラメータについて

さらに F10キー を押せば残りの追加のパラメーターを表示させることができます。
次は追加のパラメーターが表示されて様子を示してします。

メッセージ待ち行列 サーバー・デーモンから送られるメッセージ待ち行列
ジョブ待ち行列 サーバー・デーモンの開始が投入されるジョブ待ち行列の名前です。
省略値は QGPL/QINTER ですのでたいていの IBM i では
対話式SBSである QINTER または QBASE で開始されることになります。
メッセージ待ち行列 エラー報告のためのメッセージ待ち行列の名前です。
省略値は *QYSOPR となっていますので、
エラー報告は 操作員メッセージ(QSYSOPR)
に送出されます。
開始ジョブのジョブ待ち行列 PCクライアントと対話のために開始されて実行される
子プロセスJOBの投入するジョブ待ち行列の名前です。
初期値は QGPL/QINTER ですので、
たいていの IBM i では対話式SBSである
QINTER または QBASE で開始されることになります。
【解説】

サーバーの稼動を確認する

STRSPLSVR コマンドによってサーバーの開始を投入して、
サーバー管理メニューに戻れば
サーバー管理メニューにおいて「F5=活動状況」を押して
サーバー・デーモンが正しく稼動したか必ず確認してください。
次のように表示されます。

親デーモン(SPLWTR_SVR) と 子プロセス(SPOOLW_EGN)

SpoolライターのサーバーはVer4.0以前の
PCクライアント・モジュールのサーバーであると同時に HTTPサーバーでもあります。
つまりユーザーがSpoolライターのサーバーを使って HTML コンテンツを表示したりして
IBM IBM i を Webサーバーとして利用することができます。( Web to Host 機能 )
製品としての「Spoolライター」そのものも Ver5.0 で Web化されました。
ここでは 親デーモン(SPOLWTR_SVR) に対する子プロセス(SPOOLW_EGN)の動作について
簡単に説明します。

親となるスプール・サーバー(SPLWTR_SVR) は PCクライアントかの着信だけを検知してから
複数、待ち受けている子プロセス(SPOOLW_EGN) にメッセージを一斉に配布するだけです。
メッセージを受け取ったどれかの子プロセス(SPOOLW_EGN) は
PCクライアントの要求を読み取って自分で HTML 等の応答を PC クライアントに戻します。
このようなメッセージ配布型のサーバー・デーモンは IBM がマニュアルの中で
推薦されるべき次世代のサーバー・モデルとして推薦している方式です。
レガシーな Apache HTTP サーバーではサーバー・デーモンだけがPCクライアントとの
入出力を行っていたために サーバー・デーモンだけに負荷が集中しており、
結果として全体のパフォーマンスが著しく低下していました。

スプール・サーバーはメッセージ配布型によって一斉にメッセージを配布し(sendmasg)
さらにプロセス間通信(pipe) による受取り確認をハイ・ブリッドに追加して
最高のパフォーマンスに堅牢さを加えたハイ・ブリッドなサーバー・モデルとして完成されました。
クライアントの数が増すほどパフォーマンスの良さを益々体感して頂くことができます。

スプール・サーバーは

  • - メッセージ一斉配布型( sendmsg) の優れたパフォーマンス
  • - スケーラビリティに富んだ負荷分散モデル
  • - メッセージ受取り確認 (pipe)
  • - 自動適に不足クライアント数を補足

クライアントの補助

スプール・サーバーは最初は基本の6クライアントとして起動しますが
アクセス増大によって子プロセス数が不足すると
自動的に契約クライアント数の範囲内において子プロセスが追加されます。

障害時における強制キャンセル

どれかの子プロセスにおいて万一、障害が発生して
どうしても子プロセスの実行を停止させたい場合があっても
強制的に、その子プロセスだけを強制的にジョブ終了させることができます。
子プロセス数が減少しても次のアクセス時点で子プロセスは自動的に追加されます。

MSGW の防止と排除

子プロセスは MSGW (メッセージ待ち)になって停止することはありません。
MSGW となる状況は自動的にキャンセル処理が行われます。
これは MSGW になるとPCクライアント側では無反応になってしまうことを防ぐためです。

通信の切断の再接続

PC クライアント・モジュールとの接続は明示的な切断の操作がない限りは永続的ですが
On the Web としてのブラウザからの接続の場合は
印刷待ち行列(OUTQ) が選択されていない状態では
約 1 分間の何の操作もないアイドル時間があれば通信は切断されてしまいます。
これはブラウザの仕様であり
すべてのブラウザの接続は 1分間のアイドルがあれば切断されるようになっています。
しかし次の操作をユーザーが再開すると、
その時点からログインと再接続も内部的に自動的に行われますので
ユーザーはあたかも接続が中断されたとは見えません。
印刷待ち行列(OUTQ) が選択されてからは
Spoolライターによって永続的に接続されるようになります。
従ってブラウザを閉じない限りは 1クライアント分が消費されてしまいますのでご承知ください。
まれに IP-VPN や ipsec 等の独自の通信環境をお持ちの場合でブラウザを切断したにもかかわらず、
通信の切断が IBM i のサーバー側に伝えられず
永続的に接続中になってしまう障害を持つものもあります。
ブラウザを閉じているのに通信の切断がサーバー側に伝わらないのでは
スプール・サーバー側ではブラウザ終了を検出することはできません。
これは HTTP プロトコルの仕様ではありませんので、潟Iフィスクアトロが調査を行ったり
対応を追加することはできませんことをご承知ください。

2.SPOOL-WRITER サーバー・デーモンの停止(ENDSPLSVR)

「SPOOL-WRITER サーバー・デーモンの停止」は稼動中の
Spoolライターのサーバーを 停止させるのに使用します。

TCP/IP通信の場合はこの処理によってサーバー・デーモンが待機して
初めて PCとの通信を開始することができます。

このメニューに登録されているコマンド「ENDSPLSVR」は
メニューからではなくても 単独でも実行することができます。
最も簡単な開始の方法はIBM i のコマンド入力画面より

SPOOLWTR/ENDSPLSVR + [実行キー]

によって開始することです。
あるいは

SPOOLWTR/ENDSPLSVR + [F4キー]

によって起動すると次の画面が表示されますが、
これはメニューから選択した場合と同じです。

SPOOL-WRITER サーバーの停止 *YES = STRSPLSVR で開始したサーバーを停止します。
*NO = 上記のサーバーは停止させません。
WRITER 書き出しサーバーの停止 *YES = ライターを停止します。
*NO = ライターは停止させません。