ISPF中Shift+PageUp和UNDO的区别
两者都是撤销,相当于windows下的'Ctrl+z'
。但分工不同,Shift+PageUp
只能撤销未按回车之前的修改动作,对于按了回车就无力回天了。
而UNDO负责的是撤销回车之后的修改动作,请注意务必要事先用命令'Rec on'
打开ISPF的recovery开关。
TSO重新登录命令
有时候TSO异常退出,而服务器端进程还没kill掉,于是在你尝试再次登录的时候,返回提示:
“already logged on to system IKJ56400A ENTER LOGON OR LOGOFF-”
用命令告诉远程主控端你要reconnect。
解决办法
more ...logon yourUID recon
SOME INPUT DATA IGNORE
在编辑dataset的时候如果右上角提示SOME INPUT DATA IGNORE
,请记得把每行末尾的行号关闭:
more ...NUM OFF
否则,后面8位就是行号,将此文件作为程序的input的时候就危险了!
S000 U0004 ABEND ERROR
遇到了'S000 U0004 ABEND ERROR'
错误。
一如既往地分析dump,发现是由于我在JCL里面添加了'PARM='TEST(ALL,,,VTAM%IBMUSER:)'
的debug参数,而我要debug的程序的loadmodule
不在test环境里面,导致JCL试图去debug生产环境的loadmodule,抛出'S000 U0004‘
错误,应该是access vialation之类的错误吧,修改完loadmodule的路径就好了。
No space in directory
在一个pds下面create member的时候右上角出现错误:
No space in directory
按PF1,提示:
PDS directory is full, allocate more directory blocks.
错误原因:当前PDS下面所容纳的member数量已经达到最大值了。用'I' 查看PDS的信息:
Current Allocation
Allocated cylinders : 1
Allocated extents . : 1
Maximum dir. blocks : 10
Current Utilization
Used cylinders . . : 1
Used extents . . . : 1
Used dir. blocks . : 10
Number of members ...
CEE3250C S806 R=00000004
新写了个程序,JCL提交完出现错误:
more ...CEE3250C The system or user abend S806 R=00000004 was issued.
分析dump,发现原因是:程序不在loadlib里面
"load module is not found in the library"
.忘记promote程序到相应环境了!
PLI打印出PIC类型输出
使用PLI打印输出信息,最常见的是:
PUT SKIP(1) EDIT ('CODE = ',ERR_CODE)(A,A);
这里是打印PIC类型的输出,不怎么常用。今天用到了,所以记在这:
PUT EDIT('ACCOUNT PROCESSED : ',ACCOUNT_CTR)
(SKIP(1),COL(1),A,P'999999999');
PUT SKIP FILE(OUTFILE) EDIT('CHENGDU: ',SOURCE)
(A,P'ZZ,ZZZV.ZZ');
BLKSIZE=0,DSORG=PS
//SORTOUT DD DSN=&&IBNRDAT0,DISP=(NEW,PASS),
// DCB=(DSORG=PS,RECFM=FB,LRECL=53,BLKSIZE=0),
// UNIT=(SYSDA,20),SPACE=(CYL,(50,50),RLSE)
如上,始终用BLKSIZE=0
,让系统为JOB分配最优的BLKSIZE。这是一个好习惯!
JCL发送EMAIL
//IBMUSER JOB 0R A1011000010TEST,CLASS=3,
// MSGCLASS=R,REGION=0M
//*
//STEP01 EXEC PGM=IEBGENER
//SYSOUT DD SYSOUT= *
//SYSUT1 DD *
HELO MVS
MAIL FROM:<54XIAOWONIU@SINA.CN>
RCPT TO:<54XIAOWONIU@SINA.CN>
DATA
FROM:<54XIAOWONIU@SINA.CN>
TO:<54XIAOWONIU@SINA.CN>
SUBJECT: JOB IBMUSERJ HAS ...
使用UNIT=(SYSDA,20)
好几次production abend都是因为JCL中分配的dataset太大,恰好一个volume上面的剩余空间都分配完了。
这里是DBA给的建议:
"Always code UNIT=(SYSDA,20) for all disk datasets.It will allow the dataset to go to multiple volumes automatically."
000001 //STEP001 EXEC PGM=SYNCSORT,REGION=4096K,COND=(0,NE)
000002 //SYSOUT DD SYSOUT=*
000003 //SYSPRINT DD SYSOUT=*
000004 //SORTIN DD DSN=IBMUSER ...