IBM Support

How to improve performance importing from Rational DOORS to Rational Rhapsody Gateway

Question & Answer


Question

How can performance be improved when importing requirements from IBM Rational DOORS to Rational Rhapsody Gateway when the Rational DOORS databank is lokated on a remote server?

Cause

There are different optimization techniques you can apply to improve performance throughout the import process between IBM Rational DOORS to Rational Rhapsody Gateway.

Answer

This is a summary of optimization regarding the performance of IBM Rational Rhapsody Gateway / Rational DOORS with remote DOORS database.

Select DOORS module dialog performance

Performance issue: You create a new Rational DOORS document in the Gateway project editor. It takes several minutes for the Gateway to show the database hierarchy in the “Select DOORS module” dialog.



Optimizations:

  • Start the Rational DOORS client in background since the Gateway can connect and use the current DOORS.exe instance that is running.

    OR
  • Use the ProgressiveHierarchyLoading option in Gateway, mentioned in Coupling DOORS documentation Troubleshooting.

    You can set an option in the rg.ini file:

    [DOORS]
    ProgressiveHierarchyLoading=1

    Once this option is set, the Gateway can load the DOORS database progressively when a DOORS folder or project is uncollapsed (press [+]).



    Note: This is only possible while the Rational DOORS client is running in background otherwise Gateway would have to launch a DOORS batch command and the response time could be much higher.


IMPORT DOORS MODULE PERFORMANCE

Performance issue: You have defined the Rational DOORS document to import and either

  • press OK (or Apply) in the configuration dialog
    or
  • selects Force Reload on the DOORS document in Gateway in the coverage analysis view

    Gateway is showing a progress bar for Rational DOORS reload but it stays for a while without any message or progress information.

    Then the conversion starts and shows the progress.


Possible reasons for performance problems when importing from the DOORS database to Gateway:
  • Number of objects
  • Size of texts
  • Amount of attributes per objects
  • Amount of links per objects
  • Number of target modules related to the links





Optimization:
As Gateway is not completely involved in the performance and it is mostly due to the performance of the “load Module” API in DOORS DXL, following workaround is suggested:
  1. Open the Rational DOORS client in background
  2. Open the DOORS module in the Rational DOORS client
  3. Run Reload in Gateway


Comparing load module: Gateway vs Rational DOORS (directly)

Performance issue: It has been observed that access to a DOORS databank is much faster when working with Rational DOORS client compared to working with Gateway. The main difference is that Gateway is not contacting the DOORS server directly so it using DXL scripts in order to perform import/export operations through the DOORS client.

Regarding the DOORS module import, Gateway needs to load the module preliminarily in order to get the list of attributes defined in Rational DOORS.


This list is filtered according to Gateway rules (exclude specific attributes) and also according to the DOORS type configuration and Extract only defined attributes setting.
In term of performance, this preliminary step is strongly affecting the global time if the load module performance is poor.

Gateway is performing the module conversion to XML intermediate file this way:
  1. Load module - The load time should be ideally the same as in Rational DOORS.
  2. Get timestamp - Execution time depends on history size, but it doesn’t seem to affect the performance.
  3. Print beginning of XML file with module information
  4. Print the module attributes - Doesn’t seem to affect the performance.
  5. Define the short list of attribute definitions - Doesn’t seem to affect the performance.
  6. Count the number of objects - Doesn’t seem to affect the performance with the test cases.
  7. Finally recursive object conversion starts
    • Print specific attributes like id, number, absolute number, heading.
    • Print other attributes according the short list defined earlier - This is quicker than a loop on all object attributes.
    • Print text
    • Print out-links and in-links (when link types exist)
      • The target module is loaded in order to print the target identifier according to Gateway specific rules. - This is affecting the performance of Gateway compared to Rational DOORS.
In other words, Gateway/Rational DOORS performance strongly depends on load module time


From the Gateway side, DOORS module loading is just one DOORS DXL instruction (except some logics related to baselines and ability to work with a module already loaded).




Optimization: To improve load module loading on the DOORS side, use the DOORS cache (-k flag on DOORS client command line) and keep the client running in background.






DOORS link conversion




Performance issue: As soon as the DOORS type contains a Reference or Link type, the Gateway is converting every Out-link on every object (and In-link when “Is Inverse” link type exists) even if the traceability is not really captured in the Gateway (simple project graph with no links between DOORS documents).

Each time a link is encountered, the target module is loaded (once per loading process) for historical reasons since the target identifier is not necessarily the object ID, it could be an identifier attribute.


This can explain slower conversion on some areas of the DOORS module where objects contain links to modules that need to be loaded.

Optimization: Skip the link conversion when it is not necessary by removing the links types.


Duplicate the DOORS type currently used.


Remove the reference links types so the Out-links are no longer converted.


Note: In-links are converted when Is Inverse link types exists AND the source module contains attributes declared by a Gateway export to DOORS (such as an UML Model exported to DOORS)


Do not forget to select the new type with-out links in the project editor:



DOORS Attribute conversion




Performance issue: By default, Gateway converts all object attributes except specific ones (OLE, Picture, RTF Pict storage, etc.).

The DOORS module conversion is likely to take more time if the module contains either a lot of attribute definitions, or some attributes contain huge values that are not necessary.




Optimization: Once the DOORS type is correctly configured with all the necessary attribute types, it is also possible to speed up the object conversion by skipping all attributes that are not captured (except specific ones) by simply activating the following option in the DOORS module selection dialog.

[{"Product":{"code":"SSB2MU","label":"IBM Engineering Systems Design Rhapsody"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"General Information","Platform":[{"code":"PF033","label":"Windows"}],"Version":"7.4;7.4.0.1;7.5;7.5.0.1;7.5.1;7.5.1.1;7.5.2;7.5.2.1;7.5.3;7.5.3.1;7.5.3.2;7.6;7.6.0.1;7.6.1;7.6.1.1;7.6.1.2","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Product Synonym

Rational Rhapsody

Document Information

Modified date:
27 May 2022

UID

swg21605891