`
heiheben
  • 浏览: 132318 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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

阅读更多

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

process

 

从图上可以看出,总共需要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的机器名怎样查看,下面给出贴图示例

host_name

 

 

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中注册,继续编译

 

还说什么呢,什么也不说了。从网上下载呗,通过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

 

 

 

 

 

 

分享到:
评论
1 楼 zht110227 2009-08-24  
很好,很强大。不过在这个地方:
这个是由于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.
vcvars32.bat脚本搞了半天,突然发现路径不对,但是改了路径还是不行,后来只好手动设置了path和lib。终于搞定了。

相关推荐

Global site tag (gtag.js) - Google Analytics