Deploying Java code to the IBM Mainframe Checklist: 1) write/compile the Java project on your PC it has logging, tests, docs, etc it follows the IRS Java coding standards etc. UsersByState Project does compile, has tests, and docs, and is ready to go. I can run it on the PC as it has not IBM Framework classes (I checked the build path for IBM jar) 2) Plan the Deployment, answer these questions I will imagine a box around the src folder anything outside this box, I need to consider 1) does this project have a Property file? I will need to copy this property file to the MF and edit it? UsersByState Project it does have a run.properties file w/ the input data folder the state to process the input file name 2) does this project use any folders? for logging for input for output etc if so I need to create this folder on the MF UsersByState Project has a folder for the input file location has a folder for logging (I check log4j.xml) named: logs 3) What external jars are need to run (not test) this project, I need to check the Eclipse Build-Path I MUST have these jars on the CLASSPATH for the run UsersByState Project has these 3rd party frameworks (jars) commons-csv commons-lang log4j 3) I now need to get the Java code on the MF I export as a Remote System - Java file in RDz UsersByState Project I exported to /u/user900/usersByState.jar 4) I need to get the files/folder/jars/etc from the question in step #2 1) I need to copy the property file I am going to use the RDz Remote System View and I am going to copy from the Local connection to my MF (mvsf) connection then I need to edit the MF copy to set A) the data folder /u/jearl/data B) I leave the state alone C) I set the input file us-500.csv 2) I have a logs folder for the log output 3) I have the jars in /u/jearl/jars 5) I need to create a run/debug config (I debug the first time I run the job) I setup an Rdz Run/Debug config w/ the MVSF connection, a good name the project, the main class and the FOUR jars on CLASSPATH usersByState.jar commons-csv commons-lang log4j 6) I should create JCL to run the appl, as this is what production expects I need to plan the files (JCL DD cards) I will use STDIN <- System.in STDOUT <- System.out STDERR <- System.err AND Java Exceptions (I should always have this one) STDENV <- setting CLASSPATH and the Unix environment variables I will need to know the full package and name for the main class //USER900U JOB (),CLASS=A,MSGLEVEL=(1,1),MSGCLASS=D,NOTIFY=&SYSUID, // REGION=0M //******************************************************************** //* Run Java under a UNIX System Service shell //******************************************************************** //JAVA EXEC PGM=BPXBATSL, // PARM='PGM /usr/lpp/java/J8.0_64/bin/java org.example.us.state.UsersBx // yState' //STDERR DD PATH='/u/user900/usersByState.err', // PATHOPTS=(OWRONLY,OCREAT,OTRUNC), // PATHMODE=SIRWXU //STDENV DD * CLASSPATH=/u/user900/usersByState.jar:/u/jearl/jars/* JAVA_HOME=/usr/lpp/java/J8.0_64 PATH=/usr/lpp/java/J8.0_64/bin /* // -------------------------------------------- JCL Notes: For STDENV, I can add the line inside the JCL (see above) or I can put them in a file and reference the file in the JCL (see JCLPlay2) //STDENV DD PATH='/u/user900/FilePlay.profile', // PATHOPTS=ORDONLY For the name of the JCL program to run I can use: //JAVA EXEC PGM=BPXBATCH <- this alows ONLY STDIN, STDOUT, STDERR and STDENV //JAVA EXEC PGM=BPXBATSL <- this alows STDIN, STDOUT, STDERR and STDENV and other files I can access via the IBM Framework For both BPXBATCH and BPXBATSL I can execute a Shell Script or a Program (from JCLPLay1) //STEP1 EXEC PGM=BPXBATCH, // PARM='SH java -cp /u/user900/JCLPlay1.jar org.example.play.SayHi' (from JCLPLay2) //STEP1 EXEC PGM=BPXBATSL, // PARM='PGM /usr/lpp/java/J8.0/bin/java org.example.play.FilePlay'