Re: [sqlite] HELP: SQLException getErrorCode vs gerErrorMessage()
I've only used the xerial driver recently and haven't checked for the error code on exception. It does come with source, so you may be able to walk into the code to see how the value is set/retrieved. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] HELP: SQLException getErrorCode vs gerErrorMessage()
Any one with java/JDBC experience please have a look at the snippet and let me know why I am not able to get the exact errorCode. Thanks Sridhar On 08-06-2011 21:23, Martin.Engelschalk wrote: > Hi, > > The important information is that you seem to use a JDBC driver. > Maybe someone with Java/JDBC experience (which i dont have) may be > able to help you. > > Martin > > > Am 08.06.2011 17:37, schrieb Sridhar Polavarapu: >> I am on windows 7 and this is my test code >> >> try >> { >> Statement stat = mconn.createStatement(); >> stat.execute(sql); >> resultSet = stat.getResultSet(); >> mconn.close(); >> break; >> } >> catch (SQLException e) >> { >> >> retryCount++; >> switch(e.getErrorCode()) >> { >> case SQLITE_BUSY : >> /* falls through */ >> case SQLITE_LOCKED : >> /* falls through */ >> case SQLITE_PROTOCOL : >> if ( mlogger != null ) >> { >> mlogger.logWarn(0, "getResultSet() ", >> String.format("%s, Error code : %d", e.getMessage(),e.getErrorCode())); >> } >> /* >> * swallow the exception and retry once again >> */ >> break; >> >> default : >> if ( mlogger != null ) >> { >> mlogger.logError(0,"getResultSet() >> ",String.format("Insert query returned error: %s Error code : %d", >> e.getMessage(), e.getErrorCode())); >> } >> /* >> * The old driver was throwing SQLException with >> message "database locked" or "database is locked" with >> * error code 0. Even though we moved to new driver, >> we may need to have a fall back for a while. >> */ >> if (!("database >> locked".equalsIgnoreCase(e.getMessage()) || "database is >> locked".equalsIgnoreCase(e.getMessage( >> { >> return null; >> } >> /* >> * swallow the exception and retry once again >> */ >> >> } >> >> } >> >> This is my connection code >> >> try { >> Class.forName("org.sqlite.JDBC"); >> mconn = DriverManager.getConnection("jdbc:sqlite:"+ >> connectionString); >> } catch (SQLException e) { >> if ( mlogger != null ) mlogger.logError(0, "openConnection() >> ", e.getMessage()); >> e.printStackTrace(); >> return false; >> } catch (Exception e) { >> if ( mlogger != null ) mlogger.logError(0, "openConnection() >> ", e.getMessage()); >> e.printStackTrace(); >> } >> >> I tried this test using the driver from xerial and also from sqlite. >> Both of them are returning the wrong error codes. Let me know if any >> further information helps. >> >> Thanks >> Sridhar >> >> >> >> On 08-06-2011 20:26, Martin.Engelschalk wrote: >>> Hello Sridhar, >>> >>> please tell us more: what interface are you using? what OS? >>> SQLException is not a part of the sqlite library, so obviously you >>> use an additional layer. >>> >>> Martin >>> >>> Am 08.06.2011 16:44, schrieb Sridhar Polavarapu: Appreciate if anyone can help me. Thanks Sridhar On 08-06-2011 16:16, Sridhar Polavarapu wrote: > Hi > > I am using getErrorCode() of SQLException to see if the exception is > due to any database lock. I all the time get Errorcode to be 0 even > though the getMessage is returning different messages. Can anyone let > me know if there is some thing that i need to do to get the error > codes correctly ? > > Thanks > Sridhar ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] HELP: SQLException getErrorCode vs gerErrorMessage()
I am on windows 7 and this is my test code try { Statement stat = mconn.createStatement(); stat.execute(sql); resultSet = stat.getResultSet(); mconn.close(); break; } catch (SQLException e) { retryCount++; switch(e.getErrorCode()) { case SQLITE_BUSY : /* falls through */ case SQLITE_LOCKED : /* falls through */ case SQLITE_PROTOCOL : if ( mlogger != null ) { mlogger.logWarn(0, "getResultSet() ", String.format("%s, Error code : %d", e.getMessage(),e.getErrorCode())); } /* * swallow the exception and retry once again */ break; default : if ( mlogger != null ) { mlogger.logError(0,"getResultSet() ",String.format("Insert query returned error: %s Error code : %d", e.getMessage(), e.getErrorCode())); } /* * The old driver was throwing SQLException with message "database locked" or "database is locked" with * error code 0. Even though we moved to new driver, we may need to have a fall back for a while. */ if (!("database locked".equalsIgnoreCase(e.getMessage()) || "database is locked".equalsIgnoreCase(e.getMessage( { return null; } /* * swallow the exception and retry once again */ } } This is my connection code try { Class.forName("org.sqlite.JDBC"); mconn = DriverManager.getConnection("jdbc:sqlite:"+ connectionString); } catch (SQLException e) { if ( mlogger != null ) mlogger.logError(0, "openConnection() ", e.getMessage()); e.printStackTrace(); return false; } catch (Exception e) { if ( mlogger != null ) mlogger.logError(0, "openConnection() ", e.getMessage()); e.printStackTrace(); } I tried this test using the driver from xerial and also from sqlite. Both of them are returning the wrong error codes. Let me know if any further information helps. Thanks Sridhar On 08-06-2011 20:26, Martin.Engelschalk wrote: > Hello Sridhar, > > please tell us more: what interface are you using? what OS? > SQLException is not a part of the sqlite library, so obviously you use > an additional layer. > > Martin > > Am 08.06.2011 16:44, schrieb Sridhar Polavarapu: >> Appreciate if anyone can help me. >> >> Thanks >> Sridhar >> >> On 08-06-2011 16:16, Sridhar Polavarapu wrote: >>> Hi >>> >>> I am using getErrorCode() of SQLException to see if the exception is >>> due to any database lock. I all the time get Errorcode to be 0 even >>> though the getMessage is returning different messages. Can anyone let >>> me know if there is some thing that i need to do to get the error >>> codes correctly ? >>> >>> Thanks >>> Sridhar >> ___ >> sqlite-users mailing list >> sqlite-users@sqlite.org >> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users >> ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] HELP: SQLException getErrorCode vs gerErrorMessage()
Hello Sridhar, please tell us more: what interface are you using? what OS? SQLException is not a part of the sqlite library, so obviously you use an additional layer. Martin Am 08.06.2011 16:44, schrieb Sridhar Polavarapu: > Appreciate if anyone can help me. > > Thanks > Sridhar > > On 08-06-2011 16:16, Sridhar Polavarapu wrote: >> Hi >> >> I am using getErrorCode() of SQLException to see if the exception is >> due to any database lock. I all the time get Errorcode to be 0 even >> though the getMessage is returning different messages. Can anyone let >> me know if there is some thing that i need to do to get the error >> codes correctly ? >> >> Thanks >> Sridhar > ___ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] HELP: SQLException getErrorCode vs gerErrorMessage()
Appreciate if anyone can help me. Thanks Sridhar On 08-06-2011 16:16, Sridhar Polavarapu wrote: > Hi > > I am using getErrorCode() of SQLException to see if the exception is > due to any database lock. I all the time get Errorcode to be 0 even > though the getMessage is returning different messages. Can anyone let > me know if there is some thing that i need to do to get the error > codes correctly ? > > Thanks > Sridhar ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users