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
>>>> [email protected]
>>>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>>>
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users