`

TUXEDO函数

阅读更多
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)操作函数
字段控制语言(Field Manipulation Language,简称 FML)
FML 是一组 Java 语言函数,用来定义和操作称为字段缓冲区的存储结构。每个字段缓冲区都在字段中包含特性-值对。对于每个字段:

    * 特性是字段的标识符。
    * 关联的值表示字段的数据内容。
    * 出现次数。

有两种类型的 FML:

    * 基于字段长度和标识符为 16 位值的 FML16。它所受的限制为:8191 个唯一字段、单个字段长度 64K 字节、总字段缓冲区大小 64K 字节。
    * 基于字段长度和标识符为 32 位值的 FML32。它允许大约 3 千万个字段,大约 20 亿字节的字段和缓冲区长度。


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.6Fprint
Fprint(FBFR *fbfr)

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

参数:

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

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

2.7Ferror
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 */

};

typedefstruct  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 可设置为:TPNOTRAN, TPNOREPLY, TPNOBLOCKTPNOTIME, TPSIGRSTRT.

TPNOTRAN, TPNOBLOCKTPNOTIME, TPSIGRSTRT的含义与与tpcall()中的一样

TPNOREPLY:调用tpacall()的客户端不想接收SEVER端的应答。如果设置了

TPNOREPLY:服务端不会给该客户端发送应答。

返回值: 失败返回-1,成功返回一个HANDLER,可作为tpgetrply的参数,用于取应答

4.3tpgetrply
int tpgetrply(int *cd, char **data, long *len, long flags)

描述:取出服务端对tpacall()的应答。

参数: cd tpacall()返回的HANDLER

char **data返回缓冲区的地址,服务端传给客户端的结果放在该缓冲区内

long   *len:返回缓冲区的长度

flags:可以是:TPNOBLOCK, TPNOTIME,TPSIGRSTRT,TPGETANY(不管cd的值,从服务

器的应答队列中取第一个可用的消息),TPNOCHANGE

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


4.4tpcancel
int tpcancel(int handle)

描述: 如果当前的程序不处于事务模式中,取消对tpacall()的应答, 如果处于事务模式

中,则不能取消对tpacall()的应答,该调用会失败.

参数: tpacall()返回的HANDLER

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


4.5tpgprio

int tpgprio()

描述:返回最近发送(tpcall(),tpacall())或接收(tpgetrply())的一个消息的优先级

参数:无

返回值: 1-100消息的优先级,值越高, 优先级越高

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



struct {

int hdl; /* handle*/

int pr; /* priority*/

} pa[SIZE];

for (i=0; i<requests; i++) {

/* Determine service and data for request */

pa [i].hdl = tpacall(Svc, buf, len, flags);

/* Save priority used to send request */

pa[i].pr = tpgprio();

}

/* Use qsort(3) routine to sort handles in priority order */

qsort((char*) pa, requests, sizeof(pa[0]), cmpfcn);

for (i=0; i< requests; i++) {

tpgetrply(&pa[i].hdl, &rbufp, &rlen, rflags);

}


4.6tpsprio
int tpsprio (int prio, long flags)

描述: 设置下一个要发送的消息的优先级

参数: 0- prio为相对值, 设置下一个要发送的消息的优先级为现在的优先级加上prio

     TPABSOLUTE: prio为绝对值, 设置下一个要发送的消息的优先级为prio

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




5与请求错误处理有关的ATMI
5.1tpstrerror
char *tpstrerror(int tperrno)

描述:返回错误号为tperrno的错误描述

参数: tperrno:在atmi.h中定义的全局变量,用于标识错误号,类似于C中的errno

返回值: 失败返回NULL,成功返回错误号为tperrno的错误描述.

5.2tperrordetail
int tperrordetail(long flags)

描述: 返回当前进程或线程最近调用ATMI的出错的更详细的描述

参数:设为0

返回值: 如果没有错误返回0,有错误返回错误描述号


5.3tpstrerrordetail
char * tpstrerrordetail(int err, long flags)

描述: 返回错误描述号err的详细描述信息

参数:

err : tperrordetail()的返回值,

flags: 设为0
返回值: 失败返回NULL,成功返回详细描述信息
分享到:
评论

相关推荐

    Tuxedo函数说明--中文(转载)

    Tuxedo函数说明--中文(转载)常用函数,可以熟悉下,很有帮助哦.

    Tuxedo 函数列表

    Tuxedo 函数列表,Tuxedo 函数列表,Tuxedo 函数列表

      TUXEDO函数说明 DOC

    TUXEDO函数说明  -收集整理 1与缓冲区使用有关的ATMI 2 1.1tpalloc. 2 1.2tprealloc. 2 1.3tpfree. 2 1.4tptypes. 2 2常用的FML(FML32)操作函数... 3 2.1Falloc. 3 2.2Finit 3 2.3Fadd. 3 2.4Fchg. 3 2.5Fget 4 2.5...

    常用tuxedo函数说明

    常用tuxedo函数详细介绍.做金融开发的兄弟姐妹应该会经常用到

    TUXEDO函数说明.txt

    TUXEDO函数说明

    tuxedo函数大全

    tuxedo的所有函数的使用介绍 ATMI C Function Reference

    常用TUXEDO函数说明

    常用tuxedo函数说明,经常使用的TUXEDO操作函数,希望对大家有帮助。

    TUXEDO函数说明

    TUXEDO函数说明

    Tuxedo中文文档大全

    BEA Tuxedo应用程序开发指南.doc BEA TUXEDO快速入门.doc BEA Tuxedo的七种通信方式⑴.doc BEA Tuxedo的七种通信方式⑵.doc Tuxedo 技术文档.pdf tuxedo培训教程.doc Tuxedo常用函数说明ATMI....常用TUXEDO函数说明.doc

    Tuxedo常用函数说明ATMI

    Tuxedo常用函数说明ATMI,Tuxedo常用函数说明ATMI

    tuxedo资料

    TUXEDO函数说明 Tuxedo的配置管理 linux下的安装与配置

    tuxedo开发指南

    tuxedo应用开发指南,介绍了tuxedo开发流程,tuxedo工作流程,介绍tuxedo函数及其使用

    Tuxedo编程简介

    一、BEA TUXEDO 简介 二、BEA TUXEDO配置文件UBBCONFIG 三、BEA TUXEDO常见配置错误 四、BEA TUXEDO常用命令 五、常用BEA TUXEDO函数 六、常见错误分析

    delphi调用TUXEDO的单元文件

    delphi调用tuxedo函数。VC直接增加tuxedo的lib库就可以调用tuxedo了。delphi不能直接调用lib静态库,所以只能增加tuxedo单元文件。找了半天才找到的。

    TUXEDO常用函数详细说明

    1、与缓冲区使用有关的atmi 2、常用的fml(fml32)操作函数 3、连接的建立与断开有关的atmi 4、与请求tuxedo server 有关的atmi 5、与请求错误处理有关的atmi

    Tuxdeo相关资料,希望可以帮您,赶快下载吧!

    Tuxdeo相关资料包括:BEA TUXEDO编程管理速成,BEA和TUXEDO,TUXEDO函数说明,Tuxedo精华,常用BEA__Tuxedo函数,tuxedo培训教程。(以上资料均为本人从网络搜集而来,版权归其作者所有)

    tuxedo教程共享

    3.3与缓冲区使用有关的函数 32 3.4 程序中的例子 34 4. TUXEDO应用程序开发 35 4.1 常用的ATMI 36 4.2 BEA Tuxedo系统提供多种通信模式 42 4.3 同步的Request/Response模式 43 4.4 TUXEDO程序基本结构 43 4.5 启动和...

Global site tag (gtag.js) - Google Analytics