[转帖]Tuxedo buffer管理_MQ, Tuxedo及OLTP讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MQ, Tuxedo及OLTP讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4014 | 回复: 0   主题: [转帖]Tuxedo buffer管理        下一篇 
一路向北
注册用户
等级:少校
经验:903
发帖:56
精华:6
注册:2012-12-19
状态:离线
发送短消息息给一路向北 加好友    发送短消息息给一路向北 发消息
发表于: IP:您无权察看 2012-12-24 10:12:22 | [全部帖] [楼主帖] 楼主

1.buffer类型

在tuxedo的通讯中使用的缓冲区都要使用一套自己API来生成和释放。buffer类型有CARRAY、STRING、FML、FML32、VIEW和VIEW32等。

类型说明STRING字符串,以null结尾CARRAY有长度的字节流X_OCTET FMLfielded buffersFML32 VIEWC结构VIEW32 X_C_TYPE X_COMMON 

以上类型中,只有VIEW系列类型是有子类型(subtype)的。FML和VIEW在后面会有详细的说明。

2.STRING型

STRING类型主要用于处理变长的文本数据;

必须以null结尾;

STRING要在配置文件的MACHINES部分用TYPE配置;

STRING类型只由字符组成,在结构不同或使用不同的字符集的机器之前传输时,自动进行XDR encode/decode处理。

3.CARRAY型

CARRAY类型用于与机器无关的数据;

该类型要指定长度,数据中可以包含null数据;

tuxedo不关心数据的内容,不进行XDR encode/decode转换。

4.分配buffer-tpalloc

char *tpalloc(char *type, char *subtype, long size);
成功返回分配的缓冲区首地址,失败返回NULL

参数说明:

type:buffer类型;

subtype:子类型,没有子类型的填NULL;

size:分配的缓冲区大小;

buffer类型是CARRAY、STRING、FML、FML32、VIEW和VIEW32。

失败原因主要有:

  • 参数错;
  • 协议错,如之前尚未调用tpinit;
  • 操作系统错;
  • tuxedo底层错。

5.重分配buffer-tprealloc

char *tprealloc(char *bufptr, long size);
成功返回新的缓冲区地址,失败返回NULL

参数说明:

bufptr:先前分配的buffer地址;

size:新的大小;

函数改变原来分配的空间的大小,并把原来的数据拷贝到新的缓冲区中。

失败原因主要有:

  • 无效的原指针;
  • 协议错,如之前尚未调用tpinit;
  • 操作系统错;
  • tuxedo底层错。

6.释放buffer-tpfree

void tpfree(char *bufptr);

参数说明:

bufptr:分配的buffer地址;

函数没有返回值,不返回任何错误,tperrno被设置为0。

7.查询buffer的类型-tptypes

long tptypes(char *bufptr, char *type, char *subtype);
函数成功返回buffer的长度,失败返回-1

参数说明:

bufptr:buffer地址;

type:成功返回的buffer类型;

subtype:成功返回的buffer子类型;

失败原因主要有:

  • 无效的原指针;
  • 协议错,如之前尚未调用tpinit;
  • 操作系统错;
  • tuxedo底层错。



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