9.5 Creating a VOB

Follow these steps to plan and create each new VOB:

  1. Log on to the VOB host. Make sure the host meets the criteria laid out in VOB Server Configuration Guidelines in this chapter. If possible, log on as a user who is a member of the same primary group as all other users who will need access to the VOB.

  2. NOTE: The identity of the user who creates a VOB (user ID, primary group, and umask on UNIX; user ID and primary group on Windows) is used to initialize VOB access permissions. If a VOB is created by a user whose primary group is not the same as the primary group of other users who must access the VOB, you will need to edit the VOB's supplementary group list before those users can access VOB data. See also the protect and protectvob reference pages.

  3. Choose a location for the VOB storage directory. You can use an existing server storage location, create a new server storage location, or use any other directory that has the proper characteristics for good VOB storage as described in Creating VOB Storage Locations.

  4. Create the VOB. This example explains how to create a VOB using the cleartool command line. You can also create VOBs using various GUI tools on UNIX or Windows.

  5. The following command creates a VOB on Windows with the VOB-tag flex whose storage is in the directory shared as vobstore on a host named pluto, and then returns location and ownership information about the newly created VOB.

    cleartool mkvob -tag \flex \\pluto\vobstore\flex.vbs

    Host-local path: c:\vobstore\flex.vbs
    Global path: \\pluto\vobstore\flex.vbs

    VOB ownership:
    owner vobadm
    group dvt

    Whenever you create a VOB, you are prompted to enter a comment, which is stored in an event record (as the event "create versioned object base") in the new VOB's database.

    To create a Unified Change Management Project VOB, which can store UCM objects such as baselines, projects, and streams, add the -ucmproject option when you run mkvob.

    By default, VOBs are created as private VOBs. Specify -public on the mkvob command line to make a public VOB. Public VOBs can be mounted one at a time using the cleartool mount command, or as a group using the command cleartool mount -all. If you specify -public on the mkvob command line, you are prompted to enter the ClearCase registry password. This password is normally established when ClearCase is installed at a site. If you need to create or change this password, see the rgy_passwd reference page.

In many cases, the VOB-creation process is now complete. The following sections describe special cases and optional adjustments you may want to make to the new VOB.

NOTE: Before any user can access a new VOB on a client host, the following conditions must be met:

Linking a VOB to an Administrative VOB

If you want a VOB to use global types defined in an administrative VOB, you must link the client VOB to the administrative VOB. On Windows, if you use the VOB Creation Wizard to create the VOB, you can specify the administrative VOB at the time of VOB creation. To link a VOB to an administrative VOB after you have created the client VOB, see Linking a Client VOB to an Administrative VOB.

Creating a VOB on a Remote Host

UNIX users can use standard UNIX remote host access methods (telnet, for example, and the X Window System) to access a remote host for purposes of creating a VOB.

If you are using Windows and want to create a view or VOB on a remote machine, ClearCase must have access to information stored in the remote machine's registry. Remote access to the Windows Registry can be restricted by setting security on the key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\Winreg

By default, this key is not present on Windows workstations. This allows the underlying security on the individual keys to control access.

On Windows server hosts, the key is preset by default and may prevent workstations from reading the server's registry. When this is the case, if you are on a remote workstation and attempt to create views or VOBs on the server, the creation fails with the error Invalid argument.

To work around this problem, either remove the key or modify the security on it.

The ClearCase Doctor program, which runs as part of the installation, warns you if the registry key will prevent you from creating views or VOBs on this machine, and optionally can fix it.

Adjusting the VOB's Ownership Information

This section discusses changes that you may need to make to a new VOB's ownership information.

Access-control issues may arise when all prospective users of the VOB do not belong to the same group. (For detailed information on the topic of user identity and ClearCase access rights, see Chapter 3, Understanding ClearCase Access Controls.)

Case 1: One Group for All VOBs, Views, and Users

In organizations where all ClearCase users are members of the same group, all VOBs and views must also belong to the common group. A VOB or view belongs to the principal group of its creator and is fully accessible only to those users who are in the VOB creator's group.

The commands in Step #1-Step #3 here are sufficient to create a VOB in such a situation.

Case 2: Accommodating Multiple User Groups

If your organization has multiple user groups, there are special considerations when members of different groups share a VOB:

Ensuring Global Access to the VOB-Special Cases for UNIX

The output from the mkvob command (Step #3 on here) includes a global (networkwide) pathname for the VOB storage directory. This pathname is derived heuristically; that is, it's an intelligent guess. Depending on the accuracy of the guess, you may have some more work to do before the VOB will be accessible to all ClearCase hosts.

Two of the most common reasons this guess can be wrong are unique to UNIX clients.

Guess Was Wrong, But Global Pathname Does Exist

There may be a global pathname that all ClearCase client hosts can use to access the VOB storage directory, but mkvob's heuristically derived pathname is not the right one. These are the most common reasons:

In this case, use the mktag command to correct mkvob's guess. For example:
host and hpath information must be valid on the VOB host. gpath must be a valid pathname to the VOB on all hosts. pathname to the storage directory must be valid on the local host

cleartool mktag -replace -vob -public -tag /vobs/flex \
-host ccsvr01
-hpath /vobstore/flex.vbs
-gpath /allvobs/flex.vbs
/vobstore/flex.vbs
Vob tag registry password: <enter password>
.
.


Network Requires Multiple Global Pathnames

There may be no single global pathname for the VOB storage directory. The most common reason is that the VOB must be accessible to hosts with different operating systems (for example, UNIX and Windows) which have different conventions for global pathnames. In this case, you must partition your network into multiple network regions; each region must have a single global pathname to VOB storage. For background information, see Chapter 26, Administering Regions.

Another possible reason is that the VOB host is a UNIX computer that has multiple network interfaces, each with its own host name. Because only one VOB-tag per region can be associated with a given host storage path, a VOB that has storage on a host with multiple network interfaces must have a tag in each region where the host name is listed if clients in each region need access to the VOB.

If a host named pluto is in region ccregion1, then the mkvob command in Step #3 on here created the VOB-tag in that region. If pluto has a second network interface that uses the host name pluto2, you must make pluto2 a member of a different region, and then create a VOB-tag in that region before clients in the region can access the VOB created in that step.


valid pathname ->
to VOB on all
hosts in network region ccregion2

cleartool mktag -vob -public -region ccregion2
-tag /vobs/flex
-host pluto2
-hpath /vobstore/flex.vbs
-gpath /net/pluto2/vobstore/flex.vbs
/vobstore/flex.vbs
Registry password: <enter password>
.
.


NOTE: Your -gpath value may need to take into account the use of a nonstandard automount program or other mounting idiosyncrasies within each network region.

This example used the same VOB-tag even though it was initially created in a different region. This is a practice that we encourage you to follow.

Enabling Setuid and Setgid Mounting of the Viewroot and VOB File Systems on UNIX Hosts

By default, the viewroot and VOB file systems are mounted with setUID and setGID disabled; this is the recommended configuration. However, if any hosts at your site must mount these file systems with setUID and setGID enabled (for example, if you run setUID tools from a VOB), you must configure your release area with the site_prep script to allow this. When ClearCase is installed on these hosts, the viewroot and VOB file systems are mounted accordingly. (Alternatively, you can run the change_suid_mounts script on an individual host to enable honoring of setUID programs in VOBs mounted on that host. However, this setting does not persist across installs, and you must stop and restart ClearCase on the host after running the script.) For more information, see the discussion of site_prep in the Installation Guide for the ClearCase Product Family.

Creating Remote Storage Pools on UNIX Hosts

As described in the discussion of Creating Remote Storage Pools on UNIX Hosts, you can take advantage of UNIX symbolic links to create remote storage pools on a UNIX VOB server host. Typically, you don't add remote storage pools to a VOB until a disk-space crisis occurs. But as you gain more experience with how your group uses ClearCase and how VOBs grow, you may want to add remote storage pools when you first create a VOB. This approach can help to postpone the disk-space crisis, perhaps even avoid it altogether.

See Creating Remote Storage Pools on UNIX Hosts for the procedure.