メインコンテンツまでスキップ

システムポーリング

BXIでは、システムとの連携時にL4 Switchを使用しない場合、L4 SwitchのFail-Over機能に代わる機能を提供する。

info

システムに対するポーリングのみに該当し、機関に対するポーリングは、機関業務、またはコネクションに設定するポーリングIDで処理する。

定期的なメッセージポーリング方式でこれに対応し、取引処理のためのコネクションではなく、別途ポーリングコネクションの登録と、ポーリングメッセージを作成するための、Customizingプログラム作成が必要である。

システムポーリングコネクションは、Connection Management > Connection Information画面を利用して登録でき、登録時には、指定されたシステムコード(SHL)、業務コード(HL01)を使用する必要がある。

ポーリングコネクション使用時の注意点

  • Protocol Divison : システムポーリングはHTTP方式を使用しているため、HTTP/HTTPSプロトコルのみ設定できる。
  • Connection Type : 定期的にメッセージを送信する方式であるため、クライアントに設定する必要がある。
  • Health Check Interval(sec) : : メッセージを送信する間隔を意味する。 システムの正常障害判断が行われる周期になる。
  • Disconnection Condition Count : メッセージを送信して正常応答を受信できなかった場合、その回数だけメッセージ送信を再試行する。 再試行は、失敗検知後に待機時間なしに即時に行われ、当該回数が超過するとシステムを障害と判断する。

ポーリングメッセージのカスタマイズ

BXIで提供するHealthCheckMessageCreateProcessインターフェースを実装してCustomizingできる。

@Component
public class HealthCheckMessageCreateProcessor implements HealthCheckMessageCreateProcess {
/**
* メッセージの作成
*
* @return
*/
@Override
public byte[] makeMessage() throws BxiException {
// メッセージの生成
Map<String, Object> message = new LinkedHashMap<String, Object>();
String guid = JavaUtil.createUid();
message.put("stdMsgLen", 344L);
message.put("stdMsgVer", 1L);
message.put("guid", guid);
message.put("guidSeq", 1L);
message.put("fstGuid", guid);
message.put("fstTrmsDttm", DateUtil.getCurrentDate(DateUtil.EMPTY_MILL_DATE_TIME_TYPE).substring(0, 14));
message.put("msgClssCd", "S");

String headerString = ConversionUtil.objectToJson(message);
return headerString.getBytes(CharsetUtil.UTF_8);
}

/**
* 応答メッセージが正常であるかどうか確認
*
* @param responseMessage
* @return
*/
@Override
public boolean checkMessage(byte[] responseMessage) throws BxiException {
// 応答するかどうか確認
String responseStr = new String(responseMessage, CharsetUtil.UTF_8);
Map<String, Object> message = ConversionUtil.jsonToMap(responseStr);
String msgClssCd = (String) message.get("msgClssCd");

if ("R".equals(msgClssCd)) {
return true;
} else {
return false;
}
}
}