Javascript 错误:ORA-12545在Docker容器上,但并非总是发生
我在docker容器上运行了这个脚本,该容器每两分钟调用一次oracle DB,并将结果保存在一个文件中。问题是,有时脚本没有在文件中写入任何内容,在查看该容器的docker日志后,我碰巧意识到它抛出了Javascript 错误:ORA-12545在Docker容器上,但并非总是发生,javascript,oracle,docker,Javascript,Oracle,Docker,我在docker容器上运行了这个脚本,该容器每两分钟调用一次oracle DB,并将结果保存在一个文件中。问题是,有时脚本没有在文件中写入任何内容,在查看该容器的docker日志后,我碰巧意识到它抛出了ORA-12545错误。但并非每次都是如此,因为还有其他一些时候它确实能正常工作 2020-0-16 21:37:57:557 Error: ORA-12545: Connect failed because target host or object does not exist 2020-0-
ORA-12545
错误。但并非每次都是如此,因为还有其他一些时候它确实能正常工作
2020-0-16 21:37:57:557 Error: ORA-12545: Connect failed because target host or object does not exist
2020-0-16 21:39:59:753 Connection succeeded.
2020-0-16 21:41:57:336 Error: ORA-12545: Connect failed because target host or object does not exist
正如您所看到的,在21:39:59
时,它可以工作,但前后两分钟都不能工作
编辑(添加脚本)
“严格使用”;
const oracledb=require('oracledb');
const dotenv=require('dotenv');
const loggerWrite=require('./loggerWrite');
dotenv.config();
oracledb.outFormat=oracledb.OBJECT;
const GetOracleDB=async(查询、资源、前缀)=>{
让连接;
试一试{
//获取非池连接
connection=等待oracledb.getConnection({
用户:process.env.ORACLE\u用户,
密码:process.env.ORACLE\u密码,
connectString:process.env.ORACLE\u CONNECT\u字符串
});
让结果;
//默认数组输出格式
结果=等待连接。执行(查询);
让dataToSend={'data':result.rows,'recurso':resource};
for(让index=0;index
您可以添加脚本吗?当然可以!我真傻。你能加上你的剧本吗?当然!我真蠢。
'use strict';
const oracledb = require('oracledb');
const dotenv = require('dotenv');
const loggerWrite = require ('./loggerWrite');
dotenv.config();
oracledb.outFormat = oracledb.OBJECT;
const GetOracleDB = async (query,resource,prefix)=> {
let connection;
try {
// Get a non-pooled connection
connection = await oracledb.getConnection( {
user : process.env.ORACLE_USER,
password : process.env.ORACLE_PASSWORD,
connectString: process.env.ORACLE_CONNECT_STRING
});
let result;
// Default Array Output Format
result = await connection.execute(query);
let dataToSend ={'data' : result.rows, 'recurso':resource };
for (let index = 0; index < result.rows.length; ++index) {
let date = new Date();
let dataToSend ={'time':date,'data' : result.rows[index], 'recurso':resource };
loggerWrite(dataToSend,resource,prefix);
}
} catch (err) {
const date = new Date();
console.log(date.getFullYear()+"-"+date.getMonth()+"-"+date.getDate()+" "+date.getHours(-3)+":"+date.getMinutes()+":"+date.getSeconds()+":"+date.getMilliseconds() + " "+ err);
} finally {
if (connection) {
try {
// Note: connections should always be released when not needed
await connection.close();
const date = new Date();
console.log(date.getFullYear()+"-"+date.getMonth()+"-"+date.getDate()+" "+date.getHours(-3)+":"+date.getMinutes()+":"+date.getSeconds()+":"+date.getMilliseconds() + " Conexión Cerrada");
} catch (err) {
console.log(new Date() + " " + err);
}
}
}
}