Subject [IBO] V.4.2Ga - TIB DMLCache: the new enhance work as expected?
Author Enrico Raviglione
Hi Jason,
in your ReleaseNotes of V.4.2G i read:

The DML caching/dataset synchronizing feature was enhanced so that it
wouldn't interfere with datasets currently in a non-browsing state. Instead
of doing that it will wait until after the dataset is posted and then do a
Refresh in order to get the dataset synchronized. This default bahavior is
subject to furthur refinements because obviously I would like it to do what
it can without interrupting a dataset in an edit state. There is no reason
other records in the buffer cannot be refreshed if they are what is being
synchronized. In short, I'd like it to intelligently perform all
synchronizing actions possible rather then deferring them.

But i have test it in my work on TIBO-DMLCaching and i think your enhance
don't work how you expect.

From IBA_BDataset.IMP:

if NeedToPost and ( Bookmark = KeyFields.RowData ) then
FRefreshDML := true
case ADMLCacheItem.DMLCacheItemType of
ditEdit: InvalidateBookmark( KeyFields.RowData );
ditDelete: DeleteBufferBookmark( KeyFields.RowData );
ditInsert: InsertBufferBookmark( KeyFields.RowData );

An example: if the TIB_BDataset1 are in edit on record number. 3 and receive
a DMLCache notification of a change occured on record n. 2 the NeedToPost is
true but also the second condition (Bookmark=KeyFields.RowData) are true!!

This is correct or not ?

Enrico Raviglione.