Monday, December 28, 2009

Synergy object times

Synergy has several time stamps on its objects.
create_time: the time when the object version in the database has been created.
source_create_time: the timestamp taken from the file system upon loading the object into the repository.
Note that when a new object has been created in the database the filesystem timestamp is not reflected in the database, and the db object creation time is reflected instead. When the new version of an already existing object is created, the filesystem timestamp is taken and reflected in the source_create_time attribute.
E.g.
new file has been created on a filesystem at Mon Dec 28 10:47:35 2009 and has been "synced" into the database at Mon Dec 28 10:56:45 2009. So the dbobject create time is set to Mon Dec 28 10:56:45 2009.
Later, when we check out the file again, a new version, 2, is created and it's creation time is set to Mon Dec 28 10:58:05 2009. Now the source_creation_time is set to the timestamp the file has on a file system, that is Mon Dec 28 10:47:35 2009.
ccm query -owner myuser "source_create_time>time('December 28 2009') and source_create_time<time('December 29 2009')" -f "%name %version %instance %create_time %source_create_time"
1) newfile.txt 1 1 Mon Dec 28 10:56:45 2009 Mon Dec 28 10:56:46 2009
2) newfile.txt 2 1 Mon Dec 28 10:58:05 2009 Mon Dec 28 10:47:35 2009

When the file is checked in its source_create_time is unchanged, even though the file on a fs has been edited immediately before the sync.

$ ccm query -owner myuser "source_create_time>time('December 28 2009') and source_create_time<time('December 29 2009')" -f "%name %version %instance %create_time %source_create_time %modify_time"

1) newfile.txt 1 1 Mon Dec 28 10:56:45 2009 Mon Dec 28 10:56:46 2009 Mon Dec 28 10:57:53 2009
2) newfile.txt 2 1 Mon Dec 28 10:58:05 2009 Mon Dec 28 10:47:35 2009 Mon Dec 28 13:17:17 2009

Tuesday, December 15, 2009

How to find out if a specific file has been checked out to specific task?

Here is the command for you:
ccm query -name <file name>"status='working' and is_associated_object_of('task<task number>#1:task:probtrac')" -u -f TRUE
for example:
$> ccm query -name strings.xml "status='working' and is_associated_object_of('task202873#1:task:probtrac')" -u -TRUE
If the file IS associated with THE task, you will get a line of the output with a single word "TRUE", if not - you will get a "new line" only:
$> TRUE
Enjoy :)

Monday, December 14, 2009

Synergy tasks and objects query

How to find objects not associated to any task?

Answer

There are instances when users create objects in Telelogic Synergy without associating them to a task. However, a s a good CM practice, it is recommended to associate every object in Telelogic Synergy with a task.

Run the following command after starting a Synergy command line or classic client session to get all the objects not associated to a task.

In Synergy 6.3 and newer:

ccm query "has_attr('source') and is_no_associated_cv()"

In Synergy 6.2 and earlier:

ccm query "has_attr('source') and not is_associated_cv_of(cvtype = 'task')"

The above command will list out all objects which has 'source' attribute (primarily source type objects) and not associated to any task.

If you wish to add these objects to a task, please refer to FAQSCM0217 ( How do I associate/disassociate an object with a task from the command line? ) as found in the Related Documents section below.

Products

Synergy

Product version

6.0, 6.1, 6.2, 6.3, 6.4, 6.5

Related Documents

How do I associate/disassociate an object with a task from the command line?

Answer

To associate or disassociate objects and tasks using the command line interface you can use the 'ccm task' command or the 'ccm relate' command. The object should be specified by 4-part name. As an example, to associate foo.c to task 75, perform the following command:

% ccm task -associate 75 -obj foo.c-1:csrc:1

To disassociate foo.c from task 75, perform the following command:

% ccm task -disassociate 75 -obj foo.c-1:csrc:1

The 'ccm relate' command is typically used for object to object relations. For example, to make clear-2 a successor to clear-1:

% ccm relate -n successor -f clear-1 -t clear-2

Please see the Synergy Help Documentation for further information on the 'ccm task' and 'ccm relate' commands.

Products

Synergy

Product version

SYNERGY/CM 4.5, 5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5

Reference ID

FAQSCM0217

Related Documents

How to find objects not associated to any task?

Last Modified Date:06-13-2007ID:

How can I find all objects (cv's) associated with a specific task, say task 1:


1188) task205841 task205841#1:task:probtrac task_assigned


Answer

The following ccm commands will show all objects associated to a particular task:

% ccm task -show objs 1 (CCM 4.5 or later)

or

% ccm query "is_associated_object_of('task1-1:task:probtrac')"

Note that in a database initialized for DCM, the probtrac instance on task and problem objects are replaced by the database's DCM id.

Products

Synergy

Product version

CM Synergy 5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4

Reference ID

FAQSCM0179


Our tasks ids are like this:

1189) task2054842 task205842#1:task:probtrac completed
1191) task2058844 task205844#1:task:probtrac task_automatic
1192) task2075845 task205845#1:task:probtrac completed
1194) task2105847 task205847#1:task:probtrac task_assigned

Sunday, December 13, 2009

Compare content of two project versions (Synergy work tip)

Update:
To ease the review you may want to grep all the different lines in the diff output (first command):
ccm diff -p Proj#Version1:project:1 Proj#Version2:project:1|egrep '>|<|\|'
This will give you the list of differences between two projects.
~~~~~
The predecessors of the Proj#Version1 is Proj#Version2.
There are two diffs you may run on the project objects:
ccm diff -p Proj#Version2:project:1 Proj#Version1:project:1
and
ccm diff -p -vc Proj#Version2:project:1 Proj#Version1:project:1

