Tuxedo

http://e-docs.bea.com/tuxedo/tux81/interm/atmiprog.htm#qgd
 

1. tpinit
2.tpalloc
3.tpenqueue
4.tpdequeue
5.tpterm

tpbegin();
tpenqueue();
tpcommit()/tprollback();
你说的流程基本是对的。
client:
tpinit->tpalloc->Fchg->tpcall ->Fget from buffer,处理->tpfree tpterm.

用FML的occ是可以知道记录的条数,不过要注意不是每一条记录都有所有的字段的问题。不过一般实际中的做法是我们设置一个字段来告知对方条数,这样处理起来比较方便。

int tpdequeue(char *qspace, char *qname, TPQCTL *ctl, char **data, long *len, long flags)

添加你的FML路径即可(server和clinet)。
例如:
set FLDTBLDIR32=%APPDIR%           #你的fml目录路径
set FIELDTBLS32=%APPDIR%\xxx.fml   #你的fml文件路径
6. Client端的开发

       client端的开发是一个WIN32的应用程序,通过输入文件上传的路径,读取文件,然后利用FML缓冲上传到Server端。

       这里需要主要的是Tpinit前需要将一些环境变量,下面是我的初始化函数:

static bool _init()

{

         strcpy(TempBuf, "WSNADDR=//192.168.0.109:8000");      //这里的ipport根据实际情况指定.

         tuxputenv(TempBuf);

         memset(TempBuf,0,255);

         strcpy(TempBuf,"FLDTBLDIR32=D:\mywork\client");

         tuxputenv(TempBuf);

         memset(TempBuf,0,255);

         strcpy(TempBuf,"FIELDTBLS32=D:\mywork\client\ftp.fml");

         tuxputenv(TempBuf);

         if (tpinit((TPINIT *) NULL) == -1) {

                   return false;

         }      

         return true;

}

http://dev2dev.bea.com.cn/techdoc/200406205.html#_Toc74019824
http://media.ccidnet.com/media/ciw/1061/b1601.htm

 http://dev2dev.bea.com.cn/bbs/servlet/D2DServlet/download/4-10521-53080-340/tuxedo_mq.pdf

原文地址:https://www.cnblogs.com/lgzh3/p/907177.html