为文件增加用户执行权限:

官网下载tuxedo111120_64_Linux_01_x86.bin

su //进入root操作,防止权限不够

创建文件夹,用来做tuxedo文件的安装路径

cd /opt

mkdir tuxedo

然后将下载的文件拷贝到这个文件夹中,如果新建了用户的话则需要赋予新建用户对这个文件夹的所有权限,例如新建oracle用户之后授权:

cp /home/jacksile/下载/tuxedo111120_64_Linux_01_x86.bin /opt/tuxedo

ls -l //查看用户执行权限

如果没有则进行授权
chmod 755 tuxedo111120_32_Linux_01_x86.bin

在root用户下可以./tuxedo111130_64_Linux_01_x86.bin直接图形化安装,也可以使用字符界面模式进行安装
./tuxedo111130_64_Linux_01_x86.bin -i console 
执行安装文件,-i console 使其在字符界面安装

$ ./tuxedo111120_64_Linux_01_x86.bin -i console
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
strings: '/lib/libc.so.6': No such file Launching installer... Preparing CONSOLE Mode Installation... ===============================================================================
Choose Locale...
---------------- 1- English CHOOSE LOCALE BY NUMBER: 1
===============================================================================
Tuxedo 11.1.1.2.0 (created with InstallAnywhere by Macrovision)
------------------------------------------------------------------------------- ===============================================================================
Introduction
------------ InstallAnywhere will guide you through the Tuxedo 11.1.1.2.0 installation. It is strongly recommended that you quit all programs before continuing with
this installation. Enter "next' to proceed to the next screen. Enter "back" to modify the previous
screen. You may cancel this installation at any time by typing "quit". WARNING: "Quitting" creates an incomplete Tuxedo 11.1.1.2.0 installation.You
must re-install Tuxedo 11.1.1.2.0. For more information, see "Preparing to
Install the Oracle Tuxedo System" in the Tuxedo 11.1.1.2.0 Installation Guide. PRESS <ENTER> TO CONTINUE: ===============================================================================
Choose Install Set
------------------ Please choose the Install Set to be installed by this installer. ->1- Full Install
2- Server Install
3- Full Client Install
4- Jolt Client Install
5- ATMI Client Install
6- CORBA Client Install 7- Customize... ENTER THE NUMBER FOR THE INSTALL SET, OR PRESS <ENTER> TO ACCEPT THE DEFAULT
: ===============================================================================
Choose Oracle Home
------------------ 1- Create new Oracle Home Enter a number:
Specify a new Oracle Home directory: /opt/tuxedo ===============================================================================
Choose Product Directory
------------------------ 1- Modify Current Selection (/opt/tuxedo/tuxedo11gR1)
2- Use Current Selection (/opt/tuxedo/tuxedo11gR1) Enter a number: 2
Install Samples (Y/N): Y ===============================================================================
Pre-Installation Summary
------------------------ Please Review the Following Before Continuing: Product Name:
Tuxedo 11.1.1.2.0 Install Folder:
/opt/tuxedo/tuxedo11gR1 Link Folder:
/home/oracle Disk Space Information (for Installation Target):
Required: 195,296,018 bytes
Available: 205,917,069,312 bytes PRESS <ENTER> TO CONTINUE: ===============================================================================
Ready To Install
---------------- InstallAnywhere is now ready to install Tuxedo 11.1.1.2.0 onto your system at
the following location: /opt/tuxedo/tuxedo11gR1 PRESS <ENTER> TO INSTALL: ===============================================================================
Installing...
------------- [==================|==================|==================|==================]
[------------------|------------------|------------------|------------------] ===============================================================================
Configure tlisten Service
------------------------- Password:
Verify Password:
Password Accepted! Please wait... ===============================================================================
SSL Installation Choice.
------------------------ Would you like to install SSL Support? ->1- Yes
2- No ENTER THE NUMBER FOR YOUR CHOICE, OR PRESS <ENTER> TO ACCEPT THE DEFAULT:
: ===============================================================================
Installation Complete
--------------------- Congratulations. Tuxedo 11.1.1.2.0 has been successfully installed to: /opt/tuxedo/tuxedo11gR1 PRESS <ENTER> TO EXIT THE INSTALLER:

