TUXEDO资料(一)

这次项目碰到了oracle的tuxedo中间件通讯开发,比较郁闷的是公司和网上这家伙的开发资料都比较匮乏,为免以后遗忘,这次先写下来,后面再整理整理:)
TUXEDO:Transaction for UNIX has been Extended for Distributed Operation,即被分布式操作扩展之后的UNIX事务系统  
个人评语:一个让C程序员爽,让JAVA程序员心烦的东西。作为一个中间件最最关键的是它不爽了你不知道它哪里不舒服。

  • TUXEDO客户端环境变量

安装TUXEDO客户端后使用tuxedo需要下列环境变量,不要采用在程序设置环境变量,血的教训啊,宕机!
TUXDIR=/home/admin/tuxedo10g
export TUXDIR
WSNADDR=//[ip]:[port]

export WSNADDR
WSINTOPPRE71=yes
export WSINTOPPRE71
PATH=$TUXDIR/bin:$PATH:$HOME/bin
export PATH
#找到动态链接库的路径
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TUXDIR/lib
export LD_LIBRARY_PATH

  • C编程中的TUXEDO

如果要教程,请去CSDN下载频道下载,我的积分不够了http://download.csdn.net/source/2067895
简单的来说,要用tuxedo编程只需要进行下面的步骤:
1.tpinit();//连接服务器,获取应用上下文
2.tpalloc();//申请用于通讯的空间地址
3.tpcall();//进行SOCKET连接,并同步获取返回信息
4.tpfree();//释放由tpalloc申请的内存地址
5.tpterm();//断开服务器连接
建议看oracle英文原版的函数说明,里面有很多特殊用法、调用注意事项和优化方案.http://download.oracle.com/docs/cd/E13203_01/tuxedo/tux80/atmi/rf3c53.htm

  • 编译TUXEDO的C程序

C程序写好了,当然还需要编译。如果是单纯C语言写的tuxedo客户端,编译的时候只需要libwsc.so,libbuft.so,libgpnet.so,libfml.so,libfml32.so,libengine.so,libdl.so,libpthread.so这些动态库文件在${TUXDIR}/lib目录下,头文件在${TUXDIR}/include目录下。
另外,linux系统还需要链接/usr/lib/libcrypt.a加密静态库
以pbctuxedosend.c文件为例我们的gcc脚本就可以写成
gcc -I$JAVA_HOME/include -I$JAVA_HOME/include/linux -I$TUXDIR/include -c -L${TUXDIR}/lib pbctuxedosend.c
gcc --kill-at -shared -I$JAVA_HOME/include -I$JAVA_HOME/include/linux -I$TUXDIR/include -L$TUXDIR/lib  -lwsc -lbuft -lwsc  -lgpnet -lfml -lfml32 -lengine -ldl -lpthread /usr/lib/libcrypt.a -Wl,-soname,libpbctuxedosend.so.1 -o libpbctuxedosend.so.1.0 pbctuxedosend.o
结果就是得到我们jni调用所需要的动态库文件libpbctuxedosend.so.1.0将它拷贝成libpbctuxedosend.so就得到我们jni调用所需要的动态库。

  • 实例演练C

Pbctuxedosend.c
头文件,必须包含
#include <atmi.h>        /* TUXEDO  Header File */
//申请了tpinit结构对象
TPCONTEXT_T  ctxt;
TPINIT *tpinitbuf = (TPINIT* )tpalloc((char*)"TPINIT",NULL,TPINITNEED(0));
//设置为多会话模式
tpinitbuf->flags = TPMULTICONTEXTS;
//加入服务器多会话上下文
tpinit((TPINIT *)tpinitbuf)
//申请通讯用内存地址
sendbuf = (char *) tpalloc("CARRAY",NULL, sendlen+1)
rcvbuf = (char *) tpalloc(“CARRAY”,NULL, sendlen+1)
//使用内存拷贝将发送报文置入发送内存
(void) memcpy(sendbuf,strSendContext,sendlen);
//调用tpcall与服务器进行同步通讯
ret = tpcall(strServiceName, (char *)sendbuf, 0, (char **)&rcvbuf, &rcvlen, TPNOBLOCK);
//释放资源
tpfree(sendbuf);
tpfree(rcvbuf);
tpfree((char *)tpinitbuf);
//断开连接
tpterm();
(需要C完整源文件请联系我,这边发不了附件,上传不了图像。。。不知道为什么)

  • 实例演练JNI

 /**

 * 调用封装的Tuxedo库函数类,演示用
 * @author jun.lijun
 * @version $Id: PbcInvokeTuxedo.java,v 0.1 2010-3-12 下午08:16:02 jun.lijun Exp $
 */
public class PbcInvokeTuxedo {
    static {
        try {
            System.loadLibrary("pbctuxedosend");
        } catch (Exception e) {
        }
    }

    public native static byte[] sendByTuxedoTpCall(String wsnaddr, String serviceName,
                                                   String sendContext);
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tuxedo是一个为了在Linux操作系统上提供更好的平台硬件支持而开发的软件包。其安装相对较简单,下面是关于如何在Linux上安装Tuxedo的步骤: 1. 首先,确保你已经在Linux上安装了Tuxedo所需的依赖项。这些依赖项包括GCC编译器、GNU make、C/C++编译器和标准C库等。你可以使用软件包管理器来安装它们,例如在Ubuntu上使用apt-get或在Fedora上使用dnf。 2. 访问Tuxedo的官方网站,下载最新版本的Tuxedo软件包。确保下载适用于你的Linux发行版的版本,例如Ubuntu、Fedora或CentOS等。 3. 解压下载的Tuxedo软件包。你可以通过在终端中运行以下命令来完成解压缩: ``` tar -zxvf tuxedo-<version>.tar.gz ``` 4. 进入解压后的Tuxedo目录。你可以使用以下命令切换到目录: ``` cd tuxedo-<version> ``` 5. 运行配置命令以配置Tuxedo的安装选项。你可以使用以下命令运行配置: ``` ./configure ``` 6. 如果配置成功,运行编译命令来编译Tuxedo源文件。使用以下命令进行编译: ``` make ``` 7. 最后,运行安装命令来安装Tuxedo。你可以使用以下命令进行安装: ``` sudo make install ``` 完成后,Tuxedo将成功安装在你的Linux系统上。你可以通过运行相应的Tuxedo命令来验证安装是否成功。 总结来说,安装Tuxedo在Linux上是一个简单的过程。你需要下载Tuxedo软件包,解压缩并配置它的安装选项,然后进行编译和安装。确保你的系统满足Tuxedo的依赖项,并按照步骤进行操作,你将能够在Linux上成功安装Tuxedo

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值