Monday, June 15, 2009

Merge fails complaining on java heap memory problems

Issue:

When trying to merge two (close to one another in the history) versions
of an ascii file the merge gets stack.
In the log files (both classic client and java client) there is an error
message:

06/15 08:51:10 An internal error has occurred at Mon Jun 15 08:51:10 IDT
2009
06/15 08:51:10 Unhandled runtime exception: java.lang.OutOfMemoryError
06/15 08:51:10 Exception Message: Java heap space
06/15 08:51:10
06/15 08:51:10 Stack trace:
06/15 08:51:10 java.lang.OutOfMemoryError: Java heap space


Vendor Solution:
If the size of the file is larger then 300k the following procedure worked:

1) Look for the file msynergy.lax Under the bin directory of the client
installation.

2) open the file and look for the option:
lax.nl.java.option.java.heap.size.max=90M

3) Uncomment this option by removing the pound sign (#)

4) Set the max size to 200MB

5) Save the file and restart the session, merge again.

Tuesday, May 19, 2009

Synergy: work area path created with _no_context_ entry

The trouble:

I’m trying to check out a new project and getting a complaint from the CCM that WA already exists, I think it’s because it tries to use the _no_context_ directory again.

What to do?

Here is the story:
The problem was with the project_subdir_template been set wrong. Instead of keywords it contained other symbols (%project_version_BA). As this keyword was not legal, the system replaced it withe the _no_context_ string.
The correct keywords are to be selected from the drop-down keywords list (Classic GUI) or set in the $HOME/.ccm.ini as following:
%dcm_delimiter
%delimiter
%optional_project_instance
%optional_project_instance_no_delim
%platform
%project_instance
%project_instance_no_delim
%project_name
%project_version
%project_version_no_delim
%release
\
And the default wa_path_template for our DBs is to be set as :
wa_path_template = %home/source
project_subdir_template = %project_name%delimiter%project_version

The _no_context_ entry in the workarea path usually indicates that the wa_path_template or the project_subdir_template contain a keyword which could not be resolved and thus has 'no context'.

The keywords need to be either valid text attributes of the project object or 'so-called' psuedo-attributes i.e. keywords defined in the keywords list in the Online Help.

OS environment variables are not necessarily defined keywords in the context of a Synergy project.

Important: the project_subdir_template must contain a keyword which makes the workarea for the particular version of the project unique. (eg %version will add the version string to the workarea path).

Monday, May 11, 2009

Show Synergy types and their content

- get hold of the type "ascii": ccm query -t attype -n ascii

- see the list of attributes for above: ccm attr -la @1ccm attr

- see the content of the attribute "cache_path_template" : ccm attr -s cache_path_template @1

Task is not required on CO anymore and failed to create objects, ci files and run update & synchronize

After an upgrade from 6.4 to 6.5 of one of our databases we now see that checking out a file does not requires associated task to be present (Linux client).

In other words we can check out a file when there is not task and it goes on without any warning.
This is different from the past behavior and we would like to change it back to have the task required on every check out.

Checked the type definitions and we do have the initial state for all basic types set to "working" and "Task required on state" also set to "working". I can not really see the reason why the new file being checked out is not associated with a task.

Windows clients works just fine - requires task as expected.

Also,
The update and object creation fail with the message:

“Create failed: Object of type ‘ascii’ is not allowed in work area”.

Additionally, following is reported:

$ ccm create c -task 18850 ccmtestfile.c
Warning: Error(s) detected in migrate rules:

Invalid type name, ascii
Do you need to use the Type Definition facility?
Line #8 (Auto#1) : MAP_FILE_TO_TYPE .*\.[Tt][Xx][Tt]$ ascii

Invalid type name, shsrc
Do you need to use the Type Definition facility?
Line #8 (Auto#2) : MAP_FILE_TO_TYPE .*\.sh$ shsrc

Invalid type name, c++
Do you need to use the Type Definition facility?
Line #8 (Auto#5) : MAP_FILE_TO_TYPE .*\.C$ c++

Invalid type name, csrc
Do you need to use the Type Definition facility?
Line #8 (Auto#6) : MAP_FILE_TO_TYPE .*\.c$ csrc

Invalid type name, incl
Do you need to use the Type Definition facility?
Line #8 (Auto#7) : MAP_FILE_TO_TYPE .*\.h$ incl

Invalid type name, lsrc
Do you need to use the Type Definition facility?
Line #8 (Auto#8) : MAP_FILE_TO_TYPE .*\.l$ lsrc

Invalid type name, ysrc
Do you need to use the Type Definition facility?
Line #8 (Auto#9) : MAP_FILE_TO_TYPE .*\.y$ ysrc

Too many errors. Error reporting stopped after 7 error reports.
Warning: Unexpected error(s) in default rules file:
/tmp/ccm/dbname/db/../lib/Unix/migrate.rul
Create failed: Object of type 'ascii' is not allowed in a work area.

Solution (came from vendor support):

Verify the value of wa_type for cvtype on ascii is set to "any".
Use the following commands in the ccm_admin role:


>ccm set role ccm_admin

>ccm query -t cvtype -n ascii
>ccm attr -s wa_type @

Check the value returned. If it is not "any", change it:

>ccm attr -m wa_type -v any @

Restart the sessions to see the effect.
------------------------------