In the first case the list of the versioned objects is compared, so you get the result in the following form (example below):
In the second case the version compare is performed.
I suggest you run two commands and examine the output to see if you get what you are looking for.

~~~~~~~~~~

The motivation is to see all the changes that went into this project.

So basically I need a diff between this project baseline and the latest.

If there Is a way to ignore “syncs” it would be nice.

Synergy allows a comparison of just about any two objects, projects included. And the CLI version of every command is there for you, just ask.

Fix the Motif issues on Synergy clients machines running CentOS

CentOS 5.4 is not officially supported by the Synergy Classic GUI 6.5, so occasionally you may get Motif related warnings and errors while using special keys.
E.g. pressing BackSpace would print special chars instead of deleting the last char in the current string on the cursor.

The problem is most likely with the application that is not able to locate the XKeysymDB database on the spot it is looking on.
To solve this issue you will need the root permissions on your machine.On CentOS the file is located in /usr/share/X11/.

Follow these steps to build a link to the XKeysymDB in the place an application is expecting it.
1. mkdir -p /usr/X11R6/lib/X11
2. cd /usr/X11R6/lib/X11
3. ln -s /usr/share/X11/XKeysymDB XKeysymDB
This should be it.

Wednesday, December 9, 2009

Subprojects setup (case study)

Take a look at your generic project (integration testing) now.

You will see the new directory "netKu" created under "Ku" folder.
The only entry in this directory is the NET#V5.6.6A - your NET project that is now included as a subproject into GEN#int_v80.01.

Note the project releases:
GEN#int_v80.01 release is G80.01 and
NET#V5.2.6A release is NET_V5.6.6A.

Now take a look at the reconfigure properties of the GEN#v80.01 project.
In the Java GUI this is called Project "Process Rule Properties".

You will notice the new folder has been added:
Folder 5347925: Automatic Tasks for Integration Testing projects for release NET_V5.6.6A
This folder is not created automatically, I've made it today.

This folder contains two automatic tasks for release NET_V5.6.6A:
Task 4179555: Integration Testing projects for release NET_V5.6.6A and
Task 4179556: Integration Testing products for release NET_V5.6.6A.

Having this folder in your prep project reconfigure properties ensures that you get the subproject updated properly upon update (a.k.a reconfigure) run.

Next, let's look at the NET#V5.6.6A properties.
In the "Work Area" tab you will see that currently the project does not have a work area. And so all the Work Area options are off.

Should you ever decide to build from the prep project (that you should do), you will switch the Work Area ON.
Once you do this, you will see the second "Path" option seen as a check box "Place work area relative to parent project's".

By default this is not checked, and all the projects are located in your default work area directory, all on the same directory level.

If you would rather have the subproject located in the relevant directory, just like you now see it in the Synergy interface, you should check the box. This will create the subproject directory inside the parent project tree.

Collaborative Development projects

In order to have the newly set hierarchy for the working projects as well, the following has to be done (I believe you have already done this, so the steps are for your people):

1. Check in all the files and directories currently checked out for both projects (parent and sub).
2. Delete working projects you currently have for releases G80.01 and NET_V5.6.6A.
3. Locate and show the Integration Testing project GEN#v80.01.
4. Copy project (right click the project name and select "Copy Project" option). New window will open with several fields to fill up.

Leave the first two with the default values.
In the third field "Subprojects:" select the "Copy all subprojects" value from the list.

In the fourth field "Versions:" type in the new project versions you want to assign.
Click the button with the double arrow on the right.
Note that as you now have two projects to copy you will have two fields for separate values for the parent project version and the subproject version.

Fill in the new project versions as you see fit and click OK to close the window.

The system will now create your personal copies of the both prep projects:
parent GEN#80.01 and subproject NET#V5.6.6A.

You should now see the hierarchy in your own collaborative development projects.

5. Next step is to set up the work area options for the subproject.

Locate the project and open its properties window. On the Work Area tab you will see the second "Path" option as a check box "Place work area relative to parent project's".

By default this is not checked, and all the projects are located in your default work area directory, all on the same directory level.

If you would rather have the subproject located in the relevant directory, just like you now see it in the Synergy interface, you should check the box.

This will create the subproject directory inside the parent project tree.

This will complete your setup.

Command line changes

Remember to update your subproject together with the update (reconfigure) you run for your parent project. Use "-r" flag with the "update" command.

The update command will look like this:

"ccm update –r –p GEN#userV80.01"

Note: in order to have collaborative development projects updated with the subproject properly there is an additional folder template "Collaborative automatic tasks for user %owner and release NET_V5.6.6A".


Thursday, December 3, 2009

Query for a release with particular name

e.g. looking for a release for the component MyComp:
$ ccm query -type releasedef "name='MyComp'" -f "%name %displayname %component_name %component_release %version"
1)
MyComp MyComp/1.00 MyComp 1.00 1.00
2)
MyComp MyComp/2.00 MyComp 2.00 2.00
$ ccm query -type releasedef "component_release='XYZ_V81513F'"
1) XYZ_V81513F release_admin ccm_root releasedef <void> 1 <void>
query for active releases with particular name:
$ ccm query -type releasedef "component_release='XYZ_V82510' and active=TRUE"

Query objects are of type working_saved_query

Use "working_saved_query".

Tuesday, November 10, 2009

Start a Synergy session from within a script on a UNIX client? and more - Telelogic

Question
How can I start a Synergy session from within a script on a UNIX client?

Answer
To start a session from within a script on a Unix machine, you need to be sure that CCM_HOME is set correctly and that $CCM_HOME/bin is in your path. Also, you may want to start in nogui and quiet mode. An example script follows:
#!/bin/sh
#
# Be sure the path for CCM_HOME reflects your CM installation.
#
CCM_HOME=<path to CM installation here>
PATH=${CCM_HOME}/bin:${PATH}
export CCM_HOME PATH
# Start CM in nogui mode. Use -q to suppress all output
# except the rfc address, the -m will allow multiple sessions.
DB=<Your db path>
CCM_ADDR=`ccm start -nogui -q -m -d $DB`
export CCM_ADDR
# Avoid extraneous sessions--stop your session before exiting:
ccm stop
5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5NACM00269AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor


~~~~~~~

~~~~~~~~~

~~~~~~~~~~

~~~~~~~~~~~

~~~~~~~~

Historical Number
KB594
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Question
How do I trace a Synergy Classic Client session startup?

Answer
The output of a trace is usually only helpful to people with in-depth knowledge about the inner workings of CM. As such, tracing is usually only done at the request of Telelogic Technical Support. Session startup may be traced by setting the environment variable CCM_TRACE before issuing the 'ccm start' command. Trace information will be stored in the ccm_ui.log or ccm_eng.log files of the users home directory. These files may grow very large with tracing enabled and the performance of the product will be affected while tracing.

Example: In ksh or Bourne Shell:

% CCM_TRACE=ALL; export CCM_TRACE

In csh:

% setenv CCM_TRACE ALL

From a DOS prompt:

x:\> set CCM_TRACE=all
Further information on tracing within the Synergy client can be found in the Related Documents section below.
5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5NACM00358AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor


Historical Number
KB896
Question
When attempting to merge two versions of an object, the following error message appears:"Warning: Merge Source failedCouldn't rcp cache file to temp file &lt;path to temp file&gt;"

Answer

The most likely cause of this problem is that the files which the user is attempting to merge have a binary type. Check the type used and its super-type. If the type is binary, then it cannot be merged using SYNERGY/CM. Only ascii types can be merged using the merge tools provided.

For MS Word files which are stored as binary types, it is possible to use the Diff/Merge function provided by MS Word. See TB178 "How to use MS-Word to do Diff/Merge Functions on MS-Word type objects" as seen in the Related Dcuments section below for details.

Question
Why can I not modify some prep projects even though I am in the build_mgr role?

Answer

Starting with CM Synergy 6.2, build managers are only allowed to modify local projects . Any non-local project in the prep state will only allow its work area path to be changed; any other modifications would require a project checkout, thus creating a local project.

In CM Synergy releases prior to 6.2, build managers were able to perform modifications to any prep project e.g. changing the platform attribute. However, in some cases this resulted in problems when the project was a non-local project (i.e. received from another DCM-initialized database). For this reason, even though such modifications are not forbidden in these releases, it is recommended that build managers never modify non-local projects. Any modification will be lost the next time the project is received.

6.0, 6.1, 6.2, 6.3, 6.4, 6.5NACM00706AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor


Historical Number
KB5999

Question
When does an object's modify_time attribute get updated?


Answer
The modify_time is changed when ANY attribute, except the source attribute is changed through CM. In other words, on every 'ccm attr -m' command, and on check-in, and all similar modifications. In all releases since 4.4, the modify_time also gets updated on any relationship change. If you edit the source of a working object, the modify_time of the object is not updated until CM becomes aware of that change, such as when a check-in is performed.

Once an object is first checked-in to a static state, its last source attribute modify time is preserved in the attribute 'source_modify_time' . Subsequent attribute changes and check-ins of the same object version update the modify_time attribute, but not the source_modify_time .

Historical Number
KB755

Question
How can I find all projects with a particular name, such as `aaa' or `ccc', then reconfigure the results (i.e. pass the results of the query to the ccm reconfigure command, which cannot be done using the `@' operator):

Answer
The following command will allow you to pass the results of a query matching the name of a project to the ccm reconfigure command to enact a reconfigure of the projects returned:
% ccm query -u -ns -f 'reconfigure -p %name-%version' 'type="project" and (name match "aaa" or name match "ccc")' | ccm
In the above command, piping the output to the ccm command will take the formatted output with 'reconfigure at the beginning, thus creating a ccm reconfigure command in the results causing the result set to be automatically reconfigured.
4.5, 5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5 FAQSCM0180 AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor


Historical Number
KB836

Problem(Abstract)
Attempts to access the IBM Rational Synergy 'Type Definition' dialogs on Linux results in a system crash.

Cause
The Motif library is unable to find XKeysymDB and locale files.

Resolving the problem
Prior to starting the Classic client, define the XLOCALEDIR and XKEYSYMDB environment variables to the appropriate location.
For example:

  • export XLOCALEDIR=/usr/share/X11/locale
  • export XKEYSYMDB=/usr/share/X11/XKeysymDB




XLOCALEDIR and XKEYSYMDB files could be available in several different folders in Linux.
The path has to be verified and files need to be checked if available in '/usr/share/X11 folder.
If the files are not available, find another copy of these files and add them to the environment variable.

Once the above requirements are met, try browsing the Synergy tool dialogs.

