This content has been marked as final. Show 3 replies
You have a number of options:
1. Log in as the user that executed BeginResolve. Aside from users with the WM_ADMIN_ROLE, this is the only user allowed to execute RollbackResolve for that specific workspace. You can find the user that executed BeginResolve by using the following:
SQL> select workspace, resolve_user from all_workspaces ;
2. Create a definer's rights procedure in the schema that executed BeginResolve and grant execute privileges to the user that is going to be calling it.
3. Create a separate schema and grant WM_ADMIN_ROLE to that schema that could then be used for executing RollbackResolve.
Thanks a lot for the solutions.
In addition to the above provided solutions I am thinking of caling BEGIN DBMS_WM.BeginResolve('3493888'); END; after crash...this is not giving an error...and I am assuming that this will use the orphaned conflict resolution session (which was created during a crash).
Please suggest if there are any issues in calling BeginResolve() upon a crash.
If BeginResolve completes without any error, then that means that there is not an active conflict resolution session. It either completed normally, or had failed during the previous BeginResolve.
You can always execute BeginResolve and if there is an error, you would know that you need to rollback the conflict resolution sessions using one of the previous solutions or continue using the currently active session, if possible.