在ubuntu 14上使用NodeJS oracledb时如何避免'ORA-21561:OID生成失败'

时间:2016-07-13 15:49:25

标签: node.js oracle

我正在设置一个Ubuntu实例,以成为一个远程NodeJS oracle客户端。

节点版本是4.4.7

我已经安装了

oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm,

oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm,

和oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm软件包

我已经安装了oracledb节点包:sudo npm install -g oracledb

我已经安装了libaio:sudo apt-get install libaio1 我已经按如下方式配置了我的dbconfig.js:

module.exports = {
  user          : process.env.NODE_ORACLEDB_USER || "myID",

  password      : process.env.NODE_ORACLEDB_PASSWORD || "myPASS",

  connectString : process.env.NODE_ORACLEDB_CONNECTIONSTRING || "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=my_remote_host)(Port=1560))(CONNECT_DATA=(SID=srptprd)(SERVICE_NAME = my_service_name)))",

  externalAuth  : process.env.NODE_ORACLEDB_EXTERNALAUTH ? true : false
};

我已经按如下方式配置了我的connect.js:

var oracledb = require('oracledb');
var dbConfig = require('./dbconfig.js');

oracledb.getConnection(
  {
    user          : dbConfig.user,
    password      : dbConfig.password,
    connectString : dbConfig.connectString
  },
  function(err, connection)
  {
    if (err) {
      console.error(err.message);
      return;
    }
    console.log('Connection was successful!');

    connection.release(
      function(err)
      {
        if (err) {
          console.error(err.message);
          return;
        }
      });
  });

当我运行“node connect.js”时,我收到此错误:

ORA-21561: OID generation failed

我该怎么做才能克服这个问题?

2 个答案:

答案 0 :(得分:1)

要解决此问题,我所要做的就是将服务器的实际主机名添加到/ etc / hosts文件中:127.0.0.1 localhost my_host_name

答案 1 :(得分:0)

可以通过对主机文件的简单编辑来解决此问题。

  • 通过在local-terminal

    中运行hostname来查找本地计算机的名称

    $hostname

  • 编辑本地主机文件

    $vi /etc/hosts

    假设$ hostname将local_machine_name附加到localhost,

    127.0.0.1 localhost local_machine_name

按esc键入wq!保存

干杯!