プロジェクト

全般

プロフィール

[GGH4.X-5.X] メインとサブの2台の GGEasyMonitor を設置するが,メインで障害が発生した時に自動的にサブに切り替える方法は?

技術ノート
2016/08/01

[番号]
技術ノート KGTN 2016071203

[現象]
[GGH4.X-5.X] メインとサブの2台の GGEasyMonitor を設置するが,メインで障害が発生した時に自動的にサブに切り替える方法は?

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

<!DOCTYPE html>

<html>
<head>
<meta content="text/html;shift_jis" http-equiv="Content-Type">
<title>Logon</title>
<script language=javascript>
var addrServer1 = '192.168.102.89';
var addrServer2 = '192.168.102.98';
var statusServer1 = false;
var statusServer2 = false;

   function updateServer(n,s) {
var target = '';
var params = location.search;

   params = params.substring(1);
if(params.length == 0) {
params = 'dummy=dummy';
}

   // 死活情報を更新
switch(n) {
   case 1:
statusServer1 = s;
break;

   case 2:
statusServer2 = s;
break;
}
   // 死活情報が揃ったか?
if((statusServer1 != false)&&(statusServer2 != false)) {
   // メインサーバーへ接続可能?
if(statusServer1 == 'OK') {
target = 'http://' + addrServer1 + '/goglobal/logon.html?host=' + addrServer1 + '&' + params;
alert('Server1: ' + target)
// location.href = target;
}
// サブサーバーへ接続可能?
else if(statusServer2 == 'OK') {
target = 'http://' + addrServer2 + '/goglobal/logon.html?host=' + addrServer2 + '&' + params;
alert('Server2: ' + target)
// location.href = target;
}
else {
alert("アクセス可能なサーバーがありません。")
}
}
}

   // サーバー1のイメージをロード
var image1 = new Image(0,0);
image1.onload = function myOnLoad() {
updateServer(1,'OK');
};
image1.onerror = function myOnError() {
updateServer(1,'NG');
};
image1.src = 'http://' + addrServer1 + ':8089/logo.jpg';

   // サーバー2のイメージをロード
var image2 = new Image(0,0);
image2.onload = function myOnLoad() {
updateServer(2,'OK');
};
image2.onerror = function myOnError() {
updateServer(2,'NG');
};
image2.src = 'http://' + addrServer2 + ':8089/logo.jpg';
</script>
</head>
<body>
</body>
</html>

ファイル

KGTN2016071203.pdf (75 KB) kitasp 技術センター, 2016/08/01 13:26