2016-04-09 3 views
1

Ich versuche, Camel-Sql-Komponente mit der Option useIterator=true zu verwenden, aber das Ergebnis wird immer noch in einer einzigen großen Liste geladen. Ich habe 2 Millionen Datensätze zu verarbeiten und das Ergebnis in einer Liste zu bekommen, ist keine Option. Im Folgenden finden Sie die Route Konfiguration:Camel-SQL Komponente UseIterator funktioniert nicht wie erwartet

<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> 

Von Sourcecode ist es klar, dass Kamel die ganze resultset in Liste nimmt und dann Iterator desselben erzeugt. Falsches Design.

Antwort

0

Die Option useIterator ist nur für den Verbraucher, zB wenn Sie sql im <from> verwenden. Die sql-Komponente auf der Herstellerseite unterstützt keine iterative Basis.

können Sie die JDBC-Komponente verwenden, anstatt dass diese OutputType=StreamList indem unterstützt: http://camel.apache.org/jdbc

ich ein Ticket Unterstützung für diese in der Zukunft in der SQL-Komponente hinzuzufügen protokolliert: https://issues.apache.org/jira/browse/CAMEL-9849