Enterprise beans and CORBA stateless objects do not have their own PROGRAM resource definitions. A method request for an enterprise bean or CORBA stateless object involves a JVM, because the request processor that handles it executes in a JVM. (A request processor is a program that manages the execution of an IIOP request, including calling the container to process the method.) When CICS receives the method request, it compares it to installed REQUESTMODEL resource definitions, finds the one that best matches the request, and uses the transaction identifier from that request model to determine the PROGRAM resource definition. The default transaction for REQUESTMODEL definitions is CIRP, which specifies the PROGRAM resource definition for the default request processor program DFJIIRP.
Sometimes, IIOP requests are processed using an existing request processor transaction, that already has a JVM assigned to it. CICS only looks at the transaction identifier in any matching request model when a new request processor transaction is required.
For EXEC CICS LINK requests or ECI or EXCI calls, and for entries in a program list table, CICS is given the name of the PROGRAM resource definition directly. However, for 3270 or START requests, and for method requests for an enterprise bean or CORBA stateless object, CICS determines the PROGRAM resource definition by looking at the transaction identifier. CICS can then obtain the information from the PROGRAM resource definition that it needs to create the JVM: the name of the JVM profile, the main class in the Java program, and the execution key for the Java program and the JVM. Figure 1 shows this process.