介绍IBM Toolbox for Java工具包的基本使用方法

IBM Toolbox for Java 是一个类的集合,用于开发与 IBM i 相关的 Java 应用程序。它包含的各类工具,提供了对于 IFS、IBM i 系统信息、客户端 / 服务器等各类应用场景的的支持,用户可以在其他平台诸如 Windows,Linux 上面方便的使用 IBM Toolbox for Java 开发运行在 IBM i 上的应用程序,为用户的编程和调试带来了极大的方便。我们在这些操作系统平台上,通过几行简单的代码就可以访问一台 IBM i 系统,对系统进行相应的控制和更改。

IBM Toolbox for Java 不仅可以供 IBM 的">开发人员使用,它还拥有一个开源版本 JTOpen,供所有人员下载和使用。JTOpen 可以从 SourceForge 网站上下载。JTOpen 的下载和使用遵循 IBM 公共许可证协议(IBM Public License),这个协议鼓励使用者对软件进行开发和改进,同时鼓励软件的商业化应用。

本文将通过一些例子,来介绍如何使用 IBM Toolbox for Java 提供的各种工具来访问 IBM i 系统并且开发 IBM i 相关的 Java 程序。

初始化并建立连接 :

IBM Toolbox for Java 中的 AS400 类用于建立访问 IBM i 系统的连接,这个类的使用很简单,只需使用如下参数初始化 AS400 类,Toolbox 就会自动建立连接并用相应的用户名登录制定的系统:

清单 1. 使用 Toolbox 建立连接

AS400 as400 = new AS400(SystemName, Username, Password);

如果不在初始化 AS400 对象的时候指定用户,Toolbox 在连接的时候就会弹出一个窗口,提示输入登录 IBM i 的用户名和密码。

我们也可以指定默认的登录用户,在登录框中选择"Default User"和"Save Password",这样在下次再次登录的时候,可以免输用户名或密码,代码如下:

清单 2. 指定默认的登录用户

AS400 sys1 = new AS400(SystemName); AS400 sys2 = new AS400(SystemName); try{ sys1.connectService(AS400.COMMAND); sys2.connectService(AS400.COMMAND); }catch(Exception e) { e.printStackTrace(); }

如果我们需要访问一台 IBM i 系统上的敏感数据,或者访问或存储的数据内容需要加密,我们可以使用 Toolbox for Java 中的 SecureAS400 类。这个类继承了 AS400 类,使用方法与 AS400 类似,连接时只需输入系统名、用户名和密码即可。但是 SecureAS400 中使用了 Secure Sockets Layer(SSL),因此在数据交换时更加安全可靠。

除了直接新建一个连接之外,我们还可以使用连接池来获得一个对 AS400 的连接。参见下面的代码:

清单 3. 使用连接池来获得连接

AS400ConnectionPool as400Pool = new AS400ConnectionPool(); as400Pool.setMax
Connections(128); as400Pool.fill(SystemName, Username, Password, AS400.DATABASE, 50); as400Pool.getConnection(SystemName, Username, Password, AS400.COMMAND);

上面的代码新建了一个 as400Pool 作为一个连接 IBM i 系统的连接池,设置最大连接数为 128,同时为服务器建立 50 个连接。在建立完连接之后,从连接池中获得一个连接,使用用户名和密码。 使用连接池的优点在于,当所需要建立的连接数很多的时候,使用连接池可以大大提高效率,减少建立连接所需要的时间。当连接数少的时候,这种效果不明显,但当连接数多的时候,使用连接池对系统效率的提升效果会很明显。

除了 AS400 之外,另外一个有用的类是 AS400JPing。这个类可以可以用来 Ping 一个 IBM i 系统,从而查询这个系统当前是否在活动状态,或者查询系统的某个端口是否可用。下面的代码演示了这个类的使用方法:

清单 4.AS400JPing 的使用

AS400JPing pingObj = new AS400JPing(SystemName, AS400.COMMAND, false); if(pingObj.ping()) System.out.println("SUCCESS"); else System.out.println("FAILED");

