I'm not entirely sure if this is an Oracle JDBC bug or a Squirrel bug.
When any of the schema caching or loading options are turned on, I get the following error after performing anywhere from 3 to 10 simple SQL select statements:
SQLException: SQLState(null) vendor code(17023)
java.sql.SQLException: Unsupported feature
SQLException: SQLState(null) vendor code(17447)
java.sql.SQLException: OALL8 is in an inconsistent state
SQLException: SQLState(null) vendor code(17401)
java.sql.SQLException: Protocol violation
When I turn off both schema caching and loading, however I don't see the problem. From the attached log files it appears to be a problem calling the Oracle JDBC metadata.
Attached are the jdbcdebug.log as well as the squirrel-sql.log.
JDBC debug log
Logged In: YES
user_id=716735
Originator: NO
Did not let me attach the second file (squirrel-sql.log), so here goes:
0 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - #############################################################################################################
0 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - # Starting SQuirreL SQL Client Snapshot-20070818_1413 at 8/24/07 10:14 AM
0 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - #############################################################################################################
0 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - SQuirreL SQL Client Snapshot-20070818_1413 started: Fri Aug 24 10:14:53 EDT 2007
0 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - Copyright (c) 2001-2007
Colin Bell, Gerd Wagner, Rob Manning and others
0 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - java.vendor: Sun Microsystems Inc.
0 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - java.version: 1.5.0_06
0 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - java.runtime.name: Java(TM) 2 Runtime Environment, Standard Edition
0 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - os.name: Windows XP
0 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - os.version: 5.1
0 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - os.arch: x86
0 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - user.dir: C:\Program Files\SQuirreL SQL Client
0 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - user.home: C:\Documents and Settings\hittjos
0 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - java.home: C:\Program Files\java\jdk1.5.0_06\jre
0 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - java.class.path: C:\Program Files\SQuirreL SQL Client_SNAPSHOT\squirrel-sql.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\antlr-2.7.5H3.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\cglib-2.1.3.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\commons-cli.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\commons-collections-2.1.1.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\commons-logging-1.0.4.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\dom4j-1.6.1.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\ejb3-persistence.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\forms.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\fw.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\hibernate-annotations-3.3.0.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\hibernate-commons-annotations-3.3.0.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\hibernate-entitymanager-3.3.1.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\hibernate3.2.4.sp1.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\jxl.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\log4j.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\nanoxml-2.1.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\openide-loaders.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\openide.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\org-netbeans-modules-editor-fold.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\org-netbeans-modules-editor-lib.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\org-netbeans-modules-editor-util.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\org-netbeans-modules-editor.jar;C:\Program Files\SQuirreL SQL Client_SNAPSHOT\lib\syntax.jar;
2427 [main] INFO net.sourceforge.squirrel_sql.client.Application - Plugin codecompletion created in 0 ms, loaded in 0 ms, initialized in 15 ms, total 15 ms.
2427 [main] INFO net.sourceforge.squirrel_sql.client.Application - Plugin sqlbookmark created in 0 ms, loaded in 0 ms, initialized in 0 ms, total 0 ms.
2427 [main] INFO net.sourceforge.squirrel_sql.client.Application - Plugin graph created in 0 ms, loaded in 0 ms, initialized in 0 ms, total 0 ms.
2427 [main] INFO net.sourceforge.squirrel_sql.client.Application - Plugin sqlscript created in 0 ms, loaded in 0 ms, initialized in 16 ms, total 16 ms.
2427 [main] INFO net.sourceforge.squirrel_sql.client.Application - Plugin editextras created in 0 ms, loaded in 0 ms, initialized in 0 ms, total 0 ms.
2427 [main] INFO net.sourceforge.squirrel_sql.client.Application - Plugin laf created in 0 ms, loaded in 313 ms, initialized in 0 ms, total 313 ms.
2427 [main] INFO net.sourceforge.squirrel_sql.client.Application - Plugin syntax created in 0 ms, loaded in 0 ms, initialized in 31 ms, total 31 ms.
6860 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.AxionDialect
6907 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.DB2Dialect
6923 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.DaffodilDialect
6923 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.DerbyDialect
6923 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.FirebirdDialect
6923 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.FrontBaseDialect
6923 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.HADBDialect
6923 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.H2Dialect
6939 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.HSQLDialect
6939 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.InformixDialect
6939 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.InterbaseDialect
6939 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.IngresDialect
6939 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.MAXDBDialect
6939 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.McKoiDialect
6954 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.MySQLDialect
6954 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.MySQL5Dialect
6954 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.Oracle9iDialect
6954 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.PointbaseDialect
6954 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.PostgreSQLDialect
6954 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.ProgressDialect
6970 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.SybaseDialect
6970 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.SQLServerDialect
6970 [AWT-EventQueue-1] INFO org.hibernate.dialect.Dialect - Using dialect: net.sourceforge.squirrel_sql.fw.dialects.TimesTenDialect
47103 [Thread-2] ERROR net.sourceforge.squirrel_sql.client.session.SQLExecuterTask - Error reading ResultSet
java.sql.SQLException: OALL8 is in an inconsistent state
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:190)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:286)
at oracle.jdbc.driver.T4C8Oall.marshal(T4C8Oall.java:352)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:193)
at oracle.jdbc.driver.T4CStatement.fetch(T4CStatement.java:1216)
at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:373)
at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:284)
at net.sourceforge.squirrel_sql.fw.sql.ResultSetReader.readRow(ResultSetReader.java:122)
at net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetDataSet.setResultSet(ResultSetDataSet.java:136)
at net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetDataSet.setResultSet(ResultSetDataSet.java:93)
at net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetDataSet.setResultSet(ResultSetDataSet.java:64)
at net.sourceforge.squirrel_sql.client.session.mainpanel.SQLResultExecuterPanel$SQLExecutionHandler.sqlResultSetAvailable(SQLResultExecuterPanel.java:1331)
at net.sourceforge.squirrel_sql.client.session.SQLExecuterTask.processResultSet(SQLExecuterTask.java:487)
at net.sourceforge.squirrel_sql.client.session.SQLExecuterTask.processQuery(SQLExecuterTask.java:397)
at net.sourceforge.squirrel_sql.client.session.SQLExecuterTask.run(SQLExecuterTask.java:227)
at net.sourceforge.squirrel_sql.fw.util.TaskExecuter.run(TaskExecuter.java:82)
at java.lang.Thread.run(Thread.java:595)
47103 [SQLParserThread] ERROR net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo - failed to load table names
java.sql.SQLException: Io exception: Protocol violation
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:190)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:363)
at oracle.jdbc.driver.LongAccessor.getBytes(LongAccessor.java:227)
at oracle.jdbc.driver.LongAccessor.getString(LongAccessor.java:281)
at oracle.jdbc.driver.T4CLongAccessor.getString(T4CLongAccessor.java:422)
at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:551)
at net.sourceforge.squirrel_sql.fw.sql.ResultSetColumnReader.getString(ResultSetColumnReader.java:276)
at net.sourceforge.squirrel_sql.fw.sql.SQLDatabaseMetaData.getColumnInfo(SQLDatabaseMetaData.java:1770)
at net.sourceforge.squirrel_sql.fw.sql.SQLDatabaseMetaData.getColumnInfo(SQLDatabaseMetaData.java:1812)
at net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo.accessDbToLoadColumns(SchemaInfo.java:1226)
at net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo.loadColumns(SchemaInfo.java:1204)
at net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo.isTableExt(SchemaInfo.java:693)
at net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo.isTable(SchemaInfo.java:675)
at net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo.isTable(SchemaInfo.java:669)
at net.sourceforge.squirrel_sql.client.session.parser.SQLSchemaImpl.getTable(SQLSchemaImpl.java:35)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.completions.SQLStatement.getTable(SQLStatement.java:115)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.completions.SQLStatement.getTable(SQLStatement.java:115)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.completions.SQLSelectStatement.setTable(SQLSelectStatement.java:131)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.completions.SQLStatement.setTable(SQLStatement.java:97)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.QualifiedTable(Parser.java:1331)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.FromTableList(Parser.java:1338)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.FromClause(Parser.java:1421)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.SimpleSelect(Parser.java:1602)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.SelectStmt(Parser.java:1791)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.SQLStatement(Parser.java:1807)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.squirrelSQL(Parser.java:1860)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.parse(Parser.java:1875)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.ParserThread.runParser(ParserThread.java:429)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.ParserThread.run(ParserThread.java:346)
49873 [SQLParserThread] ERROR net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo - failed to load table names
java.sql.SQLException: Protocol violation
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:190)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:286)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:766)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:922)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1122)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:973)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1244)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3469)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3514)
at oracle.jdbc.driver.OracleDatabaseMetaData.getColumns(OracleDatabaseMetaData.java:284)
at net.sourceforge.squirrel_sql.fw.sql.SQLDatabaseMetaData.getColumnInfo(SQLDatabaseMetaData.java:1764)
at net.sourceforge.squirrel_sql.fw.sql.SQLDatabaseMetaData.getColumnInfo(SQLDatabaseMetaData.java:1812)
at net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo.accessDbToLoadColumns(SchemaInfo.java:1226)
at net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo.loadColumns(SchemaInfo.java:1204)
at net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo.isTableExt(SchemaInfo.java:693)
at net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo.isTable(SchemaInfo.java:675)
at net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo.isTable(SchemaInfo.java:669)
at net.sourceforge.squirrel_sql.client.session.parser.SQLSchemaImpl.getTable(SQLSchemaImpl.java:35)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.completions.SQLStatement.getTable(SQLStatement.java:115)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.completions.SQLStatement.getTable(SQLStatement.java:115)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.completions.SQLSelectStatement.setTable(SQLSelectStatement.java:131)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.completions.SQLStatement.setTable(SQLStatement.java:97)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.QualifiedTable(Parser.java:1331)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.FromTableList(Parser.java:1338)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.FromClause(Parser.java:1421)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.SimpleSelect(Parser.java:1602)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.SelectStmt(Parser.java:1791)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.SQLStatement(Parser.java:1807)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.squirrelSQL(Parser.java:1860)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.parse(Parser.java:1875)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.ParserThread.runParser(ParserThread.java:429)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.ParserThread.run(ParserThread.java:346)
49873 [SQLParserThread] ERROR net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo - failed to load table names
java.sql.SQLException: OALL8 is in an inconsistent state
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:190)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:286)
at oracle.jdbc.driver.T4C8Oall.marshal(T4C8Oall.java:352)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:202)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:922)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1122)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:973)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1244)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3469)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3514)
at oracle.jdbc.driver.OracleDatabaseMetaData.getColumns(OracleDatabaseMetaData.java:284)
at net.sourceforge.squirrel_sql.fw.sql.SQLDatabaseMetaData.getColumnInfo(SQLDatabaseMetaData.java:1764)
at net.sourceforge.squirrel_sql.fw.sql.SQLDatabaseMetaData.getColumnInfo(SQLDatabaseMetaData.java:1812)
at net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo.accessDbToLoadColumns(SchemaInfo.java:1226)
at net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo.loadColumns(SchemaInfo.java:1204)
at net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo.isTableExt(SchemaInfo.java:693)
at net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo.isTable(SchemaInfo.java:675)
at net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo.isTable(SchemaInfo.java:669)
at net.sourceforge.squirrel_sql.client.session.parser.SQLSchemaImpl.getTable(SQLSchemaImpl.java:35)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.completions.SQLStatement.getTable(SQLStatement.java:115)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.completions.SQLStatement.getTable(SQLStatement.java:115)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.completions.SQLSelectStatement.setTable(SQLSelectStatement.java:131)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.completions.SQLStatement.setTable(SQLStatement.java:97)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.QualifiedTable(Parser.java:1331)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.FromTableList(Parser.java:1338)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.FromClause(Parser.java:1421)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.SimpleSelect(Parser.java:1602)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.SelectStmt(Parser.java:1791)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.SQLStatement(Parser.java:1807)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.squirrelSQL(Parser.java:1860)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.Parser.parse(Parser.java:1875)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.ParserThread.runParser(ParserThread.java:429)
at net.sourceforge.squirrel_sql.client.session.parser.kernel.ParserThread.run(ParserThread.java:346)
Logged In: YES
user_id=716735
Originator: NO
Also note:
The database version is 10.2.0.2.0
I have tried these (thin) Oracle drivers which exhibit the same problem:
10.2.0.2.0
10.2.0.3.0
and also the ojdbc14_g.jar driver (debug driver for 10.2.0.3.0)
Logged In: YES
user_id=1287991
Originator: NO
In the past, I've found that "Io exception: Protocol violation" indicates that we've accessed the DatabaseMetaData from multiple threads. It seems like we are doing that again here. In this case it's SQLExecuterTask and a ParserThread.
I'll look into this.
Rob
Logged In: NO
Thanks - yes the problem seems intermittent so being related to multithreading makes sense.
Logged In: YES
user_id=1287991
Originator: NO
At this point, I don't see how we could have multiple threads accessing the driver concurrently since we synchronize methods in SQLDatabaseMetaData and in particular getColumnInfo which is listed several times in the stack traces posted. I'm wondering if it is possibly what this thread is discussing:
http://forums.oracle.com/forums/thread.jspa?threadID=274018&tstart=0
They mention possibly using a 9i (9.2.0.x.0) driver. Have you tried this?
Rob
This appears to have been a driver bug. After upgrading to Oracle JDBC driver 10.2.0.4.0, I haven't seen this since.
Please feel free to close this one.
Posting again (logged in) 10.2.0.4.0 driver so far appears to have fixed this.