• To emulate the functionality of IMS on z/OS, ARTIMS provides a group of servers running under Oracle Tuxedo control (including mandatory servers and optional servers). Mandatory servers include ARTICTL, ARTIMPP and ARTIBMP. Optional servers include ARTIADM and ARTITERM. In addition, ARTIMS provides a group of DLLs and utilities to assist the servers. The following is an IMS on z/OS to ARTIMS mapping list:
•
•
• Control region: Oracle Tuxedo ARTICTL server
• MPP region: Oracle Tuxedo server ARTIMPP, the container which runs MPP
• BMP region: Oracle Tuxedo server ARTIBMP, the container which runs BMP
• DLI address space: No dedicated address space for DLI in ART, provides a library which implements the DL/I APIs and runs in ARTIMPP/ARTIBMP address spacesFigure 1 ARTIMS Architecture
• ART MFS Language Utility - MFSGEN
• ART Message Format Service (ARTICTL)
• ART Message Processing Region (ARTIMPP)
•
• ART JCL Submission Clients – DFSRRC00ARTICTL handles the remote terminal connection and transfers the 3270 data stream from EBCDIC to ASCII. It then parses the information from the data stream according to DIF, saving the message segments into the memory according to MID for ARTIMPP.ARTIMPP initiates and controls a specific program (in COBOL) which uses the request data to perform the remote operator request. It also prepares some data for the remote operator in response to the work request (for example, acknowledgment of work done, answer to a query, etc.).Unlike ARTIMPP, ARTIBMP is not activated by the remote terminal, but by an Oracle Tuxedo client specific to ARTIBMP (for example, DFSRRC00).
•
•
•
•
• Figure 2 shows how ARTICTL can make an application program device-independent by formatting input data from the device or remote program for presentation to IMS, and formatting the application program data for presentation to the output device or remote program.Before describing the functions of each part in detail, another offline utility ART MFS language utility, MFSGEN must be mentioned. MFSGEN is used to transfer four types of MFS control blocks on Mainframes to binary files on open platforms so that the files can be read by Format Service Libraries. MFSGEN is also an important ARTIMS feature.Terminal Control handler (CTLH) process manages multiple connections including terminal I/O, user authentication, calling the requested transactions on behalf of the user and etc. Each time a user requests a transaction, CTLH transmits (via tpacall()) this transaction request to the Messaging Processing Region (ARTIMPP). Detailed functions are as below:When a connection request arrives from a terminal emulator, it is accepted and serviced by one of the CTLH processes. These processes manage inputs and outputs for the ARTICTL subsystem. When a terminal connects to the ARTICTL subsystem, the ARTCTLH acts as a TUXEDO client on behalf of the terminal. When you enter a transaction ID from a terminal, the ARTCTLH converts the transaction ID into a TUXEDO service identifier and invokes tpacall(), Oracle Tuxedo then routes the transaction along with the terminal 3270 data stream to the MPP server to perform the transaction.
Note: When using tmloadcf, do not fill any application password characters. Leave it NULL by pressing Enter.
• Using system command “/Sign off” to sign off the current user.When the user signs off from ARTIMS runtime, the sign on screen appears, which the users can use to re-sign directly; the users could also clear the screen and then use system command "/Sign", "/Sign on", "/Sign on username password" to re-sign the ART IMS runtime.For more information, see Using Security in ATMI Applications, in the Oracle Tuxedo Users Guide.ARTIMPP dynamically advertises a set of services based on a set of configuration files while starting. All the services (transaction codes) to be contained in ARTIMPP servers are defined in imstrans.desc, each transaction code defined in it corresponds to a service with same name to be advertised. imsapps.desc defines all the COBOL application programs to be called by ARTIMPP. Each $appname.psb defines the alternate PCBs required by that application. For information, see ARTIMS Configuration. If the configuration files are changed, ARTIMPP can only accept the changes while restarting. In addition, ARTIMPP only supports applications with type of TP.Each service (transaction code) advertised by ARTIMPP has a defined COBOL application name to handle the service. While ARTIMPP receives a request to a service, ARTIMPP finds the COBOL application name corresponding to the requested service, and calls the function with the support of MicroFocus libraries. Each COBOL application is compiled to a .gnt file and put in a directory in COBOL search order. For MicroFocus COBOL environment, the program search order is defined by environment variable $COBPATH.
Note: For COBOL-IT COBOL environment, the program search order is defined by $COB_LIBRARY_PATH.ARTIMPP_ORA has all the functionalities of ARTIMPP. It can support an Oracle database used as an external resource manager (RM). It reqires some libraries provided by Oracle database. To use ARTIMPP_ORA with an Oracle database, the RM sectionmust be configured correctly in the UBBCONFIG file.ARTIBMP_ORA has all the functionalities of ARTIBMP. It can support an Oracle database used as an external resource manager (RM). It reqires some libraries provided by Oracle database. To use ARTIMPP_ORA with an Oracle database, the RM sectionmust be configured correctly in the UBBCONFIG file.In MP mode, ARTIADM can be booted up based on your choice, it downloads the configuration files from the master to the slave node. It is an Oracle Tuxedo server, and each node just needs to be deployed at most one ARTIADM. If your want to boot ARTIADM, it should be booted prior to ARTICTL and the ART_IMS_CONFIG environment variable should be set on each node.ARTITERM exports a service whose name is composed with the domain id configured in the UBBCONFIG for the domain and a hard-coded string “RPLYSVC”, i.e. ${DOMAINID}_RPLYSVC. The service name mentioned above should be configured in the DM_REMOTE_SERVICES section of DMCONFIG of every remote domain. In addition, to make sure a correct service name is exported by each domain where ARTITERM lives and make sure no conflicting among such services, the domain id field must be configured and kept unique in the UBBCONFIG for every domain.
Note: The NO_XA option cannot be configured in each domain where ARTIMPP or ARTIBMP lives.
•
• All the configuration files in this section are case insensitive for key and non-literal values, for example bool (yes|no) and enum. Literal values and their cases are kept. Comment line should be prefixed with “*”.Listing 1 General Configuration File FormatIn Oracle Tuxedo, each type of security mechanism requires that every user provide an application password as part of the process of joining the Oracle Tuxedo ATMI application, but In ART IMS, it has been removed in order to keep the same behavior as IMS resides on z/OS. User should keep application password as NULL. For more information, see Using Security in ATMI Applications, in the Oracle Tuxedo Users Guide.The USER_AUTH and ACL/Mandatory ACL security mechanism requires that each user must provide a valid username and password to join the ART IMS runtime. The per-user password must match the password associated with the user name stored in a file named tpusr. Client name is not used. The checking of per-user password against the password and user name in tpusr is carried out by the Oracle Tuxedo authentication service AUTHSVC, which is provided by the Oracle Tuxedo authentication server AUTHSVR.For more information, see Using Security in ATMI Applications, in the Oracle Tuxedo Users Guide.
•
• Figure 3 depicts the MFSGEN workflow. For more information, see Oracle Tuxedo Application Runtime for IMS Reference Guide.Figure 3 MFSGEN Utilitychgcobol.sh is used to switch the COBOL runtime between Microfocus and COBOL-IT if they both exist. It can also show the current COBOL runtime being used without any arguments. Oracle Tuxedo Application Runtime for IMS Reference Guide.DFSRRC00 is used to activate the ARTIBMP server which is always waiting for the input from DFSRRC00. The parameter of DFSRRC00 is a string, which should be passed from the script converted by workbench from JCL.DFSIVAP1.cbl (compiled to DFSIVAP1.gnt) is a MPP programDFSIVAP2.cbl (compiled to DFSIVAP2.gnt) is a BMP programTo run an MPP program, there must be a transaction code corresponding to the program as shown in Listing 1.Listing 1 imstrans.desc ExampleEach COBOL applicationmust have its specific definition identify it is a MPP or BMP program (TP or BATCH). Listing 2 shows an imsapps.desc example that defines two applications.Listing 2 imsapps.desc Defining Two ApplicationsTo run any applications in IMS, one PSB is required. In ARTIMS, PSB macro for an application is mapped to a .psb configuration file. For MPP program, the prefix of its .psb file should be the application name, i.e. $appname.psb; for BMP program, the prefix of its .psb file can be any name that complies to the naming rule of IMS applications. The .psb files for DFSIVAP1 and DFSIVAP2 are shown as below. One I/O PCB plus the PCBs defined in .psb are passed to the COBOL program as its parameters when the program is invoked.Listing 3 DFSIVAP1 and DFSIVAP2 .psb ExamplesFrom DFSIVAP1.psb, we can conclude that application DFSIVAP1 requires one I/O PCB and two alternate PCBs as its arguments.Listing 4 DFSIVAP1 with two Alternate PCBsFrom DFSIVAPX.psb, we can conclude that application DFSIVAP2 requires one I/O PCB and three GSAM PCBs.To run a IMS COBOL application in ARTIMS, following servers must be started in a Tuxedo application:For more information, see UBBCONFIG(5) in Section 5 - File Formats, Data Descriptions, MIBs and System Processes Reference in the Oracle Tuxedo documentation, and ARTIMS server parameters in the Oracle Tuxedo Application Runtime for IMS Reference Guide.To run the MPP program DFSIVAP1, open a 3270 terminal and connect to ARTICTL server with the hostname and port defined in UBBCONFIG file, then format the screen and input the transaction code TRAN1, DFSIVAP1.gnt is invoked by ARTIMPP server.To run the BMP program DFSIVAP2, the user need to convert the corresponding JCL on z/OS to shell script by ART Workbench so that it can be run by ART Batch runtime as a JOB. The JOB will invokes a utility DFSRRC00, which starts a specific advertised by ARTIBMP server, which in turn invokes the requested COBOL application. For information, see ART Workbench documentation.