db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dyre.Tjeldv...@Sun.COM
Subject Re: A network protocol error was encountered and the connection has been terminated
Date Thu, 10 Apr 2008 08:54:51 GMT
Vic Ricker <vic@ricker.us> writes:

> Sorry about that.  I added something to dump follow getNextException()
> and getCause().  I got the following exception from getCause(), I
> believe.  I don't think getNextException() returned anything.

Thanks you did exactly the right thing. I should have mentioned
getCause() as well. (Both are currently in use, I believe).

I agree with Bryan's conclusions in another email; this sounds like a
Derby bug. 

Based on the call stack I'd say what you're seeing is a "meta
error" (for lack of a better word). I think that what is happening is
that the client sends a request to prepare a statement to the server,
but something goes wrong and an error is returned. As the client tries
to parse the reply it detects that an error has occured
(parsePrepareError(NetStatementReply.java:527)), but the error handling
appears not to be able to handle the returned error correctly, and so you
end up with a generic (and rather unhelpful) error message. 

If my analysis is correct, you may get around this if you can guess or
trace what the root cause on the server is, and avoid it

The best thing, obviously would be if you could come up with
a small(er) example which reproduces the problem, which you can share with
us (include in a Jira issue). Without being able to reproduce the
problem, it will be nearly impossible for someone else to fix it, I'm

> org.apache.derby.client.am.DisconnectException: 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.net.NetConnectionReply.parseCMDCHKRM(NetConnectionReply.java:888)
> org.apache.derby.client.net.NetStatementReply.parsePrepareError(NetStatementReply.java:527)
> org.apache.derby.client.net.NetStatementReply.parsePRPSQLSTTreply(NetStatementReply.java:143)
> org.apache.derby.client.net.NetStatementReply.readPrepareDescribeOutput(NetStatementReply.java:52)
> org.apache.derby.client.net.StatementReply.readPrepareDescribeOutput(StatementReply.java:40)
> org.apache.derby.client.net.NetStatement.readPrepareDescribeOutput_(NetStatement.java:139)
> org.apache.derby.client.am.Statement.readPrepareDescribeOutput(Statement.java:1341)
> org.apache.derby.client.am.PreparedStatement.readPrepareDescribeInputOutput(PreparedStatement.java:1874)
> org.apache.derby.client.am.PreparedStatement.flowPrepareDescribeInputOutput(PreparedStatement.java:1952)
> org.apache.derby.client.am.PreparedStatement.prepare(PreparedStatement.java:309)
> org.apache.derby.client.am.Connection.prepareStatementX(Connection.java:1646)
> org.apache.derby.client.am.Connection.prepareStatement(Connection.java:413)
> com.scs.database.sql.MoneyDatabaseSQLType.prepareStatement(MoneyDatabaseSQLType.java:2235)
> com.scs.database.sql.MoneyDatabaseSQLType.getTransactionByReferenceNumber(MoneyDatabaseSQLType.java:3393)
> com.scs.money.transaction.TransactionTable.getByReferenceNumber(TransactionTable.java:43)
> com.scs.money.data.TransactionImportEntry.isDuplicateReference(TransactionImportEntry.java:334)
> com.scs.money.data.TransactionImportEntry.setReferenceNumber(TransactionImportEntry.java:178)
> com.scs.money.data.MoneyImportFile.processMoneyImportFile(MoneyImportFile.java:750)
> com.scs.money.data.DataProcessPanel.doImport(DataProcessPanel.java:201)
> 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)


View raw message