前言

因为业务需求,需要对接某部门的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版本进行安装,步骤如下:

  1. 输入:tuxedo12110_64_linux_5_x86.bin -i console
  2. Choose Locale…:选择1
  3. PRESS TO CONTINUE: 按ENTER
  4. Please choose the Install Set to be installed by this installer:选择1- Full Install(全安装)
  5. Choose Oracle Home: 选择 2(使用当前路径)
  6. install samples:输入Y
  7. PRESS TO CONTINUE:按ENTER
  8. PRESS TO INSTALL:按ENTER
  9. Configure listen Service:tuxedo(这里设置任意密码)
  10. 是否安装SSL: 选择2
  11. 安装成功

安装成功过后,Oracle自带有很多例子,大家可以根据自己的需求自己选择,例子在samples目录下。这里选择简单的sampapp进行简单的连通性测试。
环境配置:

  1. 将安装目录下tux.env里面的内容copy一下
  2. 选择合适的环境vi .bash_profile(当前用户) vi /etc/profile (所有用户),这里选择当前用户
  3. 将copy的内容粘贴到.bash_profile,保存退出
  4. 命令source .bash_profile使环境生效
  5. 退出重新登陆
# 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目录下:

  1. 编译客户端:buildclient -o simpcl -f simpcl.c
  2. 编译服务端:buildserver -o simpserv -f simpserv.c –s TOUPPER
  3. 加载ubb配置:tmloadcf -y ubbsimple
  4. 启动服务:tmboot -y
  5. 停止服务: tmshutdown -y

服务启动后,可进入tmadmin的监管环境: tmadmin

  1. 查看服务信息:printserver 简写 psr
  2. 查看交易信息:printservice 简写 psc
  3. 查看队列信息: printqueue 简写 pq
  4. 查看客户端信息: printclient 简写 pclt
  5. 查看部分统计信息: bbstats 简写 bbs
  6. 观察某个节点的进程信息: default –m 节点
  7. 查看消息发送状态: printnetwork 简写 pnw
  8. 退出管理模式: quit 简写 q

连通性的测试可通过直接调用客户端进行:simpcl hi

Tuxedo下jolt服务端配置

前面我们完整的搭建了一个Tuxedo服务端,这里只介绍jolt的方式调用我们的服务,废话不多说,下面我们开始Tuxedo相关jolt服务的配置和导出以及java端的调用。

java通过jolt连接到Tuxedo需要在ubbsimple中开启两个进程:JSL和JREPSVR。
JSL:监听并分发客户端的请求
JREPSVR:配置Tuxedo导出给jolt客户端的服务

ubbsimple具体配置如下(上面ubb已经配置过了的请略过):

  1. 在GROUPS下添加:
JSLGRP          LMID=simple   GRPNO=2             #这里LMID要与上面LMID相同
JREPGRP         LMID=simple   GRPNO=3
  1. 在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服务器上进行,也可在其他客户端机器上进行。

相关配置如下:

  1. 安装JDK并配置环境变量(相关过程略过)
  2. 将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管理。
