Oracle Tuxedo 是私有云或传统数据中心环境中用于 C、C++、COBOL、Java 和动态语言应用程序的排名第一的应用程序服务器。Oracle Tuxedo 提供了一个高度可靠且可线性扩展的平台,用于开发、部署和管理任务关键型应用程序。Oracle Tuxedo 在以多种编程语言(C、C++、COBOL、Java、PHP、Python 和 Ruby)编写的应用程序之间提供优化的通信,这些应用程序共存于同一容器中。Oracle Tuxedo 包括用于应用程序开发、部署和管理的各种工具,以降低总拥有成本。
Tuxedo 12c 部署
环境检查
cat /etc/os-version
[Version]
SystemName=UnionTech OS Server
SystemName[zh_CN]=统信服务器操作系统
ProductType=Server
ProductType[zh_CN]=服务器
EditionName=a
EditionName[zh_CN]=a
MajorVersion=20
MinorVersion=1050
OsBuild=12028.101
环境准备
安装并配置 JDK
sudo dnf install jdk-8u321-linux-x64.rpm
配置环境变量,在 /etc/profile
中加入以下几行
# Java JDK
export JAVA_HOME=/usr/java/jdk1.8.0_321-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
检查 JDK
$ java -version
java version "1.8.0_321"
Java(TM) SE Runtime Environment (build 1.8.0_321-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.321-b07, mixed mode)
解压产品安装包
以下部分请使用普通用户进行执行,请勿在 root 用户下进行执行。
unzip tuxedo122200_64_Linux_01_x86.zip
进入安装目录
cd Disk1/install/
安装所需依赖
sudo dnf install libnsl
执行安装脚本即可看到安装引导界面
./runInstaller.sh
▲ 选择下一步
▲ 选择安装路径并指定安装的属主
▲ 选择安装类型
▲ 指定主目录详细资料
▲ TSAM Plus 代理启用选项
▲ Oracle Tuxedo 示例安装选项(这里需要勾选“是”)
▲ 设置 tlisten 口令
▲ SSL 支持选择
▲ LDAP 支持选项
▲ 安装过程
▲ 配置脚本需要使用 root 用户进行执行
▲ 安装结束
检查版本
安装完毕后,进入产品安装目录
cd /home/uos/OraHome_1/tuxedo12.2.2.0.0
执行环境脚本
. ./tux.env
然后执行主命令即可显示 Tuxedo 的程序信息,包含版本、架构、补丁版本等信息。
tmadmin -v
INFO: Oracle Tuxedo, Version 12.2.2.0.0, 64-bit, Patch Level (none)
Tuxedo 12c 演示
消息中间件 client 使用 Java 程序进行演示,server 使用 C 程序进行演示。
- 官方介绍手册:Oracle Tuxedo 12cR1 Documentation
- Java 配置手册:Oracle Tuxedo Java Server Configuration
- Java 开发手册:Programming an Oracle Tuxedo Application Using Java
示例程序在 Tuxedo 安装目录 OraHome_1/tuxedo12.2.2.0.0/samples/atmi/javaapp
中,复制一份。
cp -a $TUXDIR/samples/atmi/javaapp/jsimpapp ~
配置环境
配置环境变量,指定 TUX 配置
export TUXCONFIG="/home/uos/jsimpapp/tuxconfig"
修改配置文件 ubbconfig
# Copyright (c) 2012 Oracle and/or its affiliates. All Rights Reserved.
#ident "@(#) samples/atmi/javaapp/jsimpapp/ubbsimple $Revision: 1.1 $"
#Skeleton UBBCONFIG file for the TUXEDO Simple Application.
#Replace the <bracketed> items with the appropriate values.
*RESOURCES
IPCKEY 187777
DOMAINID simpapp
MASTER simple
MAXACCESSERS 10
MAXSERVERS 5
MAXSERVICES 10
MODEL SHM
LDBAL N
*MACHINES
DEFAULT:
APPDIR="/home/uos/jsimpapp"
TUXCONFIG="/home/uos/jsimpapp/tuxconfig"
TUXDIR="/home/uos/OraHome_1/tuxedo12.2.2.0.0"
"localhost.localdomain" LMID=simple
#Example:
#beatux LMID=simple
*GROUPS
GROUP1
LMID=simple GRPNO=1 OPENINFO=NONE
*SERVERS
DEFAULT:
CLOPT="-A"
simpserv SRVGRP=GROUP1 SRVID=1
TMJAVASVR SRVGRP=GROUP1 SRVID=2 CLOPT="-A"
CLOPT="-- -c TJSconfig.xml"
MINDISPATCHTHREADS=2 MAXDISPATCHTHREADS=3
*SERVICES
TOUPPER
生成二进制配置文件
tmloadcf -y ubbconfig
可以看到项目目录中产生名为 tuxconfig 的二进制文件
编译客户端程序
执行命令
buildclient -o simpcl -f simpcl.c
编译服务端程序
buildserver -o simpserv -f simpserv.c -s TOUPPER
执行完毕后可以看到程序目录中出现两个可执行文件 simpcl
simpserv
构建 Java 服务
先需要配置 JDK/JRE 环境,然后执行命令
javac -classpath $TUXDIR/udataobj/tuxj/com.bea.core.jatmi_2.0.0.0.jar:$TUXDIR/udataobj/tuxj/com.oracle.tuxedo.tjatmi_12.2.2.0.jar MyTuxedoJavaServer.java
命令无报错即为正常,执行完毕后程序目录中出现 class 文件 MyTuxedoJavaServer.class
启动服务
tmboot -y
然后即可看到如下提示
Booting all admin and server processes in /home/uos/jsimpapp/tuxconfig
INFO: Oracle Tuxedo, Version 12.2.2.0.0, 64-bit, Patch Level (none)
Booting admin processes ...
exec BBL -A :
process id=6248 ... Started.
Booting server processes ...
exec simpserv -A :
process id=6251 ... Started.
exec TMJAVASVR -- -c TJSconfig.xml :
process id=6252 ... Started.
3 processes started.
服务启动成功
测试服务
使用刚才构建的客户端进行测试
./simpcl "Hello World"
可以看到程序输出
Calling JAVATOUPPER service.
After Calling JAVATOUPPER, returned string is: HELLO WORLD
Calling JAVATOUPPERFORWARD service.
After Calling JAVATOUPPERFORWARD, returned string is: HELLO WORLD
关闭服务
执行命令
tmshutdown -y
可以看到输出
Shutting down all admin and server processes in /home/uos/jsimpapp/tuxconfig
Shutting down server processes ...
Server Id = 2 Group Id = GROUP1 Machine = simple: shutdown succeeded
Server Id = 1 Group Id = GROUP1 Machine = simple: shutdown succeeded
Shutting down admin processes ...
Server Id = 0 Group Id = simple Machine = simple: shutdown succeeded
3 processes stopped.
附录
参考链接
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2022-05-31 15:31 PM
用到了,点个赞
很实用,刚刚用得到
随便写点什么,测试一下
为什么一样的操作不行呢
感谢博客主分享
写得很不错呀
非常有用
很不错的教程。
很实用的教程
刚用到就搜到了!