# cSplitter

メッセージをいくつかのサブメッセージに分割して、個別のルートで異なる方法で処理できるようにします。

詳細は、Apache Camelのドキュメンテーションhttps://camel.apache.org/components/latest/を参照してください。

## cSplitterの標準プロパティ

これらのプロパティは、標準ジョブのフレームワークで実行されているcSplitterを設定するために使われます。

標準のcSplitterコンポーネントは、Routingファミリーに属しています。

## 基本設定

| プロパティ | 説明 |
| --- | --- |
| Language | メッセージの分割に使用する式の言語を以下から選択します: なし、Constant、EL、Groovy、Header、JoSQL、JSonPath、JXPath、MVEL、OGNL、PHP、Property、Python、Ruby、Simple、SpEL、SQL、XPath、XQuery。<br><br>言語を使って式を作成する方法は、http://camel.apache.org/languages.htmlをご覧ください。 |
| [Correlation expression/Expression] (コリレーション式/式) | メッセージの分割に使う式を入力します。 |
| [Correlation expression/Use Result Class Type] (コリレーション式/結果クラスタイプを使用) | このオプションは、[Language] (言語)リストでXPathが選択されている場合に表示されます。<br><br>このチェックボックスをオンにして、表示されるフィールドにサブメッセージの結果タイプを設定します。指定されていない場合は、デフォルトのネイティブXMLオブジェクトorg.w3c.dom.NodeListが使われます。 |
| [Correlation expression/Add Namespaces] (コリレーション式/ネームスペースを追加) | このオプションは、[Language] (言語)リストでXPathが選択されている場合に表示されます。<br><br>Xpath式のネームスペースを追加するには、このチェックボックスをオンにします。[+]をクリックして必要な数のネームスペースをテーブルに追加し、対応するカラムにプレフィックスとURIを定義します。 |
| [Use Strategy] (戦略を使用) | このチェックボックスをオンにすると、サブメッセージからの返信をスプリッターからの単一の送信メッセージにまとめるための集計戦略が参照されます。集計戦略のIDを入力するか、定義済みの集計戦略を選択します。<br><br><ul> <li> <span>UseOriginalAggregationStrategy</span>: 元の交換を使用します。</li> <li> <span>UseLatestAggregationStrategy</span>: 最新の交換を使用します。</li> <li> <span>GroupedMessageAggregationStrategy</span>: 全メッセージを集計して単一の複合交換に変え、集計された全メッセージがメッセージボディとしてメッセージリストに保持されるようにします。</li> <li> <span>GroupedExchangeAggregationStrategy</span>: 全交換を集計して単一の複合交換に変え、集計された全交換がメッセージボディとして交換リストに保持されるようにします。 </li> <li> <span>GroupedBodyAggregationStrategy</span>: 入力メッセージのボディを集計して単一の複合交換に変え、集計された全ボディがメッセージボディとしてオブジェクトのリストに保持されるようにします。</li> </ul><br><br>情報メモ注: 定義済みの集計戦略は、Talendが提供するR2024-10以降のTalend Studioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。<br><br>サブメッセージの返信は、[Streaming] (ストリーミング)が有効になっている場合、返される順序で集計されます。そうでない場合、サブメッセージの応答は、分割されたのと同じ順序で集計されます。 |
| [Parameters/Parallel Processing] (パラメーター/並列処理) | サブメッセージを同時に処理するには、このチェックボックスをオンにします。呼び出し側のスレッドは、すべてのサブメッセージが完全に処理されるまで待機してから続行します。 |
| [Parameters/Stop on Exception] (パラメーター/例外発生時に停止) | 例外が発生した時にすぐに処理を停止するには、このチェックボックスをオンにします。 |
| [Parameters/Streaming] (パラメーター/ストリーミング) | このチェックボックスをオンにすると、ストリーミング方式でメッセージが分割されます。つまり、入力メッセージがチャンクに分割されます。大きなメッセージを処理する場合は、このオプションを有効にすることをお勧めします。 |
| [Parameters/Share Unit of Work] (パラメーター/作業単位を共有) | このチェックボックスをオンにすると、親の交換と各分割の交換の間で作業単位が共有されます。このオプションの詳細とユースケースは、http://camel.apache.org/splitter.htmlを参照してください。 |
| [Parameters/Timeout] (パラメーター/タイムアウト) | 合計タイムアウトをミリ秒単位で指定します。メッセージが分割されず、指定された時間内に処理されない場合、タイムアウトがトリガーされ、スプリッターがブレークアウトします。<br><br>Talendが提供する R2023-05以降のTalend Studioマンスリーアップデートをインストール済みである場合は、TimeoutパラメーターにあるString型とLong型のコンテキスト変数を使用できます。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | cSplitterは、ルート内の中間コンポーネントとして使用されます。 |
| [Connections] (接続) | <ul> <li> <span>[split] (分割)</span>: 分割されたメッセージを次のエンドポイントにルーティングするには、このリンクを選択します。</li> <li> <span>[Route] (ルート)</span>: すべてのメッセージを送信者から次のエンドポイントにルーティングするには、このリンクを選択します。</li> </ul> |
| 制限事項 | 該当なし |

**関連概念**

[cSplitterを使ってメッセージを分割し、サブメッセージからの返信を集約](https://help.qlik.com/talend/ja-JP/mediation-components/8.0/mediation-splitter/csplitter-cdirect-csetbody-ctimer-using-csplitter-to-split-message-and-aggregate-replies-from-sub-messages)