Tuxedo TOUPPER示例[转帖]_MQ, Tuxedo及OLTP讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MQ, Tuxedo及OLTP讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4594 | 回复: 0   主题: Tuxedo TOUPPER示例[转帖]        下一篇 
匿名用户
发表于: IP:您无权察看 2012-7-6 14:56:42 | [全部帖] [楼主帖] 楼主

一个TUXEDO 应用可以分成3部分:(1)发布交易请求的客户端(2)运行响应请求交易的服务(3)描述应用机器和服务信息的配置文件。以下是tuxedo的一个简单例子,大家很容易能从这个例子中明白中间件的编程思想,程序的各个函数都加上了注释以便于理解。

  程序功能:客户端请求交易"TOUPPER",数据是"hello world"。交易"TOUPPER"将字符串转成大写,将结果成功返回客户端。

  程序代码:

  (1)客户端程序:

#include
#include "atmi.h"
/*包含TUXEDO系统的头文件"atmi.h",以便引用TUXEDO的函数和变量定义。*/
main()
{
      char *buf;
      long len;
      /*客户端调用tpinit()连接应用*/
      if (tpinit((TPINIT * )NULL) == -1)
      {
            exit(1);
      }
      /*用tpalloc()分配一个STRING类型数据缓冲*/
      if ((buf=tpalloc("STRING",NULL,80))==NULL)
      {
            tpterm();
            exit(2);
      }
      /*将"hello world"拷贝进缓冲*/
      strcpy(buf, "hello world");
      /*用tpcall()包含数据缓冲,向交易"TOUPPER"发一个同步请求*/
      if ( tpcall("TOUPPER",buf,0,&buf,&len,0)== -1)
      {
            fprintf(stderr,"service requst failn");
            tpfree(buf);
            tpterm();
            exit(3);
      }
      /*打印出改变的数据缓冲*/
      printf("return string is :%sn",buf);
      tpfree(buf);
      /*调用tpterm()切断与应用的连接*/
      tpterm();
      exit(0);
}


(2)交易程序(服务端程序):

#include
#include
#include "atmi.h"
/*包含TUXEDO系统头文件"atmi.h"*/
/* 象所有的TUXEDO交易函数一样,TOUPPER不用直接返回任何值,所以返回类型为void */
/*从客户端收到的数据放在TPSVCINFO结构中,是唯一的入参*/
void TOUPPER (TPSVCINFO *rqst)
{
      int i;
      for ( i=0;i
      rqst->data[i] = toupper(rqst->data[i]);
      /*用tpreturn()将数据缓冲返回客户端*/
      tpreturn(TPSUCCESS,0,rqst->data,0L,0);
}


  (3)配置文件

  有关应用的信息,如可用交易,交易位置,应用范围等,有必要集中管理于单一资源。事实上,这些信息被集中于文件UBBCONFIG。

  如下所示(每个字段的含义参见BEA公司的文档):

#file : ubbconfig
*RESOURCES
IPCKEY 5000
MASTER SITE1
MODEL SHM
*MACHINES
gumby LMID=SITE1
TUXDIR ="/usr/tuxedo"
APPDIR ="/usr/apps/simpapp"
TUXCONFIG ="/usr/apps/simpapp/simpapp.tux"
*GROUPS
GROUP1 LMID=SITE1 GRPNO=1
*SERVERS
simpserv SRVGRP=GROUP1 SRVID=1
*SERVICES
TOUPPER


(4)建立应用

  建立一个TUXEDO应用,必须进行以下步骤:

  设置环境变量:TUXEDO用户目录(TUXDIR)、二进制配置文件名(TUXCONFIG)、TUXEDO可执行文件路径、公共库路径(LD_LIBRARY_PATH)

  用buildclient命令从源程序编译出客户端可执行文件:buildclient -f client.c -o client -v

  用buildserver命令从源程序编译出服务端可执行文件,-s参数列出提供的交易:buildserver -f simpserv.c -o simpserv -s TOUPPER -v

  用tmloadcf命令从文本配置文件ubbconfig生成二进制配置文件tuxconfig:tmloadcf -y ubbconfig

  好了。一个简单的tuxedo程序就算完成了。开发TUXEDO C/S系统的必要步骤无非就是:配置环境变量、编码并编译客户端和服务端的程序、由文本的ubbconfig生成二进制TUXCONFIG、启动系统和服务、测试应用和关闭系统。

本篇文章来源于 中间件技术社区(http://middleware123.com) 原文链接:http://middleware123.com/tuxedo/intro/313_3.html



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