プロジェクト

全般

プロフィール

[GGH4.X-5.X] 数台の GGEasyMonitor を設置するが,順番にチェックを行い生きているサーバーで振分けるようにしたい.

技術ノート
2016/08/01

[番号]
技術ノート KGTN 2016071301

[現象]
[GGH4.X-5.X] 数台の GGEasyMonitor を設置するが,順番にチェックを行い生きているサーバーで振分けるようにしたい.

[説明]
GGEasyMonitor のバージョン 2.0.11 から画像 (ロゴ) を表示する機能が追加されましたので,順番にこの画像の読み込みを行い,その成否で死活チェックを行います.生きている GGEasyMonitor が見つかった段階で,その GGEasyMonitor に振り分け処理を任せます.このサンプルコードを以下に示します.なお,このファイル (logon.html) は,他のウエッブサーバー上に配置して下さい.

<!DOCTYPE html>

<html>
<head>
<meta content="text/html;shift_jis" http-equiv="Content-Type">
<title>Logon</title>
</head>
<body>
  <!--- ステータス表示用 --->
<br><br><br>
<font size="+2">
<div id="status" align="center"></div>
</font>

  <!--- 接続処理を行うスクリプト --->
<script language=javascript>
var iDebug = 0;
var iServer = 0;
var serverTab = new Array();
var objMsg = document.getElementById("status");

   serverTab[iServer++] = new serverInfo('192.168.102.99',491);
   serverTab[iServer++] = new serverInfo('192.168.102.88',491);
   serverTab[iServer++] = new serverInfo('192.168.102.89',491);
   findServer(0);

   // サーバー情報のクラス
   function serverInfo(addr,port) {
this.addr = addr;
this.port = port;
}

   // サーバー選択処理
   function findServer(iNext) {
var image;
var src;

   // 全てチェック済か?
if(iNext >= iServer) {
showMessage('アクセス可能なサーバーがありません!');
return;
}

   // イメージの読込みで死活チェック
image = new Image(0,0);

   // 成功時の処理
image.onload = function myOnLoad() {
var params = location.search;
var target = '';

   params = params.substring(1);
if(params.length == 0) {
params = 'dummy=dummy';
}
   target = 'http://' + serverTab[iNext].addr + '/goglobal/logon.html'
+ '?host=' + serverTab[iNext].addr
+ '&port=' + serverTab[iNext].port
+ '&' + params;
 showMessage('振分けサーバー ' + serverTab[iNext].addr + ' にアクセス中です...');
   if(iDebug > 0) {
alert('Connect[' + (iNext+1) + ']: ' + target)
}
else {
 location.href = target;
}
};

   // 失敗時の処理
image.onerror = function myOnError() {
objMsg.textContent = '';
findServer(++iNext);
};

   // 画像の読込み
src = 'http://' + serverTab[iNext].addr + ':8089/logo.jpg';
showMessage('振分けサーバー ' + serverTab[iNext].addr + ' を確認中です...');
image.src = src;
}

   // メッセージ表示
function showMessage(msg) {
objMsg.innerHTML = msg;
}
</script>
</body>
</html>

ファイル

KGTN2016071301.pdf (107 KB) kitasp 技術センター, 2016/08/01 13:27