Building single CA Gen Java runtime file (genrt.jar) with required Gen Java runtimes for all installed Gen Java application types

book

Article ID: 209341

calendar_today

Updated On:

Products

CA Gen

Issue/Introduction

Require to use a single Gen Java runtime file genrt.jar as a shared library on the Application Server (WebSphere) and need to be sure that it contains all required runtimes for all deployed Java application types i.e. when Assemble each Java application type do not want to include the runtime file genrt.jar into each .ear file.
Have also observed that the genrt.jar created during the Assemble step has different contents depending on the application type.
Is there any documentation on what different runtimes are needed for the different application types e.g. fmrt, smrt, wmrt, so a single genrt.jar covering all can be created?

Environment

Release : 8.62
Component : CA Gen General Misc. Questions

Resolution

There is an option available to create a single genrt.jar for shared library use in WebSphere which contains all possible Gen Java runtimes needed for all the different Gen Java application types. Then it is not necessary to know the details of each runtime class name or their corresponding .jar file inside folder "%GEN86%\Gen\classes" ("C:\Program Files (x86)\CA\Gen86\Gen\classes")

In "%GEN86%\Gen\classes" there is a file mkjavart.bat which uses mkjavart.xml. The Build Tool Assemble step also uses that file mkjavart.xml.
The file mkjavart.bat can be run with options to cover all possible Java applications and communication types. It requires JAVA_HOME to be set as an environment variable.
If type mkjavart.bat from the command line it will show the required usage per below:
+++
 MKJAVART:  Gen Java Runtime Construction bat file
"                                                                       "
" USAGE:    mkjavart [usage] filename RTtype [options]                  "
"                                                                       "
" filename: The jar file that the runtime will be built into.           "
" usage:    Prints this page.                                           "
" RTtype:   Indicates what type of Gen runtime should                   "
"           be built.  The choices are:                                 "
"                     All                                               "
"                     JavaProxy                                         "
"                     OpLibrary                                         "
"                     EJB                                               "
"                     WCE                                               "
"                                                                       "
" OPTIONS:  Indicates which optional products for the RTtype will be    "
"           included within the jar file.  More than one may be         "
"           specified.                                                  "
"           The optional communication products are:                    "
"                     TCPIP                                             "
"                     ECI                                               "
"                     MQSeries                                          "
"                     EJBRMI                                            "
"                     Tuxedo                                            "
"                     AllComms (Includes all of the communication       "
"                               products currently installed)           "
"                                                                       "
"           The miscellaneous optional products are:                    "
"                     commcfg                                           "
"                     jdbccfg                                           "
"                     XML (JavaProxy Only)                              "
"                                                                       "
" ENVIRONMENT:                                                          "
"           JAVA_HOME      (home directory of the JVM tool)             "
"                                                                       "
+++

So to ensure to build a genrt.jar file covering all options the syntax would be:
mkjavart genrt.jar All AllComms

If also want to include the commcfg.properties file for Gen client/server application communications then adding "commcfg" as follows will do that:
mkjavart genrt.jar All AllComms commcfg

After installing any new Gen Java runtime PTFs (often prerequisites with Gen generation PTFs) on the Developer Toolset and do any new generation/build/assemble a new genrt.jar should be created for use in the Application Server to ensure the runtimes being used there are in step with generated code.

Additional Information

In the documentation mkjavart is referenced for "How to Install Web Generation" and "Pre-Generation Tasks in EJB"  but the best example of a description for mkjavart.bat is under "Preparing for Executing a Java Proxy Application" > "Deploying Java Proxy Runtimes" here:
https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-gen/8-6/distributed-processing/working-with-proxies/java-proxy/preparing-for-executing-a-java-proxy-application.html#concept.dita_d521076bf974cb359f1e9654b16ed0d0ef423455_DeployingJavaProxyRuntimes