实习以来完成的第一个小项目:Websphere MQ远程查看软件

来源:互联网 发布:nginx配置php域名访问 编辑:程序博客网 时间:2024/06/05 18:47

    实习两个多月,主要的工作就是弄IBM的Websphere MQ,最终的成果是做出了一个Websphere MQ的远程查看软件。

详细代码和包:http://download.csdn.net/detail/dolphin29/6696431

下面是详细介绍。

1基本概述

1.1编写背景

WebSphere MQ (也称MQSeries)以一致的、可靠的和易于管理的方式来连接应用程序,并为跨部门、企业范围的集成提供了可靠的基础。该程序支持了大量的数据传输,需要随时对该队列的详细情况进行查看,而对Websphere MQ状态的查看有两种方式:

1、在CMD环境下用语句查看;

2、打开MQ资源管理器在图形界面进行查看。

1.2编写目的

一般情况下,以上两种对WebsphereMQ信息的查看方式,都局只限于接收和发送端计算机上,在第三方的计算机上是无法用这两种方式查看的。该软件实现了在第三方计算机上查看WebsphereMQ信息的功能。

2程序说明

2.1功能设计

该软件具备了以下功能:

1、  登录功能:初始的登陆界面提示用户输入Websphere MQ所在计算机的用户名、密码、ip地址,获取这些信息之后建立与目标计算机的连接,并且查询目标计算机上包含的管理器与队列。

2、  生成界面:通过获取到的管理器和队列,动态生成显示树形菜单。

3、  点击查询功能:在用户点击树形菜单中的管理器或队列时,生成对应的查询语句并且发送到目标计算机,在图形界面显示对应的返回值。

4、  退出功能:断开与目标计算机的连接,返回登录界面。

2.2设计思路

在收发端的计算机上,可以用以下CMD指令查看Websphere MQ信息:

1、   查看Websphere MQ的详细信息:dspmqver

2、   显示本机上的所有管理器:dpsmq

 

3、   进入管理器并且查看具体信息:runmqsc + 管理器id , display + 具体要查看的内容

  在第三方计算机上,利用telnet的功能连接到要查看的计算机。登录之后输入相关的Websphere MQ命令并且获取返值,这样实现第三方计算机的查看功能。

2.3详细设计

2.3.1使用Jar包

由于该软件调用到telnet的功能,所以必须导入commons-net这个jar包。其余使用的包都为eclips自带,无须另外导入。

2.3.2模块设计

该软件由两个模块组成:图形界面的模块TreeTest、处理连接查询的模块TelnetOperator。

2.3.3功能函数设计

2.3.3.1 TelnetOperator的主要函数和功能:

1、   void login ( )函数负责登录功能

2、   String getdspmqver()函数处理并返回dspmqver(MQ详细信息)

3、   ArrayList getqm(String str)函数处理dspmq(即MQ的队列信息,用getdspmq函数获取),返回的是一个包含每个队列名称的集合类

4、   ArrayList getstatus(ArrayListqm)函数输入所有管理器的集合类(该集合类由getqm( )函数生成),返回两个重要的对象:一个表示树形菜单结构的参数,所有队列(格式为:所属管理器id+队列id,由于不同管理器下的队列id可以相同,格式上必须加上所属管理器id)。

5、   void write(String value)函数负责传输命令

6、   String readUntil(Stringpattern)函数负责读取返回值

7、   disconnect()函数断开与目标计算机的连接

2.3.3.2 TreeTest的主要函数和功能:

1、   按键“登录”监听:调用TelnetOperator中的登录功能,获取相关的参数,执行getjScrollPane、getExitPane 、getJEditorPane三个函数生成面板

2、   按键“退出登录”菜单监听:执行TelnetOperator类中的disconnect ()函数断开连接,清除已有组件,重新显示登录面板

3、   树形菜单监听:点击到MQ时候会显示TelnetOperato中的dspmqver信息;点击到管理器或者队列时,会通过getjTA()函数生成对应的信息并且显示出来,

4、   getjScrollPane(telnetOperator.qm, telnetOperator.queue, telnetOperator.treestatus)函数的生成了图形界面左下方的树形菜单

5、   getExitPanel()函数生成左上角的退出面板

6、     getJEditorPane()函数生成了右边的信息面板

7、  getLoginPanel()函数生成登录的面板

8、  getJContentPane()函数生成了一个面板容器来容纳各种组件

9、  initialize()函数负责初始化

10、             getjTA()函数根据点击的管理器或者队列,返回显示详细信息,其中有筛选功能(选出部分重要的参数进行显示)和汉化功能(将属性名翻译为中文)

 

3存在问题

3.1登录时出现的意外情况

1、连接不上指定ip的计算机(ip错误或者计算机处于关闭状态);

2、已连接上指定ip的计算机,用户名或者密码错误。

3、已经接上指定ip的计算机,已成功登录,但该计算机上未安装Websphere MQ,导致无法识别mq的语句。

3.2未考虑管理器运行状态

当管理器处于关闭状态时,是无法用runmqsc这个命令去管理器进行查询的;而该软件在设计的时候没有考虑到管理器处于关闭的情况。

 

    解决方法:

    这个问题可以在getdspmqver()函数中进行解决,输入dspmq之后多返回一个管理器的状态值。在读取管理器id之后,加上读取状态的语句,在valueChanged监听中加入点击时对管理器状态的判定:

    若管理器运行,则继续查询;

    若管理器关闭,则跳出查询,并且返回管理器关闭的提示。

3.3翻译汉化和显示问题

在显示详细信息时只对部分较为重要的属性名执行了汉化和显示,但未考虑部分字符串形式的属性值。在getjTA()函数中,可以参照翻译属性名的格式添加翻译属性值的代码;可以对需要显示的属性值进行设设置和翻译


0 0
原创粉丝点击