# mulesoft Sockets Connector - Full Documentation # Anypoint Studio を使用した Sockets Connector 1.2 の設定 Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。 Studio でコネクタを追加および設定する手順は、次のとおりです。 1. [Mule プロジェクトを作成します](#create-mule-project)​。 2. [コネクタを Mule プロジェクトに追加します](#add-connector-to-project)​。 3. [コネクタのフローのソケットリスナーソースを設定します](#configure-input-source)​。 4. [フローで Send 操作と Receive 操作を設定します](#add-connector-operation)​。 5. [サポートされる TCP プロトコルを設定します](#configure-other-fields)​。 Studio で初めてコネクタを設定する場合は、​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​[「Sockets Connector リファレンス」](https://docs.mulesoft.com/jp/sockets-connector/latest/sockets-documentation)​を参照してください。 ## [](#create-mule-project)Mule プロジェクトを作成する Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。 1. Studio で、​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。 2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。 ## [](#add-connector-to-project)コネクタを Mule プロジェクトに追加する ソケット用 Anypoint Connector (Sockets Connector) を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​`pom.xml`​ ファイルに必須の連動関係を追加します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 2. **\[Add Dependencies to Project (連動関係をプロジェクトに追加)\]**​ ビューで、検索項目に「​`sockets`​」と入力します。 3. **\[Available modules (使用可能なモジュール)\]**​ で、​**\[Sockets (ソケット)\]**​ をクリックします。 4. **\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。 ## [](#configure-input-source)ソケットリスナーソースを設定する ソースは、指定された条件が満たされたときにフローを開始します。ソケットリスナーソースは、クライアントが接続できるソケットエンドポイントを表します。このエンドポイントを参照して、外部クライアントは TCP または UDP ソケット接続を確立し、メッセージを送信するたびにフローをトリガーします。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[Sockets (ソケット)\]**​ > ​**\[Listener (リスナー)\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (+) をクリックして、アプリケーション内のすべての ​`sockets listener`​ インスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブの ​**\[Connection (接続)\]**​ で、​`Tcp listener`​ 接続または ​`Udp listener`​ 接続を選択します。 6. 選択した接続に応じたタブを設定します。
タブ名 説明

General (一般)

必須の ​[Host (ホスト)]​ 属性および ​[Port (ポート)]​ 属性を設定し、その他の省略可能な項目を設定します。

Buffer Configuration (バッファ設定)

必要に応じて、送受信のバッファサイズ情報を指定します。

TLS

必要に応じて、TLS 情報を指定します。

Timeout Configuration (タイムアウト設定)

必要に応じて、クライアントとサーバーのタイムアウト情報を指定します。

Advanced (詳細)

必要に応じて、再接続戦略を含む再接続情報を指定します。

1. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が特定のサーバーに接続できることを確認します。 2. **\[OK\]**​ をクリックします。 Studio でのフローのソケットリスナーソースは次のようになります。 ![ソケットリスナーソース](/mulesoft/current/ja-jp/sockets-connector/latest/_images/socket-listener-source.png) Figure 1. ソケットリスナーソース Studio でのポート ​`8082`​ でローカル着信接続を受け入れるための TCP 接続を使用したソケットリスナーソースの設定は次のようになります。 ![ソケットリスナーソース設定](/mulesoft/current/ja-jp/sockets-connector/latest/_images/socket-listener-configuration.png) Figure 2. ソケットリスナーソース設定 **\[Configuration XML (設定 XML)\]**​ タブでは、XML は次のように記述されます。 ```xml ``` ## [](#add-connector-operation)Send 操作と Send and Receive 操作を設定する フローにコネクタの操作を追加すると、そのコネクタで実行する特定の操作をすぐに定義できます。Sockets Connector は、2 つの基本操作を提供します。 - Send RequesterConnection に関連付けられているクライアントを使用してデータを送信します。 - Send and receive 関連付けられているクライアントを使用してデータを送信した後、応答を受信するまで、またはタイムアウトになるまで (この場合、null ペイロードが返される) ブロックします。 Send 操作または Send and Receive 操作を設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、次のいずれかを選択します。 - **\[Sockets (ソケット)\]**​ > ​**\[Send\]**​。 - **\[Sockets (ソケット)\]**​ > ​**\[Send and receive\]**​。 2. **\[Send\]**​ 操作または ​**\[Send and receive\]**​ 操作を Studio キャンバスにドラッグします。 3. 操作設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (+) をクリックして、アプリケーション内の ​`Sockets Send`​ または ​`Sockets Send and receive`​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブの ​**\[Connection (接続)\]**​ で、​`Tcp requester`​ 接続または ​`Udp requester`​ 接続を選択します。 6. 選択した接続に応じたタブを設定します。
タブ名 説明

General (一般)

必須の ​[Host (ホスト)]​ 属性および ​[Port (ポート)]​ 属性を設定し、必要に応じて省略可能な項目を設定します。

Buffer Configuration (バッファ設定)

必要に応じて、送受信のバッファサイズ情報を指定します。

Connection (接続)

必要に応じて、サポートされる TCP プロトコルのいずれかを選択して設定します。

Local Address Settings (ローカルアドレス設定)

必要に応じて、ローカルアドレスを指定します。

TLS

必要に応じて、TLS 情報を指定します。

Timeout Configuration (タイムアウト設定)

必要に応じて、クライアントとサーバーのタイムアウト情報を指定します。

Advanced (詳細)

必要に応じて、再接続戦略を含む再接続情報を指定します。

1. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が特定のサーバーに接続できることを確認します。 2. **\[OK\]**​ をクリックします。 さらに、​**Send and receive**​ 操作の場合は、次のように MIME タイプを設定します。 1. フローで ​**\[Send and receive\]**​ 操作をクリックします。 2. **\[MIME Type (MIME タイプ)\]**​ タブで、項目メニューから MIME タイプを選択します。 Studio での Sockets Send 操作および Send and receive 操作は次のようになります。 ![Sockets Send 操作と Send and Receive 操作](/mulesoft/current/ja-jp/sockets-connector/latest/_images/socket-send-operation.png) Figure 3. Sockets Send 操作と Send and Receive 操作 Studio でのポート ​`8082`​ でローカル着信接続を受け入れるための TCP 接続を使用した Send 操作または Send and receive 操作の設定は次のようになります。 ![Sockets Send 操作または Send and Receive 操作の設定](/mulesoft/current/ja-jp/sockets-connector/latest/_images/socket-sendreceive-configuration.png) Figure 4. Sockets Send 操作または Send and Receive 操作の設定 **\[Configuration XML (設定 XML)\]**​ タブでは、Send 操作設定の XML は次のように記述されます。 ```xml ``` Studio での Send and receive 操作の ​`application/json`​ としての MIME タイプの設定は次のようになります。 ![ソケットの MIME タイプ設定](/mulesoft/current/ja-jp/sockets-connector/latest/_images/socket-mimetype-configuration.png) Figure 5. ソケットの MIME タイプ設定 **\[Configuration XML (設定 XML)\]**​ タブでは、Send and receive 操作設定の XML は次のように記述されます。 ```xml ``` ## [](#configure-other-fields)サポートされる TCP プロトコルの設定 Sockets Connector では、TCP 上で実装されるアプリケーションレベルプロトコルをサポートしています。これらのプロトコルを適切に機能させるには、クライアント側とサーバー側の両方に実装する必要があります。 デフォルトでは、Sockets Connector では安全なプロトコルを実装しますが、Anypoint Studio と XML の両方でコネクタ操作用に異なるプロトコルを設定できます。 次のような TCP プロトコルがサポートされています。 - Direct Protocol (ダイレクトプロトコル) ソケットは、現時点で利用できるバイトがなくなるまで読み込みます。遅いネットワークでは、​`EOFProtocol`​ や ​`LengthProtocol`​ の方が信頼性が高くなる場合があります。 - EOF Protocol (EOF プロトコル) 読み込みは、クライアントがストリームを閉じることで終了します。 - Length Protocol (長さのプロトコル) このプロトコルは、整数 (パケット長) と転送するデータを送信する、または読み取ることによって定義されます。 - Custom Class Loading Length Protocol (カスタムクラス読み込み長のプロトコル) 特定のクラスローダーを使用してストリームからオブジェクトを読み込む長さのプロトコル。 - Safe Protocol (安全なプロトコル) すべてのメッセージの前に Cookie を付けるテストプロトコルであり、本番環境では使用できません。 - Streaming Protocol (ストリーミングプロトコル) ソケットの Send 操作が元の ​`InputStream`​ をペイロードとしたメッセージを返せるようにします。 - XML Message Protocol (XML メッセージプロトコル) このプロトコルは、ストリーミング XML ドキュメントを読み取るために使用します。唯一の要件は、各ドキュメントの冒頭に ​` ``` ### [](#send-and-receive-操作の-tcp-プロトコルを設定する)Send and Receive 操作の TCP プロトコルを設定する Send 操作または Send and receive 操作のサポートされる TCP プロトコルを設定する手順は、次のとおりです。 1. ソケット操作の ​**\[Global Element Properties (グローバル要素のプロパティ)\]**​ 設定を開きます。 2. **\[General (一般)\]**​ タブの ​**\[Connection (接続)\]**​ で、​`Tcp requester`​ を選択します。 3. **\[Connection (接続)\]**​ タブで、​**\[Protocol (プロトコル)\]**​ にサポートされるプロトコルのいずれかを選択します。 4. コネクタの必須項目を設定します。 5. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が特定のサーバーに接続できることを確認します。 6. **\[OK\]**​ をクリックします。 Studio でのダイレクトプロトコルを使用するための Send 操作の設定は次のようになります。 ![ソケットのダイレクトプロトコル設定](/mulesoft/current/ja-jp/sockets-connector/latest/_images/socket-tcp2-configuration.png) Figure 7. ソケットのダイレクトプロトコル設定 **\[Configuration XML (設定 XML)\]**​ タブでは、XML は次のように記述されます。 ```xml ``` ## [](#view-app-log)アプリケーションログの表示 問題があるかどうかを確認するために、アプリケーションログを表示できます。 - アプリケーションを Anypoint Platform から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。 - コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。 アプリケーションのログファイル (​`log4j2.xml`​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​`MULE_HOME/logs/.log`​ でアプリケーションログを表示することもできます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Anypoint Studio を使用したコネクタの設定](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio) - [Sockets Connector リファレンス](https://docs.mulesoft.com/jp/sockets-connector/latest/sockets-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Sockets Connector 1.2 ソケット用 Anypoint Connector (Sockets Connector) では、ソケットリスナー、送信機能、送受信機能が提供されます。また、TCP および UDP リクエスターが提供されます。 ## [](#始める前に)始める前に このコネクタを使用するには、以下に精通している必要があります。 - Anypoint Connector - Mule Runtime Engine (Mule) - Mule フローの要素 - グローバル要素 - Anypoint Studio を使用した Mule アプリケーションの作成 アプリケーションを作成するには、Anypoint Platform および Anypoint Studio へのアクセスが必要です。 ## [](#対象者)対象者 - 新規ユーザーは、以下をお読みください。 - Mule アプリケーションを作成するための​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/jp/sockets-connector/latest/sockets-connector-studio) - [「例」](https://docs.mulesoft.com/jp/sockets-connector/latest/sockets-connector-examples)​には、コネクタのユースケースが 1 つ以上用意されています。 - 高度なユーザーは、以下をお読みください。 - [XML と Maven のサポート](https://docs.mulesoft.com/jp/sockets-connector/latest/sockets-connector-xml-maven) - [「例」](https://docs.mulesoft.com/jp/sockets-connector/latest/sockets-connector-examples)​には、コネクタのユースケースが 1 つ以上用意されています。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://docs.mulesoft.com/connectors/introduction/intro-use-exchange) - [Exchange の Sockets Connector](https://anypoint.mulesoft.com/exchange/org.mule.connectors/mule-sockets-connector/) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Sockets Connector の XML および Maven サポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 Anypoint Studio の XML エディターまたはテキストエディターから Mule Runtime Engine (Mule) アプリケーションを手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションでコネクタにアクセスできます。 コネクタを Studio にインストールすると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力します。さらに、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​``​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/sockets http://www.mulesoft.org/schema/mule/sockets/current/mule-sockets.xsd ``` 次の例は、​``​ XML ブロック内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします: ```xml org.mule.connectors mule-sockets-connector x.x.x mule-plugin ``` `x.x.x`​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`Sockets`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#次のステップ)次のステップ 名前空間および ​`pom.xml`​ ファイルを完了したら、​[例](https://docs.mulesoft.com/jp/sockets-connector/latest/sockets-connector-examples)​を試すことができます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Sockets Connector のトラブルシューティング Sockets 用 Anypoint Connector (Sockets Connector) のトラブルシューティングを行うには、冗長ログの有効化と、スローされる一般的なメッセージの解釈に関する情報を理解しておきます。 ## [](#冗長ログの有効化)冗長ログの有効化 アプリケーションと Sockets Connector のやりとりが失敗する理由の理解を深めるには、コネクタの冗長ログを一時的に有効にします。 Mule アプリケーションのパフォーマンスに影響するため、トラブルシューティングが完了したら、必ず拡張された冗長性を無効にしてください。 設定ファイルで冗長ログを有効にする手順は、次のとおりです。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクト名を開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. ``​ タグ内に ​``​ タグを追加します。 ```xml ... ... ``` 6. アプリケーションの変更を保存します。 7. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 ## [](#一般的なスローを理解する)一般的なスローを理解する ここでは、一般的なスローメッセージとその解決方法を示します。 - SOCKETS:UNKNOWN\_HOST Mule ではホストの IP アドレスを判断できません。 - SOCKETS:CONNECTIVITY 接続が有効ではなくなりました。アプリケーションの設定で定義されている場合、再接続ポリシーを適用してください。 - SOCKETS:CONNECTION\_TIMEOUT The attempt to connect to the Socket timed out. (ソケットへの接続試行がタイムアウトになりました。) - SOCKETS:RETRY\_EXHAUSTED 操作の最大再試行回数に達しました。 - SOCKETS:LENGTH\_EXCEEDED There was an attempt of reading or writing more bytes than the allowed limit. (許可されている制限を超えるバイト数の読み取りまたは書き込みが試行されました。) ## [](#関連情報)関連情報 - [Sockets Connector リファレンス](https://docs.mulesoft.com/jp/sockets-connector/latest/sockets-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [Known Issues](https://help.salesforce.com/s/issues) # Sockets Connector リファレンス Sockets Connector v1.2 ソケット用 Anypoint Connector (Sockets Connector) では、ソケットリスナー、送信機能、送受信機能が提供されます。TCP および UDP リクエスターが提供されます。 リリースノート: [Sockets Connector リリースノート](https://docs.mulesoft.com/jp/release-notes/connector/connector-sockets) ## [](#設定)設定 * * * ### [](#listener-config)リスナー設定 リスナーソケット設定 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定する接続型。

