<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: TARGET_APPLY:   Finish bulk because stream timeout in Qlik Replicate</title>
    <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020477#M4561</link>
    <description>&lt;P&gt;Hi Dana,&lt;/P&gt;
&lt;P&gt;Is there any way to configure so that if there is no activity for the tables selected in the task that latency shows zero ?&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Martin&lt;/P&gt;</description>
    <pubDate>Wed, 28 Dec 2022 23:18:35 GMT</pubDate>
    <dc:creator>Martin11</dc:creator>
    <dc:date>2022-12-28T23:18:35Z</dc:date>
    <item>
      <title>TARGET_APPLY:   Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020398#M4551</link>
      <description>&lt;P&gt;I have been investigating high latency in my solution and it seems to be caused by a specific, high activity table (RESB in SAP db).&lt;/P&gt;
&lt;P&gt;I noticed this message in the log and wondered if could point me to a more specific cause that I could investigate:&lt;BR /&gt;&lt;BR /&gt;00018076: 2022-12-28T09:39:44 [TARGET_APPLY ]T: Finish bulk because stream timeout (bulk_apply.c:1012)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;
&lt;P&gt;Martin&lt;/P&gt;</description>
      <pubDate>Wed, 28 Dec 2022 16:56:26 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020398#M4551</guid>
      <dc:creator>Martin11</dc:creator>
      <dc:date>2022-12-28T16:56:26Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY:   Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020400#M4552</link>
      <description>&lt;P&gt;A few other points to clarification:&lt;BR /&gt;&lt;BR /&gt;The task that shows noted message has only the one high activity table (RESB) and is showing 3 hours latency but with zero incoming changes.&lt;/P&gt;
&lt;P&gt;And even with zero incoming changes,&amp;nbsp; the apply throughput graph is showing 6-10 records / second being applied.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Dec 2022 16:58:01 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020400#M4552</guid>
      <dc:creator>Martin11</dc:creator>
      <dc:date>2022-12-28T16:58:01Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY:   Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020401#M4553</link>
      <description>&lt;P&gt;....I have 4 other tasks all reading from the same source and writing to the same target but they all have latency &amp;lt; 10 seconds.&lt;/P&gt;</description>
      <pubDate>Wed, 28 Dec 2022 16:59:26 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020401#M4553</guid>
      <dc:creator>Martin11</dc:creator>
      <dc:date>2022-12-28T16:59:26Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY:   Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020413#M4555</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/211925"&gt;@Martin11&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This log entry doesn't indicate a problem, it just informs you that the batch of data it was processing was applied to the target based on the length of time rather than the amount of data. Batches can be applied based on either time or amount of data. This is controlled based on what settings are in Task Settings \ Change Processing \ Change Process Tuning. More information can be found here:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://help.qlik.com/en-US/replicate/November2022/Content/Global_Common/Content/SharedEMReplicate/Customize%20Tasks/tasks_applychangtunestab.htm#Change%20Processing%20Tuning" target="_blank"&gt;Change Processing Tuning #Change Processing Tuning ‒ Qlik Replicate&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;When you select "Incoming Changes" on the Monitor tab, are you seeing changes in memory or on disk waiting for target commit? If you select Apply Latency are you seeing source or target latency?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here's some general information about latency:&lt;/P&gt;