具体步骤如下:

  1. 首先在resources目录下新建lib包,这个包专门用来放第三方jar包,有的可直接添加
  2. 添加jar包到lib
  3. 添加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相关推荐

  1. Java调用Tuxedo方案浅析

    Tuxedo为业界公认的性能.稳定性.健壮性都非常好的中间件之一,之所以能做到这么好的稳定性和健壮性,其采用私有的通讯协议是原因之一.因为采用私有的通讯协议,所以客户端与服务端的通讯质量可以全部由Tu ...

  2. 使用oracle安装jdk1.7,【Java】Linux下安装配置Oracle JDK 1.7版本

    1 环境 Vmware虚拟机中的Ubuntu 12.04 32位系统 2具体安装步骤 ①下载最新的jdk包 注意jdk区分32位版本和64位版本,要与Ubuntu兼容才行 下载地址 http://ww ...

  3. java调用tuxedo中间件,BEA-TUXEDO中间件介绍.ppt

    BEA-TUXEDO中间件介绍 2003年1月16日 BEA TUXEDO 介绍 应用软件软件部 顾强 qiang_gu@163.net 培训目的 了解使用中间件的三层应用架构模式 了解BEA TUX ...

  4. java version 和javac版本不一致_解决linux下javac -version和java -version版本显示不一致...

    [javascript] view plaincopy [root@localhost usr]# $JAVA_HOME/bin/java -version bash: /bin/java: 没有那个 ...

  5. linux login 安装桌面,Linux_Ubuntu Linux下安装配置fluxbox桌面环境,安装   基本系统Ubuntu 7.10 G - phpStudy...

    Ubuntu Linux下安装配置fluxbox桌面环境 安装 基本系统Ubuntu 7.10 Gutsy,Xfce桌面.直接安装源里的fluxbox: aptitude install fluxbo ...

  6. linux下怎么配置gnome桌面环境,Linux下怎么配置Gnome桌面环境

    和Windows一样,在Gnome的文件管理器(nautilus)里,双击一个文件的时候,系统会自动调用相应的程序去打开这个文件.下面学习啦小编教大家在 Linux下怎么配置Gnome桌面环境,下面大 ...

  7. Linux 下安装配置C/C++开发环境 Code::Blocks

    Linux 下安装配置C开发环境Code::Blocks 一.提前的话 要说C语言和Linux的关系大家应该都不会陌生,Linux系统内核就是用C语言开发的,所以所有的Linux系统下面 都会有C的编 ...

  8. linux下安装配置redis服务

    2019独角兽企业重金招聘Python工程师标准>>> linux下安装配置redis服务 2016年03月25日 15:39:31 coding_everyday 阅读数:3530 ...

  9. Linux 下安装配置 JDK7

    Linux 下安装配置 JDK7 配置环境(debian 7) 自从从Oracle收购Sun近三年来,已经有很多变化.早在8月,甲骨文将"Operating System Distribut ...

最新文章

  1. 第一次胜过MobileNet的二值神经网络,-1与+1的三年艰苦跋涉
  2. PAT 1037 在霍格沃茨找零钱(20)(代码+思路)
  3. 鼠标移动监听的注意事项
  4. java 方块_哈工大java实验 移动小方块
  5. 正则表达式的20个小应用
  6. python-上传下载文件
  7. Javascript启动LINUX的x86模拟器
  8. Python数值类型
  9. DNF服务器搭建服务端架设教程
  10. 【附源码】计算机毕业设计java业俊宾馆客房管理系统设计与实现
  11. wxs 实现小程序拖拽功能
  12. VBE2019的下载、安装和使用(最新版2019.5.30)
  13. python弹幕分析_用Python抓取bilibili弹幕并分析
  14. printf颜色控制c语言,C语言中控制printf的打印颜色实例及vt100的控制符文档
  15. 学习OpenCV 函数方法结构总结
  16. 无线串口服务器的辐射范围,揭真相!无线路由器的辐射到底可怕不?
  17. 无线网卡(RTL8188EU)驱动编译、使用DHCP配置无线网络(1
  18. 中国云市场生变:华为云Q2份额超AWS,IaaS+PaaS迎来整体增长
  19. 读取sd卡里的jar包
  20. web test LoadRunner error list / error log

热门文章

  1. 非线性优化求解器IPOPT
  2. .Net Core下自定义JsonResult
  3. 大数据从业者必读书籍《数据仓库工具箱》-第三章笔记
  4. 字符串方法——截取字符串
  5. 厉害了,24分钟让AI跑起飞车类游戏
  6. 译文▍用Python做NLP:自然语言处理-介绍、入门与应用
  7. ESDB论文重点整理
  8. “我的工作,是推动腾讯的边界”
  9. es5与es6的区别
  10. 新的起点,新的征程。