MS Sync Framework - SQL Change Tracking issue

Need some recommendation or suggestion on SQL Change Tracking Rention period
we are using MS Synchronization framework 2.1 to synchronize the data from SQL Server to WinCe 3.5 devices ( SQL CE 3.5 )
As part of the solution, we have used SQL Change tracking feature to keep track of data changes happened on the server to download the data.
For change tracking, we have set the database retention period to 10 days.
Everything works fine in the normal scenarios.
Issue :  When a new device is installed after 10 days of the data changes on the server, because of retention period, the changes older than 10 days are not downloaded to the devices.
If you increase the retention period , it retains the data for the period.
Required suggestion
what is the best configuration value for the retention period?
can we set it to 2 or 3 years? is there any performance impact because of retention is set to maximum period.
Is there any alternative approach to configure for minimum period and synchronize the require changes.
Note: we are downloading changes only from server. it is download only configuration.

Hi,
When you are setting the change retention value, you should consider how often applications will synchronize with the tables in the database. The specified retention period must be at least as long as the maximum time period between synchronizations.
If an application obtains changes at longer intervals, the results that are returned might be incorrect because some of the change information has probably been removed. To avoid obtaining incorrect results, an application can use the CHANGE_TRACKING_MIN_VALID_VERSION
system function to determine whether the interval between synchronizations has been too long.
Considering the performance impact, it is related to what it tracks changes for and the size of increment.
For more information, see:
http://msdn.microsoft.com/en-us/library/bb964713.aspx
Thanks.
Tracy Cai
TechNet Community Support

