COBOL環境安裝


在Windows/Linux上安裝COBOL

有適用於Windows,很多免費的主機模擬器可用於書寫和學習簡單的COBOL程式。

一個這樣的模擬器,可以按照下面給出幾個簡單的步驟,很容易地安裝在Windows中:

http://www.jaymoseley.com/hercules/installmvs/instmvs2.htm

  1. 下載並安裝Hercules模擬器,它可以從Hercules“主頁- :www.hercules-390.eu

  2. 一旦在Windows機器上安裝包,它會建立這樣一個檔案夾 C:/hercules/mvs/cobol.

  3. 執行命令提示字元(CMD),進入目錄C:/hercules/mvs/cobol on CMD.

  4. 對各種命令編寫和執行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。