x

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Mule Runtime で期限切れに相当するとみなされます。これは、インスタンスが有効期限の対象となった瞬間にプラットフォームでそのインスタンスが期限切れになるということではありません。必要に応じて、インスタンスがパージされます。

#### [](#接続種別)接続種別 ##### [](#listener-config_tcp-listener)Tcp Listener (TCP リスナー) SocketListener によって使用される TcpListenerConnection のインスタンスを提供する ConnectionProvider。 ###### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

Protocol (プロトコル)

データがどのように読み書きされるのかを認識している TcpProtocol。指定しないと SafeProtocol が使用されます。

TLS Configuration (TLS 設定)

TLS

新規 SSL 接続の受け入れに、プレーン TCP ServerSocket ではなく SSLServerSocket を使用することを意味します。

Port (ポート)

Number (数値)

接続のポート番号

x

Host (ホスト)

String (文字列)

接続のホスト名

x

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Send Buffer Size (送信バッファサイズ)

Number (数値)

データ送信時に使用するバッファのサイズ (バイト) で、ソケット自体に設定されます。

Receive Buffer Size (受信バッファサイズ)

Number (数値)

データ受信時に使用するバッファのサイズ (バイト) で、ソケット自体に設定されます。

Client Timeout (クライアントタイムアウト)

Number (数値)

ソケットに対して ​SO_TIMEOUT​ 値を設定し、ブロック操作で失敗するまでにソケットが待機する時間 (ミリ秒) を示します。値が 0 (デフォルト) の場合、無限に待機します。

Reuse Address (アドレスの再利用)

Boolean (ブール)

バインド前にソケットに対して ​SO_REUSEADDRESS​ (デフォルト) 値を設定します。これにより、ソケットが再利用されるときに「address already in use (アドレスはすでに使用されています)」エラーの発生が減少します。

true

Send TCP With No Delay (遅延なく TCP を送信)

Boolean (ブール)

設定した場合、効率を上げるために送信データをまとめることなく即時に送信します。ソケットのデフォルトが false でも、デフォルトで true になります。これは、レイテンシーに対してネットワークトラフィックの量を減らして最適化することが、今日ではほぼ問題にはなり得ないためです。

true

Linger (延長)

Number (数値)

SO_LINGER​ 値を設定し、残りのデータが正しく送信されるように、ソケットが閉じるまでにかかる時間 (ミリ秒) を示します。

Keep Alive (キープアライブ)

Boolean (ブール)

開いているソケットで ​SO_KEEPALIVE​ 動作を有効にします。接続が使用できなくなった場合、開いているが長時間使用されていないソケット接続を自動的にチェックして閉じます。これはソケット自体のプロパティであり、サーバーへの接続をリサイクルするまでキープアライブで維持するかどうかを制御するためにサーバーソケットで使用されます。

false

Fail On Unresolved Host (ホストを解決できない場合は失敗)

Boolean (ブール)

作成時のソケットがエンドポイントに設定されているホストを解決できない場合に失敗するかどうか。ただし、false に設定して、未解決のホストを許容することができ、プロキシ経由での接続時に便利です。

true

Server Timeout (サーバータイムアウト)

Number (数値)

ソケットをサーバーとして使用する場合に ​SO_TIMEOUT​ 値を設定します。「accept」操作に適用されるタイムアウトです。値が 0 (デフォルト) の場合は、接続が確立されるまで無限に待機します。

Receive Backlog (受信バックログ)

Number (数値)

受信接続の最大キュー長。

50

