db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kathey Marsden (JIRA)" <derby-...@db.apache.org>
Subject [jira] Commented: (DERBY-614) Execution failed because of a Distributed Protocol Error
Date Tue, 25 Oct 2005 13:52:05 GMT
    [ http://issues.apache.org/jira/browse/DERBY-614?page=comments#action_12355828 ] 

Kathey Marsden commented on DERBY-614:

I hear you about the DRDA specs. They are pretty hard.  That's why I am making you do the
research #:)  This research by the way is excellent.

DSS stands for Data Stream Structure.  It is sort of the packaging mechanism for data going
to the client. It's size is limitted to 32K but sometimes it is ok to set a flag to continue
in the next DSS and send more data.    The Data Stream Structure documented in the DDM manual
under DSS.   I have to say I don't really understand the chaining very well, but hope this
will be an opportunity for me to learn more about it myself.

You said ...

>I do not believe that the client is allowed to send any commands other than CNTQRY or
>CLSQRY; those are the only legal options.

For this particular result set you are right, the client can send only either a CNTQRY or
CLSQRY and  it will send an identifier for the result set (PKGNAMCSN) with the request to
identify which result set it is, but  there may be intervening requests that have nothing
to do with this result set.  For instance if you change your repro to execute some totally
unrelated statement before closing the result set, such as "CREATE TABLE FOO (i int)" then
before it ever sends the CLSQRY for this result set you will see an EXCSQLIMM  as the next
command sent from the client.    So, we would again fall over if we simply changied splitQRYDTA
to handle CLSQRY as well as CNTQRY.  Also we may get an intervening CNTQRY for an entirely
different result set and then we could end up sending the data for the wrong result set for
the reqest, so that is why I think the parseCNTQRY in splitQRYDTA is wrong. 

Could you try  to change your test case as described and see if in fact my assessment is correct
that we might get some other request from the client before we get the CNTQRY or CLSQRY request
for this result set?

> Execution failed because of a Distributed Protocol Error
> --------------------------------------------------------
>          Key: DERBY-614
>          URL: http://issues.apache.org/jira/browse/DERBY-614
>      Project: Derby
>         Type: Bug
>   Components: Network Server
>     Versions:
>  Environment: Linux 2.4, Sun JDK 1.4.2_07, full SYSINFO will be attached.
>     Reporter: Bryan Pendleton
>  Attachments: clientSideTrace.txt, clientStack.txt, derby-614.zip, derbyTrace.txt, query.txt,
serverSideTrace.txt, sysinfo.derby
> I am intermittently receiving Distributed Protocol Error exceptions in my client code.
> my derby.log is recording Distributed Protocol Error exceptions on the server side.
> I cannot reliably reproduce this problem. 
> However, the problem always occurs in the same section of my application, so I can at
> describe that section of my application. (I'll do so in an attachment).
> Here is the error I receive on the server side. Sometimes, the CODPNT is 2116 and the
> Error Code Value is 1d, rather than 2114 and e.
> 2005-10-05 02:10:23.663 GMT Thread[DRDAConnThread_2,5,main] (DATABASE = BuildFar
> m), (DRDAID = GA0A0026.P7E6-4182154075488704215{136532}), Execution failed becau
> se of a Distributed Protocol Error:  DRDA_Proto_SYNTAXRM; CODPNT arg  = 2114; Er
> ror Code Value = e
> Execution failed because of a Distributed Protocol Error:  DRDA_Proto_SYNTAXRM;
> CODPNT arg  = 2114; Error Code Value = e
> 2005-10-05 02:10:23.663 GMT Thread[DRDAConnThread_2,5,main] (DATABASE = BuildFar
> m), (DRDAID = GA0A0026.P7E6-4182154075488704215{136532}), null
> null
> org.apache.derby.impl.drda.DRDAProtocolException
>         at org.apache.derby.impl.drda.DRDAConnThread.throwSyntaxrm(Unknown Sourc
> e)
>         at org.apache.derby.impl.drda.DRDAConnThread.missingCodePoint(Unknown So
> urce)
>         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 Sou
> rce)
>         at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source)

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

View raw message