Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。
Studio でコネクタを追加および設定する手順は、次のとおりです。
Studio で初めてコネクタを設定する場合は、「Anypoint Studio を使用したコネクタの設定」を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、「Sockets Connector リファレンス」を参照してください。
Mule プロジェクトを作成する
Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。
-
Studio で、[File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)] を選択します。
-
Mule プロジェクトの名前を入力して、[Finish (完了)] をクリックします。
コネクタを Mule プロジェクトに追加する
ソケット用 Anypoint Connector (Sockets Connector) を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの pom.xml ファイルに必須の連動関係を追加します。
-
[Mule Palette (Mule パレット)] ビューで、[(X) Search in Exchange ((X) Exchange 内を検索)] をクリックします。
-
[Add Dependencies to Project (連動関係をプロジェクトに追加)] ビューで、検索項目に「
sockets」と入力します。 -
[Available modules (使用可能なモジュール)] で、[Sockets (ソケット)] をクリックします。
-
[Add (追加)] をクリックします。
-
[Finish (完了)] をクリックします。
Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。
ソケットリスナーソースを設定する
ソースは、指定された条件が満たされたときにフローを開始します。ソケットリスナーソースは、クライアントが接続できるソケットエンドポイントを表します。このエンドポイントを参照して、外部クライアントは TCP または UDP ソケット接続を確立し、メッセージを送信するたびにフローをトリガーします。
-
[Mule Palette (Mule パレット)] ビューで、[Sockets (ソケット)] > [Listener (リスナー)] を選択します。
-
[Listener] を Studio キャンバスにドラッグします。
-
[Listener (リスナー)] 設定画面で、必要に応じて [Display Name (表示名)] 項目の値を変更します。
-
[Connector configuration (コネクタ設定)] 項目の横にあるプラス記号 (+) をクリックして、アプリケーション内のすべての
sockets listener インスタンスで使用できるグローバル要素を設定します。 -
[General (一般)] タブの [Connection (接続)] で、
Tcp listener 接続または Udp listener 接続を選択します。 -
選択した接続に応じたタブを設定します。
タブ名 説明 General (一般)
必須の [Host (ホスト)] 属性および [Port (ポート)] 属性を設定し、その他の省略可能な項目を設定します。
Buffer Configuration (バッファ設定)
必要に応じて、送受信のバッファサイズ情報を指定します。
TLS
必要に応じて、TLS 情報を指定します。
Timeout Configuration (タイムアウト設定)
必要に応じて、クライアントとサーバーのタイムアウト情報を指定します。
Advanced (詳細)
必要に応じて、再接続戦略を含む再接続情報を指定します。
-
[Test Connection (接続をテスト)] をクリックして、Mule が特定のサーバーに接続できることを確認します。
-
[OK] をクリックします。
Studio でのフローのソケットリスナーソースは次のようになります。
Studio でのポート 8082 でローカル着信接続を受け入れるための TCP 接続を使用したソケットリスナーソースの設定は次のようになります。
[Configuration XML (設定 XML)] タブでは、XML は次のように記述されます。
<sockets:listener-config name="Sockets_Listener_config">
<sockets:tcp-listener-connection host="localhost" port="8082" />
</sockets:listener-config>
<flow name="SocketsFlow" >
<sockets:listene config-ref="Sockets_Listener_config"/>
</flow>
Send 操作と Send and Receive 操作を設定する
フローにコネクタの操作を追加すると、そのコネクタで実行する特定の操作をすぐに定義できます。Sockets Connector は、2 つの基本操作を提供します。
-
Send
RequesterConnection に関連付けられているクライアントを使用してデータを送信します。 -
Send and receive
関連付けられているクライアントを使用してデータを送信した後、応答を受信するまで、またはタイムアウトになるまで (この場合、null ペイロードが返される) ブロックします。
Send 操作または Send and Receive 操作を設定する手順は、次のとおりです。
-
[Mule Palette (Mule パレット)] ビューで、次のいずれかを選択します。
-
[Sockets (ソケット)] > [Send]。
-
[Sockets (ソケット)] > [Send and receive]。
-
-
[Send] 操作または [Send and receive] 操作を Studio キャンバスにドラッグします。
-
操作設定画面で、必要に応じて [Display Name (表示名)] 項目の値を変更します。
-
[Connector configuration (コネクタ設定)] 項目の横にあるプラス記号 (+) をクリックして、アプリケーション内の
Sockets Send または Sockets Send and receive のすべてのインスタンスで使用できるグローバル要素を設定します。 -
[General (一般)] タブの [Connection (接続)] で、
Tcp requester 接続または Udp requester 接続を選択します。 -
選択した接続に応じたタブを設定します。
タブ名 説明 General (一般)
必須の [Host (ホスト)] 属性および [Port (ポート)] 属性を設定し、必要に応じて省略可能な項目を設定します。
Buffer Configuration (バッファ設定)
必要に応じて、送受信のバッファサイズ情報を指定します。
Connection (接続)
必要に応じて、サポートされる TCP プロトコルのいずれかを選択して設定します。
Local Address Settings (ローカルアドレス設定)
必要に応じて、ローカルアドレスを指定します。
TLS
必要に応じて、TLS 情報を指定します。
Timeout Configuration (タイムアウト設定)
必要に応じて、クライアントとサーバーのタイムアウト情報を指定します。
Advanced (詳細)
必要に応じて、再接続戦略を含む再接続情報を指定します。
-
[Test Connection (接続をテスト)] をクリックして、Mule が特定のサーバーに接続できることを確認します。
-
[OK] をクリックします。
さらに、Send and receive 操作の場合は、次のように MIME タイプを設定します。
-
フローで [Send and receive] 操作をクリックします。
-
[MIME Type (MIME タイプ)] タブで、項目メニューから MIME タイプを選択します。
Studio での Sockets Send 操作および Send and receive 操作は次のようになります。
Studio でのポート 8082 でローカル着信接続を受け入れるための TCP 接続を使用した Send 操作または Send and receive 操作の設定は次のようになります。
[Configuration XML (設定 XML)] タブでは、Send 操作設定の XML は次のように記述されます。
<sockets:request-config name="Sockets_Send_config">
<sockets:tcp-requester-connection host="localhost" port="8082" />
</sockets:request-config>
<flow name="SocketsFlow" >
<sockets:send config-ref="Sockets_Send_config"/>
</flow>
Studio での Send and receive 操作の application/json としての MIME タイプの設定は次のようになります。
[Configuration XML (設定 XML)] タブでは、Send and receive 操作設定の XML は次のように記述されます。
<sockets:request-config name="Sockets_Send_config">
<sockets:tcp-requester-connection host="localhost" port="8082" />
</sockets:request-config>
<flow name="SocketsFlow" >
<sockets:send-and-receive config-ref="Sockets_Send_Receive_config" outputMimeType="application/json"/>
</flow>
サポートされる 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 ドキュメントを読み取るために使用します。唯一の要件は、各ドキュメントの冒頭に <?xml…. の形式で XML 宣言を含めることです。
データは、新しいドキュメントが見つかるか、または利用可能なデータがなくなるまで読み取られます。遅いネットワークでは、XmlMessageEofProtocol の方が信頼性が高くなる場合があります。
また、XML 宣言を探すときには、プラットフォームのデフォルトの文字エンコードを使用してメッセージバイトをデコードするため、メッセージの文字エンコードについても注意が必要です。 -
XML Message EOF Protocol (XML メッセージ EOF プロトコル)
XmlMessageProtocol を拡張して、新しいメッセージまたは EOF が見つかるまで読み取りを続行します。 -
Custom Protocol (カスタムプロトコル)
TcpProtocol を拡張するクラスを作成して、自分のカスタムプロトコルを定義します。
ソケットリスナーの TCP プロトコルを設定する
ソケットリスナーのサポートされる TCP プロトコルを設定する手順は、次のとおりです。
-
ソケットリスナーの [Global Element Properties (グローバル要素のプロパティ)] 設定を開きます。
-
[General (一般)] タブの [Connection (接続)] で、
Tcp listener を選択します。 -
[General (一般)] タブの [General (一般)] セクションで、[Protocol (プロトコル)] にサポートされるプロトコルのいずれかを選択します。
-
コネクタの必須項目を設定します。
-
[Test Connection (接続をテスト)] をクリックして、Mule が特定のサーバーに接続できることを確認します。
-
[OK] をクリックします。
Studio でのダイレクトプロトコルを使用するためのソケットリスナーの設定は次のようになります。
[Configuration XML (設定 XML)] タブでは、XML は次のようになります。
<sockets:listener-config name="Sockets_Listener_config" >
<sockets:tcp-listener-connection host="localhost" port="8082" >
<sockets:protocol>
<sockets:direct-protocol />
</sockets:protocol>
</sockets:tcp-listener-connection>
</sockets:listener-config>
Send and Receive 操作の TCP プロトコルを設定する
Send 操作または Send and receive 操作のサポートされる TCP プロトコルを設定する手順は、次のとおりです。
-
ソケット操作の [Global Element Properties (グローバル要素のプロパティ)] 設定を開きます。
-
[General (一般)] タブの [Connection (接続)] で、
Tcp requester を選択します。 -
[Connection (接続)] タブで、[Protocol (プロトコル)] にサポートされるプロトコルのいずれかを選択します。
-
コネクタの必須項目を設定します。
-
[Test Connection (接続をテスト)] をクリックして、Mule が特定のサーバーに接続できることを確認します。
-
[OK] をクリックします。
Studio でのダイレクトプロトコルを使用するための Send 操作の設定は次のようになります。
[Configuration XML (設定 XML)] タブでは、XML は次のように記述されます。
<sockets:request-config name="Sockets_Send_config" >
<sockets:tcp-requester-connection >
<sockets:protocol >
<sockets:direct-protocol />
</sockets:protocol>
</sockets:tcp-requester-connection>
</sockets:request-config>
アプリケーションログの表示
問題があるかどうかを確認するために、アプリケーションログを表示できます。
-
アプリケーションを Anypoint Platform から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。
-
コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。
アプリケーションのログファイル (log4j2.xml) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 MULE_HOME/logs/<app-name>.log でアプリケーションログを表示することもできます。