问题标签 [jt400]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1000 浏览

db2 - Apache Camel - 无法使用 jt400 连接到 As400

能够连接到 DB2 数据库,使用以下用蓝图编写的数据源。

我正在尝试使用以下数据源 bean 连接到 AS400 db

下面是在我的项目 pom.xml 中为 AS400 连接添加的依赖项

当我在 servicemix 中部署时,它会抛出以下错误。

尝试使用以下命令安装 jt400。

这是抛出以下异常

有没有其他方法可以使用数据源技术连接到 AS400 i DB?

提前致谢..

0 投票
2 回答
1723 浏览

java - JT400 - 获取由命令生成的假脱机文件

我正在使用 JT400 开发一个 java 类,并尝试使用以下命令获取命令“dspmsg qsysopr”的结果:

我发现该命令在用户 QUSER 的 JOB 中运行,但是在我实例化对象 AS400 时指定的用户“用户”下生成了一个带有结果的假脱机文件。

我可以成功运行该命令,但结果不是队列中的消息:

“已创建打印机输出。”

我用代码得到这个结果:

问题 1:有没有办法不接收假脱机文件中的消息,但它以 na AS400Message 或类似的形式返回给我?

没办法,我用下面的方法来获取spool文件:

问题是:我没有调用方法“getSpoolFile”的参数。如果我手动登录AS400,查看spool文件详细信息,用手动获取的参数调用方法,成功获取spool文件。但是我收到的 JOB 对象是:

运行后:

与创建假脱机文件的作业不同。例如,如果我检查:

结果是“QUSER”,但假脱机文件是在“用户”输出队列下生成的。

问题2:如何获取与该spool文件的生成相关的JOB?

问题3:我是否也可以获取与生成的spool文件相关的参数,如spool文件号和spool文件名?

我需要以下信息才能调用“getSpoolFile”方法:

  • 假脱机文件名
  • 假脱机文件编号
  • 职位名称
  • 工作用户
  • 工作编号

谢谢,卡洛斯

0 投票
1 回答
1066 浏览

java - JT400 - 从队列中获取消息

我想从队列而不是 QSYS.LIB 的队列中获取 AS400 中的消息。只有当我使用 QSYS.LIB 中的队列时,我才使用运行良好的以下代码:

如果我将 /qsys.lib/qsysopr.msgq 替换为来自其他库的任何其他队列,例如“/yaclib.lib/queueName.msgq”,我会收到以下错误:

com.ibm.as400.access.IllegalPathNameException: /yaclib.lib/queueName.msgq: Object not in QSYS file system。在 com.ibm.as400.access.QSYSObjectPathName.parse(QSYSObjectPathName.java:599) 在 com.ibm.as400.access.QSYSObjectPathName.(QSYSObjectPathName.java:169) 在 com.ibm.as400.access.QSYSObjectPathName.(QSYSObjectPathName .java:177) 在 com.ibm.as400.access.MessageQueue.(MessageQueue.java:299) 在 br.com.operation.AS400Inspector.getMessagesFromYaclib(AS400Inspector.java:225) 在 br.com.operation.Main.main (Main.java:43)

问题1:我做错了什么?

问题2:有没有办法限制不需要回复的消息?喜欢在特定日期之后收到消息还是仅在过去 2 天收到消息?

谢谢。

0 投票
2 回答
972 浏览

java - AS400 jt400 获取内存使用情况

我只是在尝试jt400.jarAS400.

我想出了如何连接以及如何通过使用类SystemStatus以及如何读取值来接收值SystemValues。(只需要找到这些值的解释,对我有什么提示吗?)

谁能告诉我,其中的哪些功能SystemStatus为我提供了 RAM 的使用或接收此信息的流行方式?

我已经阅读了很多文档,但找不到任何东西。

http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_71/rzahh/as400obj.htm http://itknowledgeexchange.techtarget.com/itanswers/system-information-into-a-file/ http://www .ibm.com/developerworks/ibmi/library/i-javatoolbox/

提前致谢

0 投票
1 回答
741 浏览

java - 通过 Java jt400 的 AS400 作业队列

我只是在 java 应用程序和 AS400 之间编写一个接口。为此,我使用 jt400。我设法获取有关系统状态的信息,例如 CPU 使用情况,以及我设法接收有关子系统和作业的当前状态。

现在我正在寻找一个选项来查看 AS400 内部的不同作业队列。

例如:我想知道,哪个队列中有多少作业。

是否有通过 jt400 的解决方案或通过 java 访问这些信息的不同方法?

AS400里面对应的命令是WRKJOBQ

最佳 LStrike

[编辑]

以下代码是我对 JobList 的过滤器。但是如何配置与 WRKJOBQ 匹配的 QSYSObjectPathName?

0 投票
2 回答
3038 浏览

java - jt400 在 AS400 上的 DB2 编码问题

我使用 jt400 从 as400 - db2 上的数据库中获取数据。

我的数据库使用 ccsid 37 编码。我只有波兰语字母有问题。如何强制 jt400 使用正确的编码?

我试过了

但它不起作用

0 投票
1 回答
398 浏览

