HTTPアダプターの通信方式について説明します。
HTTPアダプターは、CEPサービスのWebサーバ機能を使用してイベントデータを受信します。
エンドポイントのアドレス(URL)は以下のとおりです。
http://CEPサーバのホスト名/CEPエンジン名FrontServerService/HttpReceiver
例
CEPサーバのホスト名が“bdcep”、CEPエンジン名が“CepEngine1”の場合の例です。
http://bdcep/CepEngine1FrontServerService/HttpReceiver
HTTPリクエストでCEPサーバにイベントデータを送信します。
イベントデータを通知するCEPエンジンを指定します。
POST パス HTTP/バージョン
エンドポイントアドレスのパス部
HTTPプロトコルバージョン
ポイント
BDCEPがサポートしているHTTPプロトコルバージョンは、“1.0”および“1.1”です。
例
CEPエンジン名が“CepEngine1”の場合:
POST /CepEngine1FrontServerService/HttpReceiver HTTP/1.1
イベントデータの各情報を以下のとおり指定します。
送信情報 | 指定方法 | 指定例 |
---|---|---|
イベントデータ形式 | TYPEヘッダーに指定します。 | イベントデータがCSV形式の場合: TYPE: CSV |
イベントタイプID | EVENT-TYPE-IDヘッダーに指定します。 | イベントタイプ(イベントタイプ定義の開発資産ID)がEVENTTYPE_01の場合: EVENT-TYPE-ID: EVENTTYPE_01 |
文字セット | Content-Typeヘッダーに指定します。 (UTF-8の場合は省略可) | イベントデータの文字エンコーディングがシフトJIS、かつCSV形式の場合: Content-Type: text/plain; charset=Shift_JIS イベントデータの文字エンコーディングが日本語EUC、かつXML形式の場合: Content-Type: text/xml; charset=EUC-JP |
注意
文字セットを指定しない場合、文字コード変換は行いません。そのため、送信するイベントデータの文字エンコーディングがUTF-8以外の場合、高速フィルターおよび複合イベント処理では入力イベントをUTF-8と解釈して動作します。
イベントデータ本体を指定します。
例
次の場合の送信メッセージを以下に示します。
CEPサーバのホスト名:bdcep
CEPエンジン名:CepEngine1
イベントデータ形式:CSV形式
イベントタイプID:EVENTTYPE_01
文字セット:シフトJIS
POST /CepEngine1FrontServerService/SoapReceiverService HTTP/1.1
Host: bdcep
TYPE: CSV
EVENT-TYPE-ID: EVENTTYPE_01
Content-Type: text/plain; charset=Shift_JIS
Content-Length: nnnn
MEM0001,1010,1
HTTPリクエストを送信後、CEPサーバから通知される応答メッセージを受信します。
HTTPレスポンスおよびメッセージボディに通知される情報は以下のとおりです。
HTTPの応答メッセージが通知されます。
HTTP/バージョン ステータスコード 補足メッセージ
HTTPプロトコルバージョン
HTTPリクエストの結果
ステータスコードに応じた補足メッセージ
例
イベントデータの送信が正常終了した場合:
HTTP/1.1 200 OK
HTTPアダプターの処理結果を示すメッセージが通知されます。
例
イベントデータの送信が正常終了した場合:
Code=0 Message=Message sending is completed normally.
ポイント
異常時にはシステムログおよびエンジンログにメッセージを出力します。異常時のエラー処理については、「3.4 エラー処理」を参照してください。
処理結果に応じた各種メッセージは以下のとおりです。
処理結果 | メッセージ(*1) |
---|---|
正常終了 | 200 OK |
Code=0 Message=Sending message completed normally. | |
なし | |
CEPサーバ未起動 | 200 OK |
Code=-1000 Message=Server is not Running. | |
cep10300w: FrontServer is not running. Event is aborted. EngineId=CEPエンジン名 | |
フォーマット異常 イベントデータ形式が存在しない | 400 Bad Request |
Code=-100 Message=Event type format is not defined. | |
cep10306e: Event Type Format is not defined. EngineId=CEPエンジン名 | |
フォーマット異常 イベントタイプIDが存在しない | 400 Bad Request |
Code=-300 Message=Event type id is not defined. | |
cep10305e: Event Type ID is not defined. EngineId=CEPエンジン名 | |
フォーマット異常 イベントデータ形式にCSVまたはXML以外が指定されている | 400 Bad Request |
Code=-400 Message=Unknown event format [イベントの形式]. | |
cep10114e: Unknown Event format. EngineId=CEPエンジン名, format=イベントの形式 | |
フォーマット異常 イベントデータサイズが32,000,000バイトを超過 | 400 Bad Request |
Code=-900 Message=Bad Event data size [イベントデータサイズ]. | |
cep10310e: Event Data Size is over. EngineId=CEPエンジン名, Size=イベントデータサイズ | |
設定内容の不一致 不明なイベントタイプID | 400 Bad Request |
Code=-500 Message=Unknown event type id [イベントタイプ]. | |
cep10108e: Event type is not found. EngineId=CEPエンジン名, eventType=イベントタイプ | |
設定内容の不一致 イベントデータ形式が配備されているイベントタイプ定義と異なる | 400 Bad Request |
Code=-700 Message=It differs from the registered format [イベントの形式]. | |
cep10116e: It differs from the registered format. EngineId=CEPエンジン名, format=イベントの形式 | |
フォーマット異常 不明な文字セット | 415 Unsupported Media Type |
Code=-600 Message=Charset is Abnormal [文字セット名称]. | |
cep10304e: Charset Name is abnormal. EngineId=CEPエンジン名,CharsetName=文字セット名称 | |
処理結果異常 ログ出力処理が失敗 | 500 Internal Server Error |
Code=-200 Message=Logging failed. | |
cep10401e: The Log was not able to be output. EngineId=CEPエンジン名, EVENT=受信イベント, ERRORINFO=内部情報 注:受信イベント中の改行はに変換されて出力されます。システムログに出力可能な長さを超えるイベントの場合、システムログにはイベントの途中まで出力されます。 | |
ビジー状態 CEPサーバが一時的または恒久的に過負荷状態 | 503 Service Unavailable |
Code=-800 Message=Server is busy now. | |
cep10301w: FrontServer is busy. Event is aborted. EngineId=CEPエンジン名 または、 cep10302e: FrontServer is continuously busy. Event is aborted. EngineId=CEPエンジン名 |
(*1) 各段に記載している内容は以下のとおりです。
上段:HTTPステータスコード+補足メッセージ
中段:HTTPレスポンスのメッセージボディ(可変情報は斜体で示しています)
下段:システムログおよびエンジンログの出力メッセージ(可変情報は斜体で示しています)
HTTPアダプターを使用する上での留意点について説明します。
同時接続数について
HTTPアダプターに対して複数のイベント送信アプリケーションから同時に接続する場合、HTTPアダプターの最大同時接続数に達する場合があります。この場合、それ以降に接続するイベント送信アプリケーションからの接続要求が一時的に保留状態になります。
HTTPアダプターで受け付けたイベントデータが処理されしだい保留状態の接続要求に応答するため、イベント送信アプリケーションでは対処の必要はありません。
参考
HTTPアダプターの最大同時接続数は50です。
なお、HTTPアダプターとSOAPアダプターはCEPサービスのWebサーバ機能を共用しているため、実際はSOAPアダプターに対する接続を合わせた接続数となります。
通信プロトコルについて
HTTPアダプターの通信プロトコルでは、HTTPS(HTTP over SSL/TLS)はサポートされません。