Linux下Tuxedo配置以及Java调用Tuxedo
前言
因为业务需求,需要对接某部门的Tuxedo数据接口,但是那边提供的技术支持很少,Tuxedo相关资料网上不是很完善,以下是个人对Java调用Tuxedo相关整合,为方便个人和大家学习,不完善之处大家多多包涵,错误之处请指出!
准备工作
首先去官网[https://www.oracle.com](https://www.oracle.com)下载Tuxedo,这里所用版本:Oracle Tuxedo 12cR1(12.1.1.0),JOLT等调用方式在Oracle收购BEA公司后已经无需licsence,所以可放心使用,11以前版本licsence可自行前往Oracle官网获取。
配置Tuxedo并测试连通性
在合适的位置上传Tuxedo,将传入的Tuxedo版本进行安装,步骤如下:
- 输入:tuxedo12110_64_linux_5_x86.bin -i console
- Choose Locale…:选择1
- PRESS TO CONTINUE: 按ENTER
- Please choose the Install Set to be installed by this installer:选择1- Full Install(全安装)
- Choose Oracle Home: 选择 2(使用当前路径)
- install samples:输入Y
- PRESS TO CONTINUE:按ENTER
- PRESS TO INSTALL:按ENTER
- Configure listen Service:tuxedo(这里设置任意密码)
- 是否安装SSL: 选择2
- 安装成功
安装成功过后,Oracle自带有很多例子,大家可以根据自己的需求自己选择,例子在samples目录下。这里选择简单的sampapp进行简单的连通性测试。
环境配置:
- 将安装目录下tux.env里面的内容copy一下
- 选择合适的环境vi .bash_profile(当前用户) vi /etc/profile (所有用户),这里选择当前用户
- 将copy的内容粘贴到.bash_profile,保存退出
- 命令source .bash_profile使环境生效
- 退出重新登陆
# TuxedoTUXDIR=/usr/local/tuxedo/tuxedo12.1.1.0; export TUXDIR
JVMLIBS=$JAVA_HOME/lib/amd64/server:$JAVA_HOME/jre/bin
PATH=$TUXDIR/bin:$JAVA_HOME/bin:$PATH; export PATH
COBCPY=:$TUXDIR/cobinclude; export COBCPY
COBOPT="-C ANS85 -C ALIGN=8 -C NOIBMCOMP -C TRUNC=ANSI -C OSEXT=cbl"; export COBOPT
SHLIB_PATH=$TUXDIR/lib:$JVMLIBS:$SHLIB_PATH; export SHLIB_PATH
LIBPATH=$TUXDIR/lib:$JVMLIBS:$LIBPATH; export LIBPATH
LD_LIBRARY_PATH=$TUXDIR/lib:$JVMLIBS:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH
WEBJAVADIR=$TUXDIR/udataobj/webgui/java; export WEBJAVADIR
TUXCONFIG=/usr/local/tuxedo/tuxedo12.1.1.0/samples/atmi/myapp/tuxconfig; export TUXCONFIG #tuxconfig配置
CLASSPATH=:$TUXDIR/udataobj/jolt/joltadmin.jar::$TUXDIR/udataobj/jolt/jolt.jar; export CLASSPATH #jolt配置#以上包含jolt服务端配置和例子运行所需tuxconfig配置
复制一份oracle自带例子simpapp并命名为myapp,切换目录到myapp,打开文件ubbsimple进行ubb配置(可自行根据例子里面ubbsimple<>括号中提示进行配置)。注意,自行配置的,需要将括号中的提示内容全部替换!!
# (c) 2003 BEA Systems, Inc. All Rights Reserved.
#ident "@(#) samples/atmi/simpapp/ubbsimple $Revision: 1.7 $"#Skeleton UBBCONFIG file for the TUXEDO Simple Application.
#Replace the <bracketed> items with the appropriate values.*RESOURCES
IPCKEY 123457 #任意填写#Example:
#IPCKEY 123456DOMAINID simpapp
MASTER simple
MAXACCESSERS 900
MAXSERVERS 10
MAXSERVICES 20
MODEL SHM
LDBAL N*MACHINES
DEFAULT:APPDIR="/usr/local/tuxedo/tuxedo12.1.1.0/samples/atmi/myapp"TUXCONFIG="/usr/local/tuxedo/tuxedo12.1.1.0/samples/atmi/myapp/tuxconfig" #与.bash_profile相同TUXDIR="/usr/local/tuxedo/tuxedo12.1.1.0"MAXWSCLIENTS=5
#Example:
# APPDIR="/home/me/simpapp"
# TUXCONFIG="/home/me/simpapp/tuxconfig"
# TUXDIR="/usr/tuxedo""localhost.localdomain" LMID=simple #这里主机名为hostname命令显示的#Example:
#beatux LMID=simple*GROUPS
GROUP1LMID=simple GRPNO=1 OPENINFO=NONEJSLGRP LMID=simple GRPNO=2 #LMID与上面相同,下同JREPGRP LMID=simple GRPNO=3*SERVERS
DEFAULT:CLOPT="-A"simpserv SRVGRP=GROUP1 SRVID=1
JSL SRVGRP=JSLGRP SRVID=755
CLOPT="-A -- -n //192.168.78.11:30000 -m 5 -M 10 -x 5" JREPSVR SRVGRP=JREPGRP SRVID=302
CLOPT="-A -- -W -P /usr/local/tuxedo/tuxedo12.1.1.0/udataobj/jolt/repository/jrepository" *SERVICES
TOUPPER#以上包含当前例子jolt服务端配置
ubbsimple配置完成过后,进行当前TUXCONFIG环境配置(前面环境已经配置,大家可根据情况自行修改或自己添加)。注意,修改后一定要重新source使环境生效!!!!
在myapp目录下:
- 编译客户端:buildclient -o simpcl -f simpcl.c
- 编译服务端:buildserver -o simpserv -f simpserv.c –s TOUPPER
- 加载ubb配置:tmloadcf -y ubbsimple
- 启动服务:tmboot -y
- 停止服务: tmshutdown -y
服务启动后,可进入tmadmin的监管环境: tmadmin
- 查看服务信息:printserver 简写 psr
- 查看交易信息:printservice 简写 psc
- 查看队列信息: printqueue 简写 pq
- 查看客户端信息: printclient 简写 pclt
- 查看部分统计信息: bbstats 简写 bbs
- 观察某个节点的进程信息: default –m 节点
- 查看消息发送状态: printnetwork 简写 pnw
- 退出管理模式: quit 简写 q
连通性的测试可通过直接调用客户端进行:simpcl hi
Tuxedo下jolt服务端配置
前面我们完整的搭建了一个Tuxedo服务端,这里只介绍jolt的方式调用我们的服务,废话不多说,下面我们开始Tuxedo相关jolt服务的配置和导出以及java端的调用。
java通过jolt连接到Tuxedo需要在ubbsimple中开启两个进程:JSL和JREPSVR。
JSL:监听并分发客户端的请求
JREPSVR:配置Tuxedo导出给jolt客户端的服务
ubbsimple具体配置如下(上面ubb已经配置过了的请略过):
- 在GROUPS下添加:
JSLGRP LMID=simple GRPNO=2 #这里LMID要与上面LMID相同
JREPGRP LMID=simple GRPNO=3
- 在SERVERS下添加:
JSL SRVGRP=JSLGRP SRVID=755
CLOPT="-A -- -n //192.168.78.11:30000 -m 5 -M 10 -x 5" #这里地址就是jolt调用地址JREPSVR SRVGRP=JREPGRP SRVID=302
CLOPT="-A -- -W -P /usr/local/tuxedo/tuxedo12.1.1.0/udataobj/jolt/repository/jrepository" #安装目录下/udataobj/jolt/repository/jrepository
配置好ubbsimple过后,为使Jolt客户端能够查找到需要的服务,必须将需要的Tuxedo服务导出到Jolt注册表中,即上面提到的jrepository文件。服务的导出既可在Tuxedo服务器上进行,也可在其他客户端机器上进行。
相关配置如下:
- 安装JDK并配置环境变量(相关过程略过)
- 将jolt.jar和joltadmin.jar添加在上面的环境变量.bash_profile中,如下:
CLASSPATH=:$TUXDIR/udataobj/jolt/joltadmin.jar::$TUXDIR/udataobj/jolt/jolt.jar; export CLASSPATH#这两个包在/udataobj/jolt下可以找到
上面配置完成后,再新建一个接口配置文件simpapp.rep,并添加如下内容:
service=TOUPPER #Tuxedo服务名称
inbuf=FML
outbuf=FML
export=true #是否导出
param=LU
type=string
access=inout
param=TUXEDOTEST #传入传出参数的名字
type=string #参数类型
access=inout #参数的访问类型#具体的参数说明请自行百度
内容添加完成过后,我们的配置工作,差不多就完成了,执行一下命令导出:
java bea.jolt.admin.jbld //192.168.78.11:30000 simpapp.rep #这里的地址和IP要和ubbsimple文件中配置的JSL进程的CLOPT字段中的地址一致。
导出成功示例:
Line[1]: Service [TOUPPER]: InsertedPrevious Package [PKG/aaa]: DeletedPackage [PKG/aaa]: InsertedBULK LOAD SUMMARY-----------------Bulk load file name: simpapp.repServices Defined in file: 1Services Inserted: 1Services Not Replaced: 0Services Errors: 0Previous Bulk Services Deleted: 0#这是首次导出的示例,再次导出有一点点区别
完成上面所有的配置,jolt服务端大功告成,我们可一通过java开始调用了~
java通过jolt调用Tuxedo
首先需要三个jar包:joltjse.jar,jolt.jar,joltwls.jar,这三个包在安装目录下 udataobj/jolt可以找到,没有安装的请自行查找相关资源。
这边项目jar包是通过maven管理的,所以需要先将包导入项目,再交给maven管理。
具体步骤如下:
- 首先在resources目录下新建lib包,这个包专门用来放第三方jar包,有的可直接添加
- 添加jar包到lib
- 添加maven依赖
#添加第三方依赖以便打包<dependency><groupId>com.jolt</groupId><artifactId>jolt</artifactId><version>1.0</version><scope>system</scope><systemPath>${basedir}/src/main/resources/lib/jolt.jar</systemPath>
</dependency>
<dependency><groupId>com.jolt</groupId><artifactId>joltjse</artifactId><version>1.0</version><scope>system</scope><systemPath>${basedir}/src/main/resources/lib/joltjse.jar</systemPath>
</dependency>
<dependency><groupId>com.jolt</groupId><artifactId>joltwls</artifactId><version>1.0</version><scope>system</scope><systemPath>${basedir}/src/main/resources/lib/joltwls.jar</systemPath>
</dependency>#并修改spring boot的作用域<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><includeSystemScope>true</includeSystemScope></configuration></plugin></plugins></build>
上面配置完成过后,就只有java通过jolt调用Tuxedo最后一步了,逻辑代码的书写,直接上代码:
JoltSession session;JoltSessionAttributes attr;JoltRemoteService service;JoltMessage message = null;String userName = null;String userPassword = null;String appPassword = null;String userRole = null;attr = new JoltSessionAttributes();attr.setString(JoltSessionAttributes.APPADDRESS,"//192.168.78.11:30000"); #调用地址attr.setInt(JoltSessionAttributes.IDLETIMEOUT, 300);session = new JoltSession(attr, userName, userRole, userPassword,appPassword);service = new JoltRemoteService("TOUPPER", session);service.setString("Test", "a boy");try {service.call(null);message = service.getOutputs();service.clear();session.endSession();} catch (Exception e) {}return message;#根据自己的情况修改
回顾
以上就是全部的流程,因为个人没有对Tuxedo这个中间件进行深入研究,所以文章中有纰漏和错误在所难免,只希望文章对大家有些许帮助!
Linux下Tuxedo配置以及Java调用Tuxedo相关推荐
- Java调用Tuxedo方案浅析
Tuxedo为业界公认的性能.稳定性.健壮性都非常好的中间件之一,之所以能做到这么好的稳定性和健壮性,其采用私有的通讯协议是原因之一.因为采用私有的通讯协议,所以客户端与服务端的通讯质量可以全部由Tu ...
- 使用oracle安装jdk1.7,【Java】Linux下安装配置Oracle JDK 1.7版本
1 环境 Vmware虚拟机中的Ubuntu 12.04 32位系统 2具体安装步骤 ①下载最新的jdk包 注意jdk区分32位版本和64位版本,要与Ubuntu兼容才行 下载地址 http://ww ...
- java调用tuxedo中间件,BEA-TUXEDO中间件介绍.ppt
BEA-TUXEDO中间件介绍 2003年1月16日 BEA TUXEDO 介绍 应用软件软件部 顾强 qiang_gu@163.net 培训目的 了解使用中间件的三层应用架构模式 了解BEA TUX ...
- java version 和javac版本不一致_解决linux下javac -version和java -version版本显示不一致...
[javascript] view plaincopy [root@localhost usr]# $JAVA_HOME/bin/java -version bash: /bin/java: 没有那个 ...
- linux login 安装桌面,Linux_Ubuntu Linux下安装配置fluxbox桌面环境,安装 基本系统Ubuntu 7.10 G - phpStudy...
Ubuntu Linux下安装配置fluxbox桌面环境 安装 基本系统Ubuntu 7.10 Gutsy,Xfce桌面.直接安装源里的fluxbox: aptitude install fluxbo ...
- linux下怎么配置gnome桌面环境,Linux下怎么配置Gnome桌面环境
和Windows一样,在Gnome的文件管理器(nautilus)里,双击一个文件的时候,系统会自动调用相应的程序去打开这个文件.下面学习啦小编教大家在 Linux下怎么配置Gnome桌面环境,下面大 ...
- Linux 下安装配置C/C++开发环境 Code::Blocks
Linux 下安装配置C开发环境Code::Blocks 一.提前的话 要说C语言和Linux的关系大家应该都不会陌生,Linux系统内核就是用C语言开发的,所以所有的Linux系统下面 都会有C的编 ...
- linux下安装配置redis服务
2019独角兽企业重金招聘Python工程师标准>>> linux下安装配置redis服务 2016年03月25日 15:39:31 coding_everyday 阅读数:3530 ...
- Linux 下安装配置 JDK7
Linux 下安装配置 JDK7 配置环境(debian 7) 自从从Oracle收购Sun近三年来,已经有很多变化.早在8月,甲骨文将"Operating System Distribut ...
最新文章
- 第一次胜过MobileNet的二值神经网络,-1与+1的三年艰苦跋涉
- PAT 1037 在霍格沃茨找零钱(20)(代码+思路)
- 鼠标移动监听的注意事项
- java 方块_哈工大java实验 移动小方块
- 正则表达式的20个小应用
- python-上传下载文件
- Javascript启动LINUX的x86模拟器
- Python数值类型
- DNF服务器搭建服务端架设教程
- 【附源码】计算机毕业设计java业俊宾馆客房管理系统设计与实现
- wxs 实现小程序拖拽功能
- VBE2019的下载、安装和使用(最新版2019.5.30)
- python弹幕分析_用Python抓取bilibili弹幕并分析
- printf颜色控制c语言,C语言中控制printf的打印颜色实例及vt100的控制符文档
- 学习OpenCV 函数方法结构总结
- 无线串口服务器的辐射范围,揭真相!无线路由器的辐射到底可怕不?
- 无线网卡(RTL8188EU)驱动编译、使用DHCP配置无线网络(1
- 中国云市场生变:华为云Q2份额超AWS,IaaS+PaaS迎来整体增长
- 读取sd卡里的jar包
- web test LoadRunner error list / error log