问题标签 [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.
stored-procedures - 在 DB2/400 存储过程中避免硬编码模式
我正在创建存储过程来替换 IBM i 的旧版应用程序。我正在从 Java Web App 调用存储过程。我正在使用 jt400 JDBC 驱动程序
我的 JDBC URL 是jdbc:as400://myhost/;libraries=*LIBL,MYLIB;prompt=false
存储过程可以调用存储过程
如果不进行进一步的存储过程调用,则初始存储过程调用正常完成
如果存储过程调用其他存储过程,则失败并显示
如果我在存储过程调用语句中对模式进行硬编码,调用将正常完成。
我想让被调用的存储过程使用与调用者相同的模式
ibm-midrange - ibm jt400 获取数据队列条目数
我在 AS400/iSeries 中使用数据队列,并使用 jdbc jt400 库从其中读取。
由于它是生产者(AS400)/消费者(myapp)模式,我想检查数据队列中现在有多少条目,并测量我的应用程序是否运行得足够快或者我需要更改某些内容。
我可以获得数据队列的最大长度/大小,但不能获得当前长度/大小。
如何获取或计算该值?
我可以使用 rpg 程序并调用它,但更喜欢 jt400/jdbc 解决方案。
谢谢
我编辑此问题以添加应执行此任务的代码,但出现异常:
我总是得到 -1 作为答案,并且在 RDQD0100 = out.toB. 行中出现异常。
例外是
java.lang.ClassCastException: [B 不能转换为 java.base/java.lang.String
有什么线索吗?再次感谢
ibm-midrange - 使用 JT400 获取所有作业的 CPU 利用率
我需要使用 JT400 获取所有作业的 CPU 利用率百分比。但是我无法一次获得作业列表,因为 loadStatistics() 仅在作业级别而不在列表中可用(更省时)。
剪下以下代码后,我可以一项一项地获得每个作业的 CPU%,但这需要很长时间:
有没有办法一次获得所有作业的 CPU% (Job.ELAPSED_CPU_PERCENT_USED)?
java - 参数文件上的 AS400 SQL 脚本返回
我正在使用 Java/JT400 驱动程序将应用程序集成到 AS400。从参数文件中提取数据时遇到问题 - 检索到的数据似乎已编码。
输出
如何将其转换为可读格式?有没有可以用来解码的函数?
在与 AS400 的终端连接上,信息通过相同的 SQL 查询正确显示。
在此之前我没有使用过 AS400 的经验,我真的可以使用一些帮助。此问题仅与参数文件有关。数据库表工作正常。
jt400 - 从作业描述而不是用户配置文件设置 jt400 服务器作业库列表、jobq 和 outq
我有一个替换 5250 应用程序的 Web 应用程序。我将 jt400 用于 JDBC 和其他各种 IBM i 服务。在 5250 应用程序中,如果用户拥有多个角色或业务部门,则会创建一个单独的用户配置文件以引用相应的职位描述。
我正在为公司的 Web 应用程序实施 SSO。因此,具有多个角色/业务部门职责的用户将只有一个 IBM i 用户概要文件。
由于 IBM i 在需要之前预先启动 jt400 服务器作业,然后在 AS400 实例连接时交换身份,我想要从作业描述中设置的库列表、作业队列和输出队列,而不是用户配置文件
我可以在 AS400 对象实例上执行一次吗?
我不想为 AS400 实例连接的每个服务器作业手动执行此操作。
ibm-midrange - jt400.jar api中如何使用AS400类的connectToPort api
我需要在特定端口上连接到 as400 系统。我正在使用 connectToPort 方法。但它没有连接。
如果不使用这个 api,如果我只使用 AS400 aS400 = new AS400(mHost); aS400.authenticate(user,pwd);// 成功连接到8475端口 aS400.connectToPort(someotherPortNumber); // 这个调用没有返回
有了这个,我看到它正在连接到主机上的端口 8475。但是如果我想给出我选择的端口号,方法是什么。我尝试使用 connectToPort(portNo); 并且不适合我。请帮忙。我正在使用 jt400.jar 的版本作为
名称:com/ibm/as400/access/ 规范-标题:IBM Toolbox for Java 规范-版本:7.3.0.6 规范-供应商:IBM Corporation 实施-标题:com.ibm.as400.access 实施-版本:JTOpen 9.6 实施-供应商:IBM Corporation 等
提前感谢马达维
java - Jdbc 批量插入在 Db2 i 中的失败语句之后使所有语句失败
我正在使用批处理在Db2-400 (Db2 i)
数据库的表中插入记录。JDBC
prepared statement
表中有主键。
当批处理中的任何语句具有重复键时,它会抛出BatchUpdateException
(这是预期的)。但是当有 a 时BatchUpdateException
,它会批量失败所有进一步的语句。
假设批处理有 5 个语句。例外仅在第 3 条语句中。然后第四条和第五条语句也失败了。
它与 Db2 LUW 不同,后者成功地执行了失败语句之后的所有语句。
例子:
UQTEST 表具有第一列主要。当 i 的值为 3 时,代码将键添加为 2,以使语句的键重复。
运行此代码后,表中仅插入 2 条记录:
我正在使用 jt400.jar 和使用的 JDBC 驱动程序是:
我希望所有这些语句都能成功执行,没有任何异常。
jt400 - jt400 将我的 where 条件截断为 like 子句
我jt400-9.3.jar
用来连接 DB2/AS400。
我的表BAND
有这个记录:
我的桌子MUSICIAN
上有:
当我运行这个选择
我检索:
第一个查询作为like
子句工作。与1001
匹配100
,但句子为=
no like
。
当我在 dbeaver 中执行查询时,但在 java(使用 PreparedStatement)中我弄错了,驱动程序有一些配置吗?
db2-400 - 在 QSYS2 中使用函数 TIMESTAMP_FORMAT 无效。成员数据映射错误
我是 iseries/DB2 的新手。
我们使用 V7R3。我们有 RPG 程序每天生成的表格作为物理文件。为了从 java 访问表数据,我们使用 jt400.jar jdbc 驱动程序。
大多数表查询工作正常,但一些使用“DENSE_RANK() OVER(ORDER BY”和“ROW_NUMBER() OVER(PARTITION BY”的复杂查询不时挂起并导致 CPU 100%。只在 AS400 端杀死工作正在解决问题。
在 AS400 日志中,我看到:
它看起来与为什么我收到“[SQL0802] 数据映射错误的数据转换”异常中描述的问题相似 ? 并且可能问题与存储到 DATE 类型列的无效数据有关。
查看 DATE 列,我看到一些记录<null>
在 SQuirrel SQL 客户端中显示。有趣的是,这里有 2 个不同<null>
的 ' 由不同的查询返回。
如果我跑
对于这些行,我得到 0001/01/01 和 9999/12/31 <null>
。
如果我从 DATE_COLUMN 为空的 TABLE 中运行 Select *,我不会得到任何结果。所以我不确定那是什么类型的<null>
。
不确定这些记录是否会导致问题。
UPD: 当我跑步时
我在 JDBC 客户端日志中看到错误:
基于https://www.consolut.com/en/s/sap-ides-access/d/s/p/40/doc/XH-SQL0181/它应该是表中某处的不正确日期
问题是有什么方法可以从 SQL 端查找和过滤具有“无效”数据(导致日志中出现上述异常)的记录?