簡體   English   中英

節點 oracledb 未檢測服務器是否關閉

[英]Node oracledb not detecting if server is shutdown

oracledb.getConnection({
      user          : "",
      password      : "",
      connectString : ""
      },
      function(err, connection) {
      if (err) {
          console.log("Error while trying to connect to DB ", err.message);
          callback(err.message);
      } else {
          //My Logic
      }
      });

我正在使用上面的(偽)代碼連接到遠程 oracledb。 我在windows環境下工作。 連接字符串具有連接到遠程數據庫的 URL。 現在,如果我的用戶名/密碼不正確/為空,我可以看到該錯誤。 但是,如果服務器關閉,則不會進入處理錯誤的部分。 如何捕獲服務器關閉錯誤?

任何線索都會有所幫助。 TIA。

它可能正在等待 TCP 超時。 您可以使用您的 OS 網絡配置,和/或配置 Oracle Net 層(它處理應用程序和數據庫之間的通信)。

創建一個文件$TNS_ADMIN/sqlnet.ora (不要忘記設置TNS_ADMIN以便讀取它!)然后您可以配置SQLNET.OUTBOUND_CONNECT_TIMEOUT

根據您的應用程序可用性要求,您還可以配置各種其他選項,如SQLNET.RECV_TIMEOUTSQLNET.SEND_TIMEOUT 可能還有您感興趣的其他選項。 最后,您可能想要創建一個tnsnames.ora文件來配置數據庫服務設置( ' ENABLE=BROKEN ' )。

19c Easy Connect Plus語法對於設置其中一些選項很有用,例如每 5 分鍾發送一次 keepalive 探測以檢測連接是否仍然有效您可以使用像 'mydbhost.example.com/myservicename?expire_time= 這樣的連接字符串5' 所以你不需要使用 tnsnames.ora 和 sqlnet.ora 文件來進行一些常見的設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM