问题标签 [jtopen]
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.
ibm-midrange - 从 Java 调用 i 系列程序会产生无效的输出
我正在使用 jtopen/jt400 工具包从 Java(实际上是:JRuby,但我在纯 Java 中看到同样的问题)调用 IBM i 系列 r5v4(又名 AS/400)上的程序。这对于某些程序来说很好,而对于其他程序,输出字节包含全零,这是错误的,有时甚至是无效的(例如在 ZonedDecimal 的情况下)。没有附加到 ProgramCall、JobList 或 SYSOPR.MSGQ 上的消息。有谁知道为什么会这样?
显示一些代码(我相信任何使用过该库的人都可以理解这个 Java 的 Ruby 渲染):
正如我所说,这对于某些程序来说很好,而对于其他程序来说,params[2].output_data
它将是一个 [0, 0, 0] 的字节数组,这不是预期的结果。更糟糕的是, params[3].output_data
将是 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],这是 ZonedDecimal.new(9, 2) 的无效字节值。谁能帮我吗?
java - 使用 JTOpen 连接到 AS/400 时的 SQL 注入风险
我们正在使用 JTOpen 连接到我们的 AS/400 机器,并且我正在尝试解决在使用这种类型的集成时存在 SQL 注入漏洞的风险。
请注意,我们只使用 API 的调用程序部分——而不是 jdbc 连接。
我不是 RPG 程序员,不知道将 SQL 注入代码的风险如何,也不知道 JTOpen API 是否能阻止此类攻击。
经过一番谷歌搜索后,我发现当 RPGLE 程序不使用存储过程时,可以对它们进行 SQL 注入。所以我的问题是:这是否也可以通过 JTOpen api 来实现。
我们是否需要在对 JTOpen API 的所有调用中以编程方式检查 SQL 注入?
java - 使用 JTOpen 进行 RPG (iSeries) 现代化 - 有什么可能?
我们将在不久的将来实施一种解决方案,以使我们编写为带有一些存储过程的 RPG 程序的 iSeries 应用程序现代化,我们首选的方法是利用 Java 在这个领域提供的最新和最伟大的功能。
通过谷歌搜索和检查 STOVFlow 上的其他问题,JTOpen 似乎是事实上的库/工具集,对大多数人都有效,我很高兴看到 Tomcat 在 I 系列机器上运行而没有任何问题。
以此为背景,我将以下内容视为高级溶胶拱门
- 安装 IBM JRE 并使用 JTOpen 的功能来调用 RPG 程序,在某些情况下直接调用运行在 DB2 上的存储过程
- 让 Tomcat 托管一个使用 Grails 和其他框架(Camel、Smooks)构建的现代 Web 应用程序,以提供一个应用程序逻辑层,该层将填充从浏览器向用户提供旧功能所需的任何中介和转换
问题-
- 如果你们中的任何人参与过这样的练习,请分享这种方法的陷阱
- 最终用户的响应时间是否有显着的性能下降?
- 对于某些人来说,将 JT400 代码公开为 Web 服务并在完全使用这些 Web 服务的不同机器上运行 Web 应用程序会更好吗?
java - 如何使用 Java 在 AS400 服务器中获取 PSF 设置
我是这个网站的新手,但我知道这里的任何人都可以帮助我解决我现在遇到的这个问题。我曾经使用 JDK7 编写 Java,现在我面临着这个 JTOpen API for AS400-Java 接口,但我现在的问题是如何获取某个 Writer 的设备描述的所有 PSF 设置?
提前谢谢各位....
请帮忙.....
jdbc - 在特定的 AS400 子系统中打开 JDBC 连接
我有一个 Web 服务,它通过 JTOpen 在 AS400 上调用一些存储过程。
我想做的是,用于调用存储过程的连接是在具有特定用户的特定子系统中打开的,而不是现在的 qusrwrk/quser(默认)。
我想我可以克隆 qusrwrk 子系统以使其以特定用户启动,但我无法弄清楚在特定子系统中打开连接的机制。
我想应该在连接级别有一个属性来表示subsystem=MySubsystem。
但不幸的是,我还没有找到那个属性。
任何提示将不胜感激。
弗拉维奥
java - 过期密码更改失败
我正在使用 JTOpen API 访问 AS400 系统。
我可以像这样成功更改活动的 AS400 用户密码:
另一方面,当我尝试以相同的方式更改过期的用户密码时,我会从第二行抛出以下异常:
com.ibm.as400.access.AS400SecurityException:密码不正确。
我需要先做什么?
java - 使用 JTOpen 从 AS400 上的数据区读取,数据区对象是否被锁定?
给定来自 JTOpen 的 DecimalDataArea,在读取和写入数据区域时,AS400 上的对象是否会被锁定,从而阻止 AS400 上的其他应用程序同时写入它?
这是来自 javadoc 关于如何读/写等的示例代码。
http://javadoc.midrange.com/jtopen/com/ibm/as400/access/DecimalDataArea.html
java - JTOpen KeyedDataQueue read() 超时
KeyedDataQueue
在使用 JTOpen类提供的 read() 方法时,我发现了一个奇怪的行为。
我设置了 90 秒的超时时间,当达到超时时间时,99% 的读取执行将恢复我的调用方法执行。
至于其他 1% 超时未考虑/达到,我的调用方法保持挂起......
经过一番搜索,我发现了这篇文章:
http://archive.midrange.com/java400-l/201112/msg00056.html
基本上它证实了我的怀疑:
“我还发现 DataQueue.read() 超时功能是服务器端的,所以如果 TCP/IP 连接被静默断开(我相信这是造成这种情况的根本原因),它仍然会挂起。”
我正在使用 7.2 版的 JTOpen,我意识到 7.9 版已经发布了。我没有更新到 7.9,因为我有很多使用稳定的 7.2 的关键应用程序,实际上这是第一个让我考虑更新到 7.9 的真实场景。
为了帮助我做出这个决定,我真的很想得到你的反馈,尤其是那些遇到这种情况并最终通过升级 JTOpen 解决它的人。
具体来说,是否有解决此问题的方法,升级 JTOpen 是否对此有帮助?将 JTOpen 升级到 7.9 会破坏 7.2 中的任何工作吗?
java - 从 Java 调用 RPG 函数
我想找到从 Java 调用 RPG 函数的方法。我必须能够传入参数并返回结果集和输出参数。
我能够找到它,但它使用的是存储过程。不是我想走的路。我还发现了这个问题Invoking AS400 RPG From Java他们谈论JTOpen。仍在尝试寻找教程以查看 JTOpen 是否可以帮助我,但尚未找到任何教程。
如果您能帮我找到一种从 Java 调用 RPG 函数的方法,我将不胜感激。
java - Java ProgramCall.run 挂起
忙于从 Java 调用 RPG 函数,并从JamesA获得了这个示例。但是现在我遇到了麻烦,这是我的代码:
应用程序在此行挂起if (program.run() != true)
,我等待大约 10 分钟,然后终止应用程序。
知道我做错了什么吗?
编辑
这是作业日志上的消息:
客户请求 - 运行程序 QSYS/QWCRTVCA。
客户端请求 - 运行程序 LIBNAME/FUNNAME。
未找到库 *LIBL 中的文件 P6CASEL2 或缺少内联数据文件。OPEN 期间出现错误消息 CPF4101。
无法解决反对 YOBPSSR。类型和子类型 X'0201' 授权
FUNNAME 通过名为 P6CASEL2 的视图向表 P6CASEPF 中插入一行。P6CASEL2 在不同的库中,比如说 LIBNAME2。是否可以设置 JobDescription?