<?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 Duplicate records with Full Load and Store Changes on a task in Qlik Replicate</title>
    <link>https://community.qlik.com/t5/Qlik-Replicate/Duplicate-records-with-Full-Load-and-Store-Changes-on-a-task/m-p/1897383#M1927</link>
    <description>&lt;P&gt;Is it expected to see the same record in the output of both the Full Load (Loadxxxx.csv) and Change Table (date-time.csv) when an insert occurs during the Full Load process.&lt;/P&gt;
&lt;P&gt;So the scenario is as follows:&lt;/P&gt;
&lt;P&gt;Task is configured with both Full Load and Store Changes configured.&amp;nbsp; Apply Changes is not enabled.&amp;nbsp; The goal is to generate a baseline of the source table, then perform analytics against the&amp;nbsp;&lt;/P&gt;
&lt;P&gt;00:00 Task with Full Load and Store Changes is started.&lt;BR /&gt;00:15&amp;nbsp; Full Load is in Progress&lt;BR /&gt;00:16&amp;nbsp; Insert to table being loaded occurs.&lt;/P&gt;
&lt;P&gt;The end result is that the new record which was inserted while Full Load was in process exists in both the Full Load files and the Change Table files.&amp;nbsp; Is this expected and is there a way to prevent Store Changes from logging entries which were captured during the Full Load process?&lt;/P&gt;</description>
    <pubDate>Thu, 24 Feb 2022 21:59:28 GMT</pubDate>
    <dc:creator>EDJ</dc:creator>
    <dc:date>2022-02-24T21:59:28Z</dc:date>
    <item>
      <title>Duplicate records with Full Load and Store Changes on a task</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/Duplicate-records-with-Full-Load-and-Store-Changes-on-a-task/m-p/1897383#M1927</link>
      <description>&lt;P&gt;Is it expected to see the same record in the output of both the Full Load (Loadxxxx.csv) and Change Table (date-time.csv) when an insert occurs during the Full Load process.&lt;/P&gt;
&lt;P&gt;So the scenario is as follows:&lt;/P&gt;
&lt;P&gt;Task is configured with both Full Load and Store Changes configured.&amp;nbsp; Apply Changes is not enabled.&amp;nbsp; The goal is to generate a baseline of the source table, then perform analytics against the&amp;nbsp;&lt;/P&gt;
&lt;P&gt;00:00 Task with Full Load and Store Changes is started.&lt;BR /&gt;00:15&amp;nbsp; Full Load is in Progress&lt;BR /&gt;00:16&amp;nbsp; Insert to table being loaded occurs.&lt;/P&gt;
&lt;P&gt;The end result is that the new record which was inserted while Full Load was in process exists in both the Full Load files and the Change Table files.&amp;nbsp; Is this expected and is there a way to prevent Store Changes from logging entries which were captured during the Full Load process?&lt;/P&gt;</description>
      <pubDate>Thu, 24 Feb 2022 21:59:28 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/Duplicate-records-with-Full-Load-and-Store-Changes-on-a-task/m-p/1897383#M1927</guid>
      <dc:creator>EDJ</dc:creator>
      <dc:date>2022-02-24T21:59:28Z</dc:date>
    </item>
    <item>
      <title>Re: Duplicate records with Full Load and Store Changes on a task</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/Duplicate-records-with-Full-Load-and-Store-Changes-on-a-task/m-p/1897456#M1929</link>
      <description>&lt;P&gt;Yes that's expected.&lt;/P&gt;
&lt;P&gt;The full-load is effectively a simple SELECT * FROM &amp;lt;table&amp;gt; ORDER BY PK&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Whether or not that selects sees a row inserted after the start depends&amp;nbsp; on the isolation level and specifically 'phantom reads' which depends on the source database types and settings.&lt;/P&gt;
&lt;P&gt;(see for example &lt;A href="https://en.wikipedia.org/wiki/Isolation_(database_systems)," target="_blank"&gt;https://en.wikipedia.org/wiki/Isolation_(database_systems)&lt;/A&gt;&amp;nbsp;or &lt;A href="https://docs.microsoft.com/en-us/sql/odbc/reference/develop-app/transaction-isolation-levels?view=sql-server-ver15" target="_blank"&gt;https://docs.microsoft.com/en-us/sql/odbc/reference/develop-app/transaction-isolation-levels?view=sql-server-ver15&lt;/A&gt;&amp;nbsp; or )&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Replicate starts CDC for a table before starting the source unload and it 'caches' those changed to be applied after unload and its target load finish. (btw - these steps can clearly be seen in the reptask log. Increase logging level for SOURCE_UNLOAD and TARGET_LOAD to TRACE as desired )&lt;/P&gt;
&lt;P&gt;When a task uses APPLY CHANGES it will apply those cached changes (which happened from committed transactions during the select) after the target load completes. If an insert in this context creates a duplicate error it is ignored. After the table load is completed a duplicate insert&amp;nbsp; would trigger an 'apply error' and is handled according to task, or default global, error handling rules.&lt;/P&gt;
&lt;P&gt;When building change tables (CT), that duplicate handling is note (can not) be done.&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>Fri, 25 Feb 2022 03:30:17 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/Duplicate-records-with-Full-Load-and-Store-Changes-on-a-task/m-p/1897456#M1929</guid>
      <dc:creator>Heinvandenheuvel</dc:creator>
      <dc:date>2022-02-25T03:30:17Z</dc:date>
    </item>
  </channel>
</rss>

