2016-04-09 25 views
1

camel-sqlコンポーネントのオプションをuseIterator=trueで使用しようとしていますが、その結果は1つの大きなリストに読み込まれます。私は2百万のレコードを処理する必要があり、結果セットを1つのリストに入れることは選択肢ではありません。以下は、ルートの設定です:ソースコードからcamel-SQLコンポーネントuseIteratorが期待どおりに機能していません

<route id="sql_route"> 
    <from uri="activemq:MW_SQL"/> 
    <to uri="sql:SELECT ID, MSGID_PROD FROM amq.activemq_msgs?useIterator=true"/> 
    <log message="This data is = ${body}"/> 
</route> 

ラクダがリスト内の全結果セットを取ることは明らかであるし、同じのイテレータを作成します。間違ったデザイン。

答えて

0

オプションuseIteratorは、コンシューマ向けです(例:<from>ではsqlを使用する場合)。プロデューサ側のsqlコンポーネントは反復ベースをサポートしていません。

あなたはOutputType=StreamListを設定することで、これをサポートする代わりに、JDBCコンポーネントを使用することができます。http://camel.apache.org/jdbc

私は、SQLコンポーネントで、将来的にこのためのサポートを追加するためにチケットをログに記録:https://issues.apache.org/jira/browse/CAMEL-9849

関連する問題