Skip to Main Content

Programming Languages & Frameworks

Announcement

Testing banner

Slow response time for createPool method

User_OBYFROct 12 2021

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;

This post has been answered by User_OBYFR on Oct 15 2021
Jump to Answer
Comments
Post Details
Added on Oct 12 2021
1 comment
93 views