RADE |
Source Code Manager |
Frequently Asked QuestionsFind answers to usual questions regarding workspace management |
Quick Reference |
AbstractThis article gathers answers to usual problems one user may encounter when using SCM commands. Answers are grouped by topics listed below. |
The environment path is set when executing the SCM profile. Consult [1] or ask your SCM administrator for the command to run for setting your path.
SCM commands are grouped in two sets regarding their purpose: user commands or administrator commands. Check what profile you did run when setting up the environment.
[Top]
This message is displayed on Windows platform and this occurs when the client part of the Oracle product has not been installed on the user workstation. Ask your SCM administrator for checking
The database identifier which is known by SCM must also be known by the underlying DBMS. This means that some Oracle configuration files have not been updated according to the SCM database. Contact your SCM administrator to correct this problem.
[Top]
Check first that the component you need is managed in the same tree as your workspace. If not, you can create a new workspace in the right tree (adl_mk_ws) or declare your workspace in the right tree using the adl_link_ws command. If you are working in the right tree, read the next paragraph.
Like for any modifications, the creation of a component is not automatically
seen by any workspace. A given workspace can see a component only if its parent
workspace can see it. If this component exists in your parent workspace, you
must wait it is published and then synchronize your workspace (adl_sync), you
will be able to attach the component. If the component does not exist in your
parent workspace, run the command adl_ls_fw -all -ws ws_name
for
your parent workspace. If the component does not appear in the list, it means
that your parent workspace is not synchronized with the right level of its own
parent workspace (and so on).
[Top]
Check if the files have suffixes. If not, execute the adl_ls_type command to find out the predefined types/suffixes and choose one corresponding to your file(s), then run again the adl_mk_elem command using the -type option to specify the file type. If files have suffixes, may be those suffixes are not recognized by SCM (not listed by the adl_ls_type command), then you can choose a type/suffix having the same characteristics as your files or ask your SCM administrator to create a new type/suffixe using the adl_mk_type command.
The adl_mk_elem can be also canceled if someone else has created the same file in another workspace (may be this file is now deleted). You can force the creation of your file by setting the -force option when running the adl_mk_elem command.
If you want to create a file which has been already created in another workspace but this workspace has not yet delivered this file, you can import the creation using the adl_import command. It is better to import a creation than forcing a second creation because forcing the creation will lead to a merge when the two files will appear in the same workspace.
When a file is registered in SCM, its content type is determined regarding
its suffix (text or binary). When a text file is transfered from Windows-NT to
Unix (for instance using the adl_refresh command), its internal format is
changed because lines end with a double carriage return on Windows-NT and a
simple one on Unix. If the file was classified as a binary file, this treatment
is not performed while transfering from Windows-NT to Unix. To check the type of
a file, run the command adl_ls_out filename -all
. If the file is
classsified as a binary file, you need to create it again using the right type:
[Top]
Perhaps you forgot to declare these files and directories in SCM. Run the adl_chk command in your workspace to find out all unmanaged files and directories. Then create them using the appropriate command (adl_mk_elem, adl_mk_fw, adl_mk_mod, adl_mk_data, ...) and promote your workspace again.
You have synchronized your workspace having a current working image (this one was refreshed) but now you are looking at another image and it is not refreshed against your workspace. Run the adl_ds_ws command to check the status of each image and run the adl_refresh command on all images you need to refresh.
[Top]
E:\users\cga\Demo\dev1\fw1>adl_mk_mod CNext Verifying the module's name "CNext" # ADLCMD - 0835: The name "CNext" has an unknown extension "" Module's name rules: - The minimal name length without extension is 1 characters - The maximal name length with extension is 128 characters - An extension is mandatory - Authorized extensions: m, mext, mj, mjext |
There are two kind of modules that can be created under a framework: "code" modules and "data" modules. The "code" modules are creating for storing source files while "data" modules are used for storing any files.
Note that module extensions must be chosen in a predefined list that can be changed for a given SCM installation. Ask your SCM administrator to know whether a custom checker library [2] has been setup.
[Top]
E:> pwd E:\Workspace\dev\Administration\CNext.specifics_UNIX\code\command E:> adl_mv * ..\..\Administration\CNext.specifics_SunOS\code\command Verifying the path "Administration\CNext.specifics_SunOS\code\command". # ADLCMD - 0863: "Administration\CNext.specifics_SunOS" is not an SCM object. Choose another target object path. The target can be an existing SCM object (framework, module, data component or directory) or a non existing SCM object to rename the source SCM object to this new name. |
When adl_mv is used for moving several files into another directory , this directory must be managed by SCM. In the previous example, there are some intermediate directories to register in SCM before being able to use the adl_mv command. Depending on the location of a directory in the file tree, the directory must be declared using either adl_mk_fw, adl_mk_mod or adl_mk_data, or adl_mk_dir.
In the previous example, assuming "Administration" is a managed framework, the commands to execute are:
E:\Workspace\dev1\fw1\mod2.m>adl_co Imakefile.mk Verifying the path "fw1\mod2.m\Imakefile.mk". # ADLCMD - 0863: "fw1\mod2.m" is not a SCM object. Choose an existing file path. The file must be a SCM object. |
If the command is refused by telling that the file must be a SCM object, it means that that file has not been declared. In such a case it can be directly edited and then declared to SCM using the adl_mk_elem command. Conversely, if it is declared first, the -wr option must be used to let the file in checked-out mode or execute the adl_co command after the registration.
[Top]
You have three choices:
[Top]
It means that your parent workspace has either modified these files or got
them by synchronizing itself or collecting other workspaces but didn't
published. You can check your parent workspace's status by running the command adl_ds_ws
parent_ws_name
. Wait for your parent workspace to publish and then run
the adl_sync command to synchronize your workspace: you will get these files.
[Top]
As multi-tree workspaces can be created, two workspaces having the same name in two different trees represent the same workspace. If you want to reuse the name of an old workspace, you can either delete or rename this old workspace.
The files one user is working on are just copies from the database workspace objects. From any host where SCM is available, it is possible to create a new image of an existing workspace by using the adl_mk_image command. The same files will be extracted, excepted for those modified on the first host and that have been checked-in. Images can be created, moved or deleted at any time.
[Top]
SCM commands put locks on data (workspaces, components, elements, etc) in order to prevent concurrent accesses. When a command tries to modify an object that is currently locked by another command, the following message is displayed and the second command waits until either it is interrupted or the other command ends.
E:\> adl_mk_elem main.cpp Wait a moment. Conflict access between: Your command: cga@randdsy(Windows_2000):2968 adl_mk_elem (lock id: DPyRz++++++3+++9a+72) and the other: cga@randdsy(Windows_2000):2504 adl_sync (lock id: DPyRVU+++++3+++7m+Ay) |
The information displayed on each line are:
the user name (cga)
the host where the command is running (randdsy)
the type of operating system on this host (Windows_2000)
the identifier (pid) of the SCM command (2968)
the name of the command (adl_mk_elem)
the UUID of the lock owned by the process (DPyRz++++++3+++9a+72).
When a conflict message appears, you must wait for the other command to finish. When the conflict still exists after few minutes, it is possible that the other command gets in trouble or has stopped but the SCM monitor is not aware of it.
Case 1: the command is still alive
To know if the command is still running, log on the host (randdsy) that is displayed in the conflict message and look for the process which identifier (2504) is displayed in the error message.
Your command: cga@randdsy(Windows_2000):2968 adl_mk_elem (lock id: DPyRz++++++3+++9a+72) and the other: cga@randdsy(Windows_2000):2504 adl_sync (lock id: DPyRVU+++++3+++7m+Ay) |
Almost all SCM commands are composed of two processes: one having the name of
the user command and another one named either "ADLCMCommand" or having
a name close to the command name (see example hereafter).
SYSTEM 3224 2716 8 4102 2444 10:33:48 0:00 adl_monitor SYSTEM 3200 3224 8 4102 4476 10:33:48 0:00 ADLMonitor DS\CGA 2248 2864 8 4102 17800 17:09:28 0:20 IEXPLORE DS\CGA 2500 392 8 4102 1060 17:48:28 6:28 POWERPNT DS\CGA 2316 392 8 4102 1216 21:11:20 0:00 agentsvr DS\CGA 2044 3208 8 4102 1612 21:18:22 0:00 TPONSCR DS\CGA 3144 2652 8 4102 24764 09:26:14 0:12 nlnotes DS\CGA 2208 3144 8 4102 1476 09:26:38 0:00 naldaemn DS\CGA 2684 3144 8 4102 1616 09:27:00 0:00 nhldaemn DS\CGA 2164 2864 8 4102 1148 09:45:50 0:00 CMD DS\CGA 2924 2864 8 4102 13000 09:48:46 0:06 FRONTPG DS\CGA 2080 2864 8 4102 908 09:51:06 0:00 CMD DS\CGA 2400 2080 8 4102 2480 09:51:20 0:00 adl_sync DS\CGA 2504 2400 8 4102 36492 09:51:20 0:09 ADLCMCommand.exe DS\CGA 3336 2864 8 4102 1004 09:52:14 0:00 CMD DS\CGA 3100 3336 8 4102 2480 09:53:16 0:00 adl_mk_elem DS\CGA 2968 3100 8 4102 19968 09:53:16 0:00 ADLCMCommand.exe DS\CGA 3292 2864 8 4102 908 09:53:36 0:00 CMD DS\CGA 2656 3292 8 4102 692 09:54:20 0:00 ps DS\CGA 3448 2656 8 4102 3736 09:54:20 0:00 ntps <unavail> 0 1 0 4102 330904 09:54:24 23d20 _Total |
if you want to kill the command, be sure to kill the two processes.
Once the command is killed, the SCM monitor should unlock the
data and the other command should continue automatically.
If there is still a lock that forbids the other command to continue, proceed as
described in case 2) hereafter.
Case 2: the command does not exist no more
Sometimes, the SCM monitor which manages locks does not detect the death of processes (for instance if the network connection is suddenly broken between the client host and the SCM server). In this case one must tell to the monitor that the command is dead and that the associated locks can be removed.
To remove a command from the monitor, use the adl_mo_admin command with the -rmcmd option.
E:\> adl_mo_admin -rmcmd <command_UUID> ... |
To know the UUID of a given command, use the adl_mo_admin command with the -lscmd option.
E:\> adl_mo_admin -lscmd 3 commands are currently processed by the monitor: cga@randdsy(Windows_2000):2504 Running adl_sync (DPyRVU+++++3+++7m+Av) cga@randdsy(Windows_2000):2968 Running adl_mk_elem (DPyRz++++++3+++9a+7+) cga@randdsy(Windows_2000):3148 Running adl_mo_admin (DPyS4k+++++3+++AH+95) |
Please, take care to remove the command ONLY when you are sure that the command
no more exists on the client host.
[Top]
[1] | Workspace Management |
[2] | The Custom Checker Library |
[3] | DBMS Environment Variables |
[Top] |
Version: 2 [Oct 2002] | Add details about lock conflitcs |
Version: 1 [Apr 2000] | Document created |
[Top] |
Copyright © 2000, Dassault Systèmes. All rights reserved.