打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【TUXEDO 函数 说明 (中文)】

-收集整理

 

1与缓冲区使用有关的ATMI

1.1tpalloc

1.2tprealloc

1.3tpfree

1.4tptypes

2常用的FML(FML32)操作函数

2.1Falloc

2.2Finit

2.3Fadd

2.4Fchg

2.5Fget

2.5Fprint

2.6Ferror

3连接的建立与断开有关的ATMI

3.1tpchkauth

3.2tpinit

3.3tpterm

4与请求TUXEDO SERVER 有关的ATMI

4.1tpcall

4.2tpacall

4.3tpgetrply

4.4tpcancel

4.5tpgprio

4.6tpsprio

5与请求错误处理有关的ATMI

5.1tpstrerror

5.2tperrordetail

5.3tpstrerrordetail

 


 

1与缓冲区使用有关的ATMI

1.1tpalloc

char * tpalloc(char *type, char *subtype, long size)

描述:分配缓冲区

参数:type:缓冲区的类型

    subtype:缓冲区的子类型,只有VIEW有子类型,其他的缓冲区该参数要设为NULL

    long:缓冲区的大小

返回值: 成功返回一个指向所分配空间首地址的CHAR *形指针,失败返回NULL。

1.2tprealloc

char * tprealloc(char *ptr, long size)

描述:重新分配缓冲区

参数:ptr:指向原缓冲区首地址的指针

    size:新缓冲区的大小

返回值: 成功返回一个指向新分配空间首地址的CHAR *形指针,失败返回NULL。

1.3tpfree

void tpfree(char *bufptr)

描述:释放由TPALLOC()或TPREALLOC()分配的缓冲区

参数:bufptr:指向要释放的缓冲区首地址的指针

返回值:无

注意: 用TPALLOC(),TPREALLOC()分配的内存只能有TPFREE()释放掉,不能用FREE()

1.4tptypes

long tptypes(char *ptr, char *type, char *subtype)

描述:返回有ptr所指向的缓冲区的类型及子类型

参数: ptr:指向要进行类型识别的缓冲区首地址的指针

type:类型名

subtype:子类型名(只对VIEW类型有效)

返回值:0成功,-1失败, 错误号保存在全局变量tperrno中。

 

2常用的FML(FML32)操作函数

2.1Falloc

FBFR*  Falloc (FLDOCC F, FLDLEN V)

描述: 分配一块FML缓冲区

参数:

    FLDOCC: 该FML缓冲区的字段个数,

    FLDLEN: 该FML缓冲区的长度

返回值:成功返回一个指向该FML缓冲区首地址的指针,失败返回NULL,错误号保存在全局

变量Ferror中

注意:   该FML缓冲区不能用于TPCALL(),TPACALL(),TPRETURN()等中,在这些函数中用到

FML缓冲区只能用TPALLOC()分配。

2.2Finit

int Finit(FBFR *fbfr, FLDLEN buflen)

描述: 初始化该FML缓冲区

参数:

   fbfr: 一个指向该FML缓冲区首地址的指针

   buflen: 该FML缓冲区的长度

返回值:失败为-1, 错误号保存在全局变量Ferror中

2.3Fadd

int Fadd(FBFR *fbfr, FLDID fieldid, char *value, FLDLEN len)

 

描述: 往FML缓冲区fbfr中ID为fieldid的字段增加一个值value

参数:

fbfr:    指向该FML缓冲区首地址的指针

fieldid: 要增加的字段的ID

value:   要增加的值,如果时其他类型的要转化为char *

len:     该字段的长度,如果不时CARRARY类型的,可设为0

返回值: 失败为-1, 错误号保存在全局变量Ferror中

2.4Fchg

int Fchg(FBFR *fbfr, FLDID fieldid,int occ, char *value, FLDLEN len)

描述:   改变fbfr中ID为fieldid字段的值。

参数:

fbfr:    指向该FML缓冲区首地址的指针

fieldid: 要增加的字段的ID

value:   该字段的新值,如果时其他类型的要转化为char *

len:     该字段的长度,如果不时CARRARY类型的,可设为0

返回值:失败为-1,错误号保存在全局变量Ferror中

2.5Fget

int Fget(FBFR *fbfr, FLDID fieldid,int occ, char *value, FLDLEN *maxlen)

描述:   从fbfr缓冲区中取ID为fieldid字段的值到value中。

参数:

fbfr:    指向该FML缓冲区首地址的指针

fieldid: 字段的ID

value:   取出的值保存到该指针指向的地址中

maxlen:  可以COPY到缓冲区value中的字符串的长度,返回值为真正COPY到该缓冲区的字

符串的长度

返回值:失败为-1, 错误号保存在全局变量Ferror中

2.5Fprint

Fprint(FBFR *fbfr)

