2015-10-19 119 views
0

我有一個非常簡單的路線從數據庫中讀取一些行:駱駝JDBC路線 - CamelJdbcRowCount失蹤

from("timer://runOnce?repeatCount=1&delay=1000"). 
      setBody(constant("select * from some_table")) 
      .to("jdbc:dataSource?outputType=StreamList") 
      .log("Processing $simple{in.header.CamelJdbcRowCount} rows") 
      .split(body()).streaming().to("direct:createChunk"); 

我想要做的所有行後,一些清理工作/塊進行處理,並希望比較使用Select中的CamelJdbcRowCount處理的行數可以完成此操作。

但是,根本沒有設置CamelJdbcRowCount。我能找到的唯一JDBC頭是CamelJdbcColumnNames。

我錯過了什麼?

是否有另一種/更好的方式來實現我想要的而不是看行數?

編輯:我只注意到,如果我刪除'outputType = StreamList',我得到CamelJdbcRowCount值如預期。我想這與使用StreamList時有關係我得到一個結果集和一個遊標/迭代器,所以你不能真正地計算行數。如果文檔反映了這一點會很好。

如何知道何時處理所有行?

+0

您使用的是哪種駱駝版本?可能是最新版本中修復的錯誤。所以嘗試升級。 –

+0

哦,我認爲StreamList是按需提供的,所以無法提前知道總數 –

回答

0

您必須在您的to條款中省略部分?outputType=StreamList。日誌聲明本身也可以簡化:

.log("read ${header.CamelJdbcRowCount} rows")