IBM Support

Configuring OSLC services in Rational Change shows duplicated OSLC database IDs

Troubleshooting


Problem

Attempting to configure IBM Rational Change Open Services for Lifecycle Collaboration (OSLC) services reveals duplicated OSLC database IDs and prevents integrations with OSLC compliant products such as IBM Rational DOORS

Symptom

Two or more Rational Synergy databases connected to the same Change server may, inadvertently, have the same OSLC ID. So, when you invoke the URL http://<>/oslc in a browser to obtain an XML list of services corresponding to the Rational Change/Synergy databases, you might see something like the following example...


- <ServiceProviderCatalog rdf:about="http://IP.IP.IP.IP:8600/oslc/db/aeac1892-382d-483c-8f1b-aa704b6a6d67">

<dc:title>database1</dc:title>

<details rdf:resource="http://hostname:port/change/user" />

</ServiceProviderCatalog>

- <ServiceProviderCatalog rdf:about="http://IP.IP.IP.IP:8600/oslc/db/aeac1892-382d-483c-8f1b-aa704b6a6d67">

<dc:title>database2</dc:title>

<details rdf:resource="http://hostname:port/change/user" />

</ServiceProviderCatalog>

Cause

This issue was identified as a product defect under APAR PM60564. This can cause duplicate OSLC database IDs. Basically this shouldn't be possible but it has been seen where the same Rational Synergy database packfile, which already has an OSLC ID, is used to unpack multiple databases.

There may be other, unforeseen ways in which this can occur.

Environment

The OSLC Rest API is used in integrations between Rational Change and other OSLC compliant software such as Rational DOORS. The OSLC ID (often called the guid) of each Rational Synergy database must be unique.

Diagnosing The Problem

The list of Change OSLC services are seen by opening http://servername:port/change/oslc (For example. http://myserver:8600/change/oslc) in your browser, logging in and downloading the oslc.txt file.

It is also visible in the <ChangeHome>/webapps/change/WEB-INF/wsconfig/rds_application_registry.xml file. You may see a duplicate OSLC ID in this list

Resolving The Problem

  • Preventing the problem:

    APAR PM60564 is fixed in Change Fixpack 5.3.0.4 and in Change Fixpack 5.2.0.7

  • To fix problem after it has already occurred:

    The attached pearl script and supporting files will allow you to view and modify the current database OSLC ID (often called the guid) stored in a database.

    Disclaimer

    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.


    fix_database_guid.zipfix_database_guid.zip

    It is recommended to run the script in view mode using -v option first to compare the database OSLC ID for various databases and only if the OSLC IDs are same for more than one database update the OSLC IDs for the databases by running this script in update mode using -d option.

    Before running the script you will need to copy two Synergy library files from the Synergy install area to the directory where the script is located.

    ptlib.a - located at <DATABASE_HOME>/lib
    cslib.a - located at <CCM_HOME>/lib

    • View the OSLC ID for each database as follows:
      1. Open a terminal or command prompt.
      2. Start a Synergy session using the ccm start command.
      3. Run the script using the -v option in the same terminal or command prompt.
        For example:
        ratlperl fix_database_guid.pl <database_name> -v -cm:<CCM_HOME>
      4. View the current database OSLC ID.



    • Modify the guid in a database using update mode as follows:
      1. Open a terminal or command prompt.
      2. Start CM session using ccm start command.
      3. Run the script using the -d option in the same terminal or command prompt.
        For example:
        ratlperl fix_database_guid.pl <database_name> -d -cm:<CCM_HOME>
      4. First a new database OSLC ID will be generated and shown on the command prompt, if you are happy with this OSLC ID, continue with the script to update the database OSLC ID.
      5. Select 'Yes' to update the database OSLC ID. After a successful modification the script will show a message saying
        "Database guid for database <database_name> is changed. New guid is: <new_guid>"
      6. Go to <CHANGE_HOME>/WEB-INF/wsconfig/rds_application_registry.xml and open it in a text editor.
      7. Locate the database entry for which you just modified the OSLC ID, update the new guid value against the database here also and save the change.
      8. Restart the Rational Change server.

Related Information

[{"Product":{"code":"SSYQQ2","label":"Rational Change"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"General Information","Platform":[{"code":"PF033","label":"Windows"},{"code":"PF027","label":"Solaris"},{"code":"PF016","label":"Linux"},{"code":"PF002","label":"AIX"}],"Version":"5.2;5.2.0.1;5.2.0.2;5.2.0.3;5.2.0.4;5.2.0.5;5.2.0.6;5.3;5.3.0.1;5.3.0.2;5.3.0.3","Edition":"","Line of Business":{"code":"LOB36","label":"IBM Automation"}},{"Product":{"code":"SSKR2T","label":"IBM Engineering Requirements Management DOORS"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Integrations: IBM","Platform":[{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"9.3;9.3.0.1;9.3.0.2;9.3.0.3;9.3.0.4;9.3.0.5;9.3.0.6;9.3.0.7;9.4","Edition":"All Editions","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Document Information

Modified date:
01 May 2020

UID

swg21632332