Hello,
currently we are running multiple COBOL programs which call one another (dynamic calls). For now lets say we have program A and B.
Our company wants to shift step by step to Java. So the plan is, that program A gets migrated to Java first.
Given:
- A currently gets called by B with parameters
- A has to migrate to Java.
- A in Java has to call the DB2 and return the result to B.
- B is running as COBOL CICS (no idea if that makes sense but it is running on the z/OS "directly").
- B has to keep running on the z/OS directly.
- SOAP/REST (and therefore Websphere/WAS) is not an option because we need those quick RAM processing times
What I have already seen from the IBM tutorial is
- that you can run Java and COBOL _easily_ (according to their documentation) on z/OS USS/UNIX
-- https://www.ibm.com/docs/en/cobol-zos/6 ... ng-running
- a JCL for building an running the COBOL-calls-java-application (https://www.ibm.com/docs/en/cobol-zos/6 ... pplication)
-- my understanding is that with this scenario that Java and COBOL both run on the z/OS directly?
- the demo provided under /usr/lpp/cobol/demo also gives a good insight on how to run Java and COBOL on UNIX / USS
- connecting Java with COBOL through JNI, but that is also only for UNIX / USS. (at least that is my understanding from the commands I have seen)
-- https://www.ibm.com/support/pages/using ... -jni-cobol
-- which kind of confuses me because the redbook (https://www.redbooks.ibm.com/redbooks/pdfs/sg248116.pdf) seems to connect/bind/link COBOL CICS with JCL to Java running on UNIX?
- CICS Transaction Server (CTG): giving CICS regions access to z/OS UNIX directories and files
-- https://www.ibm.com/docs/en/cics-ts/6.x ... ries-files
-- using the CTG (and probalby Liberty?) will result in higher processing times I guess.
What would be "optimal" is
- Java (program A) running on z/OS USS because just deploying a .jar file and letting Java run the JVM seems easier than writing JCL/BXBATCH for me
- A is able to call a DB2 and pass the data to B.
- COBOL (program B) running on the z/OS directly.
Questions
- But I have not seen any calls from COBOL (CICS?!) to Java (UNIX/USS). Is that even possible since they both probably won't share the same storage area?
- My guess is that the COBOL programs need recompiling anyway since there won't be any dnyamic call like options for calling a Java program from COBOL CICS?
- Will there be a performance loss if we shift all COBOL CICS programs to UNIX / USS?
- What is the best practise to call a Java program (which has either to cache a lot of data or just call a DB2 when it's needed) from a COBOL CICS program?
- The redbook (https://www.redbooks.ibm.com/redbooks/pdfs/sg248116.pdf) seems to connect/bind/link COBOL CICS with JCL to Java running on UNIX?
Thanks in advance!