【发布时间】: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
如何捕获并记录错误?
编辑:
【问题讨论】:
-
记录在案,这已在重复帖子github.com/oracle/node-oracledb/issues/1342中解决