You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-user@db.apache.org by Bryan Pendleton <bp...@amberpoint.com> on 2005/10/10 21:42:12 UTC

Re: SYNTAXRM exception

Responding to Kathy's message from Friday:

 > David is on target that  we probably need a bug to be filed.
 > Normally when there is a protocol exception it means a bug.
 > SYNTAXRM means that the server has spent a response to the
 > client which the client doesn't understand.     Here the
 > client has sent a prepare and is expecting statement description
 > information back from the server but something went wrong.

I haven't yet figured out how to reproduce this problem, although
it is happening routinely so hopefully I'll be able to pin it down.

Meanwhile, I do get a different, but related, error message in my
derby.log on the server side when I get the SYNTAXRM problem on
the client side. Here is the error that is logged on the server side:

2005-10-07 16:58:25.482 GMT Thread[DRDAConnThread_7,5,main] (DATABASE = BuildFarm),
(DRDAID = GA0A0026.A122-940688243462706959{274885}), Execution failed because
of a Distributed Protocol Error:  DRDA_Proto_SYNTAXRM; CODPNT arg  = 2116;
Error Code Value = 1d
Execution failed because of a Distributed Protocol Error:  DRDA_Proto_SYNTAXRM;
CODPNT arg  = 2116; Error Code Value = 1d
2005-10-07 16:58:25.483 GMT Thread[DRDAConnThread_7,5,main] (DATABASE = BuildFarm),
(DRDAID = GA0A0026.A122-940688243462706959{274885}), null
null
org.apache.derby.impl.drda.DRDAProtocolException
         at org.apache.derby.impl.drda.DRDAConnThread.throwSyntaxrm(Unknown Source)
         at org.apache.derby.impl.drda.DRDAConnThread.invalidCodePoint(Unknown Source)
         at org.apache.derby.impl.drda.DRDAConnThread.parseCNTQRY(Unknown Source)
         at org.apache.derby.impl.drda.DRDAConnThread.splitQRYDTA(Unknown Source)
         at org.apache.derby.impl.drda.DRDAConnThread.writeFDODTA(Unknown Source)
         at org.apache.derby.impl.drda.DRDAConnThread.writeQRYDTA(Unknown Source)
         at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source)
         at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source)

I have had this happen about a dozen times recently. The exception messages seem
to be very similar in all these cases:
  - sometimes the CODPNT arg is 2114, sometimes it is 2116
  - when the CODPNT is 2114, the Error Code Value is e, but when the CODPNT
    arg is 2116, the Error Code Values is 1d.

I see by looking in CodePoint.java that 0x2114 is QRYBLKSZ, while 0x2116 is RTNSQLDA.

Please let me know if this additional information helps give you some more
suggestions about what might be going wrong, and I'll continue to try to look
at my code to see if I can figure out what I'm doing to trigger this.

thanks,

bryan
----------------------------------- Original message is below -----------------

Subject:
Re: What is this exception trying to tell me?
From:
Kathey Marsden <km...@sbcglobal.net>
Date:
Fri, 07 Oct 2005 13:44:34 -0700
To:
Derby Discussion <de...@db.apache.org>

David W. Van Couvering wrote:


 >> Bryan, I would love it if you logged this error message as a bug, we
 >> need to clean up some of our error messages to be more meaningful.
 >>
 >> And, no, sorry, I have no idea what this means.
 >>
 >> David
 >>
 >> Bryan Pendleton wrote:
 >>
 >
 >>>> I got this exception several times today, but I don't know
 >>>> what it's trying to tell me.
 >>>>
 >>>> Can anybody take a stab at explaining this error to me in more
 >>>> "layman's" terms?
 >>>>
 >>>> Is there a place where I should have gone to look up 0x2116?
 >>>>
 >>>> thanks,
 >>>>
 >>>> bryan
 >>>>
 >>>> org.apache.derby.client.am.DisconnectException: Execution failed due
 >>>> to a distribution protocol error that caused deallocation of the
 >>>> conversation. A PROTOCOL Data Stream Syntax Error was detected.
 >>>> Reason: 0x2116 at
 >>>> org.apache.derby.client.net.Reply.doSyntaxrmSemantics(Unknown Source)
 >>>> at
 >>>> org.apache.derby.client.net.NetConnectionReply.parseSYNTAXRM(Unknown
 >>>> Source) at
 >>>> org.apache.derby.client.net.NetConnectionReply.parseCommonError(Unknown
 >>>> Source) at
 >>>> org.apache.derby.client.net.NetStatementReply.parsePrepareError(Unknown
 >>>> Source) at
 >>>> org.apache.derby.client.net.NetStatementReply.parsePRPSQLSTTreply(Unknown
 >>>> Source) at
 >>>> org.apache.derby.client.net.NetStatementReply.readPrepareDescribeOutput(Unknown
 >>>> Source) at
 >>>> org.apache.derby.client.net.StatementReply.readPrepareDescribeOutput(Unknown
 >>>> Source) at
 >>>> org.apache.derby.client.net.NetStatement.readPrepareDescribeOutput_(Unknown
 >>>> Source) at
 >>>> org.apache.derby.client.am.Statement.readPrepareDescribeOutput(Unknown
 >>>> Source) at
 >>>> org.apache.derby.client.am.PreparedStatement.readPrepareDescribeInputOutput(Unknown
 >>>> Source) at
 >>>> org.apache.derby.client.am.PreparedStatement.flowPrepareDescribeInputOutput(Unknown
 >>>> Source) at
 >>>> org.apache.derby.client.am.PreparedStatement.prepare(Unknown Source)
 >>>> at org.apache.derby.client.am.Connection.prepareStatementX(Unknown
 >>>> Source) at
 >>>> org.apache.derby.client.am.Connection.prepareStatement(Unknown
 >>>> Source) at
 >>>> ...
 >>>>


David is on target that  we probably need a bug to be filed.   Normally
when there is a protocol exception it means a bug.   SYNTAXRM means that
the server has spent a response to the client which the client doesn't
understand.     Here the client has sent a prepare and is expecting
statement description information back from the server but something
went wrong.

  Things that would be very helpful in the bug:

1) A reproducible case (some java code  or sql script that can be used
to show the error).
2) sysinfo output. org.apache.derby.tools.sysinfo
3) Any errors that appear in the derby.log or  network server console
output.

If it is not easy to reproduce, let us know and we can try to find other
ways to collect the needed info.

Thanks

Kathey