複数の異なる設定のHTTP-GATEWAYとgbviewをつなぐ方法
著者: 森 洋久 / joshua@globalbase.org ※ 中島 智人 / nakajima@zeta.co.jp / 株式会社ゼータ ※
* 概要
* この作業の前提となるシステム用件
* [ステップ1] 現在の設定の確認
* [ステップ2] 新しい設定の追加
* [ステップ3] エイリアスの設定
* [ステップ4] GBサーバの再起動
* [ステップ5] HTTP-GATEWAYの設定の複製
* [ステップ6] 最終確認
概要
LOCALBASEを立ち上げると、異なった設定の様々な地図のサイトを作成するという要求が生まれてきます。毎回異なった設定のために複数のgbviewエージェントを挙げるということはサーバにとっても負担です。そのために、一つのgbviewエージェントで、複数のHTTP-GATEWAYの要求を受ける設定が必要となります。これは、 xlsvのHTTPエジェーンと機能 [UNDEF REF (xlsv-http)]に含まれる、エージェントのエイリアス機能を使います。
▲ページトップへ戻る
この作業の前提となるシステム用件
LOCALBASEの閲覧機能が既に動いていることを前提とします。また、HTTPエージェントのエイリアス機能には、ver.B.b11以降のgbviewが必要です。ver.B.b10以前のgbviewでは対応していません。
▲ページトップへ戻る
[ステップ1] 現在の設定の確認
xlconf/std/httpagent.xl の中身を確かめます。
<?xml version="1.0" encoding="Shift_JIS" ?>
<HttpAgent path="/gbgate/main.cgi"
remote="xlp://localhost:8080/@gbview/">
<HTTPSetup type="raw">
<Coordinate> 10
xlp://isjhp2.nichibun.ac.jp:8080/kokudo20000/coord/00.crd
</Coordinate>
<Condition><quote>
<query qtype="URL" active="on" id="1">
<URL>
xlp://isjhp2.nichibun.ac.jp:8080/kokudo20000/coord/00.crd
</URL>
</query>
</quote></Condition>
<Cache dir="http://localhost:8080/gbgate/main.cgi?
t=10_a_766323.125000_1195876.125000_0_0.000291
&l=1[1]&s=500_400" generate="3"/>
</HTTPSetup>
</HttpAgent>
のように、一つのエージェントgbviewを起動する設定があることを確認してください。実際にgbviewがプロセスとしても立ち上がっていることを確認してください。この設定の HttpAgent [UNDEF REF (xlsv--HttpAgent)]という命令は、、/gbgate/main.cgiというパスに対して、xlp://localhost:8080/@gbview/を立ち上げ、要素として指定されている、 <HTTPSetup>....</HTTPSetup> という設定をこのgbviewへ送り込むことを示しています。
▲ページトップへ戻る
[ステップ2] 新しい設定の追加
ここで新しい設定を追加します。パス/gbgate2/main.cgiを追加しました。
[注意]
パスを追加する場合、 Cache タグにdir属性もそれにあわせてパス名を変更していることに注意してください。 |
<?xml version="1.0" encoding="Shift_JIS" ?>
<HttpAgent path="/gbgate/main.cgi"
remote="xlp://localhost:8080/@gbview/">
<HTTPSetup type="raw">
<Coordinate> 10
xlp://isjhp2.nichibun.ac.jp:8080/kokudo20000/coord/00.crd
</Coordinate>
<Condition><quote>
<query qtype="URL" active="on" id="1">
<URL>
xlp://isjhp2.nichibun.ac.jp:8080/kokudo20000/coord/00.crd
</URL>
</query>
</quote></Condition>
<Cache dir="http://localhost:8080/gbgate/main.cgi?
t=10_a_766323.125000_1195876.125000_0_0.000291
&l=1[1]&s=500_400" generate="3"/>
</HTTPSetup>
</HttpAgent>
<HttpAgent path="/gbgate2/main.cgi"
remote="xlp://localhost:8080/@gbview/">
<HTTPSetup type="raw">
<Coordinate> 10
xlp://isjhp2.nichibun.ac.jp:8080/kokudo20000/coord/00.crd
</Coordinate>
<Condition><quote>
<query qtype="URL" active="on" id="1">
<URL>
xlp://isjhp2.nichibun.ac.jp:8080/kokudo20000/coord/00.crd
</URL>
</query>
</quote></Condition>
<Cache dir="http://localhost:8080/gbgate2/main.cgi?
t=10_a_766323.125000_1195876.125000_0_0.000291
&l=1[1]&s=500_400" generate="3"/>
</HTTPSetup>
</HttpAgent>
▲ページトップへ戻る
[ステップ3] エイリアスの設定
前ステップのまま、サーバを再起動すると、gbviewは二つ立ち上がることになります。これを単一のgbviewとするためには、/gbgate2/main.cgiの設定にエイリアス設定をします。以下の例がそれです。aliasという属性をHttpAgentに追加しました。これは、/gbgate2/main.cgiは/gbgate/main.cgiと同一のエージェントに結びつけるという設定です。この設定により、/gbgate2/main.cgiの設定情報 ( HttpAgentの要素として定義されている情報)も/gbgate/main.cgiと同じgbviewエージェントへ送り込まれます。
一方、HTTPのリクエストがあるたびにxlsvによって、常にどの設定を経由してきたという情報が付加されるので、gbview側では、その情報により、設定情報を切り分けて対応することが出来ます。
<?xml version="1.0" encoding="Shift_JIS" ?>
<HttpAgent path="/gbgate/main.cgi"
remote="xlp://localhost:8080/@gbview/">
<HTTPSetup type="raw">
<Coordinate> 10
xlp://isjhp2.nichibun.ac.jp:8080/kokudo20000/coord/00.crd
</Coordinate>
<Condition><quote>
<query qtype="URL" active="on" id="1">
<URL>
xlp://isjhp2.nichibun.ac.jp:8080/kokudo20000/coord/00.crd
</URL>
</query>
</quote></Condition>
<Cache dir="http://localhost:8080/gbgate/main.cgi?
t=10_a_766323.125000_1195876.125000_0_0.000291
&l=1[1]&s=500_400" generate="3"/>
</HTTPSetup>
</HttpAgent>
<HttpAgent path="/gbgate2/main.cgi"
alias="/gbgate/main.cgi">
<HTTPSetup type="raw">
<Coordinate> 10
xlp://isjhp2.nichibun.ac.jp:8080/kokudo20000/coord/00.crd
</Coordinate>
<Condition><quote>
<query qtype="URL" active="on" id="1">
<URL>
xlp://isjhp2.nichibun.ac.jp:8080/kokudo20000/coord/00.crd
</URL>
</query>
</quote></Condition>
<Cache dir="http://localhost:8080/gbgate2/main.cgi?
t=10_a_766323.125000_1195876.125000_0_0.000291
&l=1[1]&s=500_400" generate="3"/>
</HTTPSetup>
</HttpAgent>
▲ページトップへ戻る
[ステップ4] GBサーバの再起動
GBサーバを再起動します。以下は、Linuxの場合の再起動方法ですが、各マシンごとについては、 文献「LANDSCAPEスタートアップ・マニュアル」を参照して確かめてください。
# /etc/init.d/launch-xl stop
# ps -fA | egrep gbview
...... gbviewが確実に終了していることの確認。
# /etc/init.d/launch-xl start
▲ページトップへ戻る
[ステップ5] HTTP-GATEWAYの設定の複製
新しいゲートウェイのために、gbviewの設定をそのままコピーしエイリアスを作ったのであれば、HTTP-GATEWAYも現在稼働している物をそのまま別のディレクトリにコピーするのが良いでしょう。コピーしたものの、server_conf.plの中身は$pathのみを変更すれば接続出来るはずです。たとえば以下のように設定します。
$host = "202.231.40.35";
$path = "/gbgate2/main.cgi";
$port = 9100;
1;
▲ページトップへ戻る
[ステップ6] 最終確認
新しいゲートウェイのメインページ、gateway/main.cgiをブラウザでアクセスし正常に閲覧出来ることを確認します。
▲ページトップへ戻る
|