##### [](#listener-config_udp-listener)UDP リスナー SocketListener によって使用される UdpListenerConnection のインスタンスを提供する ConnectionProvider。 ###### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Port (ポート)

Number (数値)

接続のポート番号

x

Host (ホスト)

String (文字列)

接続のホスト名

x

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Send Buffer Size (送信バッファサイズ)

Number (数値)

データ送信時に使用するバッファのサイズ (バイト) で、ソケット自体に設定されます。

Receive Buffer Size (受信バッファサイズ)

Number (数値)

データ受信時に使用するバッファのサイズ (バイト) で、ソケット自体に設定されます。

Client Timeout (クライアントタイムアウト)

Number (数値)

ソケットに対して ​SO_TIMEOUT​ 値を設定し、ブロック操作で失敗するまでにソケットが待機する時間 (ミリ秒) を示します。値が 0 (デフォルト) の場合、無限に待機します。

Reuse Address (アドレスの再利用)

Boolean (ブール)

バインド前にソケットに対して ​SO_REUSEADDRESS​ (デフォルト) 値を設定します。これにより、ソケットが再利用されるときに「address already in use (アドレスはすでに使用されています)」エラーの発生が減少します。

true

Broadcast (ブロードキャスト)

Boolean (ブール)

DatagramSocket への ​SO_BROADCAST​ を有効/無効にします。

false

#### [](#関連付けられたソース)関連付けられたソース - [リスナー](#listener) * * * ### [](#request-config)要求設定 リクエスターソケットの設定 #### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定する接続型。

x

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Mule Runtime で期限切れに相当するとみなされます。これは、インスタンスが有効期限の対象となった瞬間にプラットフォームでそのインスタンスが期限切れになるということではありません。必要に応じて、インスタンスがパージされます。

#### [](#接続種別-2)接続種別 ##### [](#request-config_tcp-requester)Tcp Requester (TCP リクエスター) SocketOperations によって使用される TcpRequesterConnection のインスタンスを提供する ConnectionProvider。 ###### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Local Address Settings (ローカルアドレス設定)

この設定パラメーターは Socket がバインドされるアドレスを参照します。

Protocol (プロトコル)

データがどのように読み書きされるのかを認識している TcpProtocol。指定しない場合、SafeProtocol が使用されます。

TLS Configuration (TLS 設定)

TLS

新規 SSL 接続の受け入れに、プレーン TCP ServerSocket ではなく SSLServerSocket を使用することを意味します。

Port (ポート)

Number (数値)

接続のポート番号

x

Host (ホスト)

String (文字列)

接続のホスト名

x

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Pooling Profile (プーリングプロファイル)

接続プールの特性

Send Buffer Size (送信バッファサイズ)

Number (数値)

データ送信時に使用するバッファのサイズ (バイト) で、ソケット自体に設定されます。

Receive Buffer Size (受信バッファサイズ)

Number (数値)

データ受信時に使用するバッファのサイズ (バイト) で、ソケット自体に設定されます。

Client Timeout (クライアントタイムアウト)

Number (数値)

ソケットに対して ​SO_TIMEOUT​ 値を設定し、ブロック操作で失敗するまでにソケットが待機する時間 (ミリ秒) を示します。値が 0 (デフォルト) の場合、無限に待機します。

Reuse Address (アドレスの再利用)

Boolean (ブール)

バインド前にソケットに対して ​SO_REUSEADDRESS​ (デフォルト) 値を設定します。これにより、ソケットが再利用されるときに「address already in use (アドレスはすでに使用されています)」エラーの発生が減少します。

true

Send TCP With No Delay (遅延なく TCP を送信)

Boolean (ブール)

設定した場合、効率を上げるために送信データをまとめることなく即時に送信します。ソケットのデフォルトが false でも、デフォルトで true になります。これは、レイテンシーに対してネットワークトラフィックの量を減らして最適化することが、今日ではほぼ問題にはなり得ないためです。

true

Linger (延長)

Number (数値)

SO_LINGER​ 値を設定し、残りのデータが正しく送信されるように、ソケットが閉じるまでにかかる時間 (ミリ秒) を示します。

Keep Alive (キープアライブ)

Boolean (ブール)

開いているソケットで ​SO_KEEPALIVE​ 動作を有効にします。接続が使用できなくなった場合、開いているが長時間使用されていないソケット接続を自動的にチェックして閉じます。これはソケット自体のプロパティであり、サーバーへの接続をリサイクルするまでキープアライブで維持するかどうかを制御するためにサーバーソケットで使用されます。

false

Fail On Unresolved Host (ホストを解決できない場合は失敗)

Boolean (ブール)

作成時のソケットがエンドポイントに設定されているホストを解決できない場合に失敗するかどうか。ただし、false に設定して、未解決のホストを許容することができ、プロキシ経由での接続時に便利です。

true

Connection Timeout (接続タイムアウト)

Number (数値)

リモートサーバーへのアウトバウンド接続が正常に作成されるまで待機するミリ秒数。デフォルトは 30 秒です。

30

##### [](#request-config_udp-requester)UDP リクエスター SocketOperations によって使用される UdpRequesterConnection のインスタンスを提供する ConnectionProvider。 ###### [](#パラメーター-6)パラメーター
名前 型 説明 デフォルト値 必須

Local Address Settings (ローカルアドレス設定)

この設定パラメーターは DatagramSocket がバインドされるアドレスを参照します。

Port (ポート)

Number (数値)

接続のポート番号

x

Host (ホスト)

String (文字列)

接続のホスト名

x

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Pooling Profile (プーリングプロファイル)

接続プールの特性

Send Buffer Size (送信バッファサイズ)

Number (数値)

データ送信時に使用するバッファのサイズ (バイト) で、ソケット自体に設定されます。

Receive Buffer Size (受信バッファサイズ)

Number (数値)

データ受信時に使用するバッファのサイズ (バイト) で、ソケット自体に設定されます。

Client Timeout (クライアントタイムアウト)

Number (数値)

ソケットに対して ​SO_TIMEOUT​ 値を設定し、ブロック操作で失敗するまでにソケットが待機する時間 (ミリ秒) を示します。値が 0 (デフォルト) の場合、無限に待機します。

Reuse Address (アドレスの再利用)

