windows XP 调通tuxedo的simpapp所经历的艰苦过程

下面这张图就是部属一个完整的tuxedo应用的流程(使用ATMI接口访问)

windows XP 调通tuxedo的simpapp所经历的艰苦过程_第1张图片

从图上可以看出,总共需要3步。我在这里再细分一下。

流程为

1.配置环境变量

2.编辑ubbconfig文件

3.将ubbconfig文本文件编译为tuxconfig二进制文件

4.编译服务器端程序

5.编译客户端程序

6.启动服务器

7.调用服务

初看起来,好像也不复杂。很清晰的几步 我在这里主要想阐述的是我遇到的各种错误和解决办法

(这里有个bea的官方技术文章 介绍整个过程的 写的相当详细http://dev2dev.bea.com.cn/techdoc/200305562.html

1.配置环境变量

需要配置的环境变量为

TUXDIR=<tuxedo安装的全路径>
WSNADDR=<服务器的地址,只有客户端和服务器分开的时候才需要配置>
PATH=%TUXDIR%/bin;%PATH% (这个很重要,因为只有配了这个调用起来才方便)
TUXCONFIG -- 制定tuxconfig这个二进制配置文件的路径

在调用tmloadcf命令时会查找TUXCONFIG 这个环境变量,如果没有查找到,报错信息如下

D:/bea/tuxedo8.1/samples/atmi/sa>tmloadcf ubbsimple

CMDTUX_CAT:873: ERROR: TUXCONFIG environment variable not set

如果环境变量设置和ubbconfig文件中设置的不一致,报错信息如下

D:/bea/tuxedo8.1/samples/atmi/sa>tmloadcf ubbsimple

CMDTUX_CAT:111: ERROR: TUXCONFIG (D:/bea/tuxedo8.1/tuxconfig) of machine HEIHEBEN must be the same as the TUXCONFIG environment variable (d:/bea/tuxconfig)

CMDTUX_CAT:867: ERROR: tmloadcf: Above errors found during syntax checking

注:环境变量中的TUXCONFIG环境变量必须设置,并且要正确设置。

2.编辑ubbconfig文件

在编写这个文件时 我就是一步一步按照小布老师的说法配置的,但是配置完成 调用tmloadcf命令时出错了

D:/bea/tuxedo8.1/samples/atmi/sa>tmloadcf ubbsimple

CMDTUX_CAT:868: ERROR: tmloadcf cannot run on a non-master node

经查得知 原来windows机器上的机器名必须大写

注:如果机器名含有. 则机器名需要使用双引号引起来

补充:可能有些人不知道windows的机器名怎样查看,下面给出贴图示例

windows XP 调通tuxedo的simpapp所经历的艰苦过程_第2张图片

3.将ubbconfig文本文件编译为tuxconfig二进制文件

这个过程没有出现错误了,给出提示如下

D:/bea/tuxedo8.1/samples/atmi/sa>tmloadcf ubbsimple
Initialize TUXCONFIG file: D:/bea/tuxedo8.1/tuxconfig [y, q] ? Y

4.编译服务器端程序

编译simpserver服务器端程序的命令为

D:/bea/tuxedo8.1/samples/atmi/sa>buildserver -o simpserv -f simpserv.c -s TOUPPER

该命令的参数我就不解释了

出现错误信息如下:
cl /MD -I"%TUXDIR%"/include -Fesimpserv BS-dbc.c simpserv.c "%TUXDIR%"/lib/libtux.lib "%TUXDIR%"/lib/libbuft.lib "%TUXDIR%"/lib/libfml.lib "%TUXDIR%"/lib/libfml32.lib "%TUXDIR%"/lib/libengine.lib wsock32.lib kernel32.lib advapi32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib -link -implib:BS-dbc.lib
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

BS-dbc.c
BS-dbc.c(1) : fatal error C1083: Cannot open include file: 'stdio.h': No such file or directory
simpserv.c
simpserv.c(14) : fatal error C1083: Cannot open include file: 'stdio.h': No such file or directory
Generating Code...
CMDTUX_CAT:4180: ERROR: can't execute cl /MD -I"%TUXDIR%"/include -Fesimpserv BS-dbc.c simpserv.c "%TUXDIR%"/lib/libtux.lib "%TUXDIR
%"/lib/libbuft.lib "%TUXDIR%"/lib/libfml.lib "%TUXDIR%"/lib/libfml32.lib "%TUXDIR%"/lib/libengine.lib wsock32.lib kernel32.lib advapi32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib -link -implib:BS-dbc.lib

从上面这段信息和网上查找资料得出,原来这个需要VC6.0的编译器来进行编译

我可不想安装庞大的VC6.0,从网上down一个绿色版。按照步骤安装成功后,在PATH中注册,继续编译

windows XP 调通tuxedo的simpapp所经历的艰苦过程_第3张图片

还说什么呢,什么也不说了。从网上下载呗,通过baidu也只要了,将该dll放到与cl.exe 同一目录。

好了,再次编译

D:/bea/tuxedo8.1/samples/atmi/sa>buildserver -o simpserv -f simpserv.c -s TOUPPER
cl /MD -I"%TUXDIR%"/include -Fesimpserv BS-92c.c simpserv.c "%TUXDIR%"/lib/libtux.lib "%TUXDIR%"/lib/libbuft.lib "%TUXDIR%"/lib/bfml.lib "%TUXDIR%"/lib/libfml32.lib "%TUXDIR%"/lib/libengine.lib wsock32.lib kernel32.lib advapi32.lib user32.lib gdi32.lib comdlg3lib winspool.lib -link -implib:BS-92c.lib

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

BS-92c.c
BS-92c.c(1) : fatal error C1083: Cannot open include file: 'stdio.h': No such file or directory
simpserv.c
simpserv.c(14) : fatal error C1083: Cannot open include file: 'stdio.h': No such file or directory
Generating Code...
CMDTUX_CAT:4180: ERROR: can't execute cl /MD -I"%TUXDIR%"/include -Fesimpserv BS-92c.c simpserv.c "%TUXDIR%"/lib/libtux.lib "%TUXDIR%"/lib/libbuft.lib "%TUXDIR%"/lib/libfml.lib "%TUXDIR%"/lib/libfml32.lib "%TUXDIR%"/lib/libengine.lib wsock32.lib kernel32.lib adv
i32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib -link -implib:BS-92c.lib

乖乖,这次错误依旧啊。google一下(百度和谷歌都试试,可能就有精确的答案)

这个是由于VC6.0的INCLUDE目录没在环境变量里设置,我们这里直接调用

%VC安装目录%/Bin/VCVARS32.BAT 设置

D:/bea/tuxedo8.1/samples/atmi/sa>D:/vc6lite_rc1/VC98/Bin/vcvars32.bat
Setting environment for using Microsoft Visual C++ tools.

再次编译,出现下面的信息,这就表明没有任何问题了

/out:simpserv.exe
-implib:BS-924.lib
BS-924.obj
simpserv.obj
D:/bea/tuxedo8.1/lib/libtux.lib
D:/bea/tuxedo8.1/lib/libbuft.lib
D:/bea/tuxedo8.1/lib/libfml.lib
D:/bea/tuxedo8.1/lib/libfml32.lib
D:/bea/tuxedo8.1/lib/libengine.lib
wsock32.lib
kernel32.lib
advapi32.lib
user32.lib
gdi32.lib
comdlg32.lib
winspool.lib

5.编译客户端程序

有了编译服务器端的经验,编译客户端没有出现问题

编译的命令为:

buildclient -o client -f simpcl.c

6.启动服务器

使用命令 tmboot

7.调用服务

刚刚编译出来的客户端程序为 client 我们只需要像这样 client hello 就可以调用了 返回应该是HELLO


转自:http://blog.csdn.net/heiheben/article/details/2712427


你可能感兴趣的:(windows)