&lt;P&gt;Latency is the time interval in seconds&lt;BR /&gt;between the time a change was&lt;BR /&gt;committed in the source system and the&lt;BR /&gt;time it is applied and committed in the&lt;BR /&gt;target system.&lt;/P&gt;
&lt;P&gt;Source Latency: The gap in seconds&lt;BR /&gt;between the original change in the&lt;BR /&gt;source endpoint and capturing it.&lt;/P&gt;
&lt;P&gt;Target Latency: The gap in seconds between the&lt;BR /&gt;original change in the source endpoint&lt;BR /&gt;and applying it to the target endpoint.&lt;/P&gt;
&lt;P&gt;Apply Latency: The gap in seconds&lt;BR /&gt;between capturing the change in the&lt;BR /&gt;source endpoint and applying it to the target&lt;BR /&gt;endpoint.&lt;/P&gt;
&lt;P&gt;Note During data capture, the target latency will always be equal to the source latency (even&lt;BR /&gt;though no data has reached the target yet). This is simply because target latency is the sum of&lt;BR /&gt;source latency + apply latency, and can therefore never be less than the source latency.&lt;/P&gt;
&lt;P&gt;Latency when applying large transactions:&lt;BR /&gt;For example, when the most recent latency value was 10 seconds and now a transaction&lt;BR /&gt;of one million rows gets committed at the source endpoint, Attunity Replicate starts to&lt;BR /&gt;apply that transaction to the selected target and it will take some time to write all the&lt;BR /&gt;changes to the target (for example 60 seconds). During the next 60 seconds, the latency&lt;BR /&gt;value gradually grows to 70 seconds for the last change in the transaction. Once the&lt;BR /&gt;transaction is committed, the latency drops back to the 'regular' latency (10 seconds in&lt;BR /&gt;this case).&lt;/P&gt;
&lt;P&gt;Latency when no transactions are being applied:&lt;BR /&gt;When a time period passes with no changes applied to the target, the latency calculation&lt;BR /&gt;is based on the time difference between the current time and the timestamp of the last&lt;BR /&gt;change event read from the transaction log. This could happen if, for example, there is&lt;BR /&gt;high activity on tables which are not selected for replication in the current task.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Dana&lt;/P&gt;</description>
      <pubDate>Wed, 28 Dec 2022 18:12:56 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020413#M4555</guid>
      <dc:creator>Dana_Baldwin</dc:creator>
      <dc:date>2022-12-28T18:12:56Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY:   Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020416#M4557</link>
      <description>&lt;P&gt;Hi Dana,&lt;/P&gt;
&lt;P&gt;With regards to Latency when no transactions are being applied:&lt;/P&gt;
&lt;P&gt;I witnessed a situation where 1 of my 5 tasks had 3 hours of latency and the other 4 tasks all had less than 10 seconds of latency.&lt;/P&gt;
&lt;P&gt;(All 5 tasks are reading from the same source and writing to the same target.)&lt;/P&gt;
&lt;P&gt;If latency can be the difference between current time and last change event read from the transaction log (even if not for task tables),&amp;nbsp; shouldn't all 5 tasks have a similar latency ?&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Martin&lt;/P&gt;</description>
      <pubDate>Wed, 28 Dec 2022 18:38:31 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020416#M4557</guid>
      <dc:creator>Martin11</dc:creator>
      <dc:date>2022-12-28T18:38:31Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY:   Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020460#M4558</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/211925"&gt;@Martin11&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Were there no incoming changes or pending changes for the target for any of the 5 tasks?&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Dana&lt;/P&gt;</description>
      <pubDate>Wed, 28 Dec 2022 20:29:54 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020460#M4558</guid>
      <dc:creator>Dana_Baldwin</dc:creator>
      <dc:date>2022-12-28T20:29:54Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY:   Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020461#M4559</link>
      <description>&lt;P&gt;HI Dana,&lt;/P&gt;
&lt;P&gt;There were but none had latency associated with those changes of more than 10 seconds.&lt;/P&gt;
&lt;P&gt;So if latency is also representative of changes for tables not selected for replication by the task,&amp;nbsp; I'm struggling to understand how the latency is so wildly different among these 5 tasks that have common source/target endpoints.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Martin&lt;/P&gt;</description>
      <pubDate>Wed, 28 Dec 2022 20:39:27 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020461#M4559</guid>
      <dc:creator>Martin11</dc:creator>
      <dc:date>2022-12-28T20:39:27Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY:   Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020469#M4560</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/211925"&gt;@Martin11&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Latency is only based on activity in tables not selected in the task when there is no activity in the tables that do belong to the task.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Dana&lt;/P&gt;</description>
      <pubDate>Wed, 28 Dec 2022 21:06:04 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020469#M4560</guid>
      <dc:creator>Dana_Baldwin</dc:creator>
      <dc:date>2022-12-28T21:06:04Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY:   Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020477#M4561</link>
      <description>&lt;P&gt;Hi Dana,&lt;/P&gt;
