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