使用 IBM Toolbox for Java 获取 IBM i 系统信息:

IBM Toolbox for Java 提供了很多工具和类库,用于访问和控制系统资源,最常用的工具之一就是"com.ibm.as400.access"包中的 AS400 类。AS400 通过 socket 连接来登录和访问一个 IBM i 系统,一旦登录成功,它会以方法的形式提供各种各样的接口供用户访问 IBM i 系统的各种信息。例如,如果想获得一个 IBM i 系统的系统名、操作系统版本、当前登录用户和使用的 CCSID,我们可以使用以下代码实现:

清单 5. 获取 IBM i 系统信息

AS400 as400 = new AS400(SystemName, Username, Password); System.out.println(as400.getSystemName()); System.out.println(as400.getVRM()); System.out.println(as400.getUserId()); System.out.println(as400.getCcsid());

使用 IBM Toolbox for Java 获取系统运行信息:

IBM Toolbox for Java 也提供了很多接口,用于获得系统运行的信息。一个常用的类是 SystemStatus。这个类允许我们访问一台 IBM i 系统,并且获得当前作业的运行状况和各种信息。

举例来说,如果我们想知道当前系统中有多少批处理作业正在运行,可以使用以下方法:

清单 6. 获取系统运行信息

AS400 as400 = new AS400(SystemName, Username, Password); SystemStatus systemStatus = newSystemStatus(as400); try{ System.out.println("getBatchJobsRunning: " + systemStatus.getBatchJobsRunning()); } catch(Exception e) { e.printStackTrace(); }

方法 getBatchJobsRunning() 用于返回当前正在运行的批处理作业数量。与此相关的方法还有很多,下表列出了 SystemStatus 类中常用的用于显示系统运行状况的方法及它们的作用:

方法 用途 ASPUsed 显示当前系统 ASP 的使用状况 getJobsInSystem 获得系统中的作业总数 getBatchJobsEnding 获得正在结束的作业数量 getBatchJobsWaitingToRunOrAlreadyScheduled 获得等待运行的作业数量 getPoolsNumber 获得系统中 Pool 的数量 getSystemPools 返回 Enumeration 类型,枚举系统中的 Pool,枚举类型为 SystemPool getPercentProcessingUnitUsed 返回处理器使用的百分比 getUsersCurrentSignedOn 获得当前已经登录的用户数 getTotalAuxiliaryStorage 获得存储的总容量 getDateAndTimeStatusGathered 获得系统当前的日期时间,储存在一个 Date 对象中

除了 SystemStatus 之外,Toolbox for Java 还提供了很多与作业相关的类用来管理和获得系统中作业的信息,这些类包括 Job 类、JobList 类、JobLog 类、JobCCSID 类等等。下面我们会对其中常用的几个作业相关类进行一下介绍。

时间: 2024-09-29 07:17:57

介绍IBM Toolbox for Java工具包的基本使用方法的相关文章

如何使用 IBM Toolbox for Java 开发 IBM i 应用程序

概述 IBM Toolbox for Java 是一个类的集合,用于开发与 IBM i 相关的 Java 应用程序.它包含的各类工具,提供了对于 IFS.IBM i 系统信息.客户端 / 服务器等各类应用场景的的支持,用户可以在其他平台诸如 Windows,Linux 上面方便的使用 IBM Toolbox for Java 开发运行在 IBM i 上的应用程序,为用户的编程和调试带来了极大的方便.我们在这些操作系统平台上,通过几行简单的代码就可以访问一台 IBM i 系统,对系统进行相应的控制

介绍IBM Power服务器的三种不同系统固件升级方法

主要给出每种方法升级系统固件的例子,通过图以及文字说明对这三种系统固件升级方法进行详细介绍,从而使用户更好的掌握固件升级,降低固件升级过程中的故障. 对所有类型的 Power 服务器,其都有系统固件(Firmware).IBM 会定期的在固件服务网站上发布最新的更新包,这些更新包能够保证服务器更加稳定.高效的运转.http://www.aliyun.com/zixun/aggregation/13879.html">系统管理员就需要根据所管理的服务器的情况,定期到网站下载更新包,并对 Po