&lt;P&gt;Is there any way to configure so that if there is no activity for the tables selected in the task that latency shows zero ?&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Martin&lt;/P&gt;</description>
      <pubDate>Wed, 28 Dec 2022 23:18:35 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020477#M4561</guid>
      <dc:creator>Martin11</dc:creator>
      <dc:date>2022-12-28T23:18:35Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY:   Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020478#M4562</link>
      <description>&lt;P&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/121014"&gt;@Dana_Baldwin&lt;/a&gt;&amp;nbsp;provided some good information on Latency. Please be sure to enable logging for PERFORMANCE set to TRACE (in the current version VERBOSE does not add additional info beyond TRACE) and let us know which latency we are dealing with. Are there 'waiting for source commit' pending TX's?&lt;/P&gt;
&lt;P&gt;You reported "&lt;SPAN&gt;Finish bulk because stream timeout" in the opening writing and subject for the topic. It may be good to explain that a little to understand whether it is relevant at all and is so whether, a cause, or an effect.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;First, what does it mean to "finish a bulk", well it is very much an intermediate stage. It means that the 'bulk_apply' engine inside the 'TARGET_APPLY' threat decided is gathered enough changes (from the SORTER threat) for them to be applied and thus to START sending them to the target.&amp;nbsp; That decision is based on task-settings -&amp;nbsp;Change Processing Tuning - Batch tuning - choices.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The easy one is when there are more changes than the &amp;lt;Force apply a batch when processing memory exceeds (MB):&amp;gt; allowed for and the resulting message in the reptask log will be "Bulk finished because memory usage has exceeded the limit". After that message the tasks will start sending that bulk to the target which involves filling a 'atterp_changes' table and perhaps first stuffing them in a CVS file to be transferred over the network and applies after which the SQL apply statements start. "the bus is full"&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Timeout is trickier because there are two!&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Parameter "Longer than (seconds): "&amp;nbsp; &amp;nbsp;(default 1). This roughly maps to a formula :&amp;nbsp; "&lt;/SPAN&gt;&lt;SPAN&gt;now" &amp;gt; BulkStartTime + ApplyTimeoutMin and results in --&amp;gt; "Finish bulk because stream timeout".&amp;nbsp; This is where the 'bulk_apply' code has been provided a change and waits around some to see it can put more changes in the bulk.&amp;nbsp; Low values improve 'near realtime' behavior. Higher values allow for larger bulks which reduces resource use on targets. This is a bus driver keeping the door open to see if there is someone coming in running.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Parameter "But less than (seconds):" (default 30).&amp;nbsp;&amp;nbsp;This roughly maps to a formula :&amp;nbsp; "now" &amp;gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;BulkStartTime + ApplyTimeout AND NOT EmptyBulk &lt;SPAN&gt;and results in --&amp;gt; &lt;/SPAN&gt; "Finish Bulk because Bulk timeout"). The sorter keeps providing changes. Perhaps a steady stream of unrelated events, perhaps lots of changes for a single table in a transaction. They are added to the pile while there is still room. But eventually they have to be released to the target. Again l&lt;SPAN&gt;ow values improve 'near realtime' behavior. Higher values allow for larger bulks which reduces resource use on targets and very high values will lead to bulk filling up memory. This is a bus driver closing the door in your face 'sorry folks I gotta go I have a schedule to try to maintain and those on the bus already have been more than patient.'&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Hope this helps understanding whether the "&lt;SPAN&gt;Finish bulk because stream timeout" is just fine or not.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;For further help please clarify whether those other tasks truly work on the same source and target (and why more than 1 task?) and perhaps provide a bit of reptask log, with at least 'performance trace' and hopefully&amp;nbsp; 'target_apply trace, for at least a minute but better 10 or more&amp;nbsp; minutes and ideally showing a good task versus a bad task, where the 'bad' task log is most important of course. Oh, and how about a bad task JSON?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Cheers,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Hein.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Dec 2022 23:25:27 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020478#M4562</guid>
      <dc:creator>Heinvandenheuvel</dc:creator>
      <dc:date>2022-12-28T23:25:27Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY:   Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020480#M4563</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/211925"&gt;@Martin11&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Not that I am aware of. I encourage you to submit a feature request here if this is something you would like to see in the product:&amp;nbsp;&lt;A href="https://community.qlik.com/t5/Ideas/idb-p/qlik-ideas" target="_blank"&gt;https://community.qlik.com/t5/Ideas/idb-p/qlik-ideas&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Dana&lt;/P&gt;</description>
      <pubDate>Wed, 28 Dec 2022 23:44:58 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020480#M4563</guid>
      <dc:creator>Dana_Baldwin</dc:creator>
      <dc:date>2022-12-28T23:44:58Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY:   Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020695#M4566</link>
      <description>&lt;P&gt;Thanks for all the great info, Hein !&lt;/P&gt;
