IBM Rational Change allows to define user preferences, in relation with the underlying IBM Rational Synergy database. Those preferences are stored in Synergy's embedded IBM Rational Directory Server ("RDS"). What steps must be followed if I plan on moving that Synergy database to another host?
Diagnosing the problem
The solution will depend on whether or not the path to the Synergy database will change after it's moved to the new host.
For example, assuming the current path to the Synergy database is:
Then will the new path on the new host be :
(a) /data/ccmdb/mybase ? (unchanged)
(b) /adifferentpath/mybase ? (changed)
Indeed, all user preferences apply to specific databases, and are therefore grouped "by database" inside RDS.
More importantly, RDS uses the path to the database as a unique identifier to locate the corresponding group of settings inside its embedded LDAP server.
Therefore, if you change the path, you also change the identifier, making it impossible for Change and RDS to locate the settings of that database.
Resolving the problem
If the path to the database remains unchanged on the new host , then you don't need to perform any action.
- If the path to the database changes, then you need to update the identifier for the group of settings inside RDS. This is done using a Perl script that will call the "PreferenceNameSubstitutionForAllUsers" function.
This script is strictly identical to the script also used to migrate users when upgrading a Change installation.
This script is detailed here, for example (Change 4.7 to 5.1) : Technote 1383359
IMPORTANT NOTE: Be aware that the function to establish a connection has changed in Change 5.2.
The updated script for Change 5.2 would be :
=========================== my $csapi = new ChangeSynergy::csapi(); eval
$csapi->setUpConnection("http://server:port/change"); my $aUser = $csapi->Login("admin", "adminpassword", "Admin", "\\\\server\\myOLDdatabasepath");
$tmpData = $csapi->PreferenceNameSubstitutionForAllUsers($aUser, "\\\\server\\myOLDdatabasepath", "\\\\server\\myNEWdatabasepath");
print $tmpData->getResponseData(); }; if ($@)
print $@; }
- "admin" is Change's admin account. You might be using another one.
- "adminpassword": password for user "admin"
- "Admin" refers to a role. You must leave it this way.
All source code and/or binaries attached to this document are referred to here as "the Program". IBM is not providing program services of any kind for the Program. IBM is providing the Program on an "AS IS" basis without warranty of any kind. IBM WILL NOT BE LIABLE FOR ANY ACTUAL, DIRECT, SPECIAL, INCIDENTAL, OR INDIRECT DAMAGES OR FOR ANY ECONOMIC CONSEQUENTIAL DAMAGES (INCLUDING LOST PROFITS OR SAVINGS), EVEN IF IBM, OR ITS RESELLER, HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.