DATA_SOURCE_READ_TIMEOUT_IN_MILLISECONDS 0
Adam Chant
Symvionics, Inc.
IADS Application Engineer
(661) 273-7003 x 210
Thank you
--
You received this message because you are subscribed to the Google Groups
"IADS" group.
To post to this group, send email to ia...@googlegroups.com.
To unsubscribe from this group, send email to
iads+uns...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/iads?hl=en.
On Nov 17, 3:55 pm, Mike Burt <mb...@iads-soft.com> wrote:
> Hi Bryan:
>
> Believe what you are seeing here is that during the handshake protocol
> that occurs during the initial connection that includes passing byte
> order information the IADS server (CDS) is timing out when waiting to
> receive the next expected message due to the delay incurred from
> stepping through the code on your end.
What I am seeing is that CDS breaks the connection. After the initial
connect the server breaks the connection forcing the data source to
start over when the server initiates data gathering. After adding
some additional console prints to program IadsDS, the output indicates
this:
DS for Data Source, CDS for computer Data Server, line numbers are
from adding __LINE__ in some of the outputs so there is no doubt as to
the origin of the text.
DS: Starts and outputs
Blocked, wait connect by CDS line 318
CDS: Start Opconsole
DS: Send Endian
Send Frame
Start Data Transffer
SendData returned false line 377
CDS terminated connection ...
Blocked, wait connect by CDS line 318
CDS Start Data gather
DS Send Endian
Send Frame
Start data transfer
This requires my soruce code to have the ability to detect the broken
connection and start over. I was not expecting the CDS to terminate
the connection after initial communications with the data source.
After adding code to check for lost connection and restart I have made
some progress.
>
> There are output messages on the CDS console window that specify
> socket disconnect and timeout behaviors that may assist in verifying
> what is happening.
I have looked but not discovered any display in the CDS console
window.
Still, when there is a problem, the source application code hangs on
the line of code waiting for completion. The debugger shows the code
running and cannot show that it is blocked on a TCP/IP operation.
Often the code cannot be halted with the debugger. I have had to
restart CDS just to get it to re-establish the connection so the
application can be stopped.
This will be much easier if the application is written with non-
blocking TCP calls.
A little confused here...are you using the IadsDS project with
modifications? If so that should have already contained the
infrastructure to handle reconnecting after the connect test.
If the application is in a hung state after the 2nd 'Start Data
Transfer' instance as stated in the DS/CDS output flow...speculating
that you may have a mismatch between the advertised size of the packet
(i.e. 1st field in the packet) and the actual size of the
packet...sounds as if the IADS server may be waiting on some expected
remaining contents of the packet to be sent...are you breaking up a
single packet into multiple sends?
Please let us know what you find.