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)はサポートされません。