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环境下工作。连接字符串具有连接到远程DB的URL。现在,如果我的用户名/密码不正确/ null,我能够看到该错误。但是,如果服务器已关闭,则处理错误的部分不会进入。如何捕获服务器关闭错误?
任何线索都会有所帮助。 TIA。
答案 0 :(得分:0)
可能正在等待TCP超时。您可以使用OS网络配置,和/或配置Oracle Net层(处理应用程序和数据库之间的通信)。
创建文件$TNS_ADMIN/sqlnet.ora
(不要忘记设置TNS_ADMIN
以便阅读!)然后您可以配置SQLNET.OUTBOUND_CONNECT_TIMEOUT
。
根据您的应用程序可用性要求,您还可以配置各种其他选项,例如SQLNET.RECV_TIMEOUT
和SQLNET.SEND_TIMEOUT
。可能还有其他您感兴趣的选项。最后,您可能需要创建tnsnames.ora
文件来配置数据库服务设置('ENABLE=BROKEN
')。