Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1755758
  • 博文数量: 600
  • 博客积分: 10581
  • 博客等级: 上将
  • 技术积分: 6205
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 10:13
文章分类
文章存档

2016年(2)

2015年(9)

2014年(8)

2013年(5)

2012年(8)

2011年(36)

2010年(34)

2009年(451)

2008年(47)

分类:

2009-08-22 13:20:53

1.1.1.1                  Fget

【函数原型】:

int Fget( FBFR *fbfr, FLDID fieldid, FLDOCC oc, char *loc, FLDLEN *maxlen );

【功能说明】:

取得数据域缓冲区中的域值。

【参数说明】:

fbfr          数据域缓冲区指针

fieldid     域标识符

oc            域的频次

loc           存放取得的域值的缓冲区指针

maxlen     指向原缓冲区最大长度的指针

【返回值】:

<0            失败返回

else          成功返回

 

$ cat aud.flds            /* FML域定义文件 */

*base 100

#name                 number         type              flags             comments

BRANCH_ID   1                   long       -                    -

BALANCE        2                   float       -                    -

STATLIN           3                   string     -                    -

NAME               4                   string     -                    -

 

$ mkfldhdr aud.flds

生成aud.flds.h

$ cat aud.flds.h

/* fname                                  fldid */

#define BRANCH_ID           ((FLFID 8302)

/* number:                               101 type long */

#define BALANCE               ((FLFID 24692)

/* number:                               102 type float */

#define STATLIN                   ((FLFID 41069)

/* number:                               103 type string */

#define NAME                       ((FLFID)61070)

/* number                                104 type string */

 

客户端:

if( ( sendbuf = ( FBFR* )tpalloc( "FML", NULL, 1024 ) ) == NULL ) {

      fprintf( stderr, "Error allocating send buffer\n" );

      tpterm( );

      exit( 1 );

}

Fadd( sendbuf, NAME, argv[ 1 ], NULL );

tpcall( "SVCNAME", sendbuf, … );

 

服务器端:

int SVCNAME( rqst )

TPSVCINFO *rqst;

{

      FLDLEN len;

      char strName[ 10 ];

     

      len = sizeof( strName );

      if ( Fget( rqst, NAME, 0, strName, &len ) < 0 ) {

            

      }

     

}

所谓Tuxedo网络环境是指客户端与服务器端通过网络方式进行连接。

 

在编译客户端程序时增加“-w”选项,表示客户端程序以网络方式调用应用服务。如:

buildclient –w –o simpcl –f simpcl.c

 

通过环境变量WSNADDR指定服务主机和通讯端口,如:

WSNADDR=//160.1.19.227:9702;export WSNADDR

 

注意:记住通讯端口号(例中的9702),服务器端也必须设置相同的端口号。

 

修改ubbconfig中的以下各节:

 

MACHINES

*MACHINES

DEFAULT:

              APPDIR="/users/test/simpdir"

              TUXCONFIG="/users/test/simpdir/tuxconfig"

              TUXDIR="/usr/bea/tuxedo"

 

tuxedo   LMID=simpapp

              MAXWSCLIENTS=10


在主机信息中增加最大客户端连接数MAXWSCLIENTS,如:

 

GROUPS

*GROUPS

GROUP1

       LMID=simpapp  GRPNO=1   OPENINFO=NONE

 

GROUP2

       LMID=simpapp  GRPNO=2


增加一个服务组,用以存放网络守候服务WSL,如:

 

SERVERS

*SERVERS

DEFAULT:

       CLOPT="-A"

 

WSL      SRVGRP=GROUP2 SRVID=1

              CLOPT="-A -- -n //160.1.19.227:9702 -d /dev/tcp -m 5 -x 5 -M 20"

              MIN=1

 

simpserv       SRVGRP=GROUP1 SRVID=1


增加网络守候服务WSL,其中指定服务主机IP和通讯端口,通讯端口必须与客户端通讯端口一致,如:

 

*RESOURCES

IPCKEY                          123456

 

DOMAINID                           simpapp

MASTER                         simpapp

MAXACCESSERS         50

MAXSERVERS                     20

MAXSERVICES                   50

MODEL                           SHM

LDBAL                                  N

 

*MACHINES

DEFAULT:

      APPDIR="/users/test/simpdir"

      TUXCONFIG="/users/test/simpdir/tuxconfig"

      TUXDIR="/usr/bea/tuxedo"

 

tuxedo  LMID=simpapp

             MAXWSCLIENTS=10

 

*GROUPS

GROUP1

      LMID=simpapp  GRPNO=1   OPENINFO=NONE

 

GROUP2

      LMID=simpapp GRPNO=2

 

*SERVERS

DEFAULT:

      CLOPT="-A"

 

WSL    SRVGRP=GROUP2 SRVID=1

             CLOPT="-A -- -n //160.1.19.227:9702 -d /dev/tcp -m 5 -x 5 -M 20"

             MIN=1

 

simpserv      SRVGRP=GROUP1 SRVID=1

 

*SERVICES

TOUPPER

 

阅读(783) | 评论(0) | 转发(0) |
0

上一篇:tuxedo学习例子2

下一篇:tuxedo学习例子4

给主人留下些什么吧!~~