AIX平台上基于IBM JDK的Java应用内存泄漏分析

Java 开发者一般不需要考虑内存释放问题,全交由 GC 去处理.但是在一些生产环境中,JVM 经过长时间运行后,即使是一些很小的未释放的 Java 对象,日积月累也会导致内存资源枯竭,最终使 Java http://www.aliyun.com/zixun/aggregation/36295.html">应用崩溃的问题.本文将就一个 AIX 平台上基于 IBM JDK 开发的 Java 应用内存枯竭的实际案例分析过程,来引领读者理解基于 IBM JDK 的 Java 应用内存泄漏调查方法

IBM i 上 Java Break Memory 介绍与问题分析

引言 很多使用 IBM Java 虚拟机的用户常常有这样一个疑问:我的程序是应该用 32 位 JVM,还是选择 64 位 JVM? 我们知道 ,  和 64 位 JVM 相比,32 位 JVM 具有如下优点: 启动速度快 运行速度快 对同一应用而言,占用的系统资源少 显而易见 , 32 位 JVM 是用户的首选.但是 , 采用 32 位寻址 , 32 位 JVM 的可用的内存空间远比 64 位的小得多 , 所以有些时候用户不得不使用 64 位 JVM.用户常会问这样的问题 : 我的 Java 作

介绍IBM i上提供的Java相关工具及分析方法

包括 i 6.1 及以上所提供的 WRKJVMJOB 等的相关工具以及 STRSST 中提供的相关宏的介绍.本文选择一些笔者在工作和实践过程中经常使用的功能和选项进行讲解,并穿插一些http://www.aliyun.com/zixun/aggregation/17253.html">常见问题的总结和思考. IBM Technology for Java(IT4J) 是 IBM 的 Java 虚拟机,它也是 IBM i 操作系统中的 Java 虚拟机的趋势.我们通常称此 java 虚拟机为

介绍IBM i上J9 JVM崩溃的常见原因

IBM Technology for Java(IT4J,又名 J9) 是 IBM 自己开发的 Java 虚拟机,被发布在 IBM 的各个操作系统上.IBM i 从 5.4 版本中开始引入 J9,从 6.1 开始,系统默认的 Java 虚拟机 是 J9,从 7.1 开始,C++lassic JVM 不再被支持,J9 是 IBM i 上唯一的支持的 Java 虚拟机. 在 IBM i 上 ,PASE(Portable Application Solution Environment) 提供了一个仿

介绍IBM Workload Deployer用于中间件和云计算领域

无论您的组织是刚开始使用云还是已使用一段时间,您都会看到 IBM Workload Deployer 提供了在云中成功运行企业应用程序所需的功能. 自诞生以来,IBM Workload Deployer(以前称为 IBM WebSphere® CloudBurst Appliance)一直是用于中间件和中间件应用程序的云计算领域的最先进技术.最新的 IBM Workload Deployer 版本 v3.1 继续在其强大功能的基础上扩展功能和平台支持.但在介绍新功能之前,让我们大体了解以下 IB

C# 制作Com组件:java调用.net DLL的方法

本文将详细为大家介绍一个java调用.net DLL的方法,以实现特殊的客户的特殊要求:"在Java项目中必须使用其提供的用.net写的DLL加密机制!" 环境与工具: ◆.net framework 3.5 C# ◆java jdk1.5, Tomcat 5.5 ◆jacob-1.15-M3 实现例子: 一.C# 制作Com组件 新建一个Class 项目,取名TestCom 代码 using System;  using System.Collections.Generic;  us

实用技巧:PHP中调用Java类的两种方法

Java语言功能强大,因此在许多情况下在php中来调用Java的功能将十分有用.在php中调用Java语言有两种方法,一种是使用php中的Java扩展模块,另一种是使用minij2ee应用服务器提供的SJOP协议实现.下面我们来比较一下这两种方法各自的特点. 1.php的Java模块 php发布版中包含一个Java扩展模块,可以用来调用Java对象,例如: <?php$system=new Java("java.lang.System");print "Java ver