&lt;P&gt;I'm going to wait for a time when the latencies diverge and provide the documentation that you suggest.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Martin&lt;/P&gt;</description>
      <pubDate>Thu, 29 Dec 2022 19:02:10 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2020695#M4566</guid>
      <dc:creator>Martin11</dc:creator>
      <dc:date>2022-12-29T19:02:10Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY:   Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2021433#M4581</link>
      <description>&lt;P&gt;Hi Hein&lt;/P&gt;
&lt;P&gt;Apologize for the delay.&lt;/P&gt;
&lt;P&gt;I can confirm that these tasks are using the same source and target systems.&lt;/P&gt;
&lt;P&gt;We have multiple tasks in an effort to troubleshoot / isolate latency issues.&lt;/P&gt;
&lt;P&gt;I have attached a file with the JSON of the 'good' and 'bad' tasks as well as their respective logs for about a 15 minute timeframe.&amp;nbsp; During this time the latency of the 'bad' task was 7+ hours and the 'good' task was less than 5 minutes.&lt;/P&gt;
&lt;P&gt;Thank,&lt;/P&gt;
&lt;P&gt;Martin&lt;/P&gt;</description>
      <pubDate>Tue, 03 Jan 2023 19:16:15 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2021433#M4581</guid>
      <dc:creator>Martin11</dc:creator>
      <dc:date>2023-01-03T19:16:15Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY:   Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2022029#M4608</link>
      <description>&lt;P&gt;Thanks for the detailed info.&lt;/P&gt;
&lt;P&gt;At first glance it is strictly volume related where &lt;STRONG&gt;the source change&amp;nbsp; reading for the RESB table cannot keep up.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The 'bad' task runs at 1000+ changes/sec, frequently running out of&amp;nbsp; its default 500 MB memory for batches of 72,000+ changes.&lt;/P&gt;
&lt;P&gt;The 'good' task runs ar 70 changes/sec, never running out of its 1800 MB 'tuned' memory with no more than 2500 changes/batch.&lt;/P&gt;
&lt;P&gt;Summary of&amp;nbsp; TARGET_APPLY log lines for BAD:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;Task &amp;lt;bad__PE3-3 RESB_to_QLIK.txt&amp;gt; from 01/03 11:34:38 thru 01/03 11:50:01.  (923 seconds)
Total 37 Batches in log, largest 72508, longest duration 60
1125.1 changes/second overall. 1038481 total, gap 63 @ 01/03 11:48:08. 35 Statement not found.
no_bulk:0, no pk:0, 69 applies, 0 singles, max 36254. noPK-time=0

35 truncates for attrep_changes tables taking 0 seconds
"Start Handling Table" took 17 times more than 1 second. Total 86 seconds

      LATENCY|  Begin|    End|    Min|    Max|    Net|
      -------|-------|-------|-------|-------|-------|
      Source |  29490|  29761|  29490|  29770|    271|
      Target |    285|    418|      0|    525|    133|
      Elapsed|       |       |       |       |    923|&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Summary of&amp;nbsp; TARGET_APPLY log lines for GOOD:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;Task &amp;lt;good__PE3_to_QLIK_NOSQL.txt&amp;gt; from 01/03 11:34:00 thru 01/03 11:49:45.  (945 seconds)
Total 158 Batches in log, largest 2504, longest duration 13
72.8 changes/second overall. 68767 total, gap 12 @ 01/03 11:36:30. 4339 Statement not found.
no_bulk:0, no pk:0, 8953 applies, 3396 singles, max 509. noPK-time=0
157 truncates for attrep_changes tables taking 4 seconds

      LATENCY|  Begin|    End|    Min|    Max|    Net|
      -------|-------|-------|-------|-------|-------|
      Source |      4|      7|      2|     22|      3|
      Target |      4|      7|      0|      9|      3|
      Elapsed|       |       |       |       |    945|
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Mind you, I don't think giving the 'bad' tasks more memory will help it significantly, as the delay appears to be gathering the changes.&lt;/P&gt;
&lt;P&gt;Another way to see the the source reader delay is to see in the log the timestamp for which change is currently being read as committed.&lt;/P&gt;
&lt;P&gt;GOOD: 03T&lt;STRONG&gt;11:39:11&lt;/STRONG&gt; [SOURCE_CAPTURE ]T: &amp;gt;&amp;nbsp; txn_id: 00065B58071E, timestamp: 2023-01-03 &lt;STRONG&gt;16:39:08&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;BAD: 03T&lt;STRONG&gt;11:39:11&lt;/STRONG&gt; [SOURCE_CAPTURE ]T: &amp;gt; txn_id: 00065AD8B438, timestamp: 2023-01-03 &lt;STRONG&gt;08:24:56&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;GOOD shows 5 hours and 3 seconds difference between replicate log time and the source time stamp. Surely &lt;STRONG&gt;5 hour due to time-zone&lt;/STRONG&gt; and 3 seconds latency. BAD shows &lt;STRONG&gt;8 hours&lt;/STRONG&gt;&amp;nbsp; &lt;STRONG&gt;15 mintes&lt;/STRONG&gt; earlier than GOOD matching the latency reported by 03T11:39:01 &lt;STRONG&gt;[PERFORMANCE ]&lt;/STRONG&gt;T: Source latency 29656:&amp;nbsp; &lt;STRONG&gt;29656/3600&amp;nbsp;&amp;nbsp;= 8.24&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;On the SOURCE_CAPTURE side the BAD task with no 'stream_buffer' tuning&amp;nbsp; reports&amp;nbsp; 1127 'FULL STREAM ' messages, whereas the GOOD task which has 'stream_buffer' tuning never reports that. Mind you considering the frequency and sub-second 'recovery time I again do not expect a significant improvement is those FULL STREAM events are tuned away, but one should attempt to tune that just in case so to speak.&lt;/P&gt;
&lt;P&gt;Could the source server have 'punished' (Linux NICE) the source reader tasks/thread for the RESB task because it was consuming disproportional resources?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I think it is worth your while to check out LOG_STEARM to have 1, well tuned, source reader task and you can still have your 'control' with multiple slave tasks reading the logstream each selecting their own tables.&lt;/P&gt;
&lt;P&gt;I would also be tempted to run the RESB (aka BAD) task in isolation with no other source change log reading and with a NUL target to see what it's absolute max change throughput is.&lt;/P&gt;
&lt;P&gt;hth,&lt;/P&gt;
&lt;P&gt;Hein.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 05 Jan 2023 06:01:25 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2022029#M4608</guid>
      <dc:creator>Heinvandenheuvel</dc:creator>
      <dc:date>2023-01-05T06:01:25Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY:   Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2022955#M4630</link>
      <description>&lt;P&gt;Hi Hein,&lt;/P&gt;
&lt;P&gt;Some questions:&lt;/P&gt;
&lt;P&gt;1. Can you give a brief explanation of how you created the charts for Source and Target rows ?&lt;/P&gt;
&lt;P&gt;2. The logs uploaded for this thread contain the message "[SOURCE_CAPTURE ]T: Transactions in progress counter is negative".&amp;nbsp; Does this indicate a problem ?&lt;/P&gt;
&lt;P&gt;3.&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;GOOD shows 5 hours and 3 seconds difference between replicate log time and the source time stamp. Surely&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;5 hour due to time-zone&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;and 3 seconds latency. BAD shows&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;8 hours&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;15 mintes&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;earlier than GOOD matching the latency reported by 03T11:39:01&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;[PERFORMANCE ]&lt;/STRONG&gt;&lt;SPAN&gt;T: Source latency 29656:&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;29656/3600&amp;nbsp;&amp;nbsp;= 8.24&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Since both tasks are reading the same source, wouldn't they both have the same offset of time zone ?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Martin&lt;/P&gt;</description>
      <pubDate>Sun, 08 Jan 2023 17:26:18 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2022955#M4630</guid>
      <dc:creator>Martin11</dc:creator>
      <dc:date>2023-01-08T17:26:18Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY:   Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2022976#M4633</link>
      <description>&lt;P&gt;&amp;gt;&amp;gt;&amp;nbsp;&lt;SPAN&gt;1. Can you give a brief explanation of how you created the charts for Source and Target rows ?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Just to clear, I think you know this, those are LATENCY numbers, not row numbers. They are just from a (perl) scripts parsing the [PERFORMANCE] lines. I'll attach the script. It also created the other summary statements.&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;nbsp;&lt;SPAN&gt;2. The logs uploaded for this thread contain the message "[SOURCE_CAPTURE ]T: Transactions in progress counter is negative".&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;I noticed those but have no good explanations. It feels like a 'start by timestamp' failing to 'wait for transaction consistency'. I that case the source reader could easily, in fact is guaranteed, to&amp;nbsp; see more commits than TX created and thus the count would be negative. I don't recall having seen source drivers do not seem to report this.&amp;nbsp; I don't think they are critical warnings just 'debug' observations.&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt; 3.&amp;nbsp;&lt;SPAN&gt;wouldn't they both have the same offset of time zone ?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Yes, that's why I wrote "&lt;SPAN&gt;BAD shows&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;8 hours&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;15 mintes&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;earlier than GOOD" so relative to one another, both being 5 hours away from the Replicate server (can you confirm that?)&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 09 Jan 2023 04:53:21 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2022976#M4633</guid>
      <dc:creator>Heinvandenheuvel</dc:creator>
      <dc:date>2023-01-09T04:53:21Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY:   Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2077530#M6157</link>
      <description>&lt;P&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/211925"&gt;@Martin11&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;HI Martin,&lt;BR /&gt;Just wanted to get your input/suggestion on this.&lt;BR /&gt;Were you able to solve the issue.&lt;/P&gt;
&lt;P&gt;We are facing same issue on same Table RESB due to high Transaction on Source.&lt;BR /&gt;Latency is reaching over 24 hours in my case.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Kiran&lt;/P&gt;</description>
      <pubDate>Tue, 30 May 2023 05:56:31 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2077530#M6157</guid>
      <dc:creator>kishetty03</dc:creator>
      <dc:date>2023-05-30T05:56:31Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY: Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2079122#M6243</link>
      <description>&lt;P&gt;&lt;SPAN style="background: var(--ck-color-mention-background); color: var(--ck-color-mention-text);"&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/204924"&gt;@kishetty03&lt;/a&gt;&lt;/SPAN&gt; see hein comment &lt;U&gt;#20782345&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jun 2023 17:40:31 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2079122#M6243</guid>
      <dc:creator>Steve_Nguyen</dc:creator>
      <dc:date>2023-06-01T17:40:31Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY:   Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2079147#M6246</link>
      <description>&lt;P&gt;Hi Kiran,&lt;/P&gt;
&lt;P&gt;We still have sporadically high latency on our RESB table.&amp;nbsp; We have 5 tasks all pointed to the same db source and sometimes they are all at about the same latency - but often RESB (which is in it's own dedicated task), is several hours latent and the other 4 tasks are near zero or at much lower latencies.&lt;/P&gt;
&lt;P&gt;Martin&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jun 2023 19:25:04 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2079147#M6246</guid>
      <dc:creator>Martin11</dc:creator>
      <dc:date>2023-06-01T19:25:04Z</dc:date>
    </item>
    <item>
      <title>Re: TARGET_APPLY: Finish bulk because stream timeout</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2079421#M6268</link>
      <description>&lt;P&gt;&lt;SPAN style="background: var(--ck-color-mention-background); color: var(--ck-color-mention-text);"&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/211925"&gt;@Martin11&lt;/a&gt;&lt;/SPAN&gt; try to enable verbose logging on source and target to see what is slowing, is on the source or target . and then try to narrow down to exact cause of slow.&lt;/P&gt;</description>
      <pubDate>Fri, 02 Jun 2023 12:29:55 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/TARGET-APPLY-Finish-bulk-because-stream-timeout/m-p/2079421#M6268</guid>
      <dc:creator>Steve_Nguyen</dc:creator>
      <dc:date>2023-06-02T12:29:55Z</dc:date>
    </item>
  </channel>
</rss>

