[ 
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: 10.1.1.0
>  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. Simultaneously,
> 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 least
> 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:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to