Boolean (ブール)

バインド前にソケットに対して ​SO_REUSEADDRESS​ (デフォルト) 値を設定します。これにより、ソケットが再利用されるときに「address already in use (アドレスはすでに使用されています)」エラーの発生が減少します。

true

Broadcast (ブロードキャスト)

Boolean (ブール)

DatagramSocket への ​SO_BROADCAST​ を有効/無効にします。

false

## [](#サポートされている操作)サポートされている操作 - [Send (送信)](#send) - [Send And Receive](#sendAndReceive) ## [](#操作)操作 ### [](#send)Send (送信) `` RequesterConnection に関連付けられているクライアントを使用してデータを送信します。 #### [](#パラメーター-7)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Content (コンテンツ)

Binary (バイナリ)

シリアル化されてソケットを介して送信されるデータ。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

### [](#次の設定の場合)次の設定の場合 - [要求設定](#request-config) #### [](#スロー)スロー - SOCKETS:UNKNOWN\_HOST - SOCKETS:CONNECTIVITY - SOCKETS:CONNECTION\_TIMEOUT - SOCKETS:RETRY\_EXHAUSTED - SOCKETS:LENGTH\_EXCEEDED ### [](#sendAndReceive)Send And Receive `` RequesterConnection に関連付けられているクライアントを使用してデータを送信した後、応答を受信するまで、またはタイムアウトになるまで (この場合、null ペイロードが返される) ブロックします。 #### [](#パラメーター-8)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Content (コンテンツ)

Binary (バイナリ)

シリアル化されてソケットを介して送信されるデータ。

#[payload]

Output Mime Type (出力 MIME タイプ)

String (文字列)

この操作で出力されるペイロードの MIME タイプ。

Output Encoding (出力エンコード)

String (文字列)

この操作で出力されるペイロードのエンコード。

Streaming Strategy (ストリーミング戦略)

反復可能ストリームを使用すべきかどうか、およびその動作を設定します。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力)出力

型

Binary (バイナリ)

Attributes Type (属性型)

### [](#次の設定の場合-2)次の設定の場合 - [要求設定](#request-config) #### [](#スロー-2)スロー - SOCKETS:UNKNOWN\_HOST - SOCKETS:CONNECTIVITY - SOCKETS:CONNECTION\_TIMEOUT - SOCKETS:RETRY\_EXHAUSTED - SOCKETS:LENGTH\_EXCEEDED ## [](#ソース)ソース ### [](#listener)リスナー `` 設定されたホストとポートで特定のプロトコルのソケット接続をリスンします。 新しい接続を受信するたびに、このソースは、その特定の接続の通信を処理するように SocketWorker をスケジュールします。 #### [](#パラメーター-9)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Output Mime Type (出力 MIME タイプ)

String (文字列)

この操作で出力されるペイロードの MIME タイプ。

Output Encoding (出力エンコード)

String (文字列)

この操作で出力されるペイロードのエンコード。

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時、このソースをプライマリノード上でのみ実行する必要があるかどうか。

Streaming Strategy (ストリーミング戦略)

反復可能ストリームを使用すべきかどうか、およびその動作を設定します。

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

Response Value (応答値)

Binary (バイナリ)

#[payload]

#### [](#出力-2)出力

型

Binary (バイナリ)

Attributes Type (属性型)

### [](#次の設定の場合-3)次の設定の場合 - [リスナー設定](#listener-config) ## [](#型)型 ### [](#Tls)TLS
項目 型 説明 デフォルト値 必須

Enabled Protocols (有効化されたプロトコル)

String (文字列)

このコンテキストで有効化されたプロトコルのカンマ区切りリスト。

Enabled Cipher Suites (有効化された暗号化スイート)

String (文字列)

このコンテキストで有効化された暗号化スイートのカンマ区切りリスト。

Trust Store (トラストストア)

Key Store (キーストア)

Revocation Check (取り消し確認)

### [](#TrustStore)トラストストア
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

トラストストアの場所。この場所は、可能であれば、現在のクラスパスとファイルシステムに対して解決されます。

Password (パスワード)

String (文字列)

トラストストアを保護するために使用するパスワード。

Type (型)

String (文字列)

使用するストアの型。

Algorithm (アルゴリズム)

String (文字列)

トラストストアで使用するアルゴリズム。

Insecure (安全ではない)

Boolean (ブール)

true の場合、証明書の検証が行われず、攻撃に対して脆弱な接続がレンダリングされます。各自の責任で使用してください。

### [](#KeyStore)Key Store (キーストア)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

トラストストアの場所。この場所は、可能であれば、現在のクラスパスとファイルシステムに対して解決されます。

Type (型)

String (文字列)

使用するストアの型。

Alias (別名)

String (文字列)

キーストアに多数の非公開キーが含まれている場合は、この属性によって使用するキーの別名を示します。定義しない場合、ファイルにある最初のキーがデフォルトで使用されます。

Key Password (キーパスワード)

String (文字列)

非公開キーを保護するために使用するパスワード。

Password (パスワード)

String (文字列)

キーストアを保護するために使用するパスワード。

Algorithm (アルゴリズム)

String (文字列)

キーストアで使用するアルゴリズム。

### [](#standard-revocation-check)Standard Revocation Check (標準の取り消し確認)
項目 型 説明 デフォルト値 必須

Only End Entities (最後のエンティティのみ)

Boolean (ブール)

証明書チェーンの最後の要素のみを確認します。

Prefer Crls (CRL を優先)

Boolean (ブール)

最初に OCSP ではなく CRL を試みます。

No Fallback (代替なし)

Boolean (ブール)

第 2 の確認方法を使用しません。

Soft Fail (ソフトフェール)

Boolean (ブール)

取り消しサーバーに到達できない場合や取り消しサーバーが混雑している場合に検証エラーを回避します。

### [](#custom-ocsp-responder)Custom Ocsp Responder (カスタム Ocsp レスポンダー)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

OCSP レスポンダーの URL。

Cert Alias (証明書の別名)

String (文字列)

(トラストストアに含まれている) OCSP 応答の署名証明書の別名 (存在する場合)。

### [](#crl-file)Crl File (Crl ファイル)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

CRL ファイルへのパス。

