Hi Michel, I am guessing here but does it have anything to do with SQLFreeHandle(SQL_HANDLE_DBC,self->dbc) in xdbodbc_connect ?
End of the day here in colombo and i am a bit too tired to try to odbc module right now. Fire a mail if you still can't get it to work after juggling with that and i will try to take a look at it during the weekend. BTW: what's your database? Michel Oosterbeek wrote: > Hi all, > > >>there is a function called xdbodbc_query in xdb_sql_odbc.c >>If you add a debug messeage to echo out the query that is be query that >>is being executed you will be able to pin point the error. >> > > It never gets there. But I did take up the advice mentioned above in the > part where the crash occurs: the file "xdb_sql_odbc.c". > I've added some debug messages to the function "xdbodbc_is_connected" > (because it seems to go wrong there - for code, se below). And the result I > got was SQL_INVALID_HANDLE. Correct me if I'm mistaking, but the handle is > created in "xdbodbc_connect", right? Still there's no sign of anything going > wrong there. But later, when at the end of that function it calls > "xdbodbc_is_connected", then it seems to go wrong anyway. How could those > earlier checks have been passed OK then? > The ODBC-environment is working OK, already several other programs are using > it. Also the username, password, etc. have been checked and are filled in > OK. I've also kept watch to the content of self->dbc throughout the process, > that also seems OK. > > I still think it's something simple that I am overlooking somehow.... > > Thanks, > > Michel > > ------------------------------ > > short xdbodbc_is_connected (XdbODBCBackend *self) { > static SQLCHAR buffer[255]; > SQLSMALLINT outlen ; > SQLRETURN ret; > if (!(self->dbc)) > return 0; > > ret = SQLGetInfo(self->dbc,SQL_DATA_SOURCE_NAME, > buffer,sizeof(buffer),&outlen); > > /* -= Start of the piece I included =- */ > > if (SQL_ERROR == ret){ > log_debug(ZONE, "ret contains SQL ERROR! "); > } /* end if */ > if (SQL_SUCCESS_WITH_INFO == ret){ > log_debug(ZONE, "ret contains SQL SUCCESS WITH INFO! "); > } /* end if */ > if (SQL_INVALID_HANDLE == ret){ > log_debug(ZONE, "ret contains SQL INVALID HANDLE! "); > } /* end if */ > if (SQL_SUCCESS == ret){ > log_debug(ZONE, "ret contains SQL SUCCESS! "); > } /* end if */ > > /* -= End of the piece I included =- */ > > if (!SQL_SUCCEEDED(ret)) > return 0; > > /* Also added this, but we never get here */ > log_debug(ZONE, "is_connected will return 1 :o)"); > > return 1; > } > > > > -= Original Message =- > > >>>Michel Oosterbeek wrote: >>> >>>Hi, >>> >>>Still having problems here. Right now I'm using: >>>- Red Hat 7.2 >>>- Jabber 1.4.1 >>>- xdb_sql >>>- db2 (I connect through ODBC) >>> >>>All settings seem to be correct (jabber.xml and xdb_sql.xml), all info >>> > is > >>>inserted correctly (hostname, user, pw - checked and double checked), >>> > but > >>>the connection seems to fail somehow. I have included some debug-info >>> > below. > >>>I've kept everything 'basic' (no changes), and the odbc-connection has >>> > also > >>>been tested and proved working with other c-programs, so that can't be >>> > it. > >>>Any idea what this could be? >>> >>>Thanks, >>> >>>Michel. >>> >>> >>>-= Debug Output =- >>> >>>Thu Feb 21 13:07:25 2002 xdb.c:41 xdb_results checking xdb packet <xdb >>>type='result' to='xdb' from='config@-internal' >>> > ns='jabberd:xdb_sql:config' > >>>id='0'><xdb_sql xmlns='jabberd:xdb_sql:config'> >>> <backend>odbc</backend> >>> <connection> >>> <host>dbpc</host> >>> <db>testdb</db> >>> <user>testuser</user> >>> <pass>testpw</pass> >>> </connection> >>> <queries> >>> <querydef name='auth-get'> >>> <text> >>> SELECT password FROM users WHERE username = >>>'$$username$$' >>> </text> >>> <bindvar name='user'>$$username$$</bindvar> >>> <bindcol name='password' offset='0'/> >>> </querydef> >>> <querydef name='auth-set'> >>> <text> >>> UPDATE users SET password = '$$p$$' WHERE username = >>>'$$username$$' >>> </text> >>> <bindvar name='user'>$$username$$</bindvar> >>> <bindvar name='password'>$$p$$</bindvar> >>> </querydef> >>> <querydef name >>>Thu Feb 21 13:07:25 2002 log.c:105 <log type='alert' >>>from='-internal'>[xdbsql_config_init] cannot connect database : >>></log> >>>Thu Feb 21 13:07:25 2002 log.c:105 <log type='alert' >>>from='-internal'>[xdb_sql] configuration failed</log> >>>Thu Feb 21 13:07:25 2002 deliver.c:277 Registering c2s with instance >>> > c2s > >>>Thu Feb 21 13:07:25 2002 client.c:440 pthsock_client loading >>>Thu Feb 21 13:07:25 2002 deliver.c:235 @-internal processing <xdb >>>type='get' to='config@-internal' from='c2s' ns='jabber:config:pth-csock' >>>id='0'/> >>>Thu Feb 21 13:07:25 2002 deliver.c:649 delivering to instance 'c2s' >>> >>>................ >>> >>>Thu Feb 21 13:07:25 2002 mio.c:1115 io_select to listen on 5269 >>> > [(null)] > >>>Thu Feb 21 13:07:25 2002 dnsrv.c:132 DNSRV CHILD: starting >>>Thu Feb 21 13:07:25 2002 mio.c:1139 io_select starting to listen on >>> > 5269 > >>>[(null)]Thu Feb 21 13:07:25 2002 dnsrv.c:147 DNSRV CHILD: Read from >>> > buffer: > >>><stream> >> >>>Thu Feb 21 13:07:25 2002 deliver.c:460 DELIVER 3:-internal <log >>type='alert' from='-internal'>[xdbsql_config_init] cannot connect >>> > database : > >>></log> >>>Thu Feb 21 13:07:25 2002 deliver.c:649 delivering to instance 'elogger' >>>20020221T12:07:25: [alert] (-internal): [xdbsql_config_init] cannot >>> > connect > >>>database : >>> >>>Thu Feb 21 13:07:25 2002 deliver.c:460 DELIVER 3:-internal <log >>>type='alert' from='-internal'>[xdb_sql] configuration failed</log> >>>Thu Feb 21 13:07:25 2002 deliver.c:649 delivering to instance 'elogger' >>>20020221T12:07:25: [alert] (-internal): [xdb_sql] configuration failed >>>Thu Feb 21 13:07:25 2002 mio.c:624 socket 9 has restore karma -100 -=> >>> > 50 > >>> >>> -- Raditha Dissanayake [EMAIL PROTECTED] http://www.mediasolv.com/?rd _______________________________________________ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev