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

int tpconnect(char *name,char *data,long length,long flags)

     描述:与名为name的service建立连接

     参数:name:service的名字

     *data:要发送的数据

     length:数据的长度

     flags:可以为TPNOTRAN,TRNOTIME, TPNOBLOCK和TPSIGRSTRT。

     TPSENDONLY:发送者只能发送数据,被调用的service只能接收数据

     TPRECVONLY:接收者只能接收数据,被调用的service只能发送数据

     返回值:成功返回一个标识该连接的标识符,失败为-1

int tpsend(int cd,char *data,long length,long flags,long *revent)

     描述:用于发送数据

     参数:cd:tpconnect()的返回值,用于标识该连接

     data:要发送的数据

     length:要发送的数据的长度

     flags:可以为TPNOBLOCK, TPNOTIME, TPSIGRSTRT。

     TPRECVONLY:把发送权交给接收者,在接收者那里会产生事

    件TPEV_SENDONLY

     revent:当返回值为-1时,如果tperrno=TPEEVENT,那么表明有事件发生。

    可能的事件有TPEV_DISCONIMM,当会话的发起者调用tpdiscon(),tpreturn()和tpcommit()时,会话的从属者会收到该事件。如果有网络故障等,那么会话的发起者也会收到该事件。

     TPEV_SVCFAIL:会话的发起者会收到该事件,表明会话的从属者调用

    tpreturn(TPFAIL,…….)或tpreturn(TPEXIT,……..),并且该会话的从属者不再拥有该控制权TPEV_SVCERR。会话的发起者会收到该事件,表明会话的从属者调用tpreturn(TPSUCCESS,…….)返回,并且该会话的从属者不在拥有该控制权。

    返回值:失败为-1,如果tperrno=TPEEVENT,那么导致该调用失败的事件保存在revent中

int tprecv(int cd,char **data,long *length,longth flags,long *revent)

     描述:用于接收数据

     参数:data:接收的数据放在该缓冲区中

     length:接收数据的长度

     flags:可以为TPNOCHANGE,TPNOBLOCK, TPNOTIME, TPSIGRSTRT。

     revent:TREV_DISCONIMM与tpsend()中的含义一样

    TPRECVONLY:该会话的发送者把发送权交给接收者,在接收者这里会产生事件TPEV_SENDONLY。

    TPEV_SVCFAIL, TPEV=SVCERR 与tpsend()中的含义一样。

    TPEV_SVCSUCC:该会话的从属者已成功完成并关闭该会话,那么会话的发起者会收到该事件,表明该会话已成功结束。

     返回值:失败为-1,如果tperrno=TPEEVENT,那将导致该调用失败的事件保存在revent中。

int tpdiscon(int cd)

     描述:关闭标志符为cd的会话

     参数:tpconnect()的返回值,用于标识该连接

     返回值:失败为-1

    

    与消息通信方式有关的ATMI

 int tpnotify(CLIENTID *clientid,char *data,long len,long flags)

     描述:一个客户端或服务器端程序调用该函数给某一个客户端发消息

    参数:clientid:TPSVCINFO结构体中的clientid字段,可从Service的TPSVCINFO

    结构体得到,也可通过MIB调用得到。

     data:该消息所包含得数据,要用tpalloc()函数分配得缓冲区来接收

     len:该数据的长度,只适合CARRAY类型

     flags:可设为TPNOBLOCK, TPNOTIME, TPSIGRSTRT, TPACK, TPNOBLOCK和TPNOTIME, TPSIGRSTRT的含义与tpcall()中的一样

     TPACK:如果设置了,会返回详细的出错消息。

     返回值:失败返回-1

int tpbroadcast(char *lmid, char *usrname, char *cltname, char *data, long len, long flags)

     描述:一个客户端或服务端程序调用该函数给某一个客户端或多个客户端发消息

     参数:lmid:给该台机器上的所有客户端发消��

     usrname:给名为usrname的客户端发消息

     cltname:给组名cltname的一组客户端发消息

     data:该消息所包含的数据,要用tpalloc()分配的缓冲区来接收

     len:该数据的长度,只适合CARRAY类型

     flags:可设置为TPNOBLOCK, TPNOTIME, 和TPSIGRSTRT

     返回值:失败为-1

     说明:lmid,usrname和cltname用于确定要发送的范围。如果某个值为NULL,则表示给所有的客户端发送消息

 int tpchkunsol()

     描述:如果消息的通知方式为DIP_IN,那么可用该函数检查消息。如果为IGNORE,SIGNAL,该函数将立即返回

     如果有未处理的消息,该函数将调用消息处理函数进行处理,直到所有的消息都处理完,该函数才会返回。

     返回值:成功返回本次调用处理的消息个数,失败为-1

void(*tpsetunsol(void(_TMDLLENTRY *)(*disp)(char *data, long len,long flags)))()

     描述:用于设置消息处理函数,调用消息处理函数disp对消息进行处理。

     参数:disp:消息处理函数的名称

     data:该消息所包含的数据,要用tpalloc()函数分配的缓冲区来接收

     len:该数据的长度,只适合CARRAY类型

     flags:现在没用,设为0

    返回值:成功返回0,失败为-1




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