日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

tuxedo连接mysql_TUXEDO与INFORMIX数据库的互连

發(fā)布時間:2025/3/13 数据库 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tuxedo连接mysql_TUXEDO与INFORMIX数据库的互连 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在兩層的C/S結(jié)構(gòu)中,客戶端直接訪問數(shù)據(jù)庫,當(dāng)采用TUXEDO中間件后,形成三層結(jié)構(gòu)。這時,客戶端不直接訪問數(shù)據(jù)庫,而是改為調(diào)用中間件TUXEDO服務(wù)端上的服務(wù),由TUXEDO服務(wù)端訪問數(shù)據(jù)庫,并把結(jié)果返回給客戶端

前言:

在兩層的C/S結(jié)構(gòu)中,客戶端直接訪問數(shù)據(jù)庫,當(dāng)采用TUXEDO中間件后,形成三層結(jié)構(gòu)。這時,客戶端不直接訪問數(shù)據(jù)庫,而是改為調(diào)用中間件TUXEDO服務(wù)端上的服務(wù),由TUXEDO服務(wù)端訪問數(shù)據(jù)庫,并把結(jié)果返回給客戶端。TUXEDO服務(wù)端可以和INformIX在同一臺服務(wù)器上,也可以在不同的機(jī)器上,如果在不同的機(jī)器上,在TUXEDO的服務(wù)端所在的機(jī)器要安裝一個INformIX的客戶端。

TUXEDO服務(wù)端與INformIX數(shù)據(jù)庫連接有兩種方式:

1、不通過XA接口直接互連。適用于整個系統(tǒng)只有一個數(shù)據(jù)庫的情況。

2、通過XA接口互連,對整個系統(tǒng)有一個數(shù)據(jù)庫或多個數(shù)據(jù)庫都適用,建議采用,本文介紹這種互連的配置方法。

系統(tǒng)說明:

TUXEDO: 版本TUXEDO6.5(是32位的)安裝在HP-UX 11.0 64bit上,安裝目錄 /usr/tuxedo

TUXEDO的例子: /usr/tuxedo/simpdb

INformIX: 版本INformIX9.21(是64位的)安裝在SCO Unix 5.0.5上,目錄 /INformIX

數(shù)據(jù)庫名稱: mydb

TUXEDO用戶名: TUXEDO

注意:TUXEDO系統(tǒng)與INformIX數(shù)據(jù)庫在不同的機(jī)器上,所以在TUXEDO系統(tǒng)所在的機(jī)器上要安裝INformIX數(shù)據(jù)庫的CLIENT端,并且如果TUXEDO系統(tǒng)是32位的,而INformIX數(shù)據(jù)庫的服務(wù)端是64是,在TUXEDO系統(tǒng)所在的機(jī)器上應(yīng)安裝INformIX數(shù)據(jù)庫的32位的CLIENT端才行。

配置的步驟:

一、INformIX的的配置

1> 數(shù)據(jù)庫一定要以unbuffered log方式創(chuàng)建,create database databasename with log;

INformIX數(shù)據(jù)庫的LOG方式有3種:Buffered,Nobuffer,Unbuffered(under buffer)

用onmonitor命令可查看數(shù)據(jù)庫是否是用unbuffered log方式創(chuàng)建的,log status 那一列為U的是unbuffered log方式。

用ontape -s –L 0 –U databasename;可把一個其他方式創(chuàng)建的數(shù)據(jù)庫改為unbuffered log方式的.

2>tuxedo用戶應(yīng)該有訪問該數(shù)據(jù)庫資源的權(quán)限。grant dba to tuxedo;

如果TUXEDO用戶沒有訪問該數(shù)據(jù)庫資源的權(quán)限,當(dāng)TUXEDO啟動時,TMS啟動會失敗,在ULOG中會出現(xiàn)類似下面的錯誤信息:

145053.rs6000!BBL.17510: LIBTUX_CAT:262: INFO: Standard main starting

145053.rs6000!TMS_INformIX.20204: 020602: TUXEDO Version 6.5 AIX 2 4 007025954C00.

145053.rs6000!TMS_INformIX.20204: LIBTUX_CAT:262: INFO: Standard main starting

145054.rs6000!TMS_INformIX.20204: LIBTUX_CAT:466: ERROR: tpopen TPERMERR xa_open returned XAER_RMERR

145054.rs6000!TMS_INformIX.20204: LIBTUX_CAT:250: ERROR: tpsvrinit() failed

145054.rs6000!TMS_INformIX.20204: LIBTUX_CAT:300: ERROR: _tlog_open: _gp_tblopen

