Can anyone give me any suggestions on how to debug this issue? A user
is randomly seeing the following exception while connected to a Derby
network server. I'm not sure what the exception means. It sounds like
there may have been a network error? The user is connected locally to
the server over a LAN. I don't think it's likely that the network
connection was interrupted. Unfortunately, he can't reproduce it
consistently.
The exception does not always occur at the same location in our code.
The only common denominator seems to be a call to Derby's
Connection.prepareStatement() method.
We've tried enabling tracing on the client but didn't see anything
useful in the log.
I gave the user the Derby debug libs and had him work with the software
until he cause the error again. The query being prepared in this
instance is very simple, "SELECT * FROM strategylots WHERE objectid=?"
java.sql.SQLException: A network protocol error was encountered and the
connection has been terminated: the requested command encountered an
unarchitected and implementation-specific condition for which there was
no architected message
org.apache.derby.client.am.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:46)
org.apache.derby.client.am.SqlException.getSQLException(SqlException.java:362)
org.apache.derby.client.am.Connection.prepareStatement(Connection.java:426)
com.scs.database.sql.MoneyDatabaseSQLType.prepareStatement(MoneyDatabaseSQLType.java:2235)
com.scs.database.sql.MoneyDatabaseSQLType.getEntry(MoneyDatabaseSQLType.java:2382)
com.scs.money.transaction.InvestmentTransaction.getExplicitSlot(InvestmentTransaction.java:828)
com.scs.money.transaction.InvestmentTransaction.getStrategyLot(InvestmentTransaction.java:515)
com.scs.money.holding.Holding.recalculateStrategies(Holding.java:341)
com.scs.money.holding.Holding.doRecalulate(Holding.java:1260)
com.scs.money.holding.Holding.recalculateQuantity(Holding.java:851)
com.scs.money.holding.Holding.addByTransaction(Holding.java:1408)
com.scs.money.data.OptionTradeEntry.post(OptionTradeEntry.java:155)
com.scs.money.data.DataImportEntry.post(DataImportEntry.java:147)
com.scs.money.data.DataProcessPanel.doImport(DataProcessPanel.java:245)
com.scs.money.data.DataProcessPanel.access$000(DataProcessPanel.java:19)
com.scs.money.data.DataProcessPanel$1.process(DataProcessPanel.java:52)
com.scs.money.TaskedJob.process(TaskedJob.java:19)
com.scs.money.TaskedJob$1.processTask(TaskedJob.java:33)
com.scs.taskmanager.TaskManager.cycle(TaskManager.java:71)
com.scs.taskmanager.TaskManager.run(TaskManager.java:23)
Any help would be appreciated.
-Vic