RE: SQL*Net - Connection Timeout

  • From: "Justin Cave (DDBC)" <jcave@xxxxxxxxxxx>
  • To: <Paul.Moore@xxxxxxxxxxxxxx>, <oracle-l@xxxxxxxxxxxxx>
  • Date: Fri, 29 Feb 2008 16:26:26 -0700

I believe that the timeout is controlled at the TCP/IP level.

Can you look at the problematic machine and see if someone has decided
to be clever an muck with the default TCP/IP settings?  For example,
lots of logic is based on the TcpInitialRTT parameter, which includes
the warning 

"This parameter controls the initial time-out used for a TCP connection
request and initial data retransmission on a per-interface basis. Use
caution when tuning with this parameter because exponential backoff is
used. Setting this value to larger than 3 results in much longer
time-outs to nonexistent addresses."

http://technet.microsoft.com/en-us/library/bb726981.aspx

Justin Cave
Distributed Database Consulting, Inc.


From: oracle-l-bounce@xxxxxxxxxxxxx
[mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Moore, Paul
Sent: Friday, February 29, 2008 11:16 AM
To: oracle-l@xxxxxxxxxxxxx
Subject: SQL*Net - Connection Timeout

I have a problem with a remote database, where any attempt to connect to
that database from one particular client hangs indefinitely (more
precisely, for longer than I have been willing to wait to see if it's
actually "hours" rather than "forever" :-)) The inability to connect
from this particular client isn't a major problem, but having jobs which
attempt to connect hang indefinitely rather than fail with a TNS timeout
error is.
I have looked through the SQL*Net reference, and asked colleagues, but I
cannot find any way of setting a parameter to say that the client (OCI,
actually Python with cx_Oracle) connection should timeout after XXX
seconds, regardless. Is there such a setting anywhere?
The connection attempt is part of a long-running process, so I cannot
simply kill the hung process. Running the connection in a thread and
giving up waiting after a timeout sort of works, but the thread stays
there, hung, and as time goes on the process accumulates hung threads.
I'd really, really like to avoid having to re-engineer my process to
spawn subprocesses for each connection (especially as this is on Windows
where spawning subprocesses is a bit of a pain compared to using
threads).
Has anyone got any suggestions? 
Thanks, 
Paul 
Paul Moore 
Oracle DBA Support 
Atos Origin UK Ltd 
Daresbury Court 
Runcorn 
Tel: +44 (0)1928 598537 
_______________________________________________________
 
Atos Origin and Atos Consulting are trading names used by the Atos
Origin group. The following trading entities are registered in England
and Wales: Atos Origin IT Services UK Limited (registered number
01245534) and Atos Consulting Limited (registered number 04312380). The
registered office for each is at 4 Triton Square, Regents Place, London,
NW1 3HG.
 
This e-mail and the documents attached are confidential and intended
solely for the addressee, and may contain confidential or privileged
information. If you receive this e-mail in error, you are not authorised
to copy, disclose, use or retain it. Please notify the sender
immediately and delete this email from your systems. As emails may be
intercepted, amended or lost, they are not secure. Atos Origin therefore
can accept no liability for any errors or their content. Although Atos
Origin endeavours to maintain a virus-free network, we do not warrant
that this transmission is virus-free and can accept no liability for any
damages resulting from any virus transmitted. The risks are deemed to be
accepted by everyone who communicates with Atos Origin by email. 
_______________________________________________________
 

Other related posts: