Our workspace version is 10.2.0.4.3. We start use CR workspace recently to enhance efficiency of _diff view. Our workspace model is two level structure, LIVE workspace and sub-workspace based on it. When we start create sub-workspace as CR workspace. We can't rollback LIVE workspace to a explicit savepoint since there is always a highest position implicit savepoint that created by CR workspace exsited.
I did some test and procedure as below:
1. versionable table and create a explicit savepoint after do some change in LIVE. Check all_workspace_savepoints and found the explicit savepoint created and the canrollbackto property is YES.
2. Create a CR workspace based on LIVE. Check all_workspace_savepoints and found a implicit savepoint with higher position value of property created. And the canrollbackto property of explicit savepoint changed to NO.
3. Do some change in LIVE and create another explicit savepoint. Check all_workspace_savepoints and found the explicit savepoint created with higher position value. And found the implicit savepoint was replaced with another imlicit savepoint with highest position. And the canrollbackto property of the two explicit savepoint is NO.
4. I did some others operation. There is always a highest position implicit savepoint unless remove the CR workspace.
Since rollbacktosp raise error when the highest position implicit savepoint exist. Does this mean if we use CR workspace, then we can't rollback the parent workspace to a explicit savepoint, even this explicit savepoint created time after CR workspace created time?
Can you give me some advise of this condition? Since in my codes I created a explicit savepoint before merge to rollback if merge failed. And current condition is merge failed and rollback is failed also since of the highest position implicit savepoint exist.
This is expected behavior. This operation is not allowed primarily to prevent data from potentially changing within a child workspace during a rollback operation. This is the same reason we prevent rollback over an implicit savepoint for a non-CR workspace. If you need to have the rollbackToSP functionality, you cannot currently use a CR workspace.
Instead of creating a savepoint in the parent workspace, have you tried to set auto_commit=>FALSE and rollback the open transaction?