Skip to content

Instantly share code, notes, and snippets.

@changjie-lin
Created February 23, 2016 11:29
Show Gist options
  • Save changjie-lin/f5dc824242b01d579955 to your computer and use it in GitHub Desktop.
Save changjie-lin/f5dc824242b01d579955 to your computer and use it in GitHub Desktop.
standalone version of poolTimeout.js
var oracledb = require('oracledb');
var async = require('async');
var dbConfig = require('./dbconfig.js');
async.waterfall(
[
function(callback)
{
var credential =
{
user : dbConfig.user,
password : dbConfig.password,
connectString : dbConfig.connectString,
poolMin : 1,
poolMax : 5,
poolIncrement : 2,
stmtCacheSize : 23
};
oracledb.createPool(credential, callback);
},
function(pool, callback)
{
pool.getConnection( function(err, conn1) {
if (err)
return callback(err);
else
{
console.log("-- 1st connection created.");
return callback(null, conn1, pool);
}
});
},
function(conn1, pool, callback) {
pool.getConnection( function(err, conn2) {
if (err)
return callback(err);
else
{
console.log("-- 2nd connection created.");
return callback(null, conn1, conn2, pool);
}
});
},
function(conn1, conn2, pool, callback) {
pool.getConnection( function(err, conn3) {
if (err)
return callback(err);
else
{
console.log("-- 3rd connection created.");
return callback(null, conn1, conn2, conn3, pool);
}
});
},
function(conn1, conn2, conn3, pool, callback) {
conn1.release(function(err) {
if (err)
return callback(err);
else
{
console.log("-- 1st connection released.");
return callback(null, conn2, conn3, pool);
}
});
},
function(conn2, conn3, pool, callback) {
conn2.release(function(err) {
if (err)
return callback(err);
else
{
console.log("-- 2nd connection released.");
return callback(null, conn3, pool);
}
});
},
function(conn3, pool, callback) {
conn3.release(function(err) {
if (err)
return callback(err);
else
{
console.log("-- 3rd connection released.");
return callback(null, pool);
}
});
},
function(pool, callback) {
setTimeout(function() {
return callback(null, pool);
}, 7000);
},
function(pool, callback) {
pool.getConnection( function(err, conn4) {
if (err)
return callback(err);
else
{
console.log("-- 4th connection created.");
return callback(null, conn4, pool);
}
});
},
function(conn4, pool, callback) {
conn4.release(function(err) {
if (err)
return callback(err);
else
{
console.log("-- 4th connection released.");
return callback(null, pool);
}
});
},
function(pool, callback) {
pool.terminate( callback );
}
],
function(err)
{
if (err) {
console.error("In waterfall error cb: ==>", err, "<==");
} else {
console.log("DONE!");
}
}
);
@changjie-lin
Copy link
Author

This is the output on my machine:
-- 1st connection created.
-- 2nd connection created.
-- 3rd connection created.
-- 1st connection released.
-- 2nd connection released.
-- 3rd connection released.
-- 4th connection created.
-- 4th connection released.
DONE!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment