<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无码一区二区三区牛牛| 伊人免费在线观看高清版| 亚洲精品成人网站在线播放 | 老司机69精品成免费视频| 亚洲黄色免费电影| 免费成人在线观看| 99re6在线精品视频免费播放 | 色偷偷亚洲第一综合网| 亚洲国产一成人久久精品| 少妇高潮太爽了在线观看免费| 水蜜桃视频在线观看免费| 久久久久久亚洲精品成人| 国产精品无码一区二区三区免费 | 三年片在线观看免费大全电影| 亚洲AV无码片一区二区三区| 亚洲AV无码成人网站久久精品大 | 国产yw855.c免费视频| 久久永久免费人妻精品下载 | 全部免费毛片在线播放| 深夜A级毛片视频免费| 亚洲精品网站在线观看你懂的| 亚洲精品岛国片在线观看| 久久精品网站免费观看| 国产99视频精品免费专区| 成人亚洲国产精品久久| 亚洲人成综合在线播放 | 亚洲第一成年网站视频| 亚洲精品福利网泷泽萝拉| 国产亚洲美女精品久久久久狼| 免费无码又爽又高潮视频| 亚洲一区二区三区免费观看| A国产一区二区免费入口| 精品在线观看免费| 亚洲偷自拍另类图片二区| 久久久亚洲欧洲日产国码aⅴ| 国产亚洲精品线观看动态图| 四虎影库久免费视频| 18禁超污无遮挡无码免费网站国产 | 你懂得的在线观看免费视频| 亚洲aⅴ无码专区在线观看春色 |