For some reason the wa_type was set to sfs during the upgrade.
Once fixed with the attr command also the problems with the Update / Reconcile and Check In of new files seem to be solved.

Friday, January 30, 2009

Synergy: how to list task attributes

> ccm query -n task -t cvtype
1) base/cvtype/task/1 ac_rel ccm_root cvtype base
> ccm attr -l @
assign_policy (string) (local)
create_time (time) (local)
cvtype (string) (local)
dcm_has_modifiable_in (boolean) (local)
delete (acc_method) (local)
dflt_status (string) (local)
displayname (acc_method) (local)
import_noimage_attrs (text) (local)
is_asm (boolean) (local)
is_bindable (boolean) (local)
is_model (boolean) (local)
is_task (boolean) (local)
is_versioned (boolean) (local)
modify_time (time) (local)
name (string) (local)
objectname (acc_method) (local)
owner (string) (local)
post_create (acc_method) (local)
pre_create (acc_method) (local)
relate (acc_method) (local)
require_actual_time (boolean) (local)
restricted_attributes (text) (local)
set_status (acc_method) (local)
source_attrs (text) (local)
status (string) (local)
subsystem (string) (local)
super_type (string) (local)
synopsis_attr (string) (local)
type_description (string) (local)
unrelate (acc_method) (local)
version (string) (local)
xml_import_noimage_attrs (text) (local)

Wednesday, January 7, 2009

How To: expand temporary db space

ccmsrv expand -dbspace temp -p /data/informix_dbs -size 2048000
Also, from version 6.5 may use large chunk files ~ 30 GB.

Wednesday, December 3, 2008

Synergy 6.5 License server installation

Here is the step by step instructions on setting up the Synergy license server (11.5).
Based on Telelogic Lifecycle Solutions Licensing Guide.
As root:
- Create user flexnet.
[root@licserv ~]# adduser flexnet
[root@licserv ~]# passwd flexnet
As flexnet:
- Copy licence archive to Linux machine.
- [root@licserv ~]# mkdir -p /opt/flexnet/linux
- [root@licserv ~]# chown -R flexnet:flexnet /opt/flexnet/linux
- Unpack the flex.tar file from …/license_server/linux to the newly created installation directory /opt/flexnet/linux:
[flexnet@licserv linux]$ tar -xvf /home/flexnet/linux/flex.tar
You should get :
[flexnet@licserv linux]$ pwd
/opt/flexnet/linux
[flexnet@
licserv linux]$ ll
total 3240
-rwxr-xr-x 1 flexnet flexnet 1021668 Apr 12 2008 lmgrd
-rwxr-xr-x 1 flexnet flexnet 1011900 Nov 27 2007 lmutil
-rwxr-xr-x 1 flexnet flexnet 1263712 Sep 5 10:44 telelogic

- Save or copy the FLEXnet license file you received from Telelogic into a text file called license.dat:

[flexnet@licserv flexnet]$ cp -pr license.dat.txt_validtilldec08end /opt/flexnet/license.dat

- Find out your FlexLM hostid:
[flexnet@licserv flexnet]$ /opt/flexnet/linux/lmutil lmhostid
lmutil - Copyright (c) 1989-2007 Macrovision Europe Ltd. and/or Macrovision Corporation. All Rights Reserved.
The FLEXnet host ID of this machine is "001b786ed876"

- Add the following line at the very begining of the licence.dat file:

SERVER licserv 001b786ed876 19353

where licserv is the machine where license server will be running, 001b786ed876 is the hostid you discovered in the previous step, 19353 is the port to be used by the license server.

- Set up the license file location to the LM_LICENSE_FILE variable:

[flexnet@licserv flexnet]$ export LM_LICENSE_FILE=/opt/flexnet/license.dat

- Add the LM_LICENSE_FILE set to the flexnet ini file (.bashrc):

export LM_LICENSE_FILE=/opt/flexnet/license.dat

- You may also want to create a link
/usr/local/flexlm/licenses/license.dat -> /opt/flexnet/license.dat
'cause flexlm is looking for the license.dat by default in the /usr/loca/flexlm/license.
- Change directory to the installation path:
[flexnet@licserv flexnet]$ cd /opt/flexnet/linux
- Start the license server:
[flexnet@licserv flexnet]$ /opt/flexnet/linux/lmgrd -local -c license.dat -l license.log
- Make sure it is running:
[flexnet@licserv flexnet]$ /opt/flexnet/linux/lmutil lmstat -c license.dat
You should get the following:
[flexnet@licserv ~]$ /opt/flexnet/linux/lmutil lmstat -c license.dat
lmutil - Copyright (c) 1989-2007 Macrovision Europe Ltd. and/or Macrovision Corporation. All Rights Reserved.
Flexible License Manager status on Sun 11/30/2008 09:25
License server status: 19353@licserv
License file(s) on
licserv: /opt/flexnet/license.dat:
licserv: license server UP (MASTER) v11.5
Vendor daemon status (on licserv):
telelogic: UP v11.5
This completes the Synergy license server installation.
Make sure you refer to this license server by inspecting the following file on you: Synergy engine installations:
/usr/local/ccm/etc/license_data.txt
It should have the following content:
$ cat /usr/local/ccm/etc/license_data.txt
19353@
licserv

Make sure to add the server start command to the machine boot procedure.
Remember, the license daemon has to run with the flexnet user, not as ccm_root or root.