Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误:ORA-12545在Docker容器上,但并非总是发生_Javascript_Oracle_Docker - Fatal编程技术网

Javascript 错误:ORA-12545在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-

我在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-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);
      }
    }
  }
}