### [](#Reconnection)Reconnection (再接続)
項目 型 説明 デフォルト値 必須

Fails Deployment (デプロイメントに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

### [](#reconnect)Reconnect (再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Count (数)

Number (数値)

再接続の試行回数。

### [](#reconnect-forever)Reconnect Forever (繰り返し再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー)
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

maxIdleTime 属性の時間単位

### [](#ImmutableSocketAttributes)Immutable Socket Attributes (ミュート不能なソケット属性)
項目 型 説明 デフォルト値 必須

Port (ポート)

Number (数値)

x

Host Address (ホストアドレス)

String (文字列)

x

Host Name (ホスト名)

String (文字列)

x

Local Certificates (ローカル証明書)

Any の配列

SSL ローカル証明書。ソケットが SSL ソケットでない場合は NULL です。

Peer Certificates (ピア証明書)

Any の配列

SSL ピア証明書。ソケットが SSL ソケットでない場合は NULL です。

### [](#repeatable-in-memory-stream)Repeatable In Memory Stream (反復可能なメモリ内ストリーム)
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

ストリームをコンシュームしてランダムにアクセスするために割り当てられるメモリ量。ストリームに含まれているデータがこのバッファに適合できる量を超えている場合、bufferSizeIncrement 属性に従ってバッファが拡張され、上限は maxInMemorySize となります。

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、どれだけ拡張するか。値を 0 または負の値に設定すると、バッファが拡張されません。つまり、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。

Max Buffer Size (最大バッファサイズ)

Number (数値)

使用するメモリの最大量。これを超えると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

これらのすべての属性の単位

### [](#repeatable-file-store-stream)Repeatable File Store Stream (反復可能なファイルストアストリーム)
項目 型 説明 デフォルト値 必須

In Memory Size (メモリ内サイズ)

Number (数値)

データをメモリ内に保持するためにストリームで使用する最大メモリを定義します。これを超えると、ディスクのコンテンツがバッファされます。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

maxInMemorySize で表される単位

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー)
項目 型 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

正常に処理されずにプロセス失敗メッセージがトリガーされるまでにメッセージを再配信できる最大回数。

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。設定しない場合、デフォルトの SHA-256 になります。

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されるかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、useSecureHash が false の場合にのみ設定できます。

Object Store (オブジェクトストア)

Object Store (オブジェクトストア)

各メッセージの再配信カウンターが保存されるオブジェクトストア。

### [](#SocketConnectionSettings)Socket Connection Settings (ソケットコネクション設定)
項目 型 説明 デフォルト値 必須

Port (ポート)

Number (数値)

接続のポート番号

x

Host (ホスト)

String (文字列)

接続のホスト名

x

### [](#PoolingProfile)Pooling Profile (プーリングプロファイル)
項目 型 説明 デフォルト値 必須

Max Active (最大アクティブ)

Number (数値)

一度にセッションから借りることができる Mule コンポーネントの数を制御します。負の値に設定した場合、同時にアクティブにできるコンポーネントの数に制限はありません。maxActive を超えた場合、プールは枯渇します。

Max Idle (最大アイドル)

Number (数値)

プール内で同時にアイドル状態のままにできる Mule コンポーネントの最大数。負の値に設定した場合、同時にアイドルにできる Mule コンポーネントの数に制限はありません。

Max Wait (最大待機)

Number (数値)

プールが枯渇し、exhaustedAction が ​WHEN_EXHAUSTED_WAIT​ に設定されている場合に、プールされたコンポーネントが使用可能になるまで待機する時間 (ミリ秒) を指定します。

Min Eviction Millis (最小除去時間)

Number (数値)

オブジェクトが除去対象となるまでにオブジェクトをプール内でアイドル状態のままにできる最小時間を決定します。正の値以外の場合、アイドル時間のみによってオブジェクトがプールから削除されることはありません。

Eviction Check Interval Millis (除去確認間隔)

Number (数値)

オブジェクトエビクターの実行間隔 (ミリ秒) を指定します。正の値以外の場合、オブジェクトエビクターは実行されません。

Exhausted Action (枯渇アクション)

Enumeration (列挙)。次のいずれかになります。

  • WHEN_EXHAUSTED_GROW​

  • WHEN_EXHAUSTED_WAIT​

  • WHEN_EXHAUSTED_FAIL

Mule コンポーネントプールが枯渇した場合のプールの動作を指定します。有効な値: 「​WHEN_EXHAUSTED_FAIL​」は、NoSuchElementException をスローします。「​WHEN_EXHAUSTED_WAIT​」は、新しいオブジェクトまたはアイドル状態のオブジェクトを使用できるようになるまで Object.wait(long) を呼び出してブロックします。「​WHEN_EXHAUSTED_GROW​」は、新しい Mule インスタンスを作成して返すため、基本的に maxActive は無意味になります。正の maxWait 値を指定した場合、最大で数ミリ秒ブロックされた後 NoSuchElementException が発生します。maxThreadWait が負の値の場合、永久にブロックします。

Initialisation Policy (初期化ポリシー)

Enumeration (列挙)。次のいずれかになります。

  • INITIALISE_NONE​

  • INITIALISE_ONE​

  • INITIALISE_ALL

プール内のコンポーネントの初期化方法を決定します。有効な値: INITIALISE_NONE​ (起動時にコンポーネントをプールに読み込まない)、​INITIALISE_ONE​ (起動時に 1 つの初期コンポーネントをプールに読み込む)、または ​INITIALISE_ALL​ (起動時にすべてのコンポーネントをプールに読み込む)。

Disabled

Boolean (ブール)

プーリングを無効にする必要があるかどうか

### [](#SafeProtocol)Safe Protocol (安全なプロトコル) このテストプロトコルはすべてのメッセージの前に Cookie を付けるものであり、本番環境では使用できません。
項目 型 説明 デフォルト値 必須

Max Message Length (最大メッセージ長)

Number (数値)

メッセージの最大長を示します。

-1

Encoding (エンコード)

String (文字列)

Cookie のシリアル化に使用するエンコードを示します。

Rethrow Exception On Read (読み取り時に例外を再スロー)

Boolean (ブール)

読み取り時にエラーがあった場合に例外を再スローするかどうかを示します。

false

