COBOL環境安裝
在Windows/Linux上安裝COBOL
有適用於Windows,很多免費的主機模擬器可用於書寫和學習簡單的COBOL程序。
一個這樣的仿真器,可以按照下面給出幾個簡單的步驟,很容易地安裝在Windows中:
http://www.jaymoseley.com/hercules/installmvs/instmvs2.htm
下載並安裝Hercules模擬器,它可以從Hercules「主頁- :www.hercules-390.eu
一旦在Windows機器上安裝包,它會創建這樣一個文件夾 C:/hercules/mvs/cobol.
運行命令提示符(CMD),進入目錄C:/hercules/mvs/cobol on CMD.
對各種命令編寫和執行JCL與COBOL程序的完整指南可在網址上找到
Hercules是一個開源軟件實現主機System/370 和ESA/390 架構,除了最新的64位Z/架構。Hercules可以在Linux,Windows,Solaris和FreeBSD和Mac OS X上運行
用戶可以連接到主機服務器,使用的方法有很多,例如瘦客戶端,虛擬終端,虛擬客戶端系統(VCS)或虛擬桌面系統(VDS)。每個有效用戶提供的登錄ID進入到Z/OS界面(TSO/ E或ISPF)。
編譯COBOL程序
爲了執行使用JCL在批處理模式下的COBOL程序,該程序需要編譯和負載模塊與所有的子程序創建。JCL使用加載模塊,而不是實際程序在執行時。負載庫連接起來,並提供給JCL在使用JCLLIB或STEPLIB執行的時候。
有許多可用的編譯COBOL程序的主機編譯器工具。有些企業公司使用變更管理工具,如Endevor,其中編譯並存儲每個版本的程序。這是在追蹤到的程序的修改是有用的。
//COMPILE JOB ,CLASS=6,MSGCLASS=X,NOTIFY=&SYSUID
//*
//STEP1 EXEC IGYCRCTL,PARM=RMODE,DYNAM,SSRANGE
//SYSIN DD DSN=MYDATA.URMI.SOURCES(MYCOBB),DISP=SHR
//SYSLIB DD DSN=MYDATA.URMI.COPYBOOK(MYCOPY),DISP=SHR
//SYSLMOD DD DSN=MYDATA.URMI.LOAD(MYCOBB),DISP=SHR
//SYSPRINT DD SYSOUT=*
//*
IGYCRCTL是IBM COBOL編譯器工具。編譯器選項使用PARM參數傳遞。在上面的例子中,RMODE指示在程序中使用相對尋址模式的編譯器。 COBOL程序正在使用SYSIN參數傳遞和複寫簿使用由在SYSLIB程序庫提供。
執行COBOL程序
下面,說明使用該輸入文件MYDATA.URMI.INPUT執行該程序MYPROG併產生寫入卷軸兩個輸出文件的JCL例子。
//COBBSTEP JOB CLASS=6,NOTIFY=&SYSUID
//
//STEP10 EXEC PGM=MYPROG,PARM=ACCT5000
//STEPLIB DD DSN=MYDATA.URMI.LOADLIB,DISP=SHR
//INPUT1 DD DSN=MYDATA.URMI.INPUT,DISP=SHR
//OUT1 DD SYSOUT=*
//OUT2 DD SYSOUT=*
//SYSIN DD *
//CUST1 1000
//CUST2 1001
/*
MYPROG負載模塊位於MYDATA.URMI.LOADLIB。這是很重要,要注意的是,上述的JCL可以用於只是一個非DB2 COBOL模塊。
執行COBOL-DB2程序
對於運行的COBOL DB2 程序,IBM的專業工具被用在JCL程序; DB2區域和所需的參數作爲輸入傳遞給該實用程序。
運行的COBOL-DB2程序的步驟如下面:
當一個COBOL-DB2程序被編譯一個DBRM(數據庫請求模塊)一起裝入模塊創建的。該DBRM包含了COBOL程序的SQL語句的語法正確檢查。
DBRM綁定到DB2的區域(環境),其中COBOL運行。這可以通過使用IKJEFT01實用的JCL來完成。
綁定步驟之後,COBOL-DB2 程序正在使用IKJEFT01(再次)與負載庫和DBRM庫作爲輸入到JCL運行。
//STEP001 EXEC PGM=IKJEFT01
//*
//STEPLIB DD DSN=MYDATA.URMI.DBRMLIB,DISP=SHR
//*
//input files
//output files
//SYSPRINT DD SYSOUT=*
//SYSABOUT DD SYSOUT=*
//SYSDBOUT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//DISPLAY DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(SSID)
RUN PROGRAM(MYCOBB) PLAN(PLANNAME) PARM(parameters to cobol program) -
LIB('MYDATA.URMI.LOADLIB')
END
/*
在上面的例子中,MYCOBB使用IKJEFT01的COBOL-DB2程序運行。請注意,該程序的名稱,DB2子系統名稱(SSID),DB2的程序名稱是通過在SYSTSIN DD語句指定。該DBRM庫指定STEPLIB。