If the issue persists, contact technical support for further assistance.

Question
How to enable addional logging in the Synergy Client

Answer

Perform these steps to enable additional logging in the Java Synergy Client:

1. Uncomment these lines in the %CCM_HOME%\etc\ccm.server.properties file:
ccm.server.log.file=
ccm.log.session.allocation=
ccm.log.servlet.manager=
ccm.log.accent.calls=
ccm.log.session.timeouts=
ccm.log.jrfc.threadpool=
ccm.log.calls.from.accent=
ccm.log.accent.call.times=
ccm.log.server.call.times=
2. Modify these 3 lines in the %CCM_HOME%\etc\ccm.properties file:
user.log.events=10
user.remote.call.log=
user.print.stacktrace=

3. Then run the Synergy client in the GUI or at the Command Prompt as follows:
cmsynergy

4. Additional output will be logged to the 'ccm_client.log' file.

6.5AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor

Historical Number
40238

Question
How can I embed newlines in my CLI query output?

Answer
On UNIX systems you may embed a new line by setting the query format in a script, as follows:
#!/bin/ksh
export CCM_HOME=/usr/local/ccm
export PATH=$CCM_HOME/bin:$PATH

#query for all tasks owned by ccm_root, and format the results over 2 lines
ccm query "(cvtype='task') and (owner='ccm_root')" -u -ns -nf -f "
Task Synopsis: %task_synopsis
Release: %release
"
  For both Unix and Windows systems, a newline can be embedded as well if it is escaped. For example:   
    ccm query  - type problem  "( problem_number='2' )" - u â€"f "%problem_number \        
    %problem_synopsis "    
4.5, 5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5 FAQSCM0228 AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor


Historical Number
KB6094

Question
Why are the Context menus in the Telelogic Synergy Classic Client not working in a Virtual Environment?


Cause
The context menus in the Classic Client have been observed not to work if the "Num Lock" key is enabled on the keyboard.

Answer
Disable the Num Lock key while working with the Classic Client in Virtual environments.
If the issue persists, stop any Synergy sessions and re-register the resource file by running the command:

xrdb -merge $CCM_HOME/etc/Ccm

After running the command restart the Synergy sessions for the changes to take effect.

Note: On UNIX platforms, ensure that this resource file and the Synergy binaries versions are for the appropriate UNIX flavor in use.

Question
How can I query for all tasks associated to a baseline?

Answer
To find all tasks associated with a particular baseline, you may run the following query:
    ccm query "is_task_in_baseline_of('<baseline_4_part_name>')"

An example of the query with the 4 part name specified:

    ccm query "is_task_in_baseline_of('20060601-1:baseline:1')"

For a DCM initialized database, the example may look like the following, (where JRO is the DCM DBID):

    ccm query "is_task_in_baseline_of('20060601-1:baseline:JRO')"

The above queries should return each task that was in the " All Completed Tasks " folder at the time the baseline was created.


Related information
How to compare baselines and identify tasks


Historical Number
KB12158
FAQSCM0259

~~~~~~~~~~~~

Question
How to determine the last time a Project was reconfigured?

Answer
Beginning with Synergy/CM 6.3, Reconf_time is an attribute which contains a value indicating the last time a reconfigure was done on the Project. This attribute exists only for a Project and not for the Project directory or the Objects within the Project. For obvious reasons this attribute does not exist on a brand new project and is only created when the Project is reconfigured the first time. Reconf_time for a Project will update whenever a Reconfigure is performed on the Project or on the Project directory.
The following commands will query for and show the reconf_time on a project:
>ccm query -t project -n <project_name>
>ccm attr -s reconf_time @1

6.3, 6.4, 6.5 AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor


Historical Number
11229

~~~~~~~~~~~~~

Problem(Abstract)
Attempts to drag and drop object versions from the history view to any location on the file system is successful in version 6.4; however, in version 6.5 and later this behavior does not work.
Symptom
You are unable to drag and drop object versions from History view of any object to the file system.


Cause
The existence of this feature in Synergy 6.4 and its absence in Synergy 6.5 is not documented anywhere.

