在過去,我使用BPXBATCH從JCL執行java類文件。我想轉向使用定製的JVM啓動程序,正如IBM在以下鏈接中所建議的那樣。 http://www.ibm.com/developerworks/systems/library/es-java-batchz.html從批處理執行java JCL
我寫了一個hello world java程序,並在大型機上編譯並將其打包成jar。
下面是一個使用BPXBATCH的JCL成員示例。
//LMGHWRLD JOB (MY,ACCOUNTING,INFO),'HELLO WORLD',
// CLASS=A,MSGCLASS=H,REGION=512M,NOTIFY=&SYSUID
//********************************************************************
//* Run Java under a UNIX System Service shell
//********************************************************************
//STEP2 EXEC PGM=BPXBATCH,
// PARM='SH java com.foo.bar.HelloWorld'
//STDIN DD DUMMY
//STDOUT DD PATH='/tmp/&SYSUID..bpxbatch.out',
// PATHOPTS=(OWRONLY,OCREAT,OTRUNC),
// PATHMODE=SIRWXU
//STDERR DD PATH='/tmp/&SYSUID..bpxbatch.err',
// PATHOPTS=(OWRONLY,OCREAT,OTRUNC),
// PATHMODE=SIRWXU
//STDENV DD *
CLASSPATH=/u/myuid
//*********************************************************************
//* Copy HFS output files to SYSOUT, since BPXBATCH can only write
//* STDOUT and STDERR to HFS files.
//*********************************************************************
//STEP3 EXEC PGM=IKJEFT01,DYNAMNBR=300,COND=EVEN
//SYSTSPRT DD SYSOUT=*
//HFSOUT DD PATH='/tmp/&SYSUID..bpxbatch.out'
//HFSERR DD PATH='/tmp/&SYSUID..bpxbatch.err'
//STDOUTL DD SYSOUT=*,DCB=(RECFM=VB,LRECL=133,BLKSIZE=137)
//STDERRL DD SYSOUT=*,DCB=(RECFM=VB,LRECL=133,BLKSIZE=137)
//SYSPRINT DD SYSOUT=*
//SYSTSIN DD *
OCOPY INDD(HFSOUT) OUTDD(STDOUTL)
OCOPY INDD(HFSERR) OUTDD(STDERRL)
//
我想用所有使用自定義JVM啓動功能帶來的上述文章中詳細的。
上面的例子執行類文件,但文章似乎建議JAR文件是自定義JVM啓動程序所必需的。以下是我創建的嘗試和使用自定義JVM啓動器的工作。
JAR文件是OMVS上的〜/ HelloWorld/HelloWorld.jar。
//LMGHWRLD JOB (MY,ACCOUNTING,INFO),'HELLO WORLD',
// CLASS=A,MSGCLASS=H,REGION=0M,NOTIFY=&SYSUID
//STEP1 EXEC PGM=JVMLDM60,
// PARM='com.foo.bar.HelloWorld'
//STEPLIB DD DSN=<MY.LIBRARY.PATH>,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//STDOUT DD SYSOUT=*
//STDERR DD SYSOUT=*
//STDENV DD *
. /etc/profile
. ~/.profile
export CLASSPATH=~/HelloWorld
for i in ~/HelloWorld/*.jar; do
export CLASSPATH=$i:$CLASSPATH
done
//
目前這個作業的輸出失敗,102的特定輸出CC低於:
JVMJZBL1001N JZOS batch Launcher Version: 2.3.0 2013-05-02
JVMJZBL1002N Copyright (C) IBM Corp. 2005. All rights reserved.
JVMJZBL1038E Child shell process exited with exit code: 1
JVMJZBL1042E JZOS batch launcher failed, return code=102
我區規模爲20萬,所以我不相信區域大小的問題。有什麼我做錯了嗎?
200,000是什麼?你爲什麼這麼想?在你的工作卡上你有0M。你嘗試過200M嗎? – 2015-03-30 21:12:01
您可能想要查看Dovetailed Technologies運行的支持論壇。 (http://community.dovetail.com/forum/viewforum.php?f=1) – cschneid 2015-03-31 00:38:04
你好Bill,200,000是我的TSO會話的區域大小。我以前有一個問題,我無法編譯.java文件,所以我想我會在我的文章中提到它。我確實嘗試用256M運行,沒有運氣。我仍在努力解決它。 – Burke9077 2015-03-31 10:59:58