请问各位大虾,在qbatch里面提交的作业执行时,怎么不能debug,在程序中加dsplay也不会跳出的
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 |
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/