145054.rs6000!TMS_INformIX.20204: LIBTUX_CAT:250: ERROR: tpsvrinit() failed

145054.rs6000!TMS_INformIX.20204: LIBTUX_CAT:300: ERROR: _tlog_open: _gp_tblopen: UNIX sys call error - 2

145054.rs6000!tmboot.19178: 020602: TUXEDO Version 6.5 AIX 2 4 007025954C00.

145054.rs6000!tmboot.19178: CMDTUX_CAT:825: ERROR: Process TMS_INformIX at simple failed with /T tperrno (TPERMERR - resource manager error)

二、TUXEDO的配置

1. /usr/tuxedo/simpdb/setenv的內(nèi)容:

. usr/tuxedo/tux.env

INformIXDIR=/tmp_mnt/informix/hc; export INformIXDIR

INformIXSERVER=dhc; export INformIXSERVER

PATH=$TUXDIR/bin:$INformIXDIR/bin:/bin:/usr/bin:/usr/ccs/bin:.; export PATH

SHLIB_PATH=$SHLIB_PATH:$INformIXDIR/lib:$INformIXDIR/lib/esql:$INformIXDIR/lib

/cli:$INformIXDIR/lib/c++

:$INformIXDIR/lib/client:$INformIXDIR/lib/dmi:/usr/lib:/usr/lib/Motif1.2

INCLUDE=$INformIXDIR/incl/esql:$INformIXDIR/incl:/tuxedo/include:/usr/include; export INCLUDE

CFLAGS="-I$INformIXDIR/incl -I$INformIXDIR/incl/esql" export CFLAGS

2.重命名下列文件,因?yàn)橄铝形募cINformIX中的文件名有沖突,所以要改名。

1.TUXEDO安裝路徑include目錄下的下面文件

把sqlca.h 改名為 sqlca.h.bbb

把sqlcode.h 改名為 sqlcode.h.bbb

把sqlda.h 改名為 sqlda.h.bbb

2.重命名TUXEDO安裝路徑lib目錄下的下面文件

把libsql.lib 改名為 libsql.lib.bbb

3. 修改TUXEDO安裝路徑的udataobj目錄下的RM文件,加入:

INformIX-DSHC:infx_xa_switch:-L/tuxedo/lib -L${INformIXDIR}/lib -L${INformIXDIR}/lib/esql -lifxa -lifsql -lifasf -lifgen -lifos -lifgls -lnsl -lm -lsec ${INformIXDIR}/lib/esql/checkapi.o -lifglx

4. 在TUXEDO用戶下創(chuàng)建TMS文件:TMS_INformIX,TUXEDO通過TMS_INformIX與INformIX數(shù)據(jù)庫采用XA協(xié)議進(jìn)行通訊

buildtms -r INformIX-DSHC -o /tuxedo/bin/TMS_INformIX

5. 配置 UBBCONFIG

1. 在*MACHINES節(jié)中增加:

TLOGDEVICE = "/usr/tuxedo/simpdb/TLOG"

TLOGNAME=TLOG

TLOGSIZE=200

2. 改*GROUPS節(jié)的配置為:

*GROUPS

GROUP1 LMID=simple GRPNO=1

TMSNAME="TMS_INformIX" TMSCOUNT=2

OPENINFO="INformIX-DSHC:mydb"

修改后的配置文件ubb內(nèi)容如下,用tmloadcf -y ubb重新生成tuxconfig

IPCKEY 123456

DOMAINID simpapp

MASTER simple

MAXACCESSERS 100

MAXSERVERS 50

MAXSERVICES 100

MODEL SHM

LDBAL N

*MACHINES

server LMID=simple

APPDIR="/usr/tuxedo/simpdb"

TUXCONFIG="/usr/tuxedo/simpdb/tuxconfig"

TUXDIR="/usr/tuxedo"

TLOGDEVICE = "/usr/tuxedo/simpdb/TLOG"

TLOGNAME=TLOG

TLOGSIZE=100

*GROUPS

GROUP1 LMID=simple GRPNO=1

TMSNAME="TMS_INformIX" TMSCOUNT=2

OPENINFO="INformIX-DSHC:mydb"

*SERVERS

DEFAULT:

CLOPT="-A"

test SRVGRP=GROUP1 SRVID=1

*SERVICES

6.用TMADMIN創(chuàng)建TLOG文件,TUXEDO用一個文件TLOG記錄對數(shù)據(jù)庫操作的日志。用于協(xié)調(diào)分布式數(shù)據(jù)庫的提交與回滾.

D:>tmadmin

>crdl -b 500 -z /usr/tuxedo/simpdb/TLOG

>crlog -m simple

