To fix this issue, I need a mechanism to notify the store (scancontroller) to move off the row (i.e to afterLast() or beforeFirst()), so that it can release the lock on the current row.
I do consider the following options:
Use the method ScanController.positionAtRowLocation(RowLocation rl)
Here the RowLocation objects could represent the positions beforeFirst and afterLast. I.e one could make use of the
RecordHandle. RESERVED4_RECORD_HANDLE and
RecordHandle. RESERVED4_RECORD_HANDLE to represent to beforeFirst and afterLast positions.
When the method ScanController.positionAtRowLocation(RowLocation rl), is called with a rowlocation with these positions,
the scan implementation may release the U-lock of the current row
Add new methods to ScanController interface: moveToAfterLast() and moveToBeforeFirst()