Similar Messages

  • SQL Change tracking

    Hi Expert
    am using add on for payroll, but unfortunately there is not log option in the tables,
    so when i consult with the consultant they told it could be tracked via   "Enable Change Tracking" for MSSQ table"
    does any one have a demo or could any one explain by step by step process as am not much familier with SQL.
    Regards

    Hi gordon
    Thnks for the replay
    Sir, am not much expert in SQL, just know to write the query. pls could u help me by giving the query for checking a particular table
    [@ABCEMALW] 
    the above given is the table in which i need to know any changes has taken place
    this table does not have log options
    Regards

  • Syncing footage with music track issue in Premiere Pro CC

    My experience with Premiere Pro is still limited to basic editing. Recently I've been asked to help out a friend to edit a music video. I've done this before in Final Cot Pro X but decided to switch due to the integration of Adobe CC.
    The issue I am facing is that all footage that has been shot is delivered to me at 23.976 fps but with the audio playing faster. The audio track after importing is being played back at 29.97 fps and plays at normal speed.
    The solution I have found so far is to slow down each clip to 80% so it matches the original audio track. This is not ideal I found out while editing, so it would be better to have each clip rendered to its original state of 29.97 fps.
    After some more research I discovered that it is possible to re-render each clip to its original speed in After Effects, and even apply frame blending. Then import all back in Premiere Pro.
    My question is if the road I am following here is the correct one.
    Thank you!

    by reducing the speed in the timeline, i think it does the same thing as forcing interpret footage. the difference is by changing it in the bin before starting, you can change all clips at once. just make sure to set the sequence fps to the final output fps, not matching the changed fps of clips.  you can also right click the footage on the timeline and choose frame blend, but i think it ends up doing the same thing as the export option you are using. the difference on the timeline is you can see the frame blend while editing. AE is extremely slow and might not look any better, so where u are on deadline, forget about it.  so in premiere i think frame blend on vs off is your only real option to change the behavior of the slow-mo.
    the slow mo trick is nice for music videos, but yeah, for best results the camera needs to be sped up with the song on set. then in post both are slowed back down, replacing the song/audio with the original song at normal speed. 23.976 or 29.97 are both acceptable in NTSC usa land.  23.976 has gotten alot of attention as the "film look" since it has more motion blur, while 29.97 has a cleaner video look. below are some numbers i found somewhere and kept. so if the final render fps is known, can choose the correct shooting fps for on set with matching sped up or slowed down music.  the italic values would be used to end up with sped up footage, while the Bold values would be used for slo-motion effect. i haven't used these but the numbers look right. he could have shot at 29.97(30) fps and slowed it down to 23.976 in post to get the 80% slow-mo.
    For an NTSC/US, using a 24p timebase, for the following frame rates, adjust the song speed to:
    12 fps: make song last 1.956x longer by stretching it to 51.1% speed
    18 fps: make song last 1.333x longer by stretching it to 75.0% speed
    20 fps: make song last 1.226x longer by stretching it to 81.6% speed
    22 fps: make song last 1.067x longer by stretching it to 93.7% speed
    26 fps: make song last 0.907x as long as normal; play it at 110.25% speed
    30 fps: make song last 0.800x as long as normal; play it at 125% speed
    32 fps: make song last 0.747x as long as normal; play it at 133.87% speed
    36 fps: make song last 0.672x as long as normal; play it at 148.81% speed
    48 fps: make song last 0.498x as long as normal; play it at 200.80% speed
    60 fps: make song last 0.400x as long as normal; play it at 250.00% speed
    For an NTSC/US,  using a 30p timebase, for the following frame rates, adjust the song speed to:
    12 fps: make song last 2.445x longer by stretching it to 40.91% speed
    18 fps: make song last 1.667x longer by stretching it to 60.00% speed
    20 fps: make song last 1.533x longer by stretching it to 65.23% speed
    22 fps: make song last 1.333x longer by stretching it to 75.01% speed
    24 fps: make song last 1.250x as long as normal; play it at 80.00% speed
    26 fps: make song last 1.134x as long as normal; play it at 88.22% speed
    32 fps: make song last 0.933x as long as normal; play it at 107.14% speed
    36 fps: make song last 0.840x as long as normal; play it at 119.05% speed
    48 fps: make song last 0.622x as long as normal; play it at 160.73% speed
    60 fps: make song last 0.500x as long as normal; play it at 200.00% speed

  • BOM quantity changes tracking issue - please help

    hi,
    we use Engineering change management and change BOM with reference to a change number .
    we need to have a report to know by inputtig the date and know on that date what are all the BOM changes are done using change number.
    if we only add a new BOM component we are getting the details ,
    when we modify the BOM component quantity we need to track the new quantity added and old quantity deleted with reference to that change number.
    example : for a BOM component  A, using some change number N if we modify the quantity from 0.5 to 
                   1 .
                   then we should get in our report with reference to the change number  N added quantity is 1 and deleted quantity is 0.5 . when we go by the tables AENR,STAS and STPO , against the change number N we are getting only the added quantity of 1 and we are not able to get the deleted quantity 0.5
    we input the  date in to table AENR and get change number AENNR for the selected date .Input this change number  to STAS  here we are able to see one record with X in the field LKENZ and one with out. from here we take STLTY,STLNR,STLKN and pass to STPO to get IDNRK,Quantity referring to the same change number .
    here in this table STPO we are not getting any record with field LKENZ=X,
    only added quantity record is there
    deleted quantity reference record is not there
    please help
    MADHU KIRAN

    hi,
    AUT10 is not giving the quantity deleted or added and coponent
    our major requirement is we need to have an ABAP report whose input is date and during that date using change number what changes ae doen to BOM we need to get as output
    AENR table gives AENNR -change number using which on the selected date BOM changes are done
    taking this AENNR from STAS table we can get the added , deleted details with respect to BOM number , etc..
    using this from STPO table if i try to get
    there i am getting only added components its quantity details only
    about deleted  with reference to the details available in STAS , in STPO  table entries are not getting updated
    today if i change BOM quantity using one change number , again the same components quantity i change after some days that addition onlly getting stored , deleted quantity(means old quantity ) is not getting stored against the change number
    plz help
    regards,
    madhu kiran.

  • Block change tracking and Backup size

    DB Version : 10gRelease
    We have a Differential Incremental Backup strategy with Recovery Window retention policy. I haven't enabled BLOCK CHANGE TRACKING. Just would like to know if the backup size of both Level 0 and Level1 backups become smaller by enabling Block Change Tracking. Or is it just Level 1 backups' size which is going to decrease?
    Thank you.

    An excerpt from Oracle RMAN 11g Backup and Recovery by Robert G. Freeman & Matthew Hart
    ISBN: 978-0-07-162861-7
    The Block Change Tracking File
    By default, when doing an incremental backup, any datafile that has changed in any way will be
    backed up. This can make incremental backups take longer and will make them larger. RMAN
    offers the ability to just back up changed database blocks. +This can make your incremental+
    +database backups much smaller and shorter.+ To enable block change tracking, issue the command
    alter database enable block change tracking. The result of this command will be the creation of a
    file called the block change tracking file (BCTF).Checkout the word smaller.
    Two things:
    A. This is not Official oracle documentation ( Oracle press though)
    B. This book is about 11g. I don't know if BCTF makes backups smaller in 11G.

  • Change Tracking internals behave differently, SQL Server 2012 vs SQL Server 2008

    <original post by Glenn Estrada>
    Reposting an issue from Stack Overflow that a coworker and I are dealing with.
    In trouble shooting an issue with synchronizing disconnected devices with a central database server using Sync Framework 1.0, we are experiencing a problem after upgrading to SQL Server 2012 on the server. It appears that the CHANGE_TRACKING_MIN_VALID_VERSION
    is returning a value 1 higher than it should (or at least than it did prior to the upgrade.)
    I have been working thru Arshad
    Ali's great walk thru example of how to set up a simple example.
    I have run the scripts from #1 thru #5 to insert, delete, and update a row in the Employee table in both a SQL Server 2008 and a 2012 environment.
    In 2008, the following statement returns a 0:
    SELECT CHANGE_TRACKING_MIN_VALID_VERSION(OBJECT_ID('Employee'))
    In 2012, it returns a 1.
    In working thru a few more scripts (6-8) in the tests, I set the retention period to 1 minute to hopefully force a cleanup action. I left for the day and apparently it ran overnight.
    In the 2008 instance, the CHANGE_TRACKING_CURRENT_VERSION and the CHANGE_TRACKING_MIN_VALID_VERSION are equal (11). In the 2012 instance, the CHANGE_TRACKING_MIN_VALID_VERSION is one higher (12) than the CHANGE_TRACKING_CURRENT_VERSION (11). This could have
    an impact to the synchronization process when a database is idle for extended periods of time. And we have found that process could get caught in a loop, especially when the following test is performed to determine if a re-initialization, as opposed to synchronization,
    is required:
    IF CHANGE_TRACKING_MIN_VALID_VERSION(object_id(N'dbo.Employee')) > @sync_last_received_anchor
    RAISERROR (N'SQL Server Change Tracking has cleaned up tracking information for table ''%s''...
    Has anyone else experienced this change in behavior? Does anyone have an explanation?

    <original post by Glenn Estrada>
    Reposting an issue from Stack Overflow that a coworker and I are dealing with.
    In trouble shooting an issue with synchronizing disconnected devices with a central database server using Sync Framework 1.0, we are experiencing a problem after upgrading to SQL Server 2012 on the server. It appears that the CHANGE_TRACKING_MIN_VALID_VERSION
    is returning a value 1 higher than it should (or at least than it did prior to the upgrade.)
    I have been working thru Arshad Ali's
    great walk thru example of how to set up a simple example.
    I have run the scripts from #1 thru #5 to insert, delete, and update a row in the Employee table in both a SQL Server 2008 and a 2012 environment.
    In 2008, the following statement returns a 0:
    SELECT CHANGE_TRACKING_MIN_VALID_VERSION(OBJECT_ID('Employee'))
    In 2012, it returns a 1.
    In working thru a few more scripts (6-8) in the tests, I set the retention period to 1 minute to hopefully force a cleanup action. I left for the day and apparently it ran overnight.
    In the 2008 instance, the CHANGE_TRACKING_CURRENT_VERSION and the CHANGE_TRACKING_MIN_VALID_VERSION are equal (11). In the 2012 instance, the CHANGE_TRACKING_MIN_VALID_VERSION is one higher (12) than the CHANGE_TRACKING_CURRENT_VERSION (11). This could have
    an impact to the synchronization process when a database is idle for extended periods of time. And we have found that process could get caught in a loop, especially when the following test is performed to determine if a re-initialization, as opposed to synchronization,
    is required:
    IF CHANGE_TRACKING_MIN_VALID_VERSION(object_id(N'dbo.Employee')) > @sync_last_received_anchor
    RAISERROR (N'SQL Server Change Tracking has cleaned up tracking information for table ''%s''...
    Has anyone else experienced this change in behavior? Does anyone have an explanation?
    sql-server sql sql-server-2012

  • Issue in change tracking table on subscriber after reinitialization the subscriber

    Hi All,
    We have enabled change tracking on the subscriber tables and its getting dropped during a reinitialization.we are running an ETL on the subscriber tables basing on change Tracking.Our Initial ETL runs once and incremental ETL runs after that but
    after reinitialization i am getting fresh data and my initial ETL has already run.So how can i resolve this issue.Can't renireinitialization be done without disabling the Change Tracking.
    Kindly provide your feedback.
    Thanks

    The article property Action if name is in use correlates to the
    @pre_creation_cmd property of
    sp_addmergearticle.
    [ @pre_creation_cmd= ] 'pre_creation_cmd'
    Specifies what the system is to do if the table exists at the subscriber when applying the snapshot.
    pre_creation_cmd is nvarchar(10), and can be one of the following values.
    Value
    Description
    none
    If the table already exists at the Subscriber, no action is taken.
    delete
    Issues a delete based on the WHERE clause in the subset filter.
    drop (default)
    Drops the table before re-creating it. Required to support Microsoft SQL Server Compact Subscribers.
    truncate
    Truncates the destination table.
    Brandon Williams (blog |
    linkedin)

  • Change Tracking System in SQL Server 2012

    Hi,
    I have enabled change tracking to one of the database with retention period 1 day and auto clean is true. As per this setting changed data of one day old should get cleaned up automatically. But i am able to see 4 days
    old data also using CHANGETABLE function. Let me know is there any other setting or is this an issue in SQL server 2012 which quires some patch?
    SQL Server configuration: SQL Server 2012, Enterprise Edition, 64 bit.
    Thanks in advance for the support.
    Aruna Veluru

    please paste out:
    select * from sys.change_tracking_databases

  • Issue in Change tracker application

    Hi all,
    We have enabled Change tracking in our repository when it was enabled there were only 3 Display fields in our repository and the tracking was done as is in the change tracking application under the column Record shows all the Display fields.
    Now because of business requirements we have activated another field in our repository as a Display field, now when i login to change tracking application old records under Record column still shows the 3 Display fields in the Record column of the change tracker application.
    I went and changed a record which falls in the Change tracking criteria, now i see 4 Display fields in the Record column of change tracker application as there are 4 display fields currently.
    There is an in consistency in the data in the application now for few records there are 3  and 4 fields in the record column. Is this how the system behaves?
    I think the logic is like this when ever there is a change happening in the repository, insert query is used to update the A2I_CM_History table with the existing data(at that moment how many fields were enabled as  DISPLAY )with out any relationship to the Main table Display fields. Please correct me if i am wrong, it was just an assumption.
    If any workarounds to this problem will be of a great help.
    regards
    Sowseel

    Hi Gabor,
    Thanks for your reply!
    We have checked that note and we have indexes existing for few other fields as well in the table, but still we are facing the same issue. 
    Thanks & Regards,
    Ravi

  • Change Tracking in SQL 2012 - Behavior Change

    Hi,
    We observed some change in behavior for Change Tracking feature in SQL 2012 Express. Sequence is as follows,
    CT is not enabled at DB level. (Of course at table level too)
    Created and populated table CTTEST with some rows, say 10 rows
    Enabled CT at DB level
    Enable CT for table CTTEST
    Queried change tracking data, using change table function (select CT.* from CHANGETABLE(changes CTTEST, 0) CT). No rows returned. Perfect.
    Updated few existing rows
    Queried change tracking data using CHANGETABLE function as above. Now it returns the modified records. But SYS_CHANGE_OPERATION column shows as 'U', indicating update. Same scenario was tested in SQL 2008 Express, and we got SYS_CHANGE_OPERATION column
    as 'I', indicating as Insert. 
    Is this a change in behavior? Can somebody clarify this?
    Note: SQL Version is, "Microsoft SQL Server 2012 - 11.0.2100.60 (X64) Express Edition  (Build 7601: Service Pack 1)"

    Please note that I am not talking about CDC, but CT - Change Tracking and that too in Express edition. 
    Yes, I know, when we update primary key value, we will get a delete and insert transactions in CT. But my scenario is different. I am updating the rows, which are already available prior to enabling Change Tracking in that table. In that case only, I am
    observing this. 

  • "block change tracking" equivalent in sql server

    Hi All,
    If someone has expertise in both oracle and sql server, pls let me know if there is " block change tracking" equivalent in sql server. I know sql server has incremental/differential backup, curious to know whether it got this equivalent feature.
    Regards,
    Satheesh Shanmugam
    http://borndba.com

    May be the below link will help you:
    http://www.databasejournal.com/features/mssql/article.php/3824196/Introducing-Change-Tracking-in-SQL-Server-2008.htm

  • WCF-SQL notification and SQL Change Data Tracking - incompatible?

    Hi,
    I have a DB with Change Data Tracking enabled on a particular table. Each time an Update/Insert is made on this table, I'm able to check what need to be synchronised with other systems by using the CHANGETABLE function of SQL Server.
    And I want to use it with a Receive location WCF-SQL with inboundOperationType=Notification. So each time a modification is made on the table, I have a notification and I'm able to retrieve the updated/inserted records.
    Unfortunately, it seems that using the CHANGETABLE is not supported in the NotificationStatement, I got the following error: "The notification callback returned an error. Info=Invalid. Source=Statement. Type=Subscribe.".
    Any ideas to workaround?
    Thanks.

    Hi Johns-305,
    Thank you for your response.
    I'm not totally agreed with you about the notification because it depends on the situation.
    In my case, I have a table in a remote SQL database where data are not changing often. But I want to retrieve the changes as fast as I can because it needs to be synchronised with a MDM. 
    The notification is great for me because I get a notification message just after a change and I can synchronise it. Of course, if my receive location is down I can't receive the notification but with the mechanism described in the MSDN article you pointed,
    I can get the changes I missed during the outage.
    And now I have a solution to use the notification and the Data Change tracking: I use a regular SELECT statement in the notification statement (SELECT <columns> FROM MYTABLE). If something changes in the table, I got a notification and then I send
    a SELECT FROM CHANGETABLE(MYTABLE, ...) and I store the number of the last modification I got. So I can retrieve only the changes that occurs since my previous call.

  • Sql server management studio express - change tracking

    I'm using sql server management studio express 2005 , wanted to turn function "change tracking" for Northwind database, but when I clicked properties for northwind, there wasn't any tab for change tracking. what's the deal?

    I'm using sql server management studio express 2005 , wanted to turn function "change tracking" for Northwind database, but when I clicked properties for northwind, there wasn't any tab for change tracking. what's the deal?
    change tracking is available only from sql 2008 and above.. it is not available in sql 2005
    if you want too play with, try downloading sql 2008 or above express editions...
    Hope it Helps!!

  • Azure + Sync Framework + Error: Value was either too large or too small for a UInt64

    Hi,
    We have an in-house developed syncronisation service built on the Sync Framework v2.1 which has been running well for over 2 years. It pushes data from a local SQLServer 2005 database to one hosted on Azure with some added encryption.
    The service was stopped recently and when we try to re-start it, it fails with the error:
    System.OverflowException: Value was either too large or too small for a UInt64.
    at System.Convert.ToUInt64(Int64 value)
    at System.Int64.System.IConvertible.ToUInt64(IFormatProvider provider)
    at System.Convert.ToUInt64(Object value, IFormatProvider provider)
    at Microsoft.Synchronization.Data.SyncUtil.ParseTimestamp(Object obj, UInt64& timestamp)
    at Microsoft.Synchronization.Data.SqlServer.SqlSyncScopeHandler.GetLocalTimestamp(IDbConnection connection, IDbTransaction transaction)
    I have found the Hotfix 2703853, and we are proposing to apply this to our local server, but we have found that running SELECT CONVERT(INT, @@dbts) on the local database returns 1545488692 but running the same query on the Cloud database returns -2098169504.
    which indicates the issue is on the Azure side. Would applying the hotfix to our local server resolve the issue or would it need to be somehow applied to the Azure server?
    Thanks in advance for any assistance!
    Chris

    Hi,
    We have now applied the Sync Framework hotfixes to our server and re-provisioned the sync service. No errors were reported and the timestamp values were all within the required range. On re-starting the service the system worked as anticipated. It has now
    been running for a week and appears to be stable. No further changes were required other than installing the hotfixes and re-provisioning the scope.
    Chris

  • Change tracking version

    I would like to get change tracking version for specific database(not the one stored procedure is running), something like:
    SELECT someDB.dbo.CHANGE_TRACKING_CURRENT_VERSION();
    Is that possible?
    br, Simon

    Have you enabled CDC in your database and for your table?
    http://www.databasejournal.com/features/mssql/getting-starting-with-change-data-capture-cdc-in-sql-server-part-2.html
    Please Mark This As Answer if it solved your issue
    Please Vote This As Helpful if it helps to solve your issue
    Visakh
    My Wiki User Page
    My MSDN Page
    My Personal Blog
    My Facebook Page

Maybe you are looking for