### [](#DirectProtocol)Direct Protocol (ダイレクトプロトコル) このプロトコルにより、ソケットは現時点で利用できるバイトがなくなるまで読み込むことができます。遅いネットワークでは、​`EOFProtocol`​ や ​`LengthProtocol`​ の方が信頼性が高くなる場合があります。
項目 型 説明 デフォルト値 必須

Rethrow Exception On Read (読み取り時に例外を再スロー)

Boolean (ブール)

読み取り時にエラーがあった場合に例外を再スローするかどうかを示します。

false

### [](#LengthProtocol)Length Protocol (長さのプロトコル) このプロトコルは、整数 (パケット長) と転送するデータを送信する、または読み取ることによって定義されます。
項目 型 説明 デフォルト値 必須

Max Message Length (最大メッセージ長)

Number (数値)

メッセージの最大長を示します。

-1

Rethrow Exception On Read (読み取り時に例外を再スロー)

Boolean (ブール)

読み取り時にエラーがあった場合に例外を再スローするかどうかを示します。

false

### [](#StreamingProtocol)Streaming Protocol (ストリーミングプロトコル) このプロトコルにより、ソケットの Send 操作は元の InputStream をペイロードとしたメッセージを返せます。
項目 型 説明 デフォルト値 必須

Rethrow Exception On Read (読み取り時に例外を再スロー)

Boolean (ブール)

読み取り時にエラーがあった場合に例外を再スローするかどうかを示します。

false

### [](#XmlMessageProtocol)XML Message Protocol (XML メッセージプロトコル) このプロトコルでは、ストリーミング XML ドキュメントを読み取ります。唯一の要件は、各ドキュメントの冒頭に ​` 項目 型 説明 デフォルト値 必須

Rethrow Exception On Read (読み取り時に例外を再スロー)

Boolean (ブール)

読み取り時にエラーがあった場合に例外を再スローするかどうかを示します。

false

### [](#xml-message-eof-protocol)XML Message Eof Protocol (XML メッセージ Eof プロトコル) このプロトコルは ​`XmlMessageProtocol`​ を拡張して、新しいメッセージまたは EOF が見つかるまで読み取りを続行します。
項目 型 説明 デフォルト値 必須

Rethrow Exception On Read (読み取り時に例外を再スロー)

Boolean (ブール)

読み取り時にエラーがあった場合に例外を再スローするかどうかを示します。

false

### [](#CustomProtocol)Custom Protocol (カスタムプロトコル) `TcpProtocol`​ を拡張するクラスを作成して、自分のカスタムプロトコルを定義します。
項目 型 説明 デフォルト値 必須

Class (クラス)

String (文字列)

TcpProtocol をカスタムプロトコルとして使用するために拡張する完全修飾クラス名への参照

x

### [](#eof-protocol)Eof Protocol (EOF プロトコル) クライアントが EOF プロトコルを使用してサーバーに接続するときに、ソケット接続出力ストリームにメッセージを書き込みます。メッセージの終了を通知するには、クライアントは出力ストリームを閉じ、入力ストリームを開いたままにし、サーバーからの応答を待機して、ファイルの末尾 (EOF) を通知する必要があります。この動作はハーフクローズと呼ばれます。次に、サーバーは応答を送信して、その出力ストリームとソケット接続全体を閉じます。 TLS 1.2 以前のバージョンではハーフクローズ機能がサポートされていないため、セキュアな TLS 接続として TLS 1.3 および JDK 11 を使用します。ハーフクローズ機能では、クローズ通知アラートをトリガーして、TLS 切り捨て攻撃を回避します。JDK 11 以降のバージョンでは、TLS 1.3 がサポートされています。また、プーリングプロファイルは ​`EofProtocol`​ と互換性がありません。
項目 型 説明 デフォルト値 必須

Rethrow Exception On Read (読み取り時に例外を再スロー)

Boolean (ブール)

読み取り時にエラーがあった場合に例外を再スローするかどうかを示します。

false

### [](#CustomClassLoadingLengthProtocol)Custom Class Loading Length Protocol (カスタムクラス読み込み長のプロトコル) 特定のクラスローダーを使用してストリームからオブジェクトを読み込む長さのプロトコル。
項目 型 説明 デフォルト値 必須

Class Loader (クラスローダー)

Any (任意)

Max Message Length (最大メッセージ長)

Number (数値)

メッセージの最大長を示します。

-1

Rethrow Exception On Read (読み取り時に例外を再スロー)

Boolean (ブール)

読み取り時にエラーがあった場合に例外を再スローするかどうかを示します。

false

