2017-07-31 42 views
0
 
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。現在,如果我的用戶名/密碼不正確/ null,我能夠看到該錯誤。但是,如果服務器關閉,那麼處理錯誤的部分就不會進入。如何捕獲服務器關閉錯誤?節點oracledb沒有檢測到服務器是否關機

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

回答

0

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

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

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

+0

感謝Chris對node-oracledb的持續支持。 – Nigilan

+0

謝謝。我已經在node-oracledb手冊中添加了一些註釋:https://github.com/oracle/node-oracledb/blob/dev-2.0/doc/api.md#connectionha –

相關問題