Multi-user scenarios with ClearCase

This page describes some of the precautions which must be taken when multiple users attempt to modify the same files at the same time.

General considerations

It is recommended that ClearCase be used as an integrated extension to EPF rather than as a separate application. This configuration provides maximum protection against unexpected file conflicts in multi-user environments.

In situations where several users are updating files in the same library, you may find that someone else has already checked out a file you need to modify. When this happens, you should wait until the file you need is available to check out. You can use the ClearCase history to determine who has checked out the file you need.

Do not attempt to hijack the file and then merge your changes with your coworker's version when you check back in. Many files in your library cannot be merged easily. This is especially true of library.xmi, plugin.xmi, and model.xmi.

When you begin to modify a method element, EPF determines the set of affected files and prompts you to check them out. If you do not have the most recent version of a file in your library, you will be given the option to update the file and then check it out. Since many files in a library are interdependent, it is recommended that you update your entire library whenever you discover a file that is out-of-synch.
Note: If problems such as unresolved references occur, users should use Update Resource to refresh their library view.

Changes involving multiple files

Some changes require multiple files be checked out before being modified.

To ensure that you are able to check out all the files you will need for these operations, it is advisable to manually check out these files before proceeding. You can check out the files from the Resource View or from the ClearCase perspective.

After making your update, check the files back into ClearCase as soon as possible. This is especially important if you renamed or moved files or folders. Renaming or move operations are performed immediately, but other files that reference these renamed or moved files (such as plugin.xmi or library.xmi) are not checked in. Until you check in all the files which were changed, your library is in an inconsistent state.

Actions which warrant this precaution include renaming, moving, or deleting an element. Refer to Common Actions Impact on Specific Files for more information.

Division of responsibility

Potential file conflicts which may occur while using ClearCase in multiuser environments can be minimized by doing the following:
  • Assign one individual (usually the method architect) to be responsible for changes affecting library.xmi, especially during times of high-contention or to assist new users with proper check-in order.
  • For each plug-in, assign one individual to be responsible for changes that affect both the plugin.xmi and other files simultaneously. Coordinate updates among team members. Changes that only affect plugin.xmi can be safely performed by anyone.
  • Assign only one individual per process to minimize conflicts with model.xmi files

Updating resource conflicts

A warning message will be displayed if a user tries to update a resource that is currently checked-out by someone else. This is illustrated in the following example:

  1. User A renames an existing role in plug-in 1. A prompt to checkout plugin.xmi for that plug-in will appear.
  2. User B tries to create a new role in plug-in 1. This action will also affect plugin.xmi.
  3. User B is prompted to checkout plugin.xmi and selects Apply. This causes a conflict because User A has already checked-out this file.
  4. User B sees the following ClearCase error message: Error During Checkout: an error has occurred. See Details for additional information. Unable to checkout.
  5. User B should click OK to continue. At this point User B realizes that someone else has checked-out one or more files needed to complete this operation. User B can right-click on plugin.xmi in the Navigator view and use Team > Show history to identify who has it checked out.
  6. User B should click OK in all the remaining dialog prompts. The operation is canceled.
  7. User B should wait for User A to check-in plugin.xmi and perform an Update Resource... operation on the entire library before attempting to check-out the needed resources.
    • If the ClearCase perspective is open, right-click on the library and use Tools > Update Resource...
    • If the Resource Navigator view is open, right-click on the library and use Team > Update Resource....

Out-of-date resources

A warning message is displayed if a local resource version is identified as older than the one on the server.

  1. User A renames an existing role in plug-in 1.
  2. User A checks in some changes, but User B is unaware of this and has not performed Update Resource...
  3. User B tries to create a new role in plug-in 1.
  4. User B is asked to checkout plugin.xmi and selects Apply.
  5. User B gets the ClearCase error dialog "Choose Version to Check Out". User B should click Cancel.
  6. User B should click OK in all the remaining dialog prompts.
  7. User B should perform an Update Resource on the entire library before creating the new role.
    • If the ClearCase perspective is open, right-click on the library and use Tools > Update Resource...
    • If the Resource Navigator view is open, right-click on the library and use Team > Update Resource....