## [](#関連情報)関連情報 - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # ソケットの例 ソケット用 Anypoint Connector (Sockets Connector) を使用すると、UDP ソケットと TCP ソケットの両方を介してトランスポートレイヤーパッケージを送受信できます。次の例では、アプリケーションで実装するトランスポートレイヤープロトコルを考慮した、利用できる操作の使用方法と、カスタム TCP プロトコルの作成方法を示しています。 ## [](#メッセージの送信)メッセージの送信 次の例では、ソケットリスナーをセットアップしてある状態でアプリケーションを作成します。このアプリケーションは、外部クライアントから特定のデータを受信すると、データベースクエリを実行し、取得した結果をメッセージとして UDP サーバーソケットに送信します。この例では UDP を選択しましたが、Send 操作では TCP ソケットと UDP ソケットの両方にメッセージを送信することができます。 ```xml #["SELECT first_name, last_name from SYSTEM.MUSICIANS where id = :id"] ``` この例をテストする方法: 1. 次のスクリプトで Oracle データベースを初期化します。 ```xml CREATE TABLE SYSTEM.MUSICIANS( id INTEGER GENERATED BY DEFAULT AS IDENTITY, age INTEGER, first_name VARCHAR2(100), last_name VARCHAR2(100), PRIMARY KEY(id) ); INSERT INTO SYSTEM.MUSICIANS(age, first_name, last_name) VALUES(37, 'Farrokh', 'Bulsara'); INSERT INTO SYSTEM.MUSICIANS(age, first_name, last_name) VALUES(36, 'Brian Harold', 'May'); INSERT INTO SYSTEM.MUSICIANS(age, first_name, last_name) VALUES(35, 'Roger', 'Meddows Taylor'); INSERT INTO SYSTEM.MUSICIANS(age, first_name, last_name) VALUES(32, 'John', 'Deacon'); ``` 1. netcat コマンド ​`nc -ul 8085`​ を実行して、ポート 8085 で結果の送信先となる UDP サーバーを起動します。 1. Mule アプリケーションを実行し、netcat コマンド ​`nc localhost 8082`​ を実行してデータ ​`{"id": 2}`​ を送信することで、TCP クライアントソケットを起動して想定されるクエリパラメーターを送信します。 ## [](#メッセージの送受信)メッセージの送受信 ソケットは全二重であるため、両方向通信が可能であり、メッセージの送受信を同時に行うことができます。次の例の操作は、メッセージを送信するだけの例とは少し異なり、クライアントにデータを送信するだけではなく、応答も待機します。 この操作は、TCP ソケットと UDP ソケットの両方で使用できます。 操作は以下を行います。 1. RequesterConnection に関連付けられているクライアントを使用してデータを送信します。 2. データを受信するかタイムアウトになるまでブロックします (タイムアウトになった場合は NULL ペイロードが返されます)。 この例は、データ送信のみの例に新しいフローの ​`socketSendQueryAndReceiveResult`​ を追加して ​`socketSearchDatabaseAndReturnResult`​ からのリスナーに接続し、クエリ文字列を送信して、応答を待ちます。応答はファイルに書き込まれます。 ```xml #["SELECT first_name, last_name from SYSTEM.MUSICIANS where id = :id"] ``` この例をテストするには、データ送信の例と同じデータベース設定を使用して、Mule アプリケーションを実行し、netcat コマンド ​`nc localhost 8085`​ を使用してエンドポイントにアクセスして、データ ​`{"id":2}`​ を送信します。 ## [](#カスタム-tcp-プロトコルを作成する)カスタム TCP プロトコルを作成する 次の例では、文字列ヘッダーを送信されるすべてのメッセージに追加し、すべての追加文字を切り捨てて入力メッセージサイズを固定長に制限する TCP ベースのカスタムプロトコルを作成します。 1. `TcpProtocol`​ インターフェースを実装するクラスを作成します。 ```java package org.mule.extension.socket.protocol; import static java.lang.System.arraycopy; import static org.slf4j.LoggerFactory.getLogger; import org.apache.commons.io.output.ByteArrayOutputStream; import org.mule.extension.socket.api.socket.tcp.TcpProtocol; import org.slf4j.Logger; import java.io.IOException; import java.io.OutputStream; import java.io.InputStream; import java.io.ByteArrayInputStream; import java.io.BufferedOutputStream; public class CustomTestTcpProtocol implements TcpProtocol { protected static final int READ_ATTEMPTS = 50; protected static final int CUSTOM_BUFFER_SIZE = 30; private static final String HEADER = "This is my custom protocol."; private static final Logger LOGGER = getLogger(CustomTestTcpProtocol.class); protected int bufferSize; public CustomTestTcpProtocol() { this(CUSTOM_BUFFER_SIZE); } public CustomTestTcpProtocol(int bufferSize) { this.bufferSize = bufferSize; } @Override public InputStream read(InputStream socketIs) throws IOException { byte[] buffer = new byte[HEADER.length() + bufferSize]; int bytesRead, attempts = 0; while ((bytesRead = socketIs.read(buffer)) <= 0 && (attempts < READ_ATTEMPTS)) { attempts++; } if (bytesRead <= 0) { throw new IOException("Number of read attempts exceeded! Failed to read any data from socket!"); } ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(bytesRead); byteArrayOutputStream.write(buffer, 0, bytesRead); return new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); } @Override public void write(OutputStream os, InputStream data) throws IOException { byte[] messageToSend = new byte[HEADER.length() + bufferSize]; byte[] inputPayload = new byte[bufferSize]; int dataLength = data.read(inputPayload); if (dataLength == bufferSize) { LOGGER.warn("Data length exceeds buffer size so data will be chunked."); } arraycopy(HEADER.getBytes(), 0, messageToSend, 0, HEADER.length()); if (dataLength >= 0) { arraycopy(inputPayload, 0, messageToSend, HEADER.length(), dataLength); } BufferedOutputStream writer = new BufferedOutputStream(os); writer.write(messageToSend, 0, HEADER.length() + dataLength); writer.flush(); } } } ``` 1. ソケットリスナーソースの ​**\[Connector configuration (コネクタ設定)\]**​ ウィンドウと、Sockets Send 操作または Send and receive 操作でクラス名を追加します。 - ソケットリスナーソース 1. Studio でソケットリスナーソースの ​**\[Global Element Properties (グローバル要素のプロパティ)\]**​ 設定を開きます。 2. **\[General (一般)\]**​ タブで、​**\[Protocol (プロトコル)\]**​ を ​`Custom protocol`​ に設定します。 3. **\[Protocol Class Name (プロトコルクラス名)\]**​ 項目でクラス名を追加します。 ![ソケットのカスタムプロトコル設定](/mulesoft/current/ja-jp/sockets-connector/latest/_images/socket-custom1-configuration.png) Figure 1. ソケットリスナーのカスタムプロトコル設定 - Sockets Send 操作または Send and receive 操作 1. Studio で Sockets Send 操作の Send and receive 操作の ​**\[Global Element Properties (グローバル要素のプロパティ)\]**​ 設定を開きます。 2. **\[Connection (接続)\]**​ タブで、​**\[Protocol (プロトコル)\]**​ を ​`Custom protocol`​ に設定します。 3. **\[Protocol Class Name (プロトコルクラス名)\]**​ 項目でクラス名を追加します。 ![ソケットの送受信のカスタムプロトコル設定](/mulesoft/current/ja-jp/sockets-connector/latest/_images/socket-custom2-configuration.png) Figure 2. ソケットの送受信のカスタムプロトコル設定 **\[Configuration XML (設定 XML)\]**​ タブで、​`class`​ パラメーターを使用して接続操作の ​`sockets:custom-protocol`​ セクションにクラスを追加します。 ```xml ``` ## [](#関連情報)関連情報 [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors)​
 [MuleSoft ヘルプセンター](https://help.mulesoft.com)