WSNADDR=//192.168.1.66:3200 [root@tuxclient simpapp]#
编译客户端程序,加-w代表远程访问
[root@tuxclient simpapp]#buildclient -f simpcl.c -o client –w [root@tuxclient simpapp]#ls
client README simpcl.c simpserv.c tux.env ubbsimple [root@tuxclient simpapp]#./client bbk Returned string is: BBK [root@tuxclient simpapp]#
可以看到,能够完成大小写转换,代表客户端可以正确发送请求到Tuxedo服务器了。
在Tuxedo服务器端查看simserv服务程序接受请求的情况 [oracle@myapache simpapp]$tmadmin tmadmin - Copyright (c) 2007-2008 Oracle.
Portions * Copyright 1986-1997 RSA Data Security, Inc. All Rights Reserved.
Distributed under license by Oracle. Tuxedo is a registered trademark. >psr
Prog Name Queue Name Grp Name ID RqDone Load Done Current Service --------- ---------- -------- -- ------ --------- --------------- BBL 123456 simple 0 0 0 ( IDLE )
simpserv 00001.00001 GROUP1 1 1 50 ( IDLE ) WSL 00001.00010 GROUP1 10 0 0 ( IDLE )
在客户端,再发送3个请求后,RqDone一列会变为4 >psr
Prog Name Queue Name Grp Name ID RqDone Load Done Current Service --------- ---------- -------- -- ------ --------- --------------- BBL 123456 simple 0 0 0 ( IDLE )
simpserv 00001.00001 GROUP1 1 4 200 ( IDLE ) WSL 00001.00010 GROUP1 10 0 0 ( IDLE )
到此Tuxedo客户端和服务器端的通信设置完毕了。 再开始下一步配置前,先关闭Tuxedo服务,在主机2上 [oracle@myapache simpapp]$tmshutdown -y
Shutting down all admin and server processes in /home/myTuxSrv/simpapp/tuxconfig Shutting down server processes ...
Server Id = 10 Group Id = GROUP1 Machine = simple: shutdown succeeded Server Id = 1 Group Id = GROUP1 Machine = simple: shutdown succeeded
Shutting down admin processes ...
Server Id = 0 Group Id = simple Machine = simple: shutdown succeeded 3 processes stopped.
[oracle@myapache simpapp]$
二、用Tuxedo Server作为数据库的客户端,来连接Oracle数据库服务器(使用Pro/C程序)
1.在/home/myTuxSrv/simpapp目录下编写一个Pro/C程序 [oracle@myapache simpapp]$cd /home/myTuxSrv/simpapp/ [oracle@myapache simpapp]$vi oracle_dome.pc 编辑以下程序 #include
#include \
EXEC SQL BEGIN DECLARE SECTION; char *uid = \ char name[20]; int id;
EXEC SQL END DECLARE SECTION;
void sqlerr() {
EXEC SQL WHENEVER SQLERROR CONTINUE; printf(\
EXEC SQL ROLLBACK WORK RELEASE; exit(1); }
int main(int argc, char* argv[]) {
EXEC SQL WHENEVER SQLERROR DO sqlerr(); EXEC SQL CONNECT :uid;
id = 10;
strcpy(name, \
EXEC SQL INSERT INTO T_TEST1 VALUES(:id, :name); EXEC SQL COMMIT WORK RELEASE; } (完)
2.把.pc原程序编译为.c程序
[oracle@myapache simpapp]$proc oracle_dome.pc
Pro*C/C++: Release11.2.0.1.0 - Production on Thu Mar 11 01:33:26 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 simpcl simpserv.c tuxconfig ubbsimple access.031110 oracle_dome.pc simpcl.c stderr tux.env ULOG.031010 oracle_dome.c README simpserv stdout ubb ULOG.031110 [oracle@myapache simpapp]$
3.编译oracle_dome.c程序文件
[oracle@myapache simpapp]$gcc oracle_dome.c -I $ORACLE_HOME/precomp/public -L $ORACLE_HOME/lib -lclntsh
[oracle@myapache simpapp]$gcc oracle_dome.c -o ora_demo -I $ORACLE_HOME/precomp/public -L $ORACLE_HOME/lib –lclntsh (默认生成a.out程序文件,加-o参数指定程序文件名为ora_demo) [oracle@myapache simpapp]$ls
access.031010 oracle_dome.c ora_demo simpcl.c stderr tux.env ULOG.031010 access.031110 oracle_dome.lis README simpserv stdout ubb ULOG.031110 a.out oracle_dome.pc simpcl simpserv.c tuxconfig ubbsimple [oracle@myapache simpapp]$./a.out [oracle@myapache simpapp]$./ora_demo
执行两遍该程序后,在Oracle数据库服务器(主机3)上可以看到多了两条记录 [root@ora11gR2 OraFile]#su - oracle [oracle@ora11gR2 ~]$sqlplus / as sysdba