Resolving the problem
An Enhancement Request (RFE) has been submitted to address this documentation issue (R#33629).
WORKAROUND:

Use the project view to drag and drop objects in Synergy 6.5 and later versions.

Question
Given a cvid number, how can I tell what object it belongs to?

Answer
Sometimes you may only have the cvid of and object and wish to find out more information on it. For example, if you locate a very large file in <dbpath>/st_root/cache/source/*, you may wish to find out what object it is. This can be done using the command:
% ccm prop @=<cvid>
or to find just the four-part name:
% ccm attr -s name @=<cvid>
% ccm attr -s version @=<cvid>
% ccm attr -s cvtype @=<cvid>
% ccm attr -s subsystem @=<cvid>
Substitute <cvid> in the commands above with the 5 or 6 digit cvid number.
4.5, 5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5FAQSCM0223AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor


Historical Number
KB866

~~~~~~~~~~~~~~~~~~

Question
I am unable to create a user containing an underscore on Solaris so I am unable to create a user and group "ccm_root". Can I use a different user name?

Answer
No, it is not possible to use a different username as t he user and group "ccm_root" must be used.
The use of the underscore is not restricted by Solaris, but rather some administrative tools do not allow it to be used. If that is the case with the tool which you are using, " admintool " for example, the user and group must be created manually by editing the relevant files (/etc/passwd etc.) directly.
Contact your Solaris system administrator for further details.
5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5NACM00772AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor




Historical Number
KB8027

~~~~~~~~~~~~~

Question
Within the context of parallel exclude rules, what is a leaf_node and what is the significance of the exclude_non_leaf_nodes rule?

Answer

Within the context of parallel exclude rules, what is a leaf_node and what is the significance of the exclude_non_leaf_nodes rule?

A leaf node is an object-version with a predecessor and no successor.

Consider the following history diagram where only the version is shown for brevity and clarity:

1 --> 2 --> 3 --> 4
\
\--> 1.1.1

In this case, assuming the exclude_non_leaf_nodes rule is enabled, if you were to check out from version 1.1.1 you would receive a parallel notification for version 4 but not for version 3 because this version is not a leaf node.

CM Synergy 6.3NACM00770AnswerProduct versionPartner ContentInternal ContentCategoryReference ID


Historical Number
KB8000

~~~~~~~~~~~~~

Question
How do you create multiple objects in a project from the command line interface in IBM Rational Synergy?

Answer
The "ccm create" command can be used to create multiple objects in a project at the same time.

  • ccm create –t <type> <objectname1> <objectname2> ..


Note: You need to cd (Change Directory) to the location in the workarea where the object has to be created.

For instance,to create multiple directories in a project called 'ProjectA', do the following:

  • cd <workarea path of ProjectA>\ProjectA-1\ProjectA


Run the command

  • ccm create –t dir folder1 folder2 folder3


This command will create three directories in the project 'ProjectA'.

The synopsis and description of the 'ccm create' command is available in 'Synergy Command Line Interface Help'.

~~~~~~~~~~~~

Question
When attempting to start the Java Client, the message "Invalid local CCM_HOME" appears. How can this be resolved?

Answer
The Developer Client reads the value for the local installation of CMSynergy from the %CCM_HOME%\etc\ccm.server.properties (Windows), $CCM_HOME/etc/ccm.server.properties (UNIX) file. If you receive the error 'Invalid local CCM_HOME' when starting the Developer Client it is indicative that the local.ccm.home value in this file is incorrect.

To resolve this, open the ccm.server.properties file in a text editor, correct the path and try again. The 'local.ccm.home' value should be set to the path where Synergy is installed on the client machine.

6.1, 6.2, 6.3, 6.4, 6.5NACM00756AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor


Historical Number
KB7488

~~~~~~~~~~~~~

Question
How can I see a list of all of an object's attributes in the GUI?

Answer

Platform: UNIX only

Client: Classic Client only

Set the environment variable CCM_PV_ATL to true. e.g.
CCM_PV_ATL=true;export CCM_PV_ATL

Then start a CM session from the same terminal using the command 'ccm start'.

Select an object, hold down the Shift key and right click. All of the object's attributes will be listed.

Note: This is not a supported feature and may be retired without notice in future releases. It will not work in the Developer (Java) client.

CM Synergy 4.5, 5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4FAQSCM0197AnswerProduct versionPartner ContentInternal ContentCategoryReference ID


Historical Number
KB9337

Question
After successfully starting a session, the next action results in a pop-up dialog containing the message: Warning: bad rfc address (hostname:8830).

Answer

This typically occurs when you are using the Engine Startup Daemon and the client machine is unable to resolve the hostname of the ESD server. This is the hostname referenced in the warning message.

Check that the client can ping the ESD server by long name, short name, IP address and vice versa. If any of these fail, take the necessary actions to resolve the issue. For example, add the relevant host name to the local "hosts" file, NIS, or DNS, depending on which is being used for name resolution

CM Synergy 6.0, 6.1, 6.2, 6.3, 6.4FAQSCM0195AnswerProduct versionPartner ContentInternal ContentCategoryReference ID


Historical Number
KB8058

~~~~~~~~~~~~

Question
How can I perform a case insensitive query in Synergy?

Answer
Synergy is case sensitive, so queries run at the CLI need to match the case of the object versions which you require. However you may use regular expressions in a query statement to find object versions using a mixed case search. For example:

ccm query "name match 'editor'"

will return all object versions with the name "editor". Similarly,

ccm query "name match 'Editor'"

will return all object versions with the name "Editor". However if you use:

ccm query "name match '[Ee]ditor'"

then both sets of object versions will be returned.
4.5, 5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5FAQSCM0230AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor


Historical Number
KB6096

~~~~~~~~~~~~~~

Question
Following a clean cache operation on a UNIX server's database (with the -u option), objects appear to be missing from a project that had been synced before the clean_cache operation was done. The links are now pointing to non existent files in the cache.

Answer
The clean_cache command will remove cache objects that have been archived and meet the selection criteria of the command arguments (see command reference for more details). Projects may still have links to these removed files in the cache. These projects will need to be sync'ed again so the objects can be unarchived and copied to the work area or links recreated.SYNERGY/CM 4.5, 5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4FAQSCM0201AnswerProduct versionPartner ContentInternal ContentCategoryReference ID


Historical Number
KB547

Question
Are there limitations for the Synergy database name?

Answer
Yes. The limitations differ depending on whether the database is based on Informix or Oracle:
Informix: The database name must be 18 characters or less and the first character must be a letter. Valid characters are letters `a' through `z' (internally all letters will be converted to lower case), numbers `0' to `9', and the underscore '_
Oracle: The database name must be 14 characters or less and the first character must be a letter. Valid characters are letters `a' through `z' (internally all letters will be converted to lower case), numbers `0' to `9', and the underscore '_
5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5FAQSCM0164AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor


Historical Number
KB545

Question
How do you export the 'ccm users' list to a file?

Answer
In order to export the 'ccm users' list (the users defined on a specific database), perform the steps given below.

  1. Start a Synergy session on the database.
  2. Run the following queries to export the ccm users list to a file.
    • ccm query -t model -n base
    • ccm attr -s users @1 > users.txt

For example:

ccm query -t model -n base
1) base/model/base/1 ac_rel ccm_root model <void> base <void>
>>ccm attr -s users > users.txt

In the above example, the users list will be available in the file 'users.txt'.

Question
I am getting the following errors during a "ccmdb backup". ccm_gzip: stdout: File too largeBroken PipeERROR: tar failed

Answer

The error " ccm_gzip: stdout: File too large " is usually the result of a limit on the size of a file.
This limitation is often set to 2GB by default in the operating system. Contact your system administrator to remove this limit. If this does not resolve the issue, contact Telelogic Technical Support for further troubleshooting of the backup command.

~~~~~~~~~~

Question
How can I find all unbound objects in a database?

Answer
The following query will return all objects in the database not currently bound to a project:
% ccm query "not is_bound() and type!='project' and has_attr('source')"
If you are using Telelogic Change, the query above will also return any attachments to the Change Requests. If you wish to exclude attachments from the result, the query can be modified as follows:
% ccm query "not is_bound() and type!='project' and has_attr('source') and not has_attr('attachment_name')"

4.5, 5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5FAQSCM0173AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor


Historical Number
KB801
~~~~~~~~~~
Question
How do I disable the "Also Checkout Subprojects" toggle in the Project Checkout dialog?

Answer
To disable the "Also Checkout Subprojects" toggle in the Project Checkout dialog, add the following line to the [Options] section of your personal [.]ccm.ini file :
dflt_checkout_dlg_recurse = FALSE
If this line does not exist, the toggle will default to TRUE (i.e. checked). This entry can also be made to the CCM_HOME/etc/ccm.ini file, which will disable the toggle for all users of the installation. This does not affect the CM Synergy for Developers client.
6.1, 6.2, 6.3, 6.4, 6.5NACM00455AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor


Historical Number
KB7495
~~~~~~~~~
Question
Where are the users and release table information stored?

Answer

In CM Synergy versions prior to 6.3, these are stored as attributes of special objects within the database. The users attribute is stored on the model object of your installed model, this is typically base/model/base/1. The release table is stored on the releases attribute of an admin object called base/admin/base/1.

In CM Synergy 6.3, the release table no longer exists. Each release is stored as an object of type 'releasedef'. These objects can be listed with the following query:

ccm query -t releasedef

CM Synergy 6.2, 6.3NACM00255AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor


Historical Number
KB542
~~~~~~~~~~~~~
Question
As a build manager on a Unix system, when I try to sync or reconfigure a prep project, Synergy/CM tells me that I'm not a member of the ccm_root group, although my sysadmin has recently added me to that group.

Answer
When a userid on Unix is added to a group, existing login shells are not updated. Even though running the 'groups' command reveals group membership, the current login shell still may not know about it.

Stopping existing sessions, logging out of the system, and logging back in is recommended for group membership to be fully realized in the Operating System.
5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5FAQSCM0168AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor


Historical Number
KB758
~~~~~~~~~~~
Question
How can I prevent reconfigure from updating the folders in the Reconfigure Properties?

Answer

A reconfigure will automatically update any query-based folders in the reconfigure properties which are writable by the user doing the reconfigure. This is by design and ensures that the latest changes are brought in without manual intervention.

However, some users require tighter control of when a folder is updated. The following commands can be used to prevent a reconfigure from updating a folder. Set the 'add_tasks_manually' attribute to TRUE for the folder you wish to keep static:

ccm attr -m add_tasks_manually -v TRUE folder_id

When you require the contents to be updated again set it back to FALSE:

ccm attr -m add_tasks_manually -v FALSE folder_id

SYNERGY/CM 4.5, 5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5FAQSCM0243AnswerProduct versionPartner ContentInternal ContentCategoryReference ID


Historical Number
KB7486
~~~~~~~~~
Question
How can I find all objects that have a particular attribute?

Answer

The following query will return all objects which have a particular attribute name created on it:

% ccm query "has_attr('<attribute_name>')"

Note that this query is not intended to return objects with a particular attribute value, but rather only objects which contain the actual attribute name.

CM Synergy 5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5FAQSCM0185AnswerProduct versionPartner ContentInternal ContentCategoryReference I


Historical Number
KB856
~~~~~~~~~~
Question
I have accidentally deleted an important object-version from CM Synergy. Can I recover it?

Answer

There is no undelete option. However, you may still have the file contents in the developers workarea or in the wastebasket (check %CCM_HOME%\etc\ccm.ini for the wastebasket path setting).

As a developer, check out a new version of the file, copy the contents retrieved above into the workarea file and reconcile (update the database from the workarea).

Thus you can recreate a file version with the correct contents.

SYNERGY/CM 6.3NACM00806AnswerProduct versionPartner ContentInternal ContentCategoryReference ID


Historical Number
KB9369
~~~~~~~~~
Question
Are there limits on the length of the object names?

Answer
Yes, there are limits on the length of an object name. The name of an object is made up of 4 attributes, the length of each are limited as follows:
Name: 155 characters
Instance: 48 characters
Type: 16 characters
Version: 32 characters
The names of attributes in the database other than these 4 are limited in length to 32 characters but their values are unlimited in length .
5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5FAQSCM0163AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor


Historical Number
KB544
~~~~~~~~~~
Question
How can I find the file system size of an object in Synergy?

Answer
Synergy does not store the size of an object as an attribute. But you may still require this information.

Each object in Synergy has a unique number. You can get this by using the pseudo attribute 'cvid'.
We also use this number to store source files in the cache.

We can on a UNIX server access the file in the cache and get the size. Details of how the cache and archive are organized are available in the Technical Paper: Structure of the Synergy Cache and Archive


The following script uses the cvid of the object to find the source file in the cache and using 'ls' gets the size. This script should be modified to suit your needs. This script is provided as an example only and is not supported. You will have to test it on your own installation.

You can query for the object and get the cvid as follows:
ccm query -n <name> -v <version> -i <instance> -t <type> -f "%cvid %objectname"

Then call the script as follows
cvid2size <cvid>

The script needs to be in your path and executable.

This process relies on the object being in the cache. This may not be true for objects which have not been accessed since the cache file system was cleaned. If the file cannot be found in the cache you can use the 'ccm cat <objectname>' command which will re-create the cache file.



#!/bin/sh
# cvid2size
#
# Find out the size of an object given it's cvid
# You have to have a Synergy session running.
# On some UNIX platforms you may have to change
# the position of the size field. (in the awk command

# at the end of the script)
#
# Usage
USAGE="Usage: $0 <cvid>"

if [ $# = 0 ]
then
echo $USAGE
exit 1
fi

# find out the database path
DBPATH=`ccm set | grep -i 'database =' | awk '{print $3;}' | sed 's/db$//'`

# get the cvid parameter
cvid=$1

# get the object name from second parameter
objectname=`echo $* | sed 's/^[0-9]*//'`

# snip the last two digits
part1=`echo $cvid | sed 's/[$0-9]$//' | sed 's/[$0-9]$//'`

# then substract the 2 parts of th cvid
part2=`echo $cvid | sed s/$part1//`

# echo the result,
# on some systems, the output field of the size
# can be something else than the 3rd field
echo $DBPATH
size=`ls -l "$DBPATH"st_root/cache/source/#$part2/$cvid | awk '{print $4;}' `
echo $objectname $size

Do you need more help?

For additional assistance, contact IBM Rational Client Support:
Submit a Service Request (SR)


Related information
Structure of the Synergy Cache and Archive
Question
How do you query for objects from a particular Release pattern?

Answer
Follow the steps below to query the objects associated to a particular "release value pattern".
  1. Query for all the active releases using the command:

    ccm release -l -active

  2. Next to list all the projects pertaining to all the releases on the database run the command:

    ccm query -t project -f "%release"

  3. Query for all the projects pertaining to a particular release pattern:

    ccm query -t project "release match '*toolkit/*'" -f "%objectname %release"

    This lists only the projects.

  4. List all the objects on the database pertaining to this release pattern:

    ccm query "release match '*toolkit/*'" -f "%objectname %release"

    This will list all the objects in the database like process rules, reconfigure_templates, tasks, files, folders, baselines etc. The output can be huge depending on the size of the database.

  5. Query for the tasks of that particular release pattern:

    ccm query -t task "release match '*toolkit/*'" -f "%objectname %release"

  6. Query for all the objects associated to the queried release pattern.

    ccm query "is_associated_object_of('four_part_name_of_task')"
Question
How do I trace a Synergy Classic Client session startup?

Answer

The output of a trace is usually only helpful to people with in-depth knowledge about the inner workings of CM. As such, tracing is usually only done at the request of Telelogic Technical Support. Session startup may be traced by setting the environment variable CCM_TRACE before issuing the 'ccm start' command. Trace information will be stored in the ccm_ui.log or ccm_eng.log files of the users home directory. These files may grow very large with tracing enabled and the performance of the product will be affected while tracing.

Example: In ksh or Bourne Shell:

% CCM_TRACE=ALL; export CCM_TRACE

In csh:

% setenv CCM_TRACE ALL

From a DOS prompt:

x:\> set CCM_TRACE=all
~~~~~~~~~~~~~~
Question
In my <database_path>\st_root\tmp\check directory I can see some files with names like the following:UOBJ.trx_KEKJBBFIUOBJ.trx_QNJJBBFI, what are they and can I delete them?

Answer
These files are a by-product of the "ccm fs_check" program which checks the database cache and archive integrity.

These files are usually deleted when each check completes, but if the fs_check program is interrupted, then the temporary files can remain behind and have to be deleted manually. You can specify an alternate temporary directory for fs_check with the -d option as described in the on-line help.

Providing no fs_check is running on the database at this time, then it is quite safe to delete these temporary files.

Please review the Help documentation for the fs_check command as found in the Information Center here: http://publib.boulder.ibm.com/infocenter/rsdp/v1r0m0/index.jsp

~~~~~~~~~~

Question
Checking in a file fails with the message: "Warning: could not obtain workarea event semaphore for file foo.c-3:csrc:1 in project ico-jdoe."


Answer
The " Warning: could not obtain workarea event semaphore " error can occur when a previous Synergy session did not exit successfully and an engine process is still running with no corresponding gui or cli. The run away engine process locks up the project and it cannot be accessed by another session. The solution in this case is to kill the rogue engine process. Run the ' ccm monitor' command and examine the output to see if there is an engine process without a corresponding gui and cmd process.

A common cause for this scenario is to kill a GUI or command line session with a -9 signal. This should be avoided, as the engine process will remain. If you must kill the interface process, Support recommends using a signal -15 or -8, which will cause the engine to exit more gracefully.

Question
How do you change the default browser for 'Online Help' in IBM Rational Synergy?

Answer
The ccm_exec function of Synergy launches the default browser for Java Client and Classic Client:

  • The ccm_exec function, by default, picks up whichever browser is set as default on the host while accessing the 'Online Help'.
  • If you wish to use a different browser from the current one set, change the default browser on the host so ccm_exec function will launch the new browser set.


Consult your operating system and browser help systems for more information on how to change the default browser settings.



The Classic Client:

The ccm.ini file located in your profile has the web browser setting.


The entry is:

HTML_browser = ccm_exec


The Java Client:

The web browser setting is in the ccm.properties file located in the <CCM_HOME>\etc


The entry is:

windows.tool.browser = %ccm_home\\bin\\util\\ccm_exec "%url"


Note: The Java Client allows for some flexibility of permitting a different browser for the Online help which need not be the default browser on the machine.

This can be set if the path to the browser executable (for example, IE or Mozilla) is specified in the ccm.properties file,

windows.tool.help = "<path to browser executable>" %help_home/%help_file %help_context %help_topic


The JAVA client has to be restarted for the changes to take effect.



Example: Changing the browser on XP (click to expand)

Question
How to Re-Baseline Task-Based Projects

Answer
General Discussion

The purpose of this document is to describe CCM implementation techniques to improve reconfigure performance when there are an increasing number of tasks between traditional project releases. The intent of these techniques is not only to improve the reconfigure performance of a project, but also provide an implementation that can be accomplished without forcing the creation of a formal release of the product, or interrupting the development and test environment for the current release.

This discussion assumes use of a standard task based model methodology to manage software and the development environment.

Technical Discussion

Recall the standard task based project workflow: Each developer derives a working project from the previous release, as do each build manager and tester. As the number of tasks in the project folder grows, the time to reconfigure the SQA project also grows impacting productivity. This could happen at 50, 75, or 100 tasks, depending upon the users interpretation. Instead of waiting until the end of a build/release timeline to create a new release, the release/build manager creates an incremental release from the stable -- well tested 13 configuration (for example as the number of tasks equals 300).

To create the incremental release, the build manager checks in the project from the SQA work-area. The idea is to release a snap shot configuration, and use it as the new baseline for ongoing development. To distinguish the incremental release from the current release, incremental release labels are used. That is, when the build manager promotes, or checks in, the configuration to the release state of SQA , an incremental release label (for example, 2.0a) is used in place of the current release label (for example, 2.0).

The next step is to make sure that the tasks already included in the baseline do not get picked up during reconfigure, as development and formal testing continues from the new baseline. To prevent this happening, the incremental release label is used again for the tasks. The build manager replaces the release label on all the completed tasks in the project folder with the incremental release label (for example, 2.0a) applied to the newly created baseline project.

Once the new baseline project is created, the build manager send an email message out to all CCM users of the project and instructs them to changes the baseline project name in the reconfigure details of the working project. Upon completion of the baseline project name changes, each users issues a reconfigure to pick up the new baseline configuration.

The steps required to baseline task-based projects for performance improvement are as follows.

  1. Add a new release value to the release table. (for example, if you're working on 2.0, add 2.0b1.)
  2. Change your sqa prep projects' release value to your new release baselines (for example, if the version is "2.0," change it to "2.0b1"). Change the top-level project's release first, using the Properties dialog or "ccm attr --modify" command, then copy the new value to its subprojects using the Attribute Copy dialog or the "ccm attr-copy" command.
  3. Change your sqa prep projects' version values to reflect that they will be baselines (for example, if the version is "2.0," change it to "2.0b1"). If all of your projects have the same version, you can change the top-level project's version and then copy it to all subprojects as shown above. If some of the subprojects have different versions (for example, platform-specific versions such as s4_2.0 and w32_2.0) the easiest way to change them is via "ccm query" and "ccm attr -modify."
  4. Release your sqa prep projects. Use the Check In dialog from the top-level project, or the "ccm checkin -p" command.
  5. Freeze the old folder: bring it up and change its name to reflect that it's a baseline, then make it non-writeable.
  6. Update all the tasks currently in your old folder to have the new release value you added in step 1 (for example, "2.0b1").
  7. Check out new sqa prep projects, using the Check Out Project dialog or the "ccm checkout -p" command. Be sure to specify the release and version values to your "old" release (for example, "2.0").
  8. Update the work area path on your new projects, if necessary.
  9. Create a new folder and add it to your new sqa prep projects, following the instructions in "Task-Based CM," pp. 195-199. (This is a manual folder, and it will be empty to start with.)
  10. Update your integration prep projects' baseline. Bring up the reconfigure properties for the top-level project, set the baseline to your new released project, and save.



Developers must update their projects' baselines as described in #10.

Summary

In summary, the technique discussed herein will improve reconfigure performance due to the increasing number of tasks in one traditional release cycle.

In this implementation, care must be taken when deciding when to freeze a project to create a new baseline. Tasks completed during the time of the base-lining activity must not be included the project folder as they have not been sufficiently integrated or system tested. This can be avoided by not updating folders until after the script, described in step 6 above, is run against the project folder. Once the completed tasks included in new baseline project have had their release label changed, they will no longer by picked up by the normal folder query. However, the new complete tasks will be included in the folder when the query is applied.