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:
- User A renames an existing role in plug-in 1. A prompt to checkout plugin.xmi for
that plug-in will appear.
- User B tries to create a new role in plug-in 1. This action will also
affect plugin.xmi.
- User B is prompted to checkout plugin.xmi and selects
Apply. This causes a conflict because User A has already checked-out
this file.
- User B sees the following ClearCase error message: Error During
Checkout: an error has occurred. See Details for additional information. Unable
to checkout.
- 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.
- User B should click OK in all the remaining dialog prompts. The
operation is canceled.
- 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.
- User A renames an existing role in plug-in 1.
- User A checks in some changes, but User B is unaware of this and has not
performed Update Resource...
- User B tries to create a new role in plug-in 1.
- User B is asked to checkout plugin.xmi and selects Apply.
- User B gets the ClearCase error dialog "Choose Version to Check Out".
User B should click Cancel.
- User B should click OK in all the remaining dialog prompts.
- 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....