Speeding up the loading and configuration process of DOORS templates


When you use RPE templates that use DOORS as a data source, RPE tries to identify the location of the DOORS installation as well as the default database to connect to.

RPE finds these values by querying the registry. Depending on the DOORS version used and the bitness of your OS this process can take a good few seconds.  This happens every time you load an RPE template or when you use the DOORS Configuration Dialog.

With RPE 1.2.0.1 and newer you can completely circumvent this process and gain significant time with every  document generation if you “tell” RPE these values instead of having it search them every time.

You do this by defining 2 Java properties and as usual you need to add them in the rpe-launcher.ini vs rpe-studio.ini:

  • com.ibm.rational.rpe.doors.home – the full path to doors.exe
  • com.ibm.rational.rpe.doors.data – the datacase connection

UPDATE:  when doing the document generation with “new instance” set to “true” in the docspec, RPE will overwrite the DOORS home and DOORS data from the document specification with the value from these flags. This means that you should only use the technique if the following conditions apply:

  1. you use a running DOORS instance to extract the data (“new instance=false).
  2. you use a single DOORS database in which case the override does not change anything.

Test results – in a setup with RPE 1.2.1.1 and DOORS 9.6 64 bit  defining these 2 flags reduce the load time of a docspec with 1 DOORS template from 4-5 seconds to less than 1 second. For a document specification with 2 DOORS templates the load time is reduced from 10-11 seconds to ~1 second.

rpe-launcher.ini/rpe_studio.ini sample

-Dcom.ibm.rational.rpe.doors.home=C:\Program Files\IBM\Rational\DOORS\9.6\bin\doors.exe
-Dcom.ibm.rational.rpe.doors.data=36677@giediprime

NOTE: if you use RPE through a Java API and you pass these values in a command line you must surround the values in quotes if they contain white spaces.

Java API usage sample

java -jar rpecmd.jar ... -Dcom.ibm.rational.rpe.doors.home="C:\Program Files\IBM\Rational\DOORS\9.6\bin\doors.exe" -Dcom.ibm.rational.rpe.doors.data=36677@giediprime
Advertisements

Author: Dragos Cojocari

Architect for Rational Publishing Engine

13 thoughts on “Speeding up the loading and configuration process of DOORS templates”

    1. Hey Costas,

      you can change that in the UI as needed ( manually or using the wizard)and RPE will not modify existing values of this argument. RPE will only modify the DOORS HOME value ( the path to DOORS.exe) if the current value is invalid ( the path does not exist on the local machine).

      Furthermore, if you use a running DOORS instance to extract data these values are completely ignored which means that the time spend by RPE to find them is pure waste.

      Regards,
      Dragos

      1. Hi Dragos,

        Is there any other option that needs to be set up also as it seams that overrides the specification defined property with the system one from the ones defined in the .ini file.

        Here is what I get when I add the 2 options in the .ini file:

        CRRPE3581I Overriding the doors_home property with system defined value C:\Program Files\IBM\Rational\DOORS\bin\doors.exe.
        CRRPE3581I Overriding the doors_home property with system defined value 36677@dow03.

        Kind regards,
        Costas

      2. Hey Costas,

        the override does indeed occur but only if you run using a “new DOORS instance”. There is no way to disable this behavior but we can look at adding such a capability in a future release. Until then this technique should be used only when the DOORS extraction is made using a running DOORS instance. I will update the article with this note.

        Regards,
        Dragos

        Regards,
        Dragos

  1. Hi Dragos,

    Because I start RPE from a customized menu option within the module. I use this option in order to capture the users data, i.e. where to save the word file and what template would like to use. At that point I create a temporary specification file with extra information like the baseline etc so the user does not have to configure anything from the launcher. As I’m doing that my current DOORS instant will freeze until RPE has finished and closed and therefore I cannot use this one.

    Kind regards,

    Costas

    1. Hey Costas,

      that makes sense. And I assume you have multiple DOORS databases that you connect to from the same machine which prevents you from using a single DOORS DB?

      Regards,
      Dragos

      1. Hi Dragos,

        I have different DOORS databases but the production database is one. We use different database for testing and training which is on a different physical server.

        Kind regards,
        Costas

      2. I see. Actually there is one thing you can do as RPE reads these values from either a Java property ( defined with the -D flag in the ini file) or from a system variable. Since you control the launching of RPE Launcher you can actually define these properties as system environment variables for that process instead of putting them in the ini file. This way you could set them per docgen instance while keeping the performance boost:

        set com.ibm.rational.rpe.doors.home=C:\Program Files\IBM\Rational\DOORS\9.6\bin\doors.exe
        set com.ibm.rational.rpe.doors.data=-data 36777@giediprime
        %RPE_HOME%\launcher\rpe-launcher.exe ….

        Regards,
        Dragos

  2. Hi Dragos,

    I guess this will require to have everything in a batch file. The issue is that at the I start RPE from DOORS with the doors command win32SystemWait_ and a command line argument that includes the cmd.exe. So the environment setting will not be available. I guess I can create a batch file on the fly and execute that one but still this will not avoid starting a new DOORS instance from RPE. If I could use a different DOORS instance in RPE from the one that I’m currently using for the whole RPE session then everything will be much faster. Any other ideas?

    Kind regards,
    Costas

    1. Hey Costas,

      >>> I guess this will require to have everything in a batch file.
      correct.

      >>> The issue is that at the I start RPE from DOORS with the doors command win32SystemWait_ and a command line argument that includes the cmd.exe. So the environment setting will not be available. I guess I can create a batch file on the fly and execute that one but still this will not avoid starting a new DOORS instance from RPE.
      Correct again. You would create this batch file and run it from DOORS using win32SystemWait_ which in turn will start RPE that will use a new DOORS instance to extract the data. And since that instance of RPE will have the correct DOORS HOME and DATA set you will get the speed boost for loading the template while still using the correct DB.

      >>> If I could use a different DOORS instance in RPE from the one that I’m currently using for the whole RPE session then everything will be much faster.
      That is not possible unfortunately since the API used by RPE to connect to a running DOORS instance cannot select the instance to connect to.

      Regards,
      Dragos

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s