Skip to content

Instantly share code, notes, and snippets.

var db = new odbc.Database()
var recursive = function (stmt) {
request/response
stmt.bindSync
stmt.execute {
........
ODBC::New
ODBC::CreateConnection
ODBC::UV_CreateConnection
ODBC::UV_AfterCreateConnection
ODBCConnection::New
ODBCConnection::Open
ODBCConnection::UV_Open
ODBCConnection::UV_AfterOpen
ODBCConnection::CreateStatementSync
ODBCStatement::PrepareSync
with the library from my odbcinst.ini file:
odbc.library = '/fast/db2inst1/sqllib/lib/libdb2.so'
i get this:
=======================
node-odbc: error loading ODBC library: /fast/db2inst1/sqllib/lib/libdb2.so.so: cannot open shared object file: No such file or directory
/home/andrew/dma/prd/node_modules/odbc/lib/odbc.js:48
throw new Error("Could not load library. You may need to specify full "
^
works
db.query(sqlc,["<qt>"+str+"</qt>",resp_ts.toString()],function(err) {
fails sometimes - at least, I think this is what's failing - the SQL error comes from the execute
stmt.bind(["<qt>"+str+"</qt>",resp_ts.toString()],function() {
17 { state: '22005',
error: '[node-odbc] Error in some module',
message: '[unixODBC][IBM][CLI Driver][DB2/LINUXX8664] SQL0420N Invalid character found in a character string argument of the function "DECFLOAT". SQLSTATE=22018\n' }
17 1 240 <qt><trade><cvol>29922533</cvol><datetime>2013-04-30T12:27:19-04:00</datetime><exch>The Trade Reporting Facility LLC</exch><last>32.82</last><symbol>MSFT</symbol><timestamp>1367339239</timestamp><vl>100</vl><vwap>32.5603</vwap></trade></qt>
17 00000000: 3c71 743e 3c74 7261 6465 3e3c 6376 6f6c <qt><trade><cvol
00000010: 3e32 3939 3232 3533 333c 2f63 766f 6c3e >29922533</cvol>
00000020: 3c64 6174 6574 696d 653e 3230 3133 2d30 <datetime>2013-0
00000030: 342d 3330 5431 323a 3237 3a31 392d 3034 4-30T12:27:19-04
00000040: 3a30 303c 2f64 6174 6574 696d 653e 3c65 :00</datetime><e
00000050: 7863 683e 5468 6520 5472 6164 6520 5265 xch>The.Trade.Re
ODBC::New
ODBC::CreateConnection
ODBC::UV_CreateConnection
ODBC::UV_AfterCreateConnection
ODBCConnection::New
ODBCConnection::Open
ODBCConnection::UV_Open
ODBCConnection::UV_AfterOpen
ODBCConnection::CreateStatementSync
ODBCStatement::PrepareSync
ODBC::New
ODBC::CreateConnection
ODBC::UV_CreateConnection
ODBC::UV_AfterCreateConnection
ODBCConnection::New
ODBCConnection::Open
ODBCConnection::UV_Open
ODBCConnection::UV_AfterOpen
ODBCConnection::Query
ODBC::GetParametersFromArray
analysis of changing from:
node odbc 4.4 using db.query - does prepare/bind/exec every time - 2 days below - 4/26 and 4/29
node odbc 5.7 using prepare once - then bind/execute - 1 day below - 5/1
node odbc 5.9 using prepare once - then execute - 1 day below - 5/2
node odbc 5.10 using prepare once - then executeNonQuery - 1 day below - 5/3
each day roughly the same 3 million db2 calls in 6.5 hour day - all INSERTs
so days are comparable
top taken each day at same time
$ ps u -C db2sysc
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
db2inst1 1502 47.1 43.0 15119012 10626320 ? Sl 05:03 333:13 db2sysc 0
npm rebuild odbc
> odbc@0.6.8 preinstall /home/andrew/dma/prd/node_modules/odbc
> node-gyp configure build
make: Entering directory `/home/andrew/dma/prd/node_modules/odbc/build'
CXX(target) Release/obj.target/odbc_bindings/src/odbc.o
../src/odbc.cpp: In static member function ‘static v8::Local<v8::Object> ODBC::GetSQLError(SQLSMALLINT, SQLHANDLE, char*)’:
../src/odbc.cpp:868:58: error: expected ‘)’ before ‘;’ token
str = String::Concat(str, String::New(errorMessage);