How do you remove IBM Rational ClearCase checkout references that are cataloged in the VOB database after a view is removed or becomes inaccessible using the, cleartool rmview -uuid, command on Microsoft Windows, UNIX, or Linux?
Any one the following symptoms may be experienced:
- Attempts to perform a checkout results in the following error:
%cleartool co foo.c
cleartool: Error: Element "foo.c" is already checked out to view "<no-tag-in-region>".
- Attempts to uncheckout a file result in the following error:
%cleartool unco foo.c
You may also see errors such as the following if the view storage directory has been renamed.
- Attempt to checkout an element which was checked out to a view whose view storage director name was changed reports the error:
cleartool: Error: Branch "\main" of element is checked out reserved by view checked-out_ref_test_sview ("V357978ms2:c:\ClearCase_Storage\views\TSSYD\tkajiwara\checked-out_ref_test_sview.vws").
cleartool: Error: Unable to check out "a.txt".
- After checking out an element to a snapshot view and renaming the view storage directory, trying to unco the element from the snapshot view reports an error:
C:\SnapshotViews\checked-out_ref_test_sview\vob03\a>cleartool unco a.txt
cleartool: Error: Operation "view_get_prop(VIEW_PROP_WEBVIEW)" failed: view storage directory or control files unavailable -- additional information may be present in the view server host's view log.
The checkout may be failing because the file is already checked out reserved to a view that was either removed or is no longer accessible on the network.
If a view has become inaccessible or was deleted by mistake and the VOB database still holds references to the checkouts, you will need to remove the reference from the VOB database in order to checkout the file from a different view.
Note: If the view still exists and you do not wish to uncheckout the element (potentially losing the changes made), review technote 1129391: How to Checkout (reserved) an element that is already checked out (reserved) in another view for another possible solution.
Having checkout(s) to a view that is no longer available or accessible is very common.
Here are some steps on how to remove the references in the VOB database.
Important Note: Only run this procedure if the data contained in the view (the checkouts) are no longer needed or if the view no longer exists. This operation performs an uncheckout in the VOB database for all elements that were related to the view. If a view still exists and you use the procedure below to delete records relating to it from any VOB, make sure that the view is removed immediately.
If removing the view checkout references from a replicated VOB, the rmview command should be run at the site where the view checkouts were originally performed. If the original replica no longer exists, you can run the rmview on the site that pulled mastership from the deleted replica.
Refer to the rmview section of the ClearCase Command Reference Guide for additional information about the usage of the rmview command.
1. First you need to determine what the UUID is of the old view.
a. COMMAND TO RUN IF THE VIEW EXISTS:
From the command line you will need to run cleartool lsview -long and find the view and copy its uuid number.
If you have more than one region, you may have to add the -region option to the lsview command designating the non-current region name.
cleartool lsview -long TEST
Global path: \\MYHOST\VIEW\TEST.vws
Server host: MYHOST
View tag uuid:fa7fc590.42f34d53.ae68.b6:30:f5:30:c5:a4
Text mode: unix
View on host: Your_Host
View server access path: C:\VIEW\TEST.vws
View uuid: fa7fc590.42f34d53.ae68.b6:30:f5:30:c5:a4
View owner: MYDOMAIN\user1
b. COMMAND TO RUN IF THE VIEW HAS BEEN REMOVED:
From the command line you will need to run cleartool describe -l vob:\<vobname> and find the view and copy its uuid number. Example:
c leartool describe -long vob:\baseccvob
versioned object base "\baseccvob"
created 04-Oct-04.16:48:26 by user1.group1@MYHOST
VOB family feature level: 4
VOB storage host:pathname "MYHOST:C:\CC_Store\vob\baseccvob.vbs"
VOB storage global pathname "\\MYHOST\cc\vob\baseccvob.vbs"
database schema version: 54
VOB holds objects from the following views:
MYHOST:C:\VIEW\TEST.vws [uuid a7fc590.42f34d53.ae68.b6:30:f5:30:c5:a4 ]
FeatureLevel = 4
AdminVOB@687@\baseccvob -> vob:\proj_1
2. The next step is to remove all the references to the VOB (which will perform the uncheckout).
COMMAND TO RUN:
From the command line you will need to run cleartool rmview -uuid <long uuid #> -avobs to remove all the checkedout references from all VOBs in that region.
%cleartool rmview -uuid fa7fc590.42f34d53.ae68.b6:30:f5:30:c5:a4 -avobs
Removed references to view "fa7fc590.42f34d53.ae68.b6:30:f5:30:c5:a4" from VOB "\VOB1".
Removed references to view "fa7fc590.42f34d53.ae68.b6:30:f5:30:c5:a4" from VOB "\VOB2".
Removed references to view "fa7fc590.42f34d53.ae68.b6:30:f5:30:c5:a4" from VOB "\VOB3".
Removed references to view "fa7fc590.42f34d53.ae68.b6:30:f5:30:c5:a4" from VOB "\VOB4".
3. The last step is to verify if the references have been removed from the VOB.
Use the command invocation from 1b ( cleartool describe -l vob:\<vobname>) to ensure the checkout are gone.
If the references have not been removed, follow the instructions in technote 1146797.
Note: If a directory has been unchecked out, then all new elements created when it was checked out are no longer referenced by that directory. Consequently, they were all moved to the lost+found directory.
To restore these files from the lost+found directory, please refer to technote 1120317.