[转帖]Tuxedo配置及简单应用。。。收藏_MQ, Tuxedo及OLTP讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MQ, Tuxedo及OLTP讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3999 | 回复: 0   主题: [转帖]Tuxedo配置及简单应用。。。收藏        下一篇 
eink
注册用户
等级:上尉
经验:764
发帖:54
精华:0
注册:2012-11-13
状态:离线
发送短消息息给eink 加好友    发送短消息息给eink 发消息
发表于: IP:您无权察看 2012-11-15 14:15:45 | [全部帖] [楼主帖] 楼主

1.设置环境变量
TUXDIR=<Tuxedo软件所在路径

APPDIR=<应用程序所在路径

PATH=<必须包含路径%TUXDIR%\BIN> 

TUXCONFIG=<配置文件tuxconfig的全路径

WSNADDR=<服务器地址,客户端使用

LD_LIBRARY_PATH=%LD_LIBRARY_PATH%;%TUXDIR%\LIB 

2. 编辑样本配置文件ubbsimple,修改相应内容。 

IPCKEY 区别于其他用户的变量(32767..262143) 

TUXCONFIG <二进制配置文件tuxconfig的全路径

TUXDIR <Tuxedo软件所在目录

APPDIR <应用程序所在目录

Machine-name <机器名称

3. 使用如下命令建立二进制配置文件: 

tmloadcf <ascii码配置文件

4. 使用如下命令建立服务器端和客户端可执行程序 

buildclient –v –w –o simpcl –f simpcl.c
buildserer –v –o simpserv –f simpserv.c –s touppers


注: 

simpcl client可执行程序。 

simpcl.c client源程序。 

simpserv server端可执行程序。 

simpserv.c server端源程序。 

touppers service名称。 

5. 使用如下命令启动server端应用环境(由二进制配置文件定义): 

tmboot –y


6. 使用如下命令可以显示和修改运行进程的参数。 

tmadmin: 

有两个子命令: 

psr (printserver) 显示有关服务器的信息。 

psc (printservice) 显示有关服务进程的信息。 

7. 可以通过查看日志文件ULOG.*来获取系统运行信息。 

日志文件信息格式如下: 

time (hhmmss).machine_uname!process_name.process_id: log message


