科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道最简单的类似HelloWorld的tuxedo程序

最简单的类似HelloWorld的tuxedo程序

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

一个TUXEDO 应用可以分成3部分:(1)发布交易请求的客户端(2)运行响应请求交易的服务(3)描述应用机器和服务信息的配置文件。

作者:chinaunix 来源:chinaunix 2007年10月5日

关键字: 技术 程序 Tuxedo 中间件

  • 评论
  • 分享微博
  • 分享邮件

  一个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 fail\n");

  tpfree(buf);

  tpterm();

  exit(3);

  }

  /*打印出改变的数据缓冲*/

  printf("return string is :%s\n",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;ilen-1;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、启动系统和服务、测试应用和关闭系统。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章