安装完成确认:

进入安装目录,为tux.env文件添加执行权限
chmod 755 tux.env
. ./tux.env
env | grep UX
显示如下:
TUXDIR=/opt/tuxedo/tuxedo11gR1
查看版本信息
tmadmin -v

INFO: Oracle Tuxedo, Version 11.1.1.2.0, 64-bit, Patch Level (none)

跑例子:

进入tuxedo的安装目录,samples目录下自带了一些例子
cd /opt/tuxedo/tuxedo11gR1/samples/atmi
凡是了解tuxedo 的同学都知道这里面有个著名的例子 simpapp ,它的作用就是把客户端发送的小写字母转换成大写字母返回给客户端。我们就把这个例子运行起来。
前期准备:
cp -r simpapp/ /opt/tuxedo/ 为了便于操作,防止数据修改或丢失,把simpapp 拷贝到/opt/tuxedo/ 目录下面。

退到安装根目录,tuxedo11gR1,同上理,把tuxedo安装目录下的tux.env配置文件拷贝到/opt/tuxedo/simpapp/ 目录下
cp -r tux.env /opt/tuxedo/simpapp/

配置运行simpapp 例子
配置tux.env文件
vi tux.env 对配置文件进行修改,在最后面添加
APPDIR=/opt/tuxedo/simpapp; export APPDIR
TUXCONFIG=$APPDIR/tuxconfig; export TUXCONFIG
LANG=C; export LANG

命令  hostname //查看本机hostname

vi ubbsimple ,配置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 <Replace with a valid IPC Key>

#Example:
IPCKEY 123456

DOMAINID simpapp
MASTER simple
MAXACCESSERS 10
MAXSERVERS 5
MAXSERVICES 10
MODEL SHM
LDBAL N

*MACHINES
DEFAULT:
APPDIR="/opt/tuxedo/simpapp"
TUXCONFIG="/opt/tuxedo/simpapp/tuxconfig"
TUXDIR="/opt/tuxedo/tuxedo11gR1"
#Example:
# APPDIR="/home/me/simpapp"
# TUXCONFIG="/home/me/simpapp/tuxconfig"
# TUXDIR="/usr/tuxedo"

tfjus LMID=simple //tfjus为本机hostname名,此句只是说明,最好将注释删掉,因为这个文件无法识别//表示注释符

#Example:
#beatux LMID=simple

*GROUPS
GROUP1
LMID=simple GRPNO=1 OPENINFO=NONE

*SERVERS
DEFAULT:
CLOPT="-A"

simpserv SRVGRP=GROUP1 SRVID=1

*SERVICES
TOUPPER

不能含有中文注释

注意:APPDIR、TUXCONFIG和TUXDIR三个选项的路径要与 tux.env 文件中的配置保持一致。
修改完成,保存退出

开始跑:

. ./tux.env
tmloadcf -y ubbsimple //运行此命令不出出任何提示,表示一切正常
//如果出现CMDTUX_CAT:883: ERROR: tmloadcf cannot run on an active node
//将进程关掉就行了,在后面有说怎样关闭
buildserver -f simpserv.c -o simpserv -s TOUPPER //编译服务器端程序
buildclient -f simpcl.c -o simpcl //编译客户端程序
ubuntu:
buildclient -o simpcl -f "-Xlinker --no-as-needed simpcl.c"
这里需要说明的是,buildserver和buildclient命令需要系统安装gcc 才能被执行,gcc -v 查看本机是否安装GCC ,这里就不介绍gcc的安装了。
tmboot -y 启动进程
//
INFO: Oracle Tuxedo, Version 11.1.1.2.0, 64-bit, Patch Level (none)

Booting admin processes ...

exec BBL -A :
process id=2658 ... Started.

Booting server processes ...

exec simpserv -A :
process id=2659 ... Started.
2 processes started.
//