说明: 时间(hhmmss.机器名称.进程名.进程号.日志信息 

8. 使用如下命令关闭应用环境: 

tmshutdown –y


参数: 
-A 在所有机器上启动/关闭管理的Server进程 
-M 只在MASTER机器上启动/关闭管理的Server进程 
-i srvid 启动/关闭某个server id指定的Server进程 
-g grpname 启动/关闭某个server group名字指定的Server Group 
-S 启动/关闭所有应用服务器(LMID) 
-s server-name 启动/关闭某个server名字指定的Server进程 
-l lmid option 在指定的机器上启动/关闭所有TMS进程和应用服务器(LMID) 
-T grpname 启动/关闭指定的server group中所有的TMS进程 
-B lmid 在指定的机���上启动/关闭BBL进程 
-e command 指定一个程序可以当在MASTER机器上启动任何一个进程失败时执行 
-c 计算出当前UBB配置的Tuxedo启动最少要占用的系统IPC资源 

9. UBBCONFIG文件的例子: 

#ident "@(#) apps/simpapp/ubbsimple $Revision: 1.3 $"
#Skeleton UBBCONFIG file for the TUXEDO Simple Application.
#Replace the <bracketed> items with the appropriate values.
*RESOURCES
IPCKEY 123456
#Example:
#IPCKEY 123456
#DOMAINID值 
DOMAINID simpapp
#指定DOMAIN中的管理 
MASTER simple
#这里该值表示整个系统中每个机器上可以访问TUXEDOClientServer的总数 
MAXACCESSERS 100
#最大的server数 
MAXSERVERS 5
#最大的service数 
MAXSERVICES 10
#cluster方式为MP,否则为SHM 
MODEL SHM
#允许负载均衡 
LDBAL N
*MACHINES
#网络主机名用hostname获得。 
#LMIDLogical Machines ID tuxedo对主机的内部逻辑命名。 
#APPDIR要求放置SERVER的可执行文件。 
#TUXCONFIG为全路径的二进制配置文件,要求和环境变量TUXCONFIG相同。 
#TUXDIRtuxedo安装目录,要求和环境变量TUXDIR相同。 
CCBFJF85 LMID=simple
APPDIR="/home/tuxedo/samples/atmi/simpapp"
TUXCONFIG="/home/tuxedo/etc/tuxconfig"
TUXDIR="/home/tuxedo"
#MAXWSCLIENTS表示可连接client的最大个数。 
MAXWSCLIENTS=50
*GROUPS
#GROUP1为组名,LMID表示该组运行的主机,GRPNO为组号, 
#OPENINFO为该组打开数据库的初始串。 
GROUP1 LMID=simple GRPNO=1 OPENINFO=NONE
*SERVERS
DEFAULT:
CLOPT="-A"
#WSL用于和client端进行连接。-n 表示出接入点为IP:PORT方式, 
#-m -M 表示最小和最大启动多少个WSH和前端通讯, 
#-x则表示一个WSH和几个client端连接。 
WSL SRVGRP=GROUP1 SRVID=1
CLOPT="-A -- -n //127.0.0.1:8889 -m 3 -M 10 -x 10 "
simpserv SRVGRP=GROUP1 SRVID=2
CLOPT="-A -o ./out.log -r -e ./err.log"
*SERVICES
touupers


10. simpcl.c文件的例子: 

#include <stdio.h>
#include <stdlib.h>
#include "atmi.h"
#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 != 2) {
            (void) fprintf(stderr, "Usage: simpcl string\n");
            exit(1);
      }
      if (tpinit((TPINIT *) NULL) == -1) {
            (void) fprintf(stderr, "Tpinit failed\n");
            exit(1);
      }
      sendlen = strlen(argv[1]);
      if((sendbuf = (char *) tpalloc("STRING", NULL, sendlen+1)) == NULL) {
            (void) fprintf(stderr,"Error allocating send buffer\n");
            tpterm();
            exit(1);
      }
      if((rcvbuf = (char *) tpalloc("STRING", NULL, 1)) == NULL) {
            (void) fprintf(stderr,"Error allocating receive buffer\n");
            tpfree(sendbuf);
            tpterm();
            exit(1);
      }
      (void) strcpy(sendbuf, argv[1]);
      ret = tpcall("touppers", (char *)sendbuf, 0, (char **)&rcvbuf, &rcvlen, (long)0);
      if(ret == -1) {
            (void) fprintf(stderr, "Can't send request to service TOUPPER\n");
            (void) fprintf(stderr, "Tperrno = %d\n", tperrno);
            tpfree(sendbuf);
            tpfree(rcvbuf);
            tpterm();
            exit(1);
      }
      (void) fprintf(stdout, "Returned string is: %s\n", rcvbuf);
      tpfree(sendbuf);
      tpfree(rcvbuf);
      tpterm();
      return(0);
}


11. simpserv.c文件的例子: 

#include <stdio.h>
#include <ctype.h>
#include <atmi.h>
#include <userlog.h>
#if defined(__STDC__) || defined(__cplusplus)
tpsvrinit(int argc, char *argv[])
#else
tpsvrinit(argc, argv)
int argc;
char **argv;
#endif
{
      argc = argc;
      argv = argv;
      userlog("Welcome to the simple server");
      return(0);
}
#ifdef __cplusplus
extern "C"
#endif
void
#if defined(__STDC__) || defined(__cplusplus)
touppers(TPSVCINFO *rqst)
#else
touppers(rqst)
TPSVCINFO *rqst;
#endif
{
      int i;
      for(i = 0; i < rqst->len-1; i++)
      rqst->data[i] = toupper(rqst->data[i]);
      tpreturn(TPSUCCESS, 0, rqst->data, 0L, 0);
}




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论