Hi Wenjun, So you want to add code in the CLI layer to do something when a session is setup ? If so , set a breakpoint at : ContextCli::beginSession . Thanks Sandhya
-----Original Message----- From: Zhu, Wen-Jun [mailto:[email protected]] Sent: Tuesday, January 23, 2018 8:13 PM To: [email protected] Subject: Where is the session? Hi, I'd like to do something when a session opens, i.e., when a client(like trafci) connects to the Trafodion server. I thought it was class ContextCli, as the following stacks showed: #0 ContextCli::ContextCli (this=0x7f3286f97260, cliGlobals=0x2b0f2c0) at ../cli/Context.cpp:175 #1 0x00007f329afc1f2d in CliGlobals::init (this=0x2b0f2c0, espProcess=0, statsGlobals=0x0) at ../cli/Globals.cpp:241 #2 0x00007f329afc154b in CliGlobals::CliGlobals (this=0x2b0f2c0, espProcess=0) at ../cli/Globals.cpp:113 #3 0x00007f329afc2a8f in CliGlobals::createCliGlobals (espProcess=0) at ../cli/Globals.cpp:477 #4 0x00007f329affd116 in CliNonPrivPrologue () at ../cli/CliExtern.cpp:891 #5 0x00007f329affd62c in SQL_EXEC_ClearDiagnostics (statement_id=0x0) at ../cli/CliExtern.cpp:1162 #6 0x00007f329d90d44f in SRVR::WSQL_EXEC_ClearDiagnostics (statement_id=0x0) at SQLWrapper.cpp:141 #7 0x0000000000585e70 in odbc_SQLSvc_InitializeDialogue_ame_ (objtag_=0x2afb820, call_id_=0x2afb878, userDesc=0x7f3287a01750, inContext=0x7f3287a00bb0, dialo gueId=63314812) at SrvrConnect.cpp:2170 #8 0x0000000000523e6d in SQLCONNECT_IOMessage (objtag_=0x2afb820, call_id_=0x2afb878) at Interface/odbcs_srvr.cpp:625 #9 0x00000000005262fd in DISPATCH_TCPIPRequest (objtag_=0x2afb820, call_id_=0x2afb878, operation_id=3001) at Interface/odbcs_srvr.cpp:1865 #10 0x0000000000467d68 in BUILD_TCPIP_REQUEST (pnode=0x2afb820) at ../Common/TCPIPSystemSrvr.cpp:606 #11 0x0000000000467caf in PROCESS_TCPIP_REQUEST (pnode=0x2afb820) at ../Common/TCPIPSystemSrvr.cpp:584 #12 0x00000000004b7370 in CNSKListenerSrvr::CheckTCPIPRequest (this=0x29a91a0, ipnode=0x2afb820) at Interface/Listener_srvr.cpp:64 #13 0x00000000004c928e in CNSKListenerSrvr::tcpip_listener (arg=0x29a91a0) at Interface/linux/Listener_srvr_ps.cpp:452 #14 0x00007f329b29166e in sb_thread_sthr_disp (pp_arg=0x2ad24f0) at threadl.cpp:270 #15 0x00007f329e023aa1 in start_thread () from /lib64/libpthread.so.0 #16 0x00007f329b594bcd in clone () from /lib64/libc.so.6 And #0 ContextCli::ContextCli (this=0x7f3286f9d200, cliGlobals=0x2b0f2c0) at ../cli/Context.cpp:175 #1 0x00007f329afc2e26 in CliGlobals::createContext (this=0x2b0f2c0, newContext=@0x7f3275acd508) at ../cli/Globals.cpp:524 #2 0x00007f329af600e2 in SQLCLI_CreateContext (cliGlobals=0x2b0f2c0, contextHandle=0x7f3275acdb8c, sqlAuthId=0x0, mustBeZero=0) at ../cli/Cli.cpp:1201 #3 0x00007f329affd835 in SQL_EXEC_CreateContext (context_handle=0x7f3275acdb8c, sqlAuthId=0x0, forFutureUse=0) at ../cli/CliExtern.cpp:1261 #4 0x00007f329d90d5ea in SRVR::WSQL_EXEC_CreateContext (context_handle=0x7f3275acdb8c, sqlAuthId=0x0, future=0) at SQLWrapper.cpp:178 #5 0x000000000057c470 in SessionWatchDog (arg=0x0) at SrvrConnect.cpp:376 #6 0x00007f329e023aa1 in start_thread () from /lib64/libpthread.so.0 #7 0x00007f329b594bcd in clone () from /lib64/libc.so.6 But it is created only for the first time. So it is not the place to handle the session, right? So my question is, where dose the session-handling class reside? Thanks. Regards Wenjun Zhu
