IBM i (AS/400) 命令在本地工作但在远程不工作

IBM i (AS/400) command works locally but not remotely

我有一个用 VB.NET 2.0 编写的 Windows 服务,它连接到 IBM AS/400 服务器。查询工作正常,但是当我尝试执行诸如删除假脱机文件之类的操作时,出现错误。例如:

CPYSPLF FILE(PO630A) TOFILE(MPLCDATPAR/PO630APF) JOB(083064/ARUSER/POASYNCMON) SPLNBR(80) MBROPT(*REPLACE)

运行 使用 ExecuteNonQuery 的此命令产生:

CPF3342 - Job not found 083064/ARUSER/POASYNCMON

但是,如果我在 AS/400 中本地 运行 同样的命令,它就可以正常工作。我们已经检查了权限。还有什么可能导致命令以这种方式失败?我如何才能获得有关该错误的更多信息,或着手解决此问题?

编辑:当我们从 Windows 服务器 2003 到 Windows 服务器 2008.

How can I get more information about the error, or go about troubleshooting this?

首先要验证IBMAS/400服务器[什么OSVersion Release and Modification level, Technical Refresh (TR) level ( if instead IBM i), Cumulative PTF level were all omitted.?.?] used for the connection is the same server used to perform the command -行调用;即在将进行命令行调用以验证命令是否正常运行的服务器上,找到 活动服务器作业,其中 CPF3342 在日志中仍然可见。

第二件事是获取显示 CPF3342 的完整详细信息的假脱机作业日志 [以及可能相关的任何先前消息]。例如,如果该消息实际上不是该消息或不是由预期的程序 QSPCPYF 发送的,那么调查的方向可能会立即改变。显示的内容显然是在客户端呈现的内容,而不是来自服务器作业日志的内容;我认为美国英语格式是 "Job &5/&4/&3 not found.",格式 "CPF3342 - Job not found &5/&4/&3" 值得怀疑。

为确保与客户提出的请求进行最恰当的比较: • 为执行同一请求而登录的本地用户应与发现正在为客户端请求提供服务的活动作业的当前用户 是同一个用户 • 本地用户应建立与为客户端请求提供服务的活动作业相同的系统库列表

如果此类事件再次发生,或者即使同一事件持续存在,则再次验证是否仍然可以使用相同的界面重新创建[即condition\failure 仍然存在] 并再次验证命令行请求是否成功 [即已确认规避,相同请求可以在命令行执行];根据我之前的评论,首先通过查找记录 CPF3342 的活动作业来确保 同一服务器 。紧接着:

• 为复制假脱机文件 (CPYSPLF) 请求收集作业跟踪;对于失败的案例,请检查在发布消息 CPF3342 的程序流程之前的任何 exception\interrupt 条件 [有或没有消息作为伴随跟踪数据]。

• 在非常接近失败请求时查看任何 T-AF 或任何内容的审核日志 odd\unexpected;应该在连接到服务器之前建立扩展审计。

• 将失败案例的数据集合与成功处理的相同数据进行对比。

尽管症状[描述得很简单,没有完整的作业日志]命令退出的可能性似乎很小,但跟踪会显示任一场景中的命令是否被命令出口点拦截;这些可以单独查看 [而不是查看跟踪] 任何退出程序,使用注册信息工作 (WRKREGINF) 查看存储库中的任何 QIBM_QCA* 条目,了解哪些退出程序可能影响 CL 命令请求.但是 IIRC 跟踪数据显示调用了哪个命令,因此跟踪也会显示不合格的命令请求是否解析为不同的 *CMD 对象。