I have a question regarding the definition of a java-based started task using JZOS.
THE SCENARIO:
We have developed a Java (stand-alone) program which connects to a (local) MQ Manager. The function of this program is basically wait for messages, parse them, and then save their data in DB2 tables.
This program, once launched, runs forever until there's a timeout (x minutes during which no message has been received).
We currently launch this program from the USS (Unix System Services) using the CRON services. CRON just runs a shell script which invokes a JVM for this program.
THE QUESTION:
We have modified the java program to use JZOS libraries and adapt it so that it can respond to MVS commands (MODIFY mainly). Apart from this, we would like this program to be a started task, so that any operator could launch it.
As far as I know, apart from making the corresponding definitons in the RACF server, we have to define a PROCEDURE which calls our program. The JZOS itself is another procedure. In this scenario, this new PROC will call in fact another PROC (JZOS' procedure), that is, a PROC that invokes another PROC (nested PROC). I'm a bit lost. I enclose the JCL invoking my Java program. Invoking the Java class from this JCL works fine, but as you can see, I need to specify "USER=USRCRON" because this program requires this special user to do some other things. However nobody is authorised to use "USER=USRCRON", so when I launch this JCL I must remove that statement (USER=USRCRON).
If this was a started task, I could associate the started task the user USRCRON no matter what other user in the system launches the started task.
Does anybody understand my problem?
Any hint or suggestion would be highly appreciated
Aitor.
Code: Select all
//MQPARSER JOB MSGCLASS=X,USER=USRCRON
//PROCLIB JCLLIB ORDER=LOCAL.JZOS.SAMPJCL
//JAVA EXEC PROC=EXJZOSVM,VERSION='14',
// LOGLVL='+I',
// JAVACLS='mq.test.MQParserMVS'
//STDENV DD *
...
//