This document provides examples of Java classes with simple metadata such as ADD, MOD, DEL, GET, SGO etc to direct a server dialog to add, modify, delete different record types and also to sign on to the application by checking a user id and password with IDMS. It also demonstrates area and set sweeps and how to transfer member records of a set between owner records. The metadata code can be changed as long as the change is consistent between the client and the server to ensure that they understand each other.
TCP/IP line definition with PTERM and LTERM for the SYSGEN:
ADD LINE TCPIP
PROTOCOL IS DEFRESP
TYPE IS SOCKET
MODULE IS RHDCD1IP.
ADD PTERM TCPLISTR
IN LINE TCPIP
MAXIMUM ERRORS IS 9
PRINTER CLASS IS 1
TYPE IS LISTENER
TASK IS SRVRDLG MODE IS USER
PORT IS nnnnn
BACKLOG IS 5
IP STACK NAME IS stackname
MAXIMUM NUMBER OF CONNECTIONS IS OFF.
In the PTERM definition IP STACK NAME IS stackname could be replaced with ADDRESS IS 'nnn.nnn.nn.nn' which represents the IP address.
ADD LTERM TCPLISTR
PRIORITY IS 0
PTERM IS TCPLISTR.
Task definition for SRVRDLG:
TASK NAME IS SRVRDLG VERSION IS 1
PUBLIC ACCESS IS ALLOWED FOR ALL
WITHIN SYSTEM DCSYSTEM VERSION IS 1700
TASK PRIORITY IS 100
INACTIVE TASK INTERVAL IS OFF
EXTERNAL WAIT IS SYSTEM
DC OPTION IS ENABLED
DC OPTION IS EXTERNAL
DC OPTION IS INPUT
DC OPTION IS NOMAP
DC OPTION IS INVOKES PROGRAM ADSORUN1 VERSION IS 1.
Tasks that invoke an ADS dialog must have the same name as the dialog. A dialog is a control block and is therefore not executable by itself. It is executed through ADSORUN1 and ADSOMAIN.
Please refer to the CA-IDMS System Generation Guide if more information is required.
Create the server dialog on IDMS:
The attachment contains a directory named Application that contains two subdirectories, ADS_source and JAVA_source. The ADS_source contains two members, IDMSDDDL which adds the records and the process for the dialog, and the ADSOBCOM member that compiles the dialog after the records and process are added. The JAVA_source contains the source for the Java classes. Execute the IDMSDDDL JCL to add the records and process for the dialog. This process uses a built-in function called EBCDIC-UTF8. Please refer to Knowledge Document TEC495321 on https://support.ca.com on how to implement this function. Also verify that EMPDEMO is the database name for your Employee Demo Database, if not correct the MOVE statement in the process SRVRDLG-EMPACCESS that updates DB-NAME with the name of this database. Special attention is required for record ADSCLI-WORK-RECORD. Element IPA-HOST in this record is a picture X(15) field that must have the VALUE clause updated with the IP address. Before running the IDMSDDDL JCL find the IPA-HOST element and change VALUE IS ( '999.999.999.999' ) to the IP address from which the server dialog will be running. In other words this must match the address defined on the LISTENER PTERM. After running the IDMSDDDL member, run the ADSOBCOM member to compile the dialog.
Once all this is done the server on your IDMS CV is ready. Next you will need to create the Java application client on your PC. This Knowledge Document assumes that Java is installed on your PC. The JAVA_source subdirectory contains these 26 Java source members:
Create a directory on your PC and copy these 26 source members into it using Notepad. Java is case sensitive so maintain the case in the spelling of these names. For example assume the directory on the C drive is JAVA, create two subdirectories under JAVA, SRC and BIN. The source members could be copied into C:\JAVA\SRC>.
The IP address and port number from the listener PTERM must be updated in member GlobalValues.java.
You will see in GlobalValues.java
public static String serveraddr = "YOUR.IPADDR.COM";
public static int serverPort = nnnn;
Change YOUR.IPADDR.COM to be the same as the IP STACK NAME on the listener PTERM TCPLISTR
After updating GlobalValues.java with the correct IP address or stack name and port number, compile all members using this command while being current in the directory that contains the source members:
C:\JAVA\SRC>javac -d C:\JAVA\BIN *
-d C:\JAVA\BIN directs the compiler to load the classes into directory C:\JAVA\BIN.
* directs the compiler to compile all members in the current directory. For this reason all the members in this directory must end with the.java extension.
Hit enter to compile the programs. The indication of a successful compile is simply being returned to the C:\JAVA\SRC> prompt without any messages. You could then get current on the C:\JAVA\BIN directory and use command DIR to verify that the java classes (Load modules) were created.
Directory of C:\java\bin
01/11/2010 02:30 PM <DIR> .
01/11/2010 02:30 PM <DIR> ..
01/19/2010 11:43 AM 5,802 AddDept.class
01/19/2010 11:43 AM 12,009 AddEmployee.class
01/19/2010 11:43 AM 7,969 AddOffice.class
01/19/2010 11:43 AM 6,276 DeleteDept.class
01/19/2010 11:43 AM 9,605 DeleteEmployee.class
01/19/2010 11:43 AM 7,223 DeleteOffice.class
01/19/2010 11:43 AM 2,800 Dept_Panel.class
01/19/2010 11:43 AM 7,004 EmpDemoApp.class
01/19/2010 11:43 AM 1,188 EmpStatus.class
01/19/2010 11:43 AM 1,065 GlobalValues.class
01/19/2010 11:43 AM 570 KeyMonitor.class
01/19/2010 11:43 AM 7,205 ListDept.class
01/19/2010 11:43 AM 7,167 ListDeptOff.class
01/19/2010 11:43 AM 8,576 ListEmpAll.class
01/19/2010 11:43 AM 8,442 ListOffice.class
01/19/2010 11:43 AM 10,928 List_employees_for_dept.class
01/19/2010 11:43 AM 11,954 List_employees_for_office.class
01/19/2010 11:43 AM 6,900 ModifyDept.class
01/19/2010 11:43 AM 13,523 ModifyEmployee.class
01/19/2010 11:43 AM 8,842 ModifyOffice.class
01/19/2010 11:43 AM 3,045 Office_Panel.class
01/19/2010 11:43 AM 10,358 ShowDeptOffice.class
01/19/2010 11:43 AM 647 StrtEmpDemoApp.class
01/19/2010 11:43 AM 1,896 TCPIP_socket_connection.class
01/19/2010 11:43 AM 8,046 Transfer_Dept.class
01/19/2010 11:43 AM 8,606 Transfer_Office.class
26 File(s) 177,646 bytes
2 Dir(s) 54,454,927,360 bytes free
To tell Java where to find the classes enter command
C:\JAVA\BIN> SET CLASSPATH=C:\JAVA\BIN and hit enter.
To execute the application use command
C:\JAVA\BIN>java StrtEmpDemoApp and hit enter.
A valid IDMS userid/password will be required to execute the application.