java - 与 TN5250j 的连接有效,而 IBMi 访问 v1r1(和 JT400 库)无效

几天前,我正常工作的 java 应用程序声明在连接到 AS400 时抛出“一般安全错误”。我使用 JT400 库进行连接。经过一些调试后,我还发现我无法连接 IBMi access v1r1(来自 IBM 的 5250 仿真器)。System i Navigator 也不起作用。这是登录时的打印屏幕(java 应用程序的错误相同):在此处输入图像描述

但与 TN5250J 仿真器连接有效!我猜问题出在“未授权反对 /QSYS.LIB/EN_US.LOCALE”。我尝试连接两个用户。一个是我的编程用户,通过TN5250J连接正常。另一个是我无法检查的数据库访问用户,因为它已禁用通过终端的访问。在不同系统(V5R4)上使用相同的应用程序可以正常工作。查看工作日志,我一无所获。

为什么在登录期间访问 /QSYS.LIB/EN_US.LOCALE(而不是从 TN5250J 访问)?什么会影响登录过程,使其不再适用于 IBM 仿真器/库,但仍适用于 TN5250J?JT400 库中是否有一些连接属性可能会影响登录期间发生的情况,以便我可以像使用 TN5250J 一样连接?

也请有人创建标签 TN5250J。我认为它应该在这里,我没有创造它的声誉!

0 投票
0 回答
1559 浏览

java - Tomcat 内存泄漏警告 - AS400 作业线程在关闭/重新部署时未关闭

我有一个在 Tomcat 8.0 服务器上运行的 spring 应用程序,当停止服务器或在服务器上重新部署应用程序时出现以下错误。

我正在使用 JT400 maven 依赖项(版本 9.0,尽管我尝试过其他版本)连接到 AS400 db,所以使用 AS400JDBCDriver。这是我在应用程序的 context.xml 中设置连接的方式

然后在 spring 配置文件中声明数据源:

然后我有几十个 bean 使用该数据源。

所以问题是,当我停止我的 Tomcat 或重新部署时,我会收到许多关于未能停止的线程的消息。我知道它专门来自这个连接源,因为当我更改“initialSize”属性(比如从 3 到 5)时,当服务器停止时我会收到很多消息。所以很明显,连接池打开的所有这些连接都没有被终止。

当服务器关闭时,线程确实消失了(显然,服务器不再存在),但是当它只是重新部署时,这些线程肯定会保持打开状态。我知道这一点是因为我可以在 as400 机器上找到空缺的工作,而且它们似乎并没有真正超时。

我已经尝试了很多事情,我有一个 ServletContextListener 取消注册驱动程序(它摆脱了那个警告,但不是这些),我尝试将 jt400.jar 移动到 tomcat/lib 文件夹(但我不能真的告诉我运行它时它是否在那里工作),我已经尝试调整设置并尝试不同版本的 jt400.jar。没运气。

任何建议或帮助将不胜感激。

0 投票
3 回答
1101 浏览

ibm-midrange - JT400 - 回复 MSGW 作业

是否可以从 JT400 回复 AS400 中的 MSGW 作业?
我有 Job 元素,我可以通过 Job.MESSAGE_REPLY_WAITING 知道它是否处于 MSGW 状态

例如:通常我通过 WRKACTJOB 使用“C”

0 投票
1 回答
166 浏览

hibernate - 使用 Hibernate 查询 IBM i 如果从绿屏添加记录,则不会返回所有数据

我遇到了一个问题,即通过传统的绿屏应用程序在 IBM i 上创建的数据没有反映在我正在编写的 Web 应用程序中。我从 Web 应用程序添加的记录似乎可以立即用于 Web 应用程序和 IBM i,但我在 IBM i 上创建的记录不能立即用于 Web 应用程序。我认为这可能是缓存问题,但重新启动我的网络应用程序后,记录仍然不存在。我已经尝试设置javax.persistence.cache.retrieveModeBYPASS,并且该设置在我的 Hibernate 实体管理器创建时得到反映,但是从我的查询返回的数据仍然缺少通过绿屏添加的记录。

在这个阶段,我不认为这是一个缓存问题。所以这是我到目前为止所做的测试。

我正在使用的文件是 WOHDR2 和 WOJOBS,其中 WOHDR2 是头文件,WOJOBS 是详细文件。

这是我到目前为止测试过的。

通过网络应用程序添加到文件 WOJOBS 并立即关联到 WOHDR2 的记录 - 这些记录反映了父 WOHDR2 的 ID 字段,并且在网络应用程序和绿屏中都可见。

通过绿屏应用程序添加到文件 WOJOBS 的记录,没有与 WOHDR2 的 ID 关联,即:它处于挂起状态,直到用户稍后将其分配给 WOHDR2 - 此记录通过绿屏应用程序可见,但网络应用程序不可见

通过绿屏将 WOJOBS 记录关联到 WOHDR2 - 我现在可以通过 Web 应用程序查看 WOJOBS 记录

通过网络应用程序或绿屏应用程序添加到文件 WOHDR2 的记录 - 通过网络应用程序和绿屏应用程序同时显示记录