ps -ef 查看启动进程
root 2658 1653 0 16:50 pts/19 00:00:00 BBL -C dom=simpapp -g 30002 -i 0
root 2659 1653 0 16:50 pts/19 00:00:00 simpserv -C dom=simpapp -g 1 -i
root 2936 2614 0 16:54 pts/19 00:00:00 ps -ef
// 能找到上面几个进程表面已经启动成功

开始验证:

root@node1:/opt/tuxedo/simpapp#./simpcl hello
Returned string is: HELLO
客户端发送一个小写的hello ,服务器端将返回一个大写的HELLO
tmshutdown -y //停止进程

如果两个进程分别在不同的机子上想实现通讯,就要走TCP/IP协议

通过TCP/IP协议,如果有本地连接,则使用etho,否则使用wlan0进行通讯,我用的是无线,所以使用的是wlan0进行通信

以下两个是用来配置服务端的,客户端不用配置,只要客户端在调用服务的时候使用这个IP地址和端口即可

修改tux.env文件,在后面继续添加:
WSNADDR=//192.168.30.177:3200; export WSNADDR

其中192.168.30.177是wlan0 IP地址,通过ipconfig可以查看,3200为端口号,在不冲突的情况下可以任意

修改ubbsimple文件
tfjus LMID=simple
MAXWSCLIENTS=5

simpserv SRVGRP=GROUP1 SRVID=1
WSL SRVGRP=GROUP1 SRVID=10
CLOPT="-A -- -n //192.168.30.177:3200"

remotesimpcl.x

/*    (c) 2003 BEA Systems, Inc. All Rights Reserved. */
/* Copyright (c) 1997 BEA Systems, Inc.
All rights reserved THIS IS UNPUBLISHED PROPRIETARY
SOURCE CODE OF BEA Systems, Inc.
The copyright notice above does not
evidence any actual or intended
publication of such source code.
*/ /* #ident "@(#) samples/atmi/simpapp/simpcl.c $Revision: 1.5 $" */ #include <stdio.h>
#include "atmi.h" /* TUXEDO Header File */ #if defined(__STDC__) || defined(__cplusplus)
main(int argc, char *argv[])
#else
main(argc, argv)
int argc;
char *argv[];
#endif { char *sendbuf, *rcvbuf;
long sendlen, rcvlen;
int ret; if(argc != ) {
(void) fprintf(stderr, "Usage: simpcl string\n");
exit();
} tuxputenv("WSNADDR=//192.168.30.177:3200");
/* Attach to System/T as a Client Process */
if (tpinit((TPINIT *) NULL) == -) {
(void) fprintf(stderr, "Tpinit failed\n");
exit();
} sendlen = strlen(argv[]); /* Allocate STRING buffers for the request and the reply */ if((sendbuf = (char *) tpalloc("STRING", NULL, sendlen+)) == NULL) {
(void) fprintf(stderr,"Error allocating send buffer\n");
tpterm();
exit();
} if((rcvbuf = (char *) tpalloc("STRING", NULL, sendlen+)) == NULL) {
(void) fprintf(stderr,"Error allocating receive buffer\n");
tpfree(sendbuf);
tpterm();
exit();
} (void) strcpy(sendbuf, argv[]); /* Request the service TOUPPER, waiting for a reply */
ret = tpcall("TOUPPER", (char *)sendbuf, , (char **)&rcvbuf, &rcvlen, (long)); if(ret == -) {
(void) fprintf(stderr, "Can't send request to service TOUPPER\n");
(void) fprintf(stderr, "Tperrno = %d\n", tperrno);
tpfree(sendbuf);
tpfree(rcvbuf);
tpterm();
exit();
} (void) fprintf(stdout, "Returned string is: %s\n", rcvbuf); /* Free Buffers & Detach from System/T */
tpfree(sendbuf);
tpfree(rcvbuf);
tpterm();
return();
}

. ./tux.env

tmloadcf -y ubbsimple // 编译文件
buildclient -f simpcl.c -o ws -w
ubuntu:
buildclient -o remotesimpcl -f "-Xlinker --no-as-needed remotesimpcl.c" -w
tmboot -y //启动进程

//
Booting all admin and server processes in /opt/tuxedo/simpapp/tuxconfig
INFO: Oracle Tuxedo, Version 11.1.1.2.0, 64-bit, Patch Level (none)

Booting admin processes ...

exec BBL -A :
process id=3301 ... Started.

Booting server processes ...

exec simpserv -A :
process id=3302 ... Started.
exec WSL -A -- -n //192.168.30.177:3200 :
process id=3303 ... Started.
3 processes started.
//
./remotesimpcl hello

Returned string is: HELLO

tuxedo入门的更多相关文章

  1. Tuxedo入门学习

    中间件介绍: 介于客户机和server之间的夹层,突破了传统的c/s架构,为构建大规模,高性能,分布式c/s应用程序提供了通信,事物,安全,容错等基础服务,屏蔽了底层应用细节,应用程序不必从底层开发, ...

  2. Tuxedo入门学�

    中间件介绍: 介于客户机和server之间的夹层,突破了传统的c/s架构,为构建大规模,高性能,分布式c/s应用程序提供了通信,事物,安全,容错等基础服务,屏蔽了底层应用细节,应用程序不必从底层开发, ...

  3. Tuxedo 汇总

    ===================================C/S / Tuxedo 架构/ B/S 架构演进===================================Tuxed ...

  4. Httpd服务入门知识-http协议版本,工作机制及http服务器应用扫盲篇

    Httpd服务入门知识-http协议版本,工作机制及http服务器应用扫盲篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Internet与中国 Internet最早来源于美 ...

  5. rocket mq 入门文档

    原文地址: http://jm.taobao.org/2017/01/12/rocketmq-quick-start-in-10-minutes/ 感谢原作者 十分钟入门RocketMQ 本文首先引出 ...

  6. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  7. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  8. Oracle分析函数入门

    一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...

  9. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

随机推荐

  1. BLOB或TEXT字段使用散列值和前缀索引优化提高查询速度

    1.创建表,存储引擎为myisam,对大文本字段blob使用MD5函数建立一个散列值 create table t2(id varchar(60), content blob, hash_value ...

  2. c语言基础:各种数据类型的输出占位符

    c语言中的输出操作相对java来说是比较麻烦的,每种数据类型的输出都有各自的占位符: 下面是各种数据类型的输出占位符: short/int : %d ; printf("这个整数是:%d&q ...

  3. 音频播放、录音、视频播放、拍照、视频录制-b

    随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...

  4. android 有时候stroke不起作用

    如下: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android=&quo ...

  5. 【笔记】UML核心元素

    1.参与者 定义:在系统之外与系统交互的某人或某物. 特点:1.可以非人:2.与系统直接交互:3.主动发出动作并获得反馈:4.涉众(stakerholder)的代表 具有两个版型: 1.业务主角(bu ...

  6. android手机推送视频到服务端

    项目需求,android手机向服务器推送视频.苦战几个星期终于实现,现记录下来以免以后忘记. 没做过Java,也没做过Android开发,只能现学现卖.在网上找了下搭建开发a  ndroid环境资料, ...

  7. 2432: [Noi2011]兔农 - BZOJ

    Description 农夫栋栋近年收入不景气,正在他发愁如何能多赚点钱时,他听到隔壁的小朋友在讨论兔子繁殖的问题. 问题是这样的:第一个月初有一对刚出生的小兔子,经过两个月长大后,这对兔子从第三个月 ...

  8. 【BZOJ】【2208】【JSOI2010】连通数

    题解: 1.Tarjan缩点以后对每个连通分量进行深搜,看能到哪些连通分量,能到达的所有连通分量的size之和记为sum.则第i个连通分量对答案的贡献为size[i]*sum(到其他连通分量)+siz ...

  9. PHP之set_error_handler()函数讲解

    定义和用法 set_error_handler() 函数设置用户自定义的错误处理函数. 该函数用于创建运行时期间的用户自己的错误处理方法. 该函数会返回旧的错误处理程序,若失败,则返回 null. 语 ...

  10. [转载]Spring Autowire自动装配介绍

    转自: http://www.cnblogs.com/zhishan/p/3190757.html 在应用中,我们常常使用<ref>标签为JavaBean注入它依赖的对象.但是对于一个大型 ...