2017-08-28 82 views
0

我在輪詢器內部有sfdc(salesforce連接器),然後在從sfdc獲取數據並將數據加載到數據庫後爲其啓用了水印。使用輪詢中的輪詢水印時遇到錯誤

<flow name="loadData" processingStrategy="synchronous"> 
     <poll doc:name="Poll"> 
      <fixed-frequency-scheduler frequency="2" timeUnit="MINUTES"/> 
      <watermark variable="timestamp" default-expression="#[server.dateTime.format(&quot;yyyy-MM-dd'T'HH:mm:ss.SSS'Z'&quot;)]" selector="MAX" selector-expression="#[payload.LastModifiedDate]" object-store-ref="sfdcStore"/> 
      <processor-chain doc:name="Processor Chain"> 
       <logger message="poller started at #[server.dateTime]" level="INFO" doc:name="start"/> 
       <sfdc:query config-ref="svccloud_salesforce_configuration" query="SELECT Name, , Id, BillingStreet, BillingCity, BillingState, BillingCountry, BillingPostalCode, Phone, Pathway_Status__c FROM Account where LastModifiedDate &lt; #[flowVars['timestamp']] and RecordTypeId IN (SELECT Id FROM RecordType where Name = 'Customer')" doc:name="Quering Customer Details"/> 
      </processor-chain> 
     </poll> 
     <logger message="process to DB" level="INFO"/> 
</flow> 

數據正在獲取並正確加載到數據庫,但最新日期沒有存儲在timestamp變量中。我收到以下信息消息。如果存儲時間戳值,我們將得到什麼消息。能否請您在此

INFO 2017-08-28 15:06:26,795 [pool-13-thread-1] org.mule.transport.polling.watermark.Watermark: Watermark value will not be updated since poll processor returned no results 

回答

0
  1. 查詢實際上並沒有選擇LastModifiedDate幫助,所以當調查試圖更新它,它將永諾爲空,將不會更新。

  2. 該查詢只選擇時間戳之前的記錄,這意味着MAX水印將永遠不會更新。

0

您必須清除您的應用程序數據以解決此問題。如果你在studio中運行,水印變量將被本地存儲在Object store中。

如果您清除應用程序數據,它將按預期工作。 請按照下圖清除應用程序數據。

右鍵單擊項目 - >運行方式 - >運行會議 - >常規選項卡 - >將清除應用程序數據更改爲始終(您需要向下滾動以查看此選項)。

enter image description here