>q

三、服務(wù)端的程序:test.cp

功能:根據(jù)客戶端傳的EMPNO到表EMP中取ENAME的值,并把它返回給客戶端

#i nclude

#i nclude

#i nclude

#i nclude

#i nclude

#i nclude

EXEC SQL INCLUDE sqlca;

EXEC SQL BEGIN DECLARE SECTION;

long al_empno=0;

char ac_ename[11]="";

EXEC SQL END DECLARE SECTION;

TEST(TPSVCINFO *rqst)

{

/*接收客戶端來的數(shù)據(jù)*/

al_empno = (FBFR32 *)rqst->data;

EXEC SQL select ename into :ac_ename from EMP where empno=:al_empno;

if(sqlca.sqlcode!=0)

{

userlog("select from EMP failure,sqlca.sqlcode=%ldn",sqlca.sqlcode);

tpreturn( TPFAIL, 0, rqst->data, 0, 0 );

}

/*把取出的結(jié)果返回給客戶端*/

strcpy(rqst->data,ac_ename);

tpreturn( TPSUCCESS, 0, rqst->data, 0, 0 );

}

四、編寫客戶端程序: testcli.c

功能:調(diào)用TUXEDO服務(wù)端的服務(wù)TEST,取EMPNO=1000所對應(yīng)的ENAME的值,并顯示出來

#i nclude

#i nclude "atmi.h"

main(argc, argv)

{

long reqlen=1024;

char *reqbuf;

/* 與TUXEDO服務(wù)端建立連接 */

if (tpinit((TPINIT *) NULL) == -1)

{

(void) fprintf(stderr, "Tpinit failedn");

exit(1);

}

/* 分配發(fā)送緩沖區(qū)*/

reqbuf = (char *)tpalloc("STRING",NULL,reqlen);

if ( reqbuf == (char *)NULL)

{

printf("tpalloc failedn");

tpterm();

}

strcpy(reqbuf,"1000");

/*調(diào)用TUXEDO的服務(wù)TEST*/

if (tpcall("TEST", (char *)reqbuf, 0L, (char **)&reqbuf, (long *)&reqlen, 0< 0 )

{

printf("tpcall failed,tperrno=%ld,tperrtext=%sn",tperrno,tpstrerror(tperrno));

tpfree(reqbuf);

tpterm();

exit(1);

}

printf("name=%sn",reqbuf);

tpfree(reqbuf);

tpterm();

return(0);

}

五、編譯服務(wù)端程序

1.用INformIX的esql把test.pc 文件預(yù)編譯成test.c文件

/usr/tuxedo/simpdb/esql -c test.pc -I$INformIXDIR/incl/esql

2.用buildserver把test.c編譯成可執(zhí)行文件,注意-r 后帶的INformIX-DSHC與RM文件中的一致。

/usr/tuxedo/simpdb/buildserver -o simpserv -f simpserver.c -r INformIX-DSHC -s TEST

六、編譯客戶端程序

/usr/tuxedo/simpdb/buildclient -o testcli -f testcli.c

七、用 tmboot –y 啟動TUXEDO,應(yīng)能看到所有的SERVER都啟動成功.這時,我們的服務(wù)端程序test 會自動與INformIX數(shù)據(jù)庫建立連接,并一直保持這個連接,直到TUXEDO系統(tǒng)或INformIX數(shù)據(jù)庫關(guān)閉.所以在我們的程序test.cp中看不到與數(shù)據(jù)庫連接的語句,因?yàn)楝F(xiàn)在與數(shù)據(jù)庫的連接由TUXEDO自動管理.

/usr/tuxedo/simpdb/ tmboot -y

exec TMS_INformIX -A :

process id=1072 ... Started.

exec TMS_INformIX -A :

process id=528 ... Started.

exec test -A :

process id=876 ... Started.

八、運(yùn)行客戶端程序,應(yīng)能看到服務(wù)端返回的結(jié)果

/usr/tuxedo/simpdb/ testcli

name=bill

到此,整個配置過程就大功告成了.INformIX的其他版本的配置及在其他操作系統(tǒng)上的配置基本與本文所述差不多,差別主要在RM文件中所連的庫文件可能會不樣.使用esql -libs 命令得到應(yīng)用所需的數(shù)據(jù)庫動態(tài)連接庫.再加上INformIX支持XA的庫libinfxxa.a,注意在INformIX9.13之后,libinfxxa.a 的名字變了,不支持多線程的為libifxa.a,支持多線程的為libthxa.a。

如在環(huán)境為:AIX 4.3.3, Tuxedo7.1, Informix Dynamic Server 9.21, Esql/C 9.51 中RM為:

