Hi,
Make sure you close channels using ca_clear_channel when you are done.
I changed my version (R3.13.1.1) of ca_test to call ca_clear_channel at
the end and connections were made flawlessly. I also avoided the
problem by usig a connection callback and extending the ca_pend_io
timeout to 5 seconds.
Here's the problem with some details. With two IOCs, A and B, you run a
client on A that connects to a PV on B. If you reboot A without closing
the connection then B still thinks that the connection still exists.
More importantly B's TCP layer has an expected sequence number that was
generated when the initial connection was made. Now reboot A and run a
ca client that attempts to connect to a PV on B. When B initiates the
connection with A the sequence number is not understood by A so A tells
B and B tells A to reset. A few seconds (~3 seconds) B attempts to
connect again and things go as expected.
Succesful connection
IOC A IOC B
1 UDP broadcast --> Looking for a PV --> UDP received
2 UDP received <-- PV located here <-- UDP directed
Establish TCP connection (these are TCP messages)
3 SYN received <-- <SEQ=100><CTL=SYN> <-- SYN sent
4 SYN received --> <SEQ=300><ACK=101><CTL=SYN, ACK>--> Established
5 Established <-- <SEQ=101><ACK=301><CTL=ACK> <-- Established
Failed connection
IOC A IOC B
1 UDP broadcast --> Looking for a PV --> UDP received
2 UDP received <-- PV located here <-- UDP directed
Establish TCP connection (these are TCP messages)
3 SYN received <-- <SEQ=500><CTL=SYN> <-- SYN sent
4 SYN received --> <SEQ=350><ACK=150><CTL= ACK> --> SYN sent
5 Listen <-- <SEQ=150><CTL=RST> <-- SYN sent
After a few seconds
6 SYN received <-- <SEQ=100><CTL=SYN> <-- SYN sent
7 SYN received --> <SEQ=300><ACK=101><CTL=SYN, ACK>--> Established
8 Established <-- <SEQ=101><ACK=301><CTL=ACK> <-- Established
For more information on TCP see RFC 793.
Thanks for the assistance and suggestions.
Geoff
- Navigate by Date:
- Prev:
Re: base and extensions for windows Bakul Banerjee
- Next:
Correction: summary: ca client connection pattern Geoff Savage
- Index:
1994
1995
1996
1997
1998
1999
2000
<2001>
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: base and extensions for windows Bakul Banerjee
- Next:
Correction: summary: ca client connection pattern Geoff Savage
- Index:
1994
1995
1996
1997
1998
1999
2000
<2001>
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|