<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    分享java帶來的快樂

    我喜歡java新東西

    穿透windows 防火墻 訪問oracle數(shù)據(jù)庫

    要使Oracle客戶端能正常連接到設(shè)置有防火墻的安裝在windows上的Oracle服務(wù)器,單開放一個(gè)1521或自定義的監(jiān)聽端口是不夠的。

      我們有的時(shí)候需要映射端口遠(yuǎn)程去訪問Oracle 數(shù)據(jù)庫,這里有個(gè)防火墻的問題,在unix 上沒有問題,但是在win 平臺(tái)上卻無法正確訪問,下面的可以解決這個(gè)問題,從網(wǎng)上找到有如下資料:

    資料一、

      近來由于工作需要,在Windows XP平臺(tái)上安裝了Oracle9i數(shù)據(jù)庫作為測(cè)試之用,一切正常。但當(dāng)客戶機(jī)連接服務(wù)器時(shí)卻總是超時(shí),我首先想到了防火墻,當(dāng)我打開1521端口時(shí),連接操作仍然失敗。我又懷疑網(wǎng)絡(luò)有問題,用telnet server_ip:1521嘗試,連接被接受,說明1521端口已經(jīng)被打開。 沒有辦法,查詢Oracle資料后才明白,network listener 只起一個(gè)中介作用,當(dāng)客戶連接它時(shí),它根據(jù)配置尋找到相應(yīng)的數(shù)據(jù)庫實(shí)例進(jìn)程,然后spawned一個(gè)新的數(shù)據(jù)庫連接,這個(gè)連接端口由network listener傳遞給客戶機(jī),此后客戶機(jī)就不再和打交道了,即使listener停止了工作。這個(gè)新的連接端口是不可預(yù)知的,因而會(huì)被防火墻阻止。

      Windows Socket2 規(guī)范有一個(gè)新的特性,就是Shared Socket 所謂共享套接字是指一個(gè)進(jìn)程共享另一個(gè)進(jìn)程的套接字(詳見MSDN相關(guān)參考)。如果讓network listener與數(shù)據(jù)庫服務(wù)進(jìn)程共享套接字,那么連接端口就不會(huì)變化。

    如何設(shè)置Shared Socket?

    在注冊(cè)表:

    HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0

    上新建一個(gè)字符串值:

    USE_SHARED_SOCKET=true

    如果安裝了多個(gè)目錄,則每個(gè)類似的目錄都要設(shè)置:

    HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEx (x目錄編號(hào))

     設(shè)置后要求重新啟動(dòng)實(shí)例(只重啟listener發(fā)現(xiàn)沒有效果)

    資料二、

      Oracle客戶端連接服務(wù)器,首先去找1521監(jiān)聽端口,服務(wù)器的1521監(jiān)聽端口再向server process進(jìn)程發(fā)出請(qǐng)求,并返回一個(gè)隨機(jī)端口,返回給客戶端,客戶端再來連接這個(gè)端口。 這樣就給服務(wù)器上的防火墻設(shè)置帶來了麻煩,這個(gè)端口是隨機(jī)的,如何開放?

      windows 平臺(tái)上的這個(gè)問題成了一大難題,很多論壇都有人問,但很少有人能解決。 unix平臺(tái)不用擔(dān)心,系統(tǒng)自動(dòng)會(huì)解決這個(gè)問題. Matalink上提供了三種解決辦法,實(shí)際上USE_SHARED_SOCKET 是最有效最方便的。但經(jīng)過無數(shù)次實(shí)現(xiàn),仍然沒有成功,最后終于發(fā)現(xiàn)是Oracle 8.1.7bug 需要打補(bǔ)丁,升級(jí)到Oracle 8.1.7.1.2

    需要在MTS模式下(共享模式) Oracle默認(rèn)是專用模式。

    經(jīng)試驗(yàn)發(fā)現(xiàn),如果不在init文件中設(shè)參數(shù)的話,Oracle仍然會(huì)要求一個(gè)隨機(jī)端口和1521端口來共同通訊,只是這個(gè)隨機(jī)端口,并不隨客戶端會(huì)話和登錄的變化而變化,在沒有重啟服務(wù)器時(shí),是固定的。 (試驗(yàn)發(fā)現(xiàn),在專用模式下,每次連接,oracle服務(wù)器會(huì)按+1方式,提供一個(gè)非1521的端口)。 所以,還需要在init.ora文件的最后加上一條參數(shù):

     mts_dispatchers="(address=(protocol=tcp)(host=myoradb)(port=1521))(dispatchers=1)"

    這樣才真正實(shí)現(xiàn)只用一個(gè)端口,穿過防火墻。

    posted on 2008-12-19 23:28 強(qiáng)強(qiáng) 閱讀(730) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久亚洲高清观看| 国产麻豆一精品一AV一免费| 四虎影视精品永久免费网站| 美景之屋4在线未删减免费 | 久久久青草青青国产亚洲免观| 国产成人精品无码免费看| 亚洲国产综合在线| 亚洲精品国精品久久99热| 99re热精品视频国产免费| 亚洲av无码成人精品国产 | 国产成人精品123区免费视频| 国产一级黄片儿免费看| 亚洲六月丁香六月婷婷蜜芽| 国产乱辈通伦影片在线播放亚洲| 国产成人精品免费视频动漫| 一级毛片a免费播放王色电影| 久久久亚洲欧洲日产国码是AV| 免费人成视频在线观看视频| 1000部拍拍拍18免费网站| gogo免费在线观看| 亚洲av专区无码观看精品天堂| 亚洲欭美日韩颜射在线二| 我要看免费的毛片| 99精品视频在线观看免费专区| 青草青草视频2免费观看| 亚洲高清中文字幕| 亚洲人成图片小说网站| 日日AV拍夜夜添久久免费| 最近新韩国日本免费观看| 久久国产一片免费观看| 亚洲AV色欲色欲WWW| 亚洲福利电影在线观看| 亚洲区小说区图片区QVOD| 一本久久综合亚洲鲁鲁五月天| 一个人免费观看在线视频www| 黄网站免费在线观看| 精品国产福利尤物免费| 色噜噜噜噜亚洲第一| 亚洲小说图区综合在线| 亚洲欧洲在线播放| 亚洲精品国产成人|