Hello,
We recently started seeing slow response times when calling createPool from our NodeJs application to our Oracle DB. Previously these calls were taking 1-2 seconds and now they are taking 6-8 seconds. Our NodeJs app is deployed as a AWS Lambda function.
We have engaged our DBAs, but they are having trouble finding any logs corresponding to the createPool method call.
We're looking for suggestions on how to pinpoint the source of the slowness. Is it our NodeJs code? The Oracle DB? Or perhaps it's a network issue. Any help would be appreciated.
Below is the snippet of code that is creating the pool:
var AWSXRay = require('aws-xray-sdk');
const oracleDB = require("oracledb");
const mysql = require("mysql2/promise");
const getConfig = require("./dbconfig.js");
const getDb = (dbType) => {
const databases = {
oracleDB: oracleDB,
mysql: mysql,
};
return databases\[dbType\];
};
async function connector(_dbName, dbType, state) {
const db = getDb(dbType);
const seg = AWSXRay.getSegment();
let status;
try {
!state\[\_dbName\] ? (state\[\_dbName\] = {}) : null;
if (!state\[\_dbName\].dbconfig){
let sub = seg.addNewSubsegment('getConfig');
state\[\_dbName\].dbconfig = await getConfig(\_dbName, dbType);
sub.close();
}
if( !state\[\_dbName\].pool)
{
let sub = seg.addNewSubsegment('createPool');
state\[\_dbName\].pool = await db.createPool(state\[\_dbName\].dbconfig);
sub.close();
}
status = "success";
} catch (error) {
status = "\[Connection creation error\] Error:" + error.message;
console.error(status);
}
return status;
}
module.exports = connector;