Thanks for the question, Raju.
Asked: June 12, 2020 - 8:53 am UTC
Last updated: January 11, 2022 - 3:46 am UTC
Version: oracledb@4.2.0
Viewed 10K+ times! This question is
You Asked
Error: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory".
You must have 64-bit Oracle client libraries in LD_LIBRARY_PATH, or configured with ldconfig.
Above is the issue on running function on aws lambda.
// lib/libclntsh.so is available.
I have added the path also the code is working locally on windows machine. but not on aws lambda.
'use strict';
process.env.ORA_SDTZ = 'UTC';
process.env.LD_LIBRARY_PATH = '$LAMBDA_RUNTIME_DIR:$LAMBDA_RUNTIME_DIR/lib:$LAMBDA_TASK_ROOT:$LAMBDA_TASK_ROOT/lib';
const oracledb = require('oracledb');
oracledb.outFormat = oracledb.OUT_FORMAT_OBJECT;
module.exports.getmrl = async event => { //console.log(event); console.log(process.env.LAMBDA_RUNTIME_DIR, process.env.LAMBDA_TASK_ROOT);
// console.log('LD path ', process.env.LD_LIBRARY_PATH);
return getMrl();
};
async function getMrl() {
let connection;
try {
connection = await oracledb.getConnection({
user : process.env.DB_USER,
password : process.env.DB_PASS,
connectString : process.env.DB_CON_STRING
});
const result = await connection.execute(
`select M.MRL,I.DOC_URL from appdbdev.IA_MRL M INNER JOIN appdbdev.IA_MRL_DOCUMENTS I USING(IA_ID) ORDER BY M.ID`
);
console.log('result ::', result.rows);
return { statusCode : 200, data : result.rows };
} catch (err) {
console.log('getmrl :: error ::', err);
console.error(err);
return { statusCode : 500, err : err };
} finally {
if (connection) {
try {
await connection.close();
} catch (err) {
console.log('getmrl :: connection :: catch', err);
console.error(err);
return { statusCode : 401, err : err };
}
}
}
}
and Connor said...
Add $ORACLE_HOME/lib to your LD_LIBRARY_PATH
[oracle@db19 dbhome_1]$ cd $ORACLE_HOME
[oracle@db19 dbhome_1]$ find . -name "libcl*"
./lib/libclntsh.so.10.1
./lib/libclntshcore.so
./lib/libclsr19.a
./lib/libclntsh.so
./lib/libclsnsjni19.so
./lib/libclsce19.so
./lib/libclscest19.a
./lib/libclntshcore.so.19.1
./lib/libclsra19.so
./lib/libclscred19.so
./lib/libclient19.a
./lib/libclntst19.a
./lib/libclntsh.so.19.1
./lib/libclntsh.so.11.1
./lib/libclntsh.so.12.1
./lib/libclntsh.so.18.1
Rating
(1 rating)
Is this answer out of date? If it is, please let us know via a Comment