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

官网下载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. jQuery 单选按钮切换

    html代码片段一: <div class="row"> <div class="col-sm-12"> <label for=& ...

  2. quartus ii 中文注释乱码解决办法

    转载自:http://bbs.ednchina.com/BLOG_ARTICLE_3027549.HTM 有些时候我们用Quartus ii 打开不同版本创建的工程文件时,往往会出现下列提示 点yes ...

  3. Unity Camera属性

    Camera属性 1.Clear Flags 清除标记:决定屏幕的那部分将被清除.当使用多个相机来描绘不同的游戏景象时,利用它是非常方便的. 2.Background 背景:在镜头中的所有元素描绘完成 ...

  4. html和css中的技巧

    1:标签不要忘记带点 2:div是否成对的出现. 3.body 前面不能加点 4.在写css时记住一定要带上class的命名这样就不会出现重复的 5.出现文字的时候下面有下划线或虚线的时候,用padd ...

  5. DB天气app冲刺二阶段第十一天(完结)

    今天最后一天冲刺了,明天就不再冲刺了..已经把所有的技术的问题还有设计的问题都弄好了吧应该说 至少目前来说是的.因为有的实现不了的或者需要耗费时间的已经果断舍弃了,然后需要完善的也都基本完善了. 现在 ...

  6. 第五周技术博客发表 web 网页开发

    <html><head> <title> HTML</title></head><body > <h1>会员注册界面 ...

  7. SpringJUnit4测试--测试无反应/控制台报空指针的解决---junit的jar冲突!

    前言: 前些日子碰到一个诡异的问题--用springJUnit进行测试,运行方法什么反应也没有,控制台 也没有输出,百度也没有答案--只好暂时作罢.今天我只好用上了排除法,建个测试小项目,将只要能测试 ...

  8. Win 7怎样拒绝所有可移动存储设备的所有权限

    在Windows 7中,我们可拒绝对任何可移动存储类的权限.下面让我来教大家怎样在组策略中启用“所有可移动存储类:拒绝所有权限”策略,具体操作步骤如下所述: 步骤/方法 在开始搜索框中键入“gpedi ...

  9. 【WCF--初入江湖】12 WCF与Ajax编程

    12 WCF与Ajax编程 Ajax Ajax基本原理 AJAX技术的本质原理就是:使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信. 通过这个对象,JavaS ...

  10. 使用EF code first和asp.net mvc4遇到的问题总结

    最近使用EF code first和asp.net mvc4做项目,遇到些问题,记录一下. 一.EF code first 生成外键列问题. 一般情况下,都是先写一个int型外键id属性,然后写一个外 ...