INformIX-ONLINE:infx_xa_switch:${INformIXDIR}/lib/esql/libifxa.a -L${INformIXDIR}/lib -L${INformIXDIR}/lib/esql -lifsql -lifasf -lifgen -lifos -lifgls -lnetstub -lc_r -ldl -ltli_r -lm_r ${INformIXDIR}/lib/esql/checkapi.o -lifglx

在環(huán)境為:AIX 4.3.3, Tuxedo6.5, Informix7.3中RM為:

INformIX-OnLine:infx_xa_switch:${INformIXDIR}/lib/esql/libinfxxa.a -L${INformIXDIR}/lib -L${INformIXDIR}/lib/esql -lixsqlshr -lixasfshr -lixgenshr -lixosshr -lixglsshr ${INformIXDIR}/lib/esql/checkapi.o -lixglx

如果TMS_INformIX啟動不成功,查看ULOG文件,根據(jù)ULOG文件的信息進(jìn)行排錯.

作者:徐春金????轉(zhuǎn)貼自:http://www.91talk.net

發(fā)表評論

標(biāo)題(可選)

內(nèi)容*

驗(yàn)證碼*

&nbsp

稱呼*

郵箱地址(可選)

個人主頁(可選)

總結(jié)

以上是生活随笔為你收集整理的tuxedo连接mysql_TUXEDO与INFORMIX数据库的互连的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费无码不卡视频在线观看 | 国模无码一区二区三区 | 亚洲精品美女久久久 | 日韩高清在线 | 亚洲资源av| 国产欧美精品区一区二区三区 | www日韩视频| 天天鲁一鲁摸一摸爽一爽 | av免费网站 | 国产精品理论片在线观看 | 国产一二三在线 | 欧美激情精品久久久久久蜜臀 | 特黄大片又粗又大又暴 | av一级黄色 | 亚洲专区在线 | 亚洲欧美日韩精品色xxx | 一个色综合导航 | 永久免费av无码网站性色av | 调教女m荡骚贱淫故事 | 国产美女永久无遮挡 | 91 久久 | 黄色国产一区二区 | 无限国产资源 | 少妇不卡视频 | 蜜桃导航-精品导航 | 亚洲九九爱 | 岳睡了我中文字幕日本 | 欧美日韩蜜桃 | 免费黄色小视频网站 | 少妇精品久久久一区二区三区 | 午夜极品视频 | 亚洲综合av一区二区 | 久草高清视频 | 色播在线观看 | 国产精品大屁股白浆一区 | 亚洲男女 | 一区精品在线观看 | 久久精品国产av一区二区三区 | 三级性生活视频 | 成人国产精品免费观看动漫 | 中文字幕一二区 | 国产毛片aaa | 狠狠干天天色 | 国产免费内射又粗又爽密桃视频 | 催眠调教艳妇成肉便小说 | 91在线视频在线观看 | 爱情岛论坛永久入址在线 | 日本午夜精华 | 口爆吞精一区二区三区 | 欧美日韩一区电影 | av一级二级| 午夜小视频在线播放 | 婷婷丁香综合 | 污污视频免费网站 | 99精品一区二区三区无码吞精 | 国产成人+综合亚洲+天堂 | 男女插插插视频 | 欧美另类高清 | 六月婷婷激情 | 天天看天天摸天天操 | 国产麻豆xxxvideo实拍 | 国产男同gay网站 | h网站在线观看 | 国产人成 | 亚洲欧洲国产视频 | 少妇被又大又粗又爽毛片久久黑人 | 91麻豆精品国产91久久久无需广告 | 午夜免费观看 | 男女床上拍拍拍 | 狠狠做深爱婷婷久久综合一区 | 中国美女性猛交 | 国产xxxxx在线观看 | 狠久久| 日本成人一区二区三区 | 欧美三级大片 | 成人动漫免费观看 | 色妇网| 香港三日本8a三级少妇三级99 | 99riAv国产精品无码鲁大师 | a一级黄色 | 成人h动漫精品一区二区下载 | 免费做a爰片77777 | 久久一级免费视频 | www.日本在线视频 | 亚洲成年人av | 淫综合网 | 国产毛片视频网站 | 色精品| 欧美激情电影一区二区 | 综合激情亚洲 | 国产无人区码熟妇毛片多 | 久久久国产精品一区二区三区 | 免费网站黄色 | 91精品国产91久久久久久黑人 | 国产精选一区 | 毛利兰被扒开腿做同人漫画 | 亚洲精品一区二区三区四区 | 精品国产户外野外 | 蜜桃av一区二区 |