Multiuser scenarios with IBM Rational ClearCase

Precautions are needed when multiple users attempt to modify the same files at the same time.

General considerations

It is recommended that IBM® Rational® ClearCase® be used as an integrated extension to EPF Composer rather than as a separate application. This configuration provides maximum protection against unexpected file conflicts in multiuser environments.

In situations where several users are updating files in the same library, you might find that someone else has already checked out a file that you need to modify. When this happens, wait until the file is available to check out. You can use ClearCase history to determine who has checked out the file that 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 Composer 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. Because 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.
Tip: If problems such as unresolved references occur, use Update Resource to refresh your 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 files that you will need for these operations, 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 Rational 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 files that were changed, your library is in an inconsistent state.

Actions that warrant this precaution include renaming, moving, or deleting an element. For more information about how actions impact files, see Common actions impact on specific files.

Division of responsibility

Potential file conflicts that can occur while using Rational 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 opens 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.
  2. User B tries to create a new role in plugin-in 1.
  3. User B is asked to checkout plugin.xmi and selects Apply.
  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. Further examination reveals that User A has checked out this file.
  6. User B should click OK in all remaining prompts.
  7. User B should wait for User A to check in the common resources and use either the ClearCase perspective or Resource Navigator view to perform an Update Resource operation on the entire library.

Out-of-date resources

A warning message opens if a local resource version is identified as earlier 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 plugin-in 1.
  4. User B is asked to checkout plugin.xmi and selects Apply.
  5. User B receive the ClearCase error "Choose Version to Check Out". User B should click Cancel.
  6. User B should click OK in the remaining prompts.
  7. User B should go to the ClearCase perspective or Resource Navigator to perform an Update Resource on the entire library before creating the new role.