节点oracledb未检测到服务器是否已关闭

时间:2017-07-31 06:36:40

标签: oracledb node-oracle oracledb-npm

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。

1 个答案:

答案 0 :(得分:0)

可能正在等待TCP超时。您可以使用OS网络配置,和/或配置Oracle Net层(处理应用程序和数据库之间的通信)。

创建文件$TNS_ADMIN/sqlnet.ora(不要忘记设置TNS_ADMIN以便阅读!)然后您可以配置SQLNET.OUTBOUND_CONNECT_TIMEOUT

根据您的应用程序可用性要求,您还可以配置各种其他选项,例如SQLNET.RECV_TIMEOUTSQLNET.SEND_TIMEOUT。可能还有其他您感兴趣的选项。最后,您可能需要创建tnsnames.ora文件来配置数据库服务设置('ENABLE=BROKEN')。