使用手册
V6.0版
北京东方通科技公司
TongLINK/Q for JAVA使用手册
前 言
中间件是一个通道, 保障应用信息的可靠传递;中间件是一个桥梁, 达成商务构件的互连互通;中间件是一个框架, 促成企业应用的完整集成;中间件是一个平台, 实现分布式应用的顺利部署。
中间件以自身的复杂换取了企业应用的简捷。它试图通过屏蔽、疏通各种复杂的基础技术细节,使企业的应用开发、部署与管理变得轻松和谐。
IT技术的发展和市场的演进,使中间件软件成为分布式应用的关键性基础设施,中间件的内涵也变得越来越丰富,种类越来越多,技术越来越复杂,应用范围越来越广阔。
中间件处于操作系统与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,其主要功能是帮助用户灵活、高效地开发和集成复杂的应用软件。
从广义上看,商务应用包括三个逻辑层次:表示层逻辑、业务逻辑和基础逻辑。其中,基础逻辑贯穿了通讯、事件和应用管理三个方面。换言之,中间件就是从应用中分离出来的基础逻辑的一种的标准形式。
东方通科技是中国目前一家重要的专业中间件产品供应商,也是国内中间件领域的开拓者和中坚力量。我们的产品包括消息中间件TongLINK/Q、交易中间件TongLINK/Q、基于PKI的安全中间件TongSEC、面向对象以CORBA体系结构为基础的TongBroker和符合J2EE规范的WEB应用服务器TongWeb。
本手册所描述的是消息中间件TongLINK/Q。
V6.01
TongLINK/Q for JAVA使用手册
TongLINK/Q6.0 参考文献介绍
TongLINK/Q6.0系统概述
主要介绍消息中间件TongLINK/Q的系统功能、特点、组成、基本概念及基本原理。
TongLINK/Q6.0系统管理
主要介绍基于Unix和Windows环境下的安装、运行及系统目录结构,并且构造和管理TongLINK/Q系统的命令,这些命令可以用于系统启动,参数配置、消息状态监控及日志的查看等。
TongLINK/Q 6.0 编程参考
主要介绍TongLINK/Q6.0开发系统的组成、标准接口函数的定义、配合流程图进行应用程序的编写、参数配置举例及TongLINK/Q的编译举例。
TongLINK/Q 6.0管理工具
主要介绍在Unix和Windows环境中构造和管理TongLINK/Q系统的命令,这些命令可以用于系统启动和停止,参数配置和运行监控等。
JMS管理与开发手册
主要介绍JMS概述、JMS Server参数配置、JMS Server应用、JMS Server系统日志、JMS应用开发、JMS应用程序的编写、MDB及在Weblogic上的应用等。
TongLINK/Q 6.0 for JAVA 使用手册
主要介绍TongLINK/Q的JAVA接口类及方法,包括应用程序编写示例。
V6.02
TongLINK/Q for JAVA使用手册
目录
第一章TonglINK/Q for JAVA的环境设置................................................................................4第二章 类及方法说明...................................................................................................................5第三章TongLINK/Q提供的类......................................................................................................6第四章TongLINK/Q类的使用说明...............................................................................................8
4.1 tlqLogin 应用程序注册......................................................................................................84.2 tlqLogout 应用程序注销....................................................................................................94.3 tlqPutMsg 发送消息........................................................................................................104.4 tlqGetMsg 接收消息........................................................................................................114.5 tlqBegin 开始事务...........................................................................................................124.6 tlqCommit 提交事务........................................................................................................134.7 tlqRollback 回滚事务.......................................................................................................144.8 tlqGetEvent 接收事件消息...............................................................................................154.9 tlqTestLine 测试节点状态................................................................................................1.10 tlqGetLocalNode得到本地节点名称................................................................................174.11 tlqGetErr获得系统错误信息...........................................................................................18第五章 TongLINK/Q for JAVA应用程序编写.........................................................................19
5.1消息发送........................................................................................................................19
5.1.1发送程序流程........................................................................................................195.1.2一般消息发送程序举例..........................................................................................205.2消息接收........................................................................................................................21
5.2.1接收程序流程........................................................................................................215.2.2一般消息接收程序举例..........................................................................................225.3消息发送事务.................................................................................................................23
5.3.1发送方事务流程....................................................................................................235.3.2发送方事务程序举例.............................................................................................245.4消息接收事务.................................................................................................................25
5.4.1接收方事务流程....................................................................................................255.4.2接收方事务程序举例.............................................................................................26
V6.03
TongLINK/Q for JAVA使用手册
第一章TonglINK/Q for JAVA的环境设置
TongLINK/Q6.0 for JAVA适用于UNIX环境和Windows环境,利用此项功能可以在TongLINK/Q平台上使用JAVA开发客户端应用程序。
TongLINK/Q6.0 for JAVA包含在TongLINK/Q标准版的安装盘上,如果需要使用该产品需要进行如下操作:
? 使用JAVA接口的客户端节点需要安装TongLINK/Q6.0(UNIX或WINDOWS)标准版系
统,安装方法请参考用户手册,在安装完成后,系统的安装目录下会有下面几个与JAVA API相关的文件:
Windows环境:Bin\\libjtlq_adapter.dlljava\\lib\lqadapter.jarUNIX环境:
lib/libjtlq_adapter.so(或libjtlq_adapter.sl等,不同OS的后缀不同)java/lib/tlqadapter.jar?
设置环境变量
在CLASSPATH中增加TongLINK/Q的java/lib/tlqadapter.jar设置;在Windows环境下:PATH中要有libjtlq_adapter.dll的存放目录;在UNIX环境下,要指明动态链接库的位置;
LD_LIBRARY_PATH不同的OS设置动态链接库的环境变量的名称不同。例如:
DEC SCO SUN 系统为:LD_LIBRARY_PATH=LINUX 系统为:LD_LIBRARY_PATH=IBM AIX系统为:LIBPATH=HP系统为:SHLIB_PATH=?
如果没有安装JAVA,需要下载并安装JDK 1.2.2(或以上版本)。
V6.04
TongLINK/Q for JAVA使用手册
第二章 类及方法说明
在Java中,最重要的数据类型就是类(classes)。利用类,可以将对象种类的特性定义,至于对象实体,则是由系统在程序执行时,不断地按对象类的定义而产生。对于方法定义的方式和C语言中的函数,形式上基本是相同的。
在Java中,程序包的概念和其他编程语言中的函数库,目的可以说是相同的。为了开发一个大的程序或者开发有用的程序工具,可以将写好的程序类整理成一个个程序包,将所有的相关的类都放在这个程序包里。TongLINK/Q Java API中提供了五个类,放于package(程序包) “tlqadapter”中。
为了能够使Java调用TongLINK/Q的接口方法,将TongLINK/Q的接口函数定义为方法。下面章节主要介绍TongLINK/Q Java API中类及方法。
V6.05
TongLINK/Q for JAVA使用手册
第三章TongLINK/Q提供的类
TongLINK/Q JAVA API中提供了五个类给用户使用:TlqgId、:TlqMsgId、TlqMsgInfo、TlqEventInfo和TlqInterface。以下将以表格的形式对四个类的变量、方法及功能作简单的介绍。
TlqMsgId类
成员变量
int timeshort id
short rgsLoc
功能
系统当前时间消息唯一标识
进程登记表的下标。
TlqMsgInfo类
常数
int MSGNAMELENint NAMELEN
int USRCONTEXTLENint BUF_MSGint FILE_MSGint LOG_ONint LOG_OFFint PRIOR_LOW
int PRIOR_NORMALint PRIOR_HIGH
功能
msgname 最多容纳的ASC码字符个数node节点名的最多ASC码字符个数usrcontext最多存放的byte个数数据报消息文件消息可靠性非可靠性低优先级中优先级高优先级
成员变量功能
int msgType消息的类型byte[]msgName消息的名称byte[] usrContext用户根据自己的需要填写发送的信息boolean removeFileFlag用户文件发送成功后是否删除int logFlag发送消息的可靠性标识boolean compressFlag压缩标识boolean cryptFlag加密标识int priorNo优先级编号byte[] destNode目标节点名byte[] rcvQName接收队列名int expiry生命周期int msgLen数据长度int reportType订阅事件的类型byte[] reportQName订阅事件的接收队列名TlqMsgId corrMsgId消息相关性的属性Int priority优先级下标Int orgMsgLen加密压缩前消息长度,由API填写byte srcNode产生消息节点名TlqMsgId msgId消息的标识byte[] msgContent消息的内容特别说明:
byte类型数组必须赋值为某个String.getBytes()所得到byte数组值(msgContent除外)。
V6.06
TongLINK/Q for JAVA使用手册
TlqEventInfo类
成员变量
int styleint evTimebyte[] evFlagbyte[] reason
功能
事件类型标识事件产生的时间事件的唯一标识事件产生的原因
TlqInterface类
方法原型
TlqLogin()TlqLogout()TlqBegin()TlqCommit()TlqRollback()TlqPutMsg()TlqGetMsg()TlqGetEvent()TlqTestLine()TlqGetErr()
TlqGetLocalNode()
功能
应用程序注册应用程序注销开始一个事务提交一个事务回滚一个事务发送消息接收消息接收事件消息测试节点连接状态获得系统错误信息得到本地节点名称
成员变量
EVENT_M_STMOUT=0x00000001EVENT_M_RTMOUT= 0x00000002EVENT_M_BSNDFAIL = 0x00000004EVENT_M_SNDFAIL = 0x00000008EVENT_M_KRCVFAIL = 0x00000010EVENT_M_RECEIVE = 0x00000040EVENT_M_RCVOVER = 0x00000080EVENT_M_APRCV = 0x00000100
EVENT_M_KBEGINSND= 0x00000400EVENT_M_SNDOVER = 0x00000800EVENT_M_WAITACKTMOUT=0x00004000
EVENT_M_WAITDEALTMOUT=0x00008000
EVENT_M_CHKRCVEND=0X00010000
功能
核心发送超时核心接收超时核心发送前失败核心发送失败核心接收失败接收到一条消息接收一条消息完成应用收到一条消息开始发送消息信息发送一条消息完成发送方等待应答超时接收方等待处理过程中超时
发送方通过核对得知接收方已经接收结束,但不知道成功还是失败
V6.07
TongLINK/Q for JAVA使用手册
第四章TongLINK/Q类的使用说明
4.1 tlqLogin 应用程序注册
方法说明:
int tlqLogin(TlqId tlqId, int type);参数:
typetlqId 返回值:
0 -1 使用说明:
1.用于初始化过程。
2.应用程序使用TongLINK/Q系统传输消息时,首先调用此方法。3.不允许直接用一个没有经过tlqLogin方法的TlqId实例。
成功失败
应用程序编号TlqId类的实例
V6.08
TongLINK/Q for JAVA使用手册
4.2 tlqLogout 应用程序注销
方法说明:
int tlqLogout(TlqId tlqId);参数:
tlqId返回值:
0-1使用说明:
1.注销应用程序,并释放系统资源。2.必须与tlqLogin()配对使用。
TlqId类的实例;
成功失败
V6.09
TongLINK/Q for JAVA使用手册
4.3 tlqPutMsg 发送消息
方法说明:
int tlqPutMsg(TlqId tlqId, TlqMsgInfo msgInfo, int flag);参数:
tlqId msgInfo,flag
TlqId类的实例;
TlqMsgInfo类的实例;等待应答标识;
0,不等待发送队列的应答非0,等待发送队列的应答成功失败
返回值:
0-1使用说明:
用于进行消息的发送。
V6.010
TongLINK/Q for JAVA使用手册
4.4 tlqGetMsg 接收消息
方法说明:
int tlqGetMsg(TlqId tlqId, TlqMsgInfo msgInfo, int timeout);参数:
tlqIdTlqId类的实例;
msgInfo TlqMsgInfo类的实例;timeout接收消息的超时时间;返回值:0-1使用说明:
1.用于进行消息的接收。2.Timeout
<0,表示超时时间为无限等待;>0,表示超时时间。
成功失败
V6.011
TongLINK/Q for JAVA使用手册
4.5 tlqBegin 开始事务
方法说明:
int tlqBegin(TlqId tlqId);参数:
tlqId 返回值:
0-1使用说明:
1.事务开始的标志。
2.在事务开始之前必须调用。
TlqId类的实例;
成功失败
V6.012
TongLINK/Q for JAVA使用手册
4.6 tlqCommit 提交事务
方法说明:
int tlqCommit(TlqId tlqId);输入参数:
tlqId 返回值:
0-1使用说明:
1.用于事务的提交。
2.必须与tlqBegin()配对使用。
TlqId类的实例;
成功;失败
V6.013
TongLINK/Q for JAVA使用手册
4.7 tlqRollback 回滚事务
方法说明:
int tlqRollback(TlqId tlqId);输入参数:
tlqId TlqId类的实例;返回值:0-1使用说明:
1.事务失败后回滚事务。
2.必须与tlqBegin()配对使用。
成功失败
V6.014
TongLINK/Q for JAVA使用手册
4.8 tlqGetEvent 接收事件消息
方法说明:
int tlqGetEvent(TlqId tlqId, byte[] EventQName, TlqMsgInfo msgInfo, TlqEventInfo evenInfo, inttimeout);参数:
tlqId
EventQNamemsgInfoevenInfo timeout返回值:
0-1使用说明:
读取队列中的事件消息。
TlqId类的实例;事件队列名称;
TlqMsgInfo类的实例;TlqEventInfo类的实例;接收事件消息的超时时间;
成功失败
V6.015
TongLINK/Q for JAVA使用手册
4.9 tlqTestLine 测试节点状态
方法说明:
int tlqTestLine(TlqId tlqId, byte[] dest);参数:
tlqIdDest返回值:
0-1使用说明:
测试节点连通状态。
TlqId类的实例;目的节点名;
成功失败
V6.016
TongLINK/Q for JAVA使用手册
4.10 tlqGetLocalNode得到本地节点名称
方法说明:
byte[] tlqGetLocalNode(TlqId tlqId);参数:
tlqId返回值
本地节点名
使用说明:
用于得到本地节点的名称。
TlqId类的实例;
V6.017
TongLINK/Q for JAVA使用手册
4.11 tlqGetErr获得系统错误信息
方法说明:
byte[] tlqGetErr(TlqId tlqId);参数:
tlqId 返回值:
错误信息;
使用说明:
应用出错后,用于获得更为详细的系统错误信息。
TlqId类的实例;
V6.018
TongLINK/Q for JAVA使用手册
第五章 TongLINK/Q for JAVA应用程序编写
5.1消息发送
5.1.1发送程序流程
tlqLogintlqPutMsg……tlqPutMsgtlqLogout 发送程序流程图
发送流程说明:
tlqLogin:用于应用初始化过程。
TongLINK/Q系统传输消息时应用程序首先调用TlqInterface 类的方法tlqLogin(),进行应用程序注册。
tlqPutMsg:用于进行消息的发送。
☆ 允许多次调用TlqInterface类的方法tlqPutMsg(),发送多个消
息;
☆tlqLogin之后,可以分多次发送消息到同一个目的节点的不同或
相同接收队列,也可以发送到不同目的节点的不同接收队列。☆发送方应用可以通过设定消息的关联性属性CorrMsgId,与接收
方应用建立关联关系。
tlqLogout:用于释放系统资源。必须与tlqLogin()配对使用。
V6.019
TongLINK/Q for JAVA使用手册
5.1.2一般消息发送程序举例
package tlqadapter.;
import tongtech.tlqadapter.*;import java.util.*;import java.io.*;public class jniSend{
public static void main(String[] args) throws Exception{
TlqId tlqId = new TlqId();
TlqMsgInfo msgInfo = new TlqMsgInfo();TlqEventInfo eventInfo = new TlqEventInfo();TlqInterface tlqIF = new TlqInterface();
ret= TlqInterface.tlqLogin(……); /*应用初始化*/if(ret < 0)
return -1;
ret= TlqInterface.tlqPutMsg(……) /*向核心发送消息*/
/*处理消息发送结果*/if (ret < 0) return -1;
ret= TlqInterface. tlqLogout (tlqId); /*应用释放资源*/return 0;}}
V6.020
TongLINK/Q for JAVA使用手册
5.2消息接收
5.2.1接收程序流程
tlqLogintlqGetMsg……tlqGetMsgtlqLogout接收程序流程图
接收流程说明:
tlqLogin:用于应用初始化过程。
TongLINK/Q系统传输消息时应用程序首先调用TlqInterface 类的方法tlqLogin(),进行应用程序注册。
tlqGetMsg:用于进行消息的接收。
☆ 允许多次调用TlqInterface类的方法tlqGetMsg(),接收多个消
息;
☆ tlqLogin之后,可以通过设置接收的接收队列名,决定从哪个接
收队列中接收消息。
☆ 通过消息的关联性属性CorrMsgId,应用程序可以从接收队列中
取到特定属性的消息。
tlqLogout:用于释放系统资源。必须与tlqLogin()配对使用。
V6.021
TongLINK/Q for JAVA使用手册
5.2.2一般消息接收程序举例
package tlqadapter ;
import tongtech.tlqadapter.*;import java.util.*;import java.io.*;public class jniRecv{
public static void main(String[] args) throws Exception{
TlqId tlqId = new TlqId();
TlqMsgInfo msgInfo = new TlqMsgInfo();TlqEventInfo eventInfo = new TlqEventInfo();TlqInterface tlqIF = new TlqInterface();String rcvQName = \"tque1\";
met= TlqInterface.tlqLogin(……) /*应用初始化*/if(met < 0)
return -1;
for(int i = 0; i < 2; i++)
msgInfo.rcvQName = rcvQName.getBytes(); /*设置从那个接收队列接收消息*/met=TlqInterface.tlqGetMsg(……); /*开始接收消息*//*处理收到的消息*/if(met< 0) return -1;
met= TlqInterface.tlqLogout(tlqId) /*应用释放资源*/return 0;}}
V6.022
TongLINK/Q for JAVA使用手册
5.3消息发送事务
5.3.1发送方事务流程
TlqLogintlqBegintlqPutMsg……tlqPutMsgtlqLogouttlqCommit/tlqRollback发送方事务流程图
发送事务流程说明:
tlqLogin:用于应用初始化过程。
TongLINK/Q系统传输消息时应用程序首先调用TlqInterface 类的方法tlqLogin(),进行应用程序注册。
tlqBegin:用于事务开始的标志,在事务开始之前;
tlqPutMsg:允许多次调用TlqInterface类的方法tlqPutMsg(),发送多个消
息;
tlqCommit/tlqRollback:用于事务的提交或回滚。提交或回滚必须与tlqBegin
()配对使用;
tlqLogout:用于释放系统资源。必须与tlqLogin()配对使用。
注意事项:
1.如果事务中有一个消息发送分支出现错误,必须显式调用TlqInterface 类的tlqRollback()方法,将事务前面做过的发送操作回滚掉。
2.如果所有的消息发送都已成功,用户可以自由选择提交或回滚此事务。
V6.023
TongLINK/Q for JAVA使用手册
5.3.2发送方事务程序举例
package tlqadapter.;
import tongtech.tlqadapter.*;import java.util.*;import java.io.*;public class jniSend{
public static void main(String[] args) throws Exception{
TlqId tlqId = new TlqId();
TlqMsgInfo msgInfo = new TlqMsgInfo();TlqEventInfo eventInfo = new TlqEventInfo();TlqInterface tlqIF = new TlqInterface();
met=TlqInterface.tlqLogin(……); /*应用初始化*/if(met< 0)
return-1;
tranFail=0
met=TlqInterface.tlqBegin(tlqId);/*开始事务*/if(met<0)
tlq_logout(tlqId);return –1;
for(int destNum=0;destNum if(met< 0) tranFail=1;break;} } /*根据消息发送的结果决定提交或回滚*/ if(tranFail == 0) met=TlqInterface.tlqCommit(…..);else met=TlqInterface.tlqRollback(…..); met= TlqInterface.tlqLogout(tlqId) /*应用释放资源*/return 0;}}V6.0 24 TongLINK/Q for JAVA使用手册 5.4消息接收事务 5.4.1接收方事务流程 tlqLogintlqBeginTlqGetMsg……tlqGetMsgtlqLogouttlqCommit/tlqRollback接收方事务流程图 接收事务流程说明: tlqLogin:用于应用初始化过程。 TongLINK/Q系统传输消息时应用程序首先调用TlqInterface 类的方法tlqLogin(),进行应用程序注册。 tlqBegin:用于事务开始的标志,在事务开始之前; tlqGetMsg:允许多次调用TlqInterface类的方法tlqGetMsg(),接收多个消 息; tlqCommit/tlqRollback: 用于事务的提交或回滚。提交或回滚必须与 tlqBegin()配对使用; Tlq_logout:用于释放系统资源。必须与tlqLogin()配对使用。 注意事项: 1.接收方事务只能针对一个接收队列。一个接收方事务不能同时接收一个以上的接收队列中的消息。 2.如果事务中有一个消息接收分支出现错误,必须显式调用TlqInterface 类的tlqRollback()方法,将事务前面做过的接收操作回滚掉。 3.如果所有的消息接收都已成功,用户可以自由选择提交或回滚此事务。 V6.025 TongLINK/Q for JAVA使用手册 5.4.2接收方事务程序举例 package tlqadapter ; import tongtech.tlqadapter.*;import java.util.*;import java.io.*;public class jniRecv{ public static void main(String[] args) throws Exception{ TlqId tlqId = new TlqId(); TlqMsgInfo msgInfo = new TlqMsgInfo();TlqEventInfo eventInfo = new TlqEventInfo();TlqInterface tlqIF = new TlqInterface();String rcvQName = \"tque1\"; met=TlqInterface.tlqLogin(……); /*应用初始化*/if(met< 0) return-1;tranFail=0; met=TlqInterface.tlqBegin(tlqId);/*开始事务*/if(met<0) tlq_logout(tlqId);return –1; for(int i=0;i msgInfo.rcvQName = rcvQName.getBytes();met=TlqInterface.tlqGetMsg(……);if(met< 0) tranFail=1;break; } /*根据消息接收的结果决定提交或回滚事务*/if(tranFail == 0) TlqInterface.tlqCommit(tlqId);else TlqInterface.tlqRollback(tlqId); met= TlqInterface.tlqLogout(tlqId); /*应用释放资源*/return 0;}}V6.0 26
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- vipyiyao.com 版权所有 湘ICP备2023022495号-8
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务