You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jt400获取AS400作业的CPU利用率百分比

使用jt400获取AS400作业的CPU利用率百分比

看起来你在使用JT400工具获取AS400活跃作业的CPU利用率时,遇到了所有作业返回0%的问题,我来帮你排查下可能的原因和解决办法:

1. 缺少要检索的CPU百分比属性

你的代码里只添加了Job.CPU_TIME_USED_LARGE等属性,但没有明确指定要检索Job.ELAPSED_CPU_PERCENT_USED——JT400要求必须显式声明需要获取的作业属性,否则无法正确返回对应的值。

你需要在属性检索列表中添加这一项:

list.addJobAttributeToRetrieve(Job.ELAPSED_CPU_PERCENT_USED);

2. 确认权限配置

如果添加属性后还是返回0,要检查你连接AS400使用的账号是否具备足够的权限:该账号需要拥有查看作业统计信息的权限(比如*JOBCTL权限,或者针对目标作业的查看权限),权限不足时系统可能会返回默认的0值。

3. 验证作业是否有CPU消耗

另外可以测试下:找一个正在运行且确实有CPU负载的作业来验证,避免测试的作业本身就是空闲状态(空闲作业的CPU利用率自然是0)。

修改后的完整代码示例

JobList list = new JobList(as400);
list.clearJobSelectionCriteria();
list.addJobSelectionCriteria(JobList.SELECTION_PRIMARY_JOB_STATUS_ACTIVE, Boolean.TRUE);
list.addJobSelectionCriteria(JobList.SELECTION_PRIMARY_JOB_STATUS_JOBQ, Boolean.FALSE);
list.addJobSelectionCriteria(JobList.SELECTION_PRIMARY_JOB_STATUS_OUTQ, Boolean.FALSE);

// 添加需要检索的CPU百分比属性
list.addJobAttributeToRetrieve(Job.CPU_TIME_USED_LARGE);
list.addJobAttributeToRetrieve(Job.JOB_NAME);
list.addJobAttributeToRetrieve(Job.USER_NAME);
list.addJobAttributeToRetrieve(Job.ELAPSED_CPU_PERCENT_USED);

Enumeration jobs = list.getJobs();
while (jobs.hasMoreElements()) {
    Job job = (Job) jobs.nextElement();
    job.loadStatistics();
    String user = job.getUser();
    int cpuPercent = (Integer) job.getValue(Job.ELAPSED_CPU_PERCENT_USED);
    System.out.println("Percent CPU: " + cpuPercent);
}

备注:内容来源于stack exchange,提问作者Poojan Shah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 09:04:29