| xuguopeng 回复于:2005-06-22 14:33:20
|
既然是SUBMIT 那就是在后台运行 当然不能DSPLAY了
在命令行直接CALL下吧
|
| sh-vagrant 回复于:2005-06-22 14:36:00
|
因为是批处理,而且程序是triger触发的,单独call,环境就不对了,所请各位大虾指点。
|
| Eagle_wolf 回复于:2005-06-22 14:55:54
|
可以这样做 在你要跟踪的程序的开始 加一个需要长时间执行的循环 或 dlyjob
之类的东西, 当它被调用的时候用wrkactjob 看一下它的jobname jobuser jobnum
然后 strsrvjob
strdbg
例如
[code:1:8864c68f6e] eval I = 1
do *hival
if I = 0
leave
endif
enddo
在debug里面的命令行上 eval i = 0 即可以跳出循环
另外 batch下的dsply 是显示在你默认的msgq里面 一般是qsysopr
也可以 dsply 'mesgqname' aaaa [/code:1:8864c68f6e]
|
| sh-vagrant 回复于:2005-06-22 16:47:15
|
谢谢,我去尝试一下
|
| qingzhou 回复于:2005-06-23 20:57:55
|
我说说如何在批处理作业进行DEBUG的详细操作步骤~~~
1。以HOLD(*YES)参数提交JOB到QBATCH JOB中,让JOB暂时挂起;
2。使用WRKSBMJOB查看所提交的JOB的以下3个参数值:
*Job id
*User Name
*Job Number
3。执行STRSRVJOB,填入第2步骤获得的3个参数进行QBATCH JOB服务过程;
4。执行STRDBG开始DEBUG;
5。利用F21键切换到命令行,在命令行执行WRKSBMJOB,使用6=Release释放挂起的第1步骤提交的JOB,然后系统允许你按F10输入DEBUG命令(注意:不要键入执行,否则在设立断点之前键入执行,程序就会运行,因而无法进行debug断点设置);
6。在OS/400命令行窗口;执行DSPMODSRC后,可通过F6设置断点;然后按F3退出,再按F12退出命令行;
7。键入执行释放挂起的JOB;程序将在断点中停留;可以使用交互式DEBUG使用DEBUG命令进行处理;
8。一旦程序或者JOB结束,使用ENDDBG和ENDSRVJOB结束操作。
<顺便提醒>
如果在批处理作业的RPGIV程序中出现交互语句,如:DSPLY;显示文件输入输出语句程序的调用,如:EXFMT,作业将会被挂起处于MESSAGE WAIT状态,这是因为批处理作业无法处理显示信息而引起的。
|
| ibmas400 回复于:2005-06-24 12:04:31
|
顶~~~
困惑了一段时间的问题终于找到答案、谢谢了。
qingzhou牛哥、好久不见、最近baby还好吧。:mrgreen:
|
| zyzng 回复于:2005-06-24 12:45:48
|
补冲一下,如果是RPG III的话,可以不用STRSRVJOB,STRISDB时有个参数 JOB 用*SELECT就会出现SELECT JOB画面
|
| ibmas400 回复于:2005-06-26 13:24:09
|
[quote:8f54d30ee7="zyzng"]补冲一下,如果是RPG III的话,可以不用STRSRVJOB,STRISDB时有个参数 JOB 用*SELECT就会出现SELECT JOB画面[/quote:8f54d30ee7]
支持、支持!
谁还有补充 ,继续。。。 :P
|