RADE

Source Code Manager

Frequently Asked Questions

Find answers to usual questions regarding workspace management

Quick Reference

Abstract

This article gathers answers to usual problems one user may encounter when using SCM commands. Answers are grouped by topics listed below.


SCM commands Location

Where are SCM commands?

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.

Some commands are available but not all those listed in the documentation

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]

SCM Database Environment

The dynamic link library OCI.dlll could not be found...

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

# ADLDB - 0001: Database error: Database = ...: ORA-12154: TNS:could not resolve service name

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]

Attach

I want to attach a component but SCM tells me that this component cannot be found

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]

File

The adl_mk_elem command is refused for some files

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.

There are strange characters in some files

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]

Missing files and directories

I have promoted by workspace and it has been collected but some files and directories are missing in my parent workspace

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.

The traces of my last synchronization show that new files were coming but I do not see them on my file system

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]

Module

Unknown extension

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]

Not a SCM Object

I tried to move some files into another directory but my command was refused.

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:

I tried to check-out one file but my command was refused

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]

Promotion

My promotion is refused because it contains a file which has been already promoted by someone else

You have three choices:

[Top]

Synchronization

My workspace is synchronized but I do not see the same files in my parent workspace's images

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]

Workspace

I want to use the same workspace name in two different trees but it is forbidden

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.

I used to access my workspace from a given host but now it is not accessible and I want to work on my files

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]

Locking Conflicts Between Commands

My command is waiting for another to finish

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:

My command is waiting for another to finish but it does not finish

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]


References

[1] Workspace Management
[2] The Custom Checker Library
[3] DBMS Environment Variables
[Top]

History

Version: 2 [Oct 2002] Add details about lock conflitcs
Version: 1 [Apr 2000] Document created
[Top]

Copyright © 2000, Dassault Systèmes. All rights reserved.