Database events are not sent to observers during a transaction. Instead, they are queued by the server and only sent once the transaction is committed. If the transaction is cancelled (if a rollback occurs) then none of the queued events will be sent to observers apart from the EContactDbObserverEventRollback event.
The behaviour described above comes into effect when using the following APIs:
A maximum of 1000 database events will be queued during a transaction. If there are more events than this then the queued events will be discarded. When the transaction is committed the EContactDbObserverEventUnknownChanges event will be sent to observers instead.
It is important to note that in the previous version of the Contacts Model database events were sent to observers as they occurred during a transaction. The new model behaviour is more appropriate since, when a rollback occurs, there is no point in receiving events for operations which never actually happened (that is, were not committed).
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License v1.0.