2.编译合并后的程序源文件ora_proc_demo.pc [oracle@myapache simpapp]$proc ora_proc_demo.pc
Pro*C/C++: Release11.2.0.1.0 - Production on Thu Mar 11 02:45:42 2010 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
System default option values taken from:
/u01/app/oracle/product/11.2.0/client_1/precomp/admin/pcscfg.cfg
Error at line 16, column10 infile ora_proc_demo.pc #include /* TUXEDO Header File */ .........1
PCC-S-02015, unable to open include file
Error at line 17, column10 infile ora_proc_demo.pc #include
PCC-S-02015, unable to open include file
Syntax error at line 72, column 19, file ora_proc_demo.pc: Error at line 72, column19 infile ora_proc_demo.pc TOUPPER(TPSVCINFO *rqst) ..................1
PCC-S-02201, Encountered the symbol \ , )
Error at line 0, column0 infile ora_proc_demo.pc PCC-F-02102, Fatal error while doing C preprocessing [oracle@myapache simpapp]$
注意:出现了报错提示,是找不到Tuxedo的头文件。解决方法:修改Oracle Pro/C的配置文件,路径为:$ORACLE_HOME/precomp/admin/pcscfg.cfg [oracle@myapache simpapp]$vi
/u01/app/oracle/product/11.2.0/client_1/precomp/admin/pcscfg.cfg 添加标红内容:
sys_include=($ORACLE_HOME/precomp/public,/usr/include,/usr/lib/gcc/i386-redhat-linux/4.1.1/include,/usr/lib/gcc/i386-redhat-linux/3.4.5/include,/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/include,/usr/lib/gcc/i586-suse-linux/4.1.2/include,/usr/lib/gcc/i586-suse-linux/4.3/include,/bea/tux10/include) ltype=short (完)
再次编译合并后的.pc程序文件,成功
[oracle@myapache simpapp]$proc ora_proc_demo.pc
Pro*C/C++: Release11.2.0.1.0 - Production on Thu Mar 11 02:54:46 2010
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
System default option values taken from:
/u01/app/oracle/product/11.2.0/client_1/precomp/admin/pcscfg.cfg [oracle@myapache simpapp]$ls
access.031010 oracle_dome.lis ora_proc_demo.lis simpcl.c tuxconfig ULOG.031010
access.031110 oracle_dome.pc ora_proc_demo.pc simpserv.c tux.env ULOG.031110 a.out ora_demo README stderr ubb
oracle_dome.c ora_proc_demo.c simpcl stdout ubbsimple [oracle@myapache simpapp]$
可以看到已经生成了ora_proc_demo.c程序文件,但要用Tuxedo的buildserver命令来编译,这里有几点要注意:
Tuxedo的include目录中也有sqlca.h头文件,为防止冲突,可以把它们移走 [oracle@myapache simpapp]$ls /bea/tux10/include/sql*
/bea/tux10/include/sqlca.h /bea/tux10/include/sqlda.h /bea/tux10/include/sqlcode.h 重命名为以下文件:
[oracle@myapache simpapp]$ls /bea/tux10/include/sql* /bea/tux10/include/sqlca.h.2010 /bea/tux10/include/sqlda.h.2010 /bea/tux10/include/sqlcode.h.2010
编译生成可执行文件
[oracle@myapache simpapp]$. ./tux.env
[oracle@myapache simpapp]$buildserver -f ora_proc_demo.c -o simpserv -s TOUPPER (出现错误提示)
需要把Oracle的库连接过来
[oracle@myapache simpapp]$buildserver -f ora_proc_demo.c -o simpserv -s TOUPPER -l \ (有一些警告提示,不影响程序使用) [oracle@myapache simpapp]$ ls
access.031010 oracle_dome.lis ora_proc_demo.lis simpcl.c stdout ubbsimple access.031110 oracle_dome.pc ora_proc_demo.pc simpserv tuxconfig ULOG.031010 a.out ora_demo README simpserv.c tux.env ULOG.031110 oracle_dome.c ora_proc_demo.c simpcl 已经生成了simpserv可执行程序 3.测试
在Oracle数据库服务器(主机3)上,以sysdba登录sqlplus,执行以下语句查看连接的用户情况 SQL>select sid, serial#, username from v$session; SID SERIAL# USERNAME
---------- ---------- ------------------------------ 34 3 40 1 41 362 SYS 现在只有一个SYS用户
在Tuxedo Server上启动simpserv服务程序 [oracle@myapache simpapp]$tmboot -y
Booting all admin and server processes in /home/myTuxSrv/simpapp/tuxconfig INFO: Oracle Tuxedo, Version10.3.0.0, 32-bit, Patch Level (none)
Booting admin processes ...
exec BBL -A :
process id=19565 ... Started.
Booting server processes ...
exec simpserv -A :
process id=19566 ... Started.
exec WSL -A -- -n//192.168.1.66:3200 -m 2 -M 5 -x 5 : process id=19567 ... Started. 3 processes started. [oracle@myapache simpapp]$
Tuxedo服务已经启动,在Oracle数据库服务器(主机3)上,再次执行以下语句 SQL>select sid, serial#, username from v$session; SID SERIAL# USERNAME ---------- ---------- ------------------------------ 26 1 29 2386 HR 30 2052 31 3 34 3 40 1 41 362 SYS 43 15
可以看到HR用户已经连接上来了