Skip navigation

TCPコネクタを使ってESB Muleイベントの送受信をTCPを使って行うことができます。

このトランスポート・プロバイダのJavadocはここにあります。
ソースコードはここになります。

TCPコネクタのプロパティ

プロパティ 説明 デフォルト 必須
receiveTimeout 受信ソケットの読込みタイムアウト(SO_TIMEOUT)。 Socket Default ×
sendTimeout 送信ソケットの読込みタイムアウト(SO_TIMEOUT)。 Socket Default ×
timeout 読込みと書込みタイムアウトの 両方 を設定する。このプロパティを設定するか、receiveTimeout/sendTimeoutを設定します。 Socket Default ×
bufferSize データの読書き用バッファーの大きさ。 Socket Default ×
backlog ServerSocketの最大キューの長さ。受信コネクションのみに有効。 ServerSocket Default ×
tcpProtocol TcpProtocolインターフェースの実装。   ×
tcpProtocolClassName TcpProtocolインターフェースのクラス名。 org.mule.providers.tcp.protocols.DefaultProtocol ×
keepSendSocketOpen 複数ディスパッチ用にソケットを開いて置くか。送信コネクションのみに有効。 false ×
keepAlive 開いているソケットにSO_KEEPALIVEを有効にする。長い間、開いていて利用されていないソケットを自動的にチェックして、コネクションが無くなった場合に閉じる。 false ×
maxRetryCount 削除:コネクタのリトライ設定には、コネクションの戦略を使ってください。
-
-
validateConnections 1 初めて使う時にポートを確認するために、ソケットを瞬時に開いて閉める。
true ×

エンドポイント

TCPエンドポイントは以下のようなソケット・エンドポイントとして指定します:

tcp://localhost:1234

トランスフォーマー

トランスフォーマーが明示的にプロバイダに指定されていない限り、以下のトランスフォーマーがデフォルトで使われます:

トランスフォーマー 説明
ByteArrayToString byte配列をStringに変換する。
StringToByteArray Stringをbyte配列に変換する。

プロトコル

他アプリケーションにデータを転送する場合は、独自のアプリケーション・プロトコールを利用する必要がある場合があります。多くのデータを転送する場合や、遅い回線を利用する場合にデータを分割させないので便利です。このプロトコルはTcpProtocolインターフェースで処理がされます。

プロトコールの実装を設定する必要がない場合は、以下のように記述することができます:

<connector name="tcpConnector" className="org.mule.providers.tcp.TcpConnector">
    <properties>
        <property name="tcpProtocolClassName" value="org.mule.providers.tcp.protocols.LengthProtocol"/>
    </properties>
</connector>

又は、コンテナのビーンを使うことができます:

<connector name="tcpConnector" className="org.mule.providers.tcp.TcpConnector">
    <properties>
        <container-property name="tcpProtocol" reference="myProtocol"/>
    </properties>
</connector>
プロトコル 説明
org.mule.providers.tcp.protocols.DefaultProtocol バッファーに 一時的 にデータが無くなるまでデータを読込む。(unsafe 2
org.mule.providers.tcp.protocols.LengthProtocol バイト・ストリームの先頭に長さと指定されたバイトを読書きする。
org.mule.providers.tcp.protocols.EOFProtocol ストリームが閉じられるまでデータを読む(1つのメッセージ・トランスポートの場合)
org.mule.providers.tcp.protocols.MuleMessageProtocol ESB Mule Messageオブジェクトを完全に読書きし(ただ、ペイロードだけではなく)、correlation IDのようなメタデータ情報を残す。 (unsafe 2)
org.mule.providers.tcp.protocols.MuleMessageEOFProtocol 1 MuleMessageProtocolとEOFProtocolを組合わせる。
org.mule.providers.tcp.protocols.MuleMessageLengthProtocol 1 MuleMessageProtocolとLengthProtocolを組合わせる。
org.mule.providers.tcp.protocols.XmlMessageProtocol XML文またはバッファーが空になったら接頭辞<?xmlで区切る。(unsafe 2)
org.mule.providers.tcp.protocols.XmlMessageEOFProtocol 1 XML文またはストリームが閉じる場合に接頭辞<?xmlで区切る。(EOFProtocolでは利用できないような、複数のメッセージがある場合に利用できる。)

1 Subversionのみ
2 TCPはデータのグルーピング及び読書き間のギャップを保証しない。1つのメッセージのデータは複数の塊で受信される場合がある。unsafeなプロトコルはこのようなfragmentedメッセージを処理することができない。

Adaptavist Theme Builder Powered by Atlassian Confluence