描述: 按格式打印fbfr缓冲区的内容。一般用于程序调试中。

参数:

fbfr:    指向该FML缓冲区首地址的指针

返回值:失败为-1, 错误号保存在全局变量Ferror中

2.6Ferror

Ferror

C语言中的errno类似,当调用FML(FML32)函数出错时,把错误号保存在全局变量Ferror中。

char *  Fstrerror(int err)

描述:返回错误号为err错误描述

参数:err: Ferror的值

返回值:成功返回错误描述,失败返回NULL

 

 

3连接的建立与断开有关的ATMI

3.1tpchkauth

int tpchkauth()

描述: 检查该TUXEDO SERVER所采用的安全方式

参数:无

返回值:

      TPNOAUTH:不需要认证

      TPSYSAUTH:需要口令认证

      TPAPPSUTH:需要口令认证,并且还需要应用级的认证或授权.

      -1:调用失败, 错误号保存在全局变量tperrno中。

3.2tpinit

int tpinit(TPINIT *tpinfo)

描述: 与TUXEDO SERVER建立连接

参数:TPINFO

返回值: 失败返回-1, 错误号保存在全局变量tperrno中。

 

TPINIT结构体在atmi.h中的定义如下

struct  tpinfo_t {

    char    usrname[MAXTIDENT+2];   /* client user name */

    char        cltname[MAXTIDENT+2];   /* application client name */

    char    passwd[MAXTIDENT+2];    /* application password */

    char    grpname[MAXTIDENT+2];   /* client group name */

    long    flags;          /* initialization flags */

    long    datalen;        /* length of app specific data */

    long    data;           /* placeholder for app data */

};

typedef struct  tpinfo_t TPINIT;

说明:username,cltname,passwd,grpname,data,datalen用于安全认证中

flags:用于定义以何种方式通知该客户端一个UNSOLICTED MESSAGE的到来.它的值可以为:

TPU-SIG

TPU-DIP

TPU-IGN

TPSA-FASTPATH

TPSA-PROTECTED

3.3tpterm

int tpterm()

描述: 断开与TUXEDO SERVER建立连接

参数:无

返回值: 失败返回-1, 错误号保存在全局变量tperrno中。

 

4与请求TUXEDO SERVER 有关的ATMI

4.1tpcall

int tpcall(char *svc, char *idata, long ilen, char **odata, long   *olen, long flags)

描述:客户端同步调用服务端的名为svc的SERVICE,

参数:

*svc:SERVICE的名称

char *idata: 输入缓冲区的地址,客户端传给服务端的参数放在该缓冲区内

long ilen:   输入缓冲区的长度

char **odata  输出缓冲区的地址,服务端传给客户端的结果放在该缓冲区内

long   *olen:输出缓冲区的长度  

long flags:  调用标志,由以下几个:

TPNOTRAN

如果调用svc的客户端当前在TRANSACTION方式下,那么svc不参与当前的TRANSACTION。

 

TPNOCHANGE

如果服务端返回的缓冲区类型与客户端定义的缓冲区(odata)类型不一致,默认情况下,odata会转换成与服务端返回的缓冲区类型一致的类型,如果设置了该FLAG,那么当出现这种情况时,不进行缓冲区类型转换,并且会保错。

 

TPNOBLOCK

默认情况下,如果客户端有阻塞条件存在(如CLIENT的TCP/IP中的缓冲区满,磁盘I/O忙等),那么客户端会阻塞在那里,直到阻塞消除或超时出错。如果设置了TPNOBLOCK,当客户端有阻塞条件存在时,TPCALL()会立刻返回并报错. 注意TPNOBLOCK只对发送请求时起作用,如果在接收服务端返回的结果时有阻塞条件存在,客户端会在那里等待,直到阻塞消除或超时出错

 

TPNOTIME

如果客户端有阻塞条件存在,客户端会一直阻塞在那里,即使到了超时时间也不返回,但如果该客户端是在TRANSACTION模式下,当到了

事务的超时时间,还是会报超时错误并返回。

 

TPSIGRSTRT

如果在进行系统调用时,被信号中断,该系统调用会重新进行。

 

调用成功返回0,失败返回-1, 错误号保存在全局变量tperrno中。

 

4.2tpacall

int tpacall(char *svc, char *data, long len, long flags)

描述:  客户端异步调用服务端的名为svc的SERVICE,不等服务端返回结果,程序可继续往

下走,在某个地方调用tpgetrply()取的服务端的返回

参数:

char *svc, char *data, long len参数的含义与tpcall()中的一样

flags 可设置为:TPN

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何降低一个程序的耦合性
sql server中的错误信息错误 1 -999
什么是耦合和解耦
C语言笔记
局部变量、全局变量、堆、堆栈、静态和全局
程序代码编写规范
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服