我们具有从AWS Lambda Function-> Oracle 11g RAC(Prem)进行的独特集成。
我们选择了运行时节点为v8的AWS Lambda,因此默认情况下尝试使用node-oracledb作为驱动程序。当node-oracledb的分支-> oracledb-for-lambda能够使AWS内部的功能与AWS内部的简单oracle DB之间的连接工作时,建立连接存在许多挑战。
但是,在原始环境中尝试将代码连接到本地Oracle 11g RAC集群时,代码中断了以下错误。错误如下:
ORA-21561: OID generation failed
VPC [{AWS Node Lambda}]->直接连接->在Prem n / w上-> Oracle RAC集群
附加说明: 添加了HOSTALIASES文件以进行名称解析
var oracledb = require('oracledb-for-lambda');
var os = require('os');
var fs = require('fs');
'use strict';
str_host = os.hostname() + ' localhost\n';
fs.writeFileSync(process.env.HOSTALIASES,str_host , function(err){
if(err) throw err;
});
var connAttr = {
user: "user",
password: "pass",
connectString: "connection string"
};
oracledb.getConnection(connAttr, function (err, connection) {
if (err) {
log.error("Error Log>>>>>: " + err.message);
return;
}
log.info('Connection was successful!' + connection);
connection.close(
function (err) {
if (err) {
log.error('Error while closing connection'+err.message);
return;
}
});
});
答案 0 :(得分:-1)
确保您提供的连接字符串采用以下格式
// server-ip:port /数据库名称