【问题标题】:Cannot catch the following oracle error in express: "ORA-24550: signal received"无法在 express 中捕获以下 oracle 错误:“ORA-24550:收到信号”
【发布时间】:2021-09-22 11:51:23
【问题描述】:

我有一个带有前端路由的 nodejs/express 设置和一个 breejs 每 X 秒运行一次计划任务。 其中一个任务连接到 Oracle 数据库(Windows 7 机器上的 11g Express Edition),然后执行某个查询。

示例代码:

const executeOracleQuery = async (sqlQuery, params) => {
  // Create connection
  try {
    const oracledb = require('oracledb');
    const conn = await oracledb.getConnection({
        user: params.user,
        password: params.password,
        connectString: `${params.host}:${params.port}/${params.database}`
    })
  } catch (error) {
    console.log(error.stack);
  }
  
  // Execute my query
  try {
    let data = await conn.execute(sqlQuery);
    await conn.close();
    return data;
  } catch (error) {
    console.log(error.stack);
  }
}

多次执行后,我的服务器总是崩溃(即使使用 try/catch)并且我收到以下错误:

ORA-24550: signal received: Unhandled exception: Code=c0000005 Flags=0

接着是:

Encountered exception while getting args for function:0x00007FFBE5937056
Encountered exception while getting args for function:0x00007FF7C9A98260
kpedbg_dmp_stack()+377<-kpeDbgCrash()+129<-kpeDbgSignalHandler()+125<-skgesig_Win_UnhandledExceptionFilter()+158<-0x00007FFBE19E53AC<-0x00007FFBE5937100<-0x00007FFBE591F306<-0x00007FFBE59335AF<-0x00007FFBE5894AAF<-0x00007FFBE593231E<-0x00007FF7CA403CF8<-0x00007FF7C9B7BFC2<-0x00007FF7C9BAE935<-0x00007FF7C9B9EFE8<-0x00007FF7C9BAF0BF<-0x00007FF7C9BD14F8<-0x00007FF7C9A94DA9<-0x00007FF7C9A99A78<-0x00007FF7C9A95368<-0x00007FF7C9BF49AD<-0x00007FF7CA9C0F30<-0x00007FFBE3587E94<-0x00007FFBE58F7AD1

如何捕获并记录错误?

编辑

【问题讨论】:

标签: node.js oracle express


【解决方案1】:

node-oracledb 包更新到 v5.2 解决了这个问题。

【讨论】:

    猜你喜欢
    • 2014-05-22
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多