Oracle中靜態註冊監聽的問題

問題描述:

         用ASP.net基於oracle寫的BS web應用程序,出現一個困擾很久的問題,就是過一段時間就會莫名其妙地出現無法連接數據庫的問題。可是直接通過sqlplus本地連接又是可以的。只能是重啓oracle開頭的所有服務,連接成功。

查找原因:

        剛開始以爲是程序的問題,數據庫開了沒關,查找了很久也沒有找到。又以爲是iis的問題,重啓iis、設置連接數、配置連接池什麼的都不行。後來偶然發現是因爲服務器重啓導致的,每次重啓之後就發現網站無法連接的問題,有幾次試着重啓tnslisener監聽,發現問題解決。上網發貼問了好久,有個熱心人回答試着在listener.ora中加入靜態註冊。

         於是在服務器重啓之後,利用命令lnsrctl status 查看監聽程序,果然是服務orcl沒有啓動。在listener.ora中加入靜態註冊之後,再重啓服務器連接正常。

解決方案:

      listener.ora完整文件,黑體部分是後來新增的靜態註冊文件。

      # listener.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
      # Generated by Oracle configuration tools.


SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
    (SID_DESC =
      (SID_NAME = orcl)
      (ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
      (GLOBAL_DBNAME = orcl)
    )

  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.13)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = D:\app\Administrator

一些猜測:

         我本機的配置是 win7 32位+oracle 11g,沒有出現這個問題。

          服務器的配置是windows server 64位+oracle 11g 32 位,會出現這個問題,有可能是系統與數據庫版本兼容的問題?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章