Skip to Main Content

Breadcrumb

Question and Answer

Tom Kyte

Thanks for the question, Mudassar.

Asked: November 17, 2000 - 1:42 pm UTC

Last updated: June 04, 2012 - 11:31 am UTC

Version: 8.1.6

Viewed 10K+ times! This question is

You Asked

The definition of the parameter CONNECT_TIMEOUT in the listener.ora file is:
Determines the amount of time the listener will wait for a valid connection request after a connection has been started.
My question is what will it do after waiting for this amout of time?

Secondly, the service_names parameter, will it only register by default with the default listener running on port 1521?
This listener is it always supposed to be running regardless of the database?
If we start the listener after the database, will the service_names register the database at an interval? If yes, how to configure that interval?

Connect_time failover: Does this work also on a non-parallel server when the parameter service_names is configured? If yes, how?

connection load balancing: does this also work on a non-parallel server when the parameter service_names is configure? If yes, how?

PRESPAWN_MAX is the maximum number of server processes to start. How many server processes start in the beginning? and how to control these server processes?

Is it possible to use DNS with host naming to connect to multiple databases in a single machine by using GLOBAL_DBNAME?

Although TNS_ADMIN parameter is supposed to work with Windows NT also, but why this parameter does not work in Windows NT? (atleast with me) Is there something special that needs to be done.

What is the benefit of specifying the OUT parameter in connection pooling? How does connection pooling happen in this case?

I did read through the documentation and metalink about what is DCE. Is DCE Oracle specific? or does it only revolve around Oracle (or is it possible to create a DCE network only through Oracle or we need other networking services) Because what I undertand from DCE is that it is infact a client server network providing various services like time service, diskless workstation etc.
What is meant by authenticated RPC in DCE?

What is the point in having multiple passwords for the listener?

Congrats for the new house.
Thanks in advance and best regards,
Mudassar Shahzad

and Tom said...

1) it'll terminate the connection.

2) you can set init.ora parameters to tell the database where the server is.

LOCAL_LISTENER = network_name
Parameter class: Static
Default value: (ADDRESS = (PROTOCOL=TCP)(HOST=)(PORT=1521))


if you start the listener after the database, the database will ulimately get in touch with the listener and register itself. Best to start the listener first if you have any control over that.


Connection load balancing improves connection performance by balancing the number of active connections among multiple dispatchers. In an Oracle Parallel Server environment, connection load balancing also has the capability to balance the
number of active connections among multiple instances.

So, yes, it applies in a non-OPS environment as well. It distributes the load over the dispatchers in a MTS setup.

As for connect time failover:

When more than one listener supports a service, a client can be configured to failover the client request to a different listener if the first listener fails. Reconnection attempts continue until the client successfully connects to a listener.

So yes, it works in a non-ops environment as well. You can have >1 listener setup for the same database or if you have redundant databases -- you can use this to get logged into the other database if the first is not available.

You use the pool_size parameter to set the initial size of the pool.

Host naming enables users to connect to an Oracle server by using a host name alias. Host names are mapped to the server’s global database name in an existing names resolution service, such as Domain Name System (DNS), Network Information Service (NIS), or a centrally-maintained set of /etc/hosts files.
The connection is established by using the default TCP/IP port for the listener, 1521. Multiple databases per node and database location transparency are supported through matching global database names with host name aliases.



TNS_ADMIN works on NT for me. Here I have moved my tnsnames.ora from network\admin to \temp. At first I cannot connect but when I set tns_admin I can (perhaps your environment is not what you think?):

C:\oracle\network\ADMIN>sqlplus scott/tiger@ora8i.us.oracle.com

SQL*Plus: Release 8.1.6.0.0 - Production on Sat Nov 18 11:28:48 2000
(c) Copyright 1999 Oracle Corporation. All rights reserved.
ERROR:
ORA-12154: TNS:could not resolve service name

Enter user-name: ^Z

C:\oracle\network\ADMIN>set TNS_ADMIN=c:\temp\

C:\oracle\network\ADMIN>sqlplus scott/tiger@ora8i.us.oracle.com

SQL*Plus: Release 8.1.6.0.0 - Production on Sat Nov 18 11:29:00 2000

(c) Copyright 1999 Oracle Corporation. All rights reserved.


Connected to:
Oracle8i Enterprise Edition Release 8.1.5.0.0 - Production
With the Partitioning and Java options
PL/SQL Release 8.1.5.0.0 - Production

scott@8i> exit
Disconnected from Oracle8i Enterprise Edition Release 8.1.5.0.0 - Production
With the Partitioning and Java options
PL/SQL Release 8.1.5.0.0 - Production

C:\oracle\network\ADMIN>



As for "OUT for connection pooling" -- I assume you meant "set MULTIPLEX=OUT for when enabling connection concentration for connection manager".

That allows many physical INBOUND network connections to be multiplexed into fewer OUTBOUND connections to the database. Connection manager typically runs on a machine separate from the database. The database couldn't handle 50k inbound physical connections - it could handle 5k easily. You would setup a couple of front end machines with connection manager on it multiplexing inbound connections to reduce the 50k inbounds to just 5k or less outbound physical connections to the database.

DCE is an open standard and stands for Distributed Computing Environment. See
</code> http://www.opennc.org/dce/ <code>
for more info.

As for the point of having multiple passwords -- not sure of the exact reasoning behind it. Since it only works with cleartext, it is not very strong either.


Rating

  (28 ratings)

Is this answer out of date? If it is, please let us know via a Comment

Comments

meaning of CONNECT_TIMEOUT

A reader, September 26, 2002 - 5:09 am UTC

Hi Tom

I read the docus about CONNECT_TIMEOUT but I dont understand what it is talking about.

What does it mean by saying the listener waits for a valid connection request?

Tom Kyte
September 26, 2002 - 8:01 am UTC

A client connects to a listener (eg: you can use telnet to connect to a listener for example).

connect timeout is the period of time between the client making a physical connection and the client actually transmitting a valid packet of data that says "Hello Lucy -- I'm home".


Sort of like a phone call. Connect timeout is the amount of time you are willing to spend from the time you answer the phone and say "hello" -- until someone on the other end responds with "hello". Eg: a crank caller -- they don't say anything, you wait 5 seconds and hang up. Thats the connect timeout.

forgot to ask something more

A reader, September 26, 2002 - 5:24 am UTC

Hi I just asked about meaning of connect_timeout... I wanted to ask somthing more, in some servers when I try to connect such as

scott/tiger@test

if test is not defined in tnsnames.ora I get an error straight away however in some servers it takes ages to tell me the error

which parameter defines that interval?

Tom Kyte
September 26, 2002 - 8:03 am UTC

look in your sqlnet.ora -- there is an entry like:

NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)


so, for me, if tnsnames.ora lookup fails (no test), it'll try Oracle names server, if that fails, it'll try the default hostname (connect to a machine named test on a known port and try to connect to a sid named test)

that could take a while, just reduce it to tnsnames and it would fail straight away.

Sagi, September 26, 2002 - 9:17 am UTC

Hi Tom !

My doubts might seem to silly. But still I would learn. Therfore i am posting it here.

q1) Is CONNECT_TIMEOUT value Seconds or Minutes?

q2) I have given CONNECT_TIMEOUT = 1 in my listner.ora and restarted it.

Now I connected using sqlplusw and after 1 minute i issed

SELECT SYSDATE FROM DUAL ;

Surprisingly i get the output. Should'nt it give error saying disconnected. Because I have not sent any information till 1 minute?

Regards,
Sagi

Tom Kyte
September 26, 2002 - 11:23 am UTC

q1) documentation says......

Determines the amount of time in seconds the listener waits for a valid connection request after a connection has been started


so, seconds...

q2) why is that a surprise? you were connected - -this is used to time out a "bogus" connection.

think of that phone call. You get a call (connect to listener). You say hello (listener says "please tell me what to do"). Nothing comes back (crank call). So, you wait 3 seconds and hang up. That is the connect timeout.

Now say you get a call -- you say hello -- they say hello -- conversation started. You will not hang up, even if they take 15 seconds to think about a question you asked.


If you want IDLE timeouts (kill a session that has been idle for 30 seconds) -- see the CREATE PROFILE sql command.

stop user from connecting

Ashutosh, April 14, 2003 - 7:53 am UTC

Hi Tom,
Is there any way I can stop any particular machine or group of machines from connecting to my Oracle database? If yes then please let me know the details.
Thanks in advance

Tom Kyte
April 14, 2003 - 8:15 am UTC

</code> http://docs.oracle.com/docs/cd/B10501_01/network.920/a96580/profile.htm#484990 <code>

In 8i -- this was done in the protocol.ora file (obsolete file in 9i, use sqlnet.ora instead)

connections

mo, September 09, 2003 - 4:55 pm UTC

Tom:

In a web app using mod plsql we started getting
"Too many database connections.. Try again after a few minutes. " and IE shows an error number 503.

Does this indicate a problem in oracle or it could be the IBM AIX server configuration. If it is oracle how do you fix it?

Thank you

Tom Kyte
September 10, 2003 - 10:32 am UTC

talk to your dba, processes is set too low

A reader, December 28, 2003 - 7:36 am UTC

1) CONNECT_TIMEOUT_listenr_name,what does it mean?should you give me a example like you do for CONNECT_TIMEOUT(a phone example)
2)why don't Static Service Registration support Connect-time failover?
3)For >1 Listener ,one Listener and >1 instance,how does Connect-time failover work?

Tom Kyte
December 28, 2003 - 11:19 am UTC

1) the meaning is exactly the same. you can "name" your listeners, I do not, to I don't need to add "_listener_name" to anything.

2) to have more then one instance register as the same service, you register dynamically (pmon registers with the listener)

3) you use > 1 listener for connect time failover at the listener level:


<quote>
Connect-Time Failover

The connect-time failover enables clients to connect to another listener if the initial connection to the first listener fails. The number of listener protocol addresses determines how many listeners are tried. Without connect-time failover, Oracle Net attempts a connection with only one listener.
</quote>


A reader, December 29, 2003 - 8:04 am UTC

but for 2),for example,Listener.ora can like this:
LISTENER1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.21)(PORT = 1529))
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.21)(PORT = 1521))
)
)

SID_LIST_LISTENER1 =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ora9i2b)
(ORACLE_HOME = E:\oracle\ora92)
(SID_NAME = ora9i2b)
)
)
SID_LIST_LISTENER =
(SID_DESC =
(GLOBAL_DBNAME = ora9i2b)
(ORACLE_HOME = E:\oracle\ora92)
(SID_NAME = ora9i2b)
)
)

it can register more than one listeners for the same services,doesn't it?

How to configure 2 servers for connect-time failover

Hash, March 06, 2004 - 2:42 pm UTC

Hi Tom,
I have read the documentation & tried to configure 2 servers for failover but i couldn't do it.
i have 2 db's with same global names ie oracle.world on 2 different machines. when i put connect time failover in tnsnames.ora of the client machine but it didn't work
could you plz tell me where m i wrong

Tom Kyte
March 06, 2004 - 2:48 pm UTC

you'll have to share your configuration with us and define "but it didn't work", what were the symptons.

It did'nt work

Hash, March 20, 2004 - 6:05 am UTC

Hello Tom,
thanks for your response,
I have 2 db servers i.e sales1-server and sales2-server.both have a service_name oracle.world.a client e.g Client1 has the following tnsnames.ora entry.

sales=
(description=
(failover=on)
(address=(protocol=tcp)(host=sales1-server)(port=1521))
(address=(protocol=tcp)(host=sales2-server)(port=1521))
(connect_data=
(service_name=oracle.world)))


I think I m making a very foolish mistake but i don't know about it.if i remove any of the 2 host entries in the above case, the client gets connected to the respective host but both entries don't work.
I just want my client to failover to sales2-server if sales1-server is down and vice versa.
could please please please explain
thanks

Tom Kyte
March 20, 2004 - 10:08 am UTC

"don't work"

hmmm, what does that mean exactly - i cannot see your screen from where I am sitting so the error messages/symptons are not obvious to me :)

Are you serious or joking?

Hash, March 20, 2004 - 12:30 pm UTC

Does that mean there is nothing wrong with the above procedure?

could you please please give me a few steps to do this procedure in your words so that i can try to reconfigure it
thanks for your response

Tom Kyte
March 21, 2004 - 9:41 am UTC

I'm not joking.

I want you to define to me "don't work"

what was the error
what was the sympton
what happens
"throw me a bone" here -- give me something to work with.

Else, this is like saying "my car won't start -- why not"


Sorry for making you angry

Hash, March 21, 2004 - 12:46 pm UTC

Ok Tom, here I go again. I have 2 db servers (both 9i R1) sales1-server and sales2-server.On a client I have a tnsnames entries
sales1=
(description=
(address=(protocol=tcp)(host=sales1-server)(port=1521))
(connect_data=
(service_name=oracle.world)))

sales2=
(description=
(address=(protocol=tcp)(host=sales2-server)(port=1521))
(connect_data=
(service_name=oracle.world)))


With these entries I can connect to sales1_server and sales2_server

now i have another entry

sales=
(description=
(failover=on)
(address=(protocol=tcp)(host=sales1-server)(port=1521))
(address=(protocol=tcp)(host=sales2-server)(port=1521))
(connect_data=
(service_name=oracle.world)))

I shutdown sales1-server and attempted
connect scott/tiger@sales
I think i should be connected to sales2_server because sales1_server is down but it says 'tnsnames not found'(sorry i dont remember the error message right now its something like a message which you get when you attempt to connect to a db which you dont have an entry in tnsnames

the problem is that i m not doin any other configuration. i want to ask IS THERE ANYTHING ELSE I SHOULD DO ALONG WITH THIS TNS ENTRY is ther any other configuration inviolve in failover

sorry to irritate you
thatks

Tom Kyte
March 21, 2004 - 6:59 pm UTC

then the tnsnames.ora file is "incorrect". you can test this via:

connect scott/tiger@(description=(failover=on)........)


(eg: don't use the tnames.ora file)

not seeing your tnsnames.ora file, I cannot really "comment" -- but if it says "sorry, connect turn sales into something useful", you'll need to fix that -- there is something wrong in your configuration file, perhaps ABOVE the sales= entry.

Here I go again

Hash, March 22, 2004 - 3:48 am UTC

Ok Tom, this my tnsnames.ora
----------------------------

TEST1 = 
  (DESCRIPTION = 
         (ADDRESS = (PROTOCOL = TCP)(Host = UMAR)(Port = 1521))
    (CONNECT_DATA = (SERVICE_NAME = oracle.world)))

TEST2 = 
  (DESCRIPTION = 
         (ADDRESS = (PROTOCOL = TCP)(Host = HASH)(Port = 1521))
    (CONNECT_DATA = (SERVICE_NAME = oracle.world)))

TEST3 = 
  (DESCRIPTION = 
    (FAILOVER=ON)
        (ADDRESS = (PROTOCOL = TCP)(Host = UMAR)(Port = 1521))
        (ADDRESS = (PROTOCOL = TCP)(Host = HASH)(Port = 1521))
    (CONNECT_DATA = (SERVICE_NAME = oracle.world)))


now both the servers(umar & hash are running).I issued:
SQL> CONNECT SCOTT/TIGER@TEST1    
Connected.        -- TO UMAR
SQL> CONNECT SCOTT/TIGER@TEST2
Connected.        -- TO HASH
SQL> CONNECT SCOTT/TIGER@TEST3
Connected.        -- TO HASH
NOW SERVER HASH IS DOWN AND...
SQL> CONNECT SCOTT/TIGER@TEST3
ERROR:
ORA-12203: TNS:unable to connect to destination

While I m thinking it should failover to 'umar' which is still running
Now could you tell me what m I doing wrong?
Thanks again 

Tom Kyte
March 22, 2004 - 7:10 am UTC

</code> http://docs.oracle.com/docs/cd/B10501_01/network.920/a96581/tnsnames.htm#491460 <code>

You have no "address_list", you have an incorrectly specified tnsnames entry. Suggest you might want to use the gui's to set this up the first time around -- but that link has concrete examples for you to study as well.


this is the detail one needs to see "whats wrong" -- it is a very different error from what you described to me in the first place!

IT WORKED

Hash, March 24, 2004 - 5:42 am UTC

Thank you Tom, The link you provided was ver usefull. THIS THING WORKED .
I m so grateful

Connect_timeout in 9i

rose, November 03, 2004 - 5:00 pm UTC

Hi, Tom
How can I configure connect_timeout in Oracle 9i?

Tom Kyte
November 05, 2004 - 11:15 am UTC

Dispatcher vs Listner

Rathy, January 27, 2005 - 5:56 am UTC

I configured shared server instance with listener listening at port# 1521 and the dispatcher process listening at the dynamice port # say. 1435. Because of the shared server mode all my new connections are established as shared connections.

The problem I noticed was described below.

The listener service running at port # 1521 was stopped. So,
I was not able to make a new connection through the port # 1521 or through the service name defined against this port on tnsnames.ora from the client side. Buf if try to establish a connection through the dispatcher's dynamic port (1435) registered when the listener was up, it was successful and I was able to make any new connections without any problem through this dispatcher's port.

Now, My question is

1. How come the dispatcher process was running and listening even after the listener service was stopped.

2. How the status of both listener and the dispacter were exchanged between two.

3. When this dispatcher process will get terminated, once the listener service was stopped. Otherwise without the listener service itself I can make a connection through the dispatcher, if I know the dispatcher's listening port.

Thanks for your Service.

Tom Kyte
January 27, 2005 - 9:13 am UTC

listeners are wholly separate and distinct from dispatchers.

in shared server, the dispatcher registers with the listener, when you connect to the listener, the listener simply sends back to you the address (the connect string) of the dispatcher. you disconnect from the listener and then connect to the dispatcher (this is the typical set of events)

all you've done is go directly to the dispatcher, bypassing the listener that would have simply said "go here"


a listener needs no dispatchers

a dispatcher is separate from, and independent of a listener totally. the dispatcher is part of the database instance, it goes up and down with the INSTANCE.

OK

James, March 31, 2005 - 12:21 pm UTC

Hello Tom,
suppose if there are numerous Oracle Database Servers in thenetwork to which I am connected to,
How to find information like server names ,their IP Address and other related info. like all the instances of the servers etc.??


Tom Kyte
March 31, 2005 - 12:27 pm UTC

if your dba/admins have set it up, this could be in LDAP or in earlier releases Oracle Names.

otherwise, you have to ask the people that run them what is there. There is no master list kept anywhere, they are all independent entities on the network.

Time out of connected session

Des B, August 17, 2005 - 7:36 am UTC

I've looked on Metalink & here for info regarding this particular situation and while there's been a lot of info ( note 274303.1 re inbound_connect_timeout ) that's been interesting I can't find anything that tells me where I will find a log or trace for a session which is connected but times out when trying to commit a transaction. There's nothing in the listener or sqlnet logs, nor in the udump directory. Is it a case of having to trace the session in particular ?

Tom Kyte
August 17, 2005 - 1:40 pm UTC

sessions do not time out trying to commit?
that does not make sense to me.

Session timeouts

Des B, August 18, 2005 - 7:17 am UTC

'sessions do not time out trying to commit?'

Sorry, that doesn't make sense to me. Are you making the statement that this does not happen or cannot happen ? If so perhaps it's the case that it doesn't timeout but instead there is a network glitch that causes the session to fail. Where would I find a trace for this.


Tom Kyte
August 18, 2005 - 4:03 pm UTC

the session does not timeout.

maybe your network times out, but that is not a session timing out.


You'll need to be more clear here. If your network is timing out -- there would be no trace necessarily. What would cause the network to timeout? commits are subsecond operations here, very fast in general (exception - massive on commit refresh materialized views). I cannot imagine a network timeout happening.

Network Configuration Parameters"

Maulesh Jani, October 13, 2005 - 8:14 am UTC

thx for such indepth discussion ,,it really help me and cover all sort of doubts relate with the listner and dispatcher..thx again.

Timeout again

V, May 15, 2006 - 2:30 pm UTC

I have users coming into the database from an App server. I noticed that there was a handfull of Locks being caused from a single SID. My theory is that the user closed his web browser before saving (commit) and it hung his session, thus locking others from doing things. Is there anyway to timeout this session via sqlnet or other means?
Thanks

Tom Kyte
May 15, 2006 - 3:30 pm UTC

wow, your middle tier keeps a state across web pages, that's got to be unpleasant.


you really don't want to start timing out sessions in the database - it would cause havoc with your connection pool as we timed out the inactive sessions just hanging there waiting to be used.

You want to do this in the middle tier, THEY must control the transactions.

Thanks

V, May 15, 2006 - 4:15 pm UTC

Is it true that when a FORM does a SELECT ... FOR UPDATE is uses ROWID and thus only locks the row being updated?

Tom Kyte
May 15, 2006 - 4:39 pm UTC

It can use the rowid or the primary key, yes. Regardless - it would only lock the row in question.

wired tnsnames entry format behavior

jianhui, June 22, 2006 - 6:39 pm UTC

Hi Tom,
I have two entries in tnsnames.ora with different names and different format of parameters, but all values are identical indeed. However, it seems neither tnsping nor sql*plus can recognize the second entry. Do you have any idea, or can you reproduce it in your environment, I have no idea why a few leading blanks make such differnce.

Best Regards,

i.e.

suse91$> cat tnsnames.ora
well_formatted=
(DESCRIPTION =
  (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = suse91.testlab.com)(PORT = 1521))
  (ADDRESS = (PROTOCOL = TCP)(HOST = suse91.testlab.com)(PORT = 1522))
  (ADDRESS = (PROTOCOL = TCP)(HOST = suse91.testlab.com)(PORT = 1523))
  (ADDRESS = (PROTOCOL = TCP)(HOST = suse91.testlab.com)(PORT = 1524))
  )
  (CONNECT_DATA=(sid=TEST)(server=dedicated))
)

badly_formatted=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = suse91.testlab.com)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = suse91.testlab.com)(PORT = 1522))
(ADDRESS = (PROTOCOL = TCP)(HOST = suse91.testlab.com)(PORT = 1523))
(ADDRESS = (PROTOCOL = TCP)(HOST = suse91.testlab.com)(PORT = 1524))
)
(CONNECT_DATA=(sid=TEST)(server=dedicated))
)
suse91$> tnsping well_formatted

TNS Ping Utility for Solaris: Version 9.2.0.1.0 - Production on 22-JUN-2006 14:52:28

Copyright (c) 1997 Oracle Corporation.  All rights reserved.

Used parameter files:
/export/home/oracle/products/9201/network/admin/sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = suse91.testlab.com)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = suse91.testlab.com)(PORT = 1522)) (ADDRESS = (PROTOCOL = TCP)(HOST = suse91.testlab.com)(PORT = 1523)) (ADDRESS = (PROTOCOL = TCP)(HOST = suse91.testlab.com)(PORT = 1524))) (CONNECT_DATA=(sid=TEST)(server=dedicated)))
OK (20 msec)
suse91$> tnsping badly_formatted

TNS Ping Utility for Solaris: Version 9.2.0.1.0 - Production on 22-JUN-2006 14:52:36

Copyright (c) 1997 Oracle Corporation.  All rights reserved.

Used parameter files:
/export/home/oracle/products/9201/network/admin/sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION =
/* note, i had to ctrl_c to get out of this hanging tnsping */
suse91$> sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on Thu Jun 22 14:52:54 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> conn perfstat/perfstat@well_formatted
Connected.
SQL> conn perfstat/perfstat@badly_formatted
ERROR:
ORA-12154: TNS:could not resolve service name


Warning: You are no longer connected to ORACLE.
SQL> exit
 

Tom Kyte
June 23, 2006 - 10:08 am UTC

only the leading line can start in column 1 - the rest need to be indented.

Alex, July 11, 2007 - 3:23 pm UTC

Tom, could you please explain this message a little

WARNING: inbound connection timed out (ORA-3136

Do you know what can cause this? We have a couple of instances that report these in the alert log regularly and all I kind find is setting an init.ora parameter higher to timeout longer. I know what it means, I just don't know what to do about it. Thanks.
Tom Kyte
July 11, 2007 - 10:25 pm UTC

$ oerr ora 3136
03136, 00000, "inbound connection timed out"
// *Cause:  Inbound connection was timed out by the server because
//          user authentication was not completed within the given time
//          specified by SQLNET.INBOUND_CONNECT_TIMEOUT or its default value
// *Action: 1) Check SQL*NET and RDBMS log for trace of suspicious connections.
//          2) Configure SQL*NET with a proper inbound connect timeout value
//             if necessary.
[tkyte@dellpe ~]$


what are you using for user authentication

and how loaded is your server?

Alex, July 12, 2007 - 9:23 am UTC

I think "database authentication" would be it. Applications use a connection pool, and connect using an application id that everyone uses.
Tom Kyte
July 12, 2007 - 10:15 am UTC

so, can you answer #2, most likely cause: your machine is getting swamped - overburdened by a login storm created by the middle tier and we cannot get everyone connected as fast as they request.

Alex, July 12, 2007 - 10:31 am UTC

The loads vary but I'm sure that's what it is.

If this becomes more and more prevalant could I solve this by adding another listener?
Tom Kyte
July 12, 2007 - 10:47 am UTC

no, the machine itself isn't capable of creating that many new connections.

You'll want to look to the middle tier and ask them "why are you hitting us with a logon storm like that - what is happening to cause that on your end"

(SERVER=)

Michael, August 19, 2009 - 11:58 am UTC

hi tom,

we have a 10.2.0.4 ee database named Q100Q2.

we installed XDB with DBCA. it did DISPATCHERS = "(PROTOCOL = TCP)(SERVICE = Q100Q2XDB)".

we created some TNS aliases:
Q100Q2.swiss.ch = (DESCRIPTION = (SOURCE_ROUTE = OFF) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ux1022)(PORT = 1535)))(CONNECT_DATA = (SERVICE_NAME = Q100Q2.swiss.ch)(SERVER=)))

please keep an eye on the "(SERVER=)" entry without setting this to "DEDICATED" or "SHARED"! (this has be done by a 9i NETMGR initially, I think).

we are getting a lot of ORA-03136 now. I'm wondering if this might be to do with the "(SERVER=)" entry in our TNS aliases AND the configured XDB dispatcher???

what happens with the "(SERVER=)" entry? is it ignored? could this mislead the connection request?

I couldn't find a metalink note on this nor could I get an information from oracle support on this. It seems that no-one knows if an empty "(SERVER=)" entry could trigger something.

(SERVER=)

Michael, September 09, 2009 - 7:48 am UTC

Oracle support published a problem with note 883252.1 now:

"(SERVER=)" can't be empty anymore with 11g client.

Thanks.

ad hoc tool

A reader, June 04, 2012 - 11:24 am UTC

Tom:

Is it possible to have a ad hoc client like sql*plus or toad or other tools installed on PC talk to a remote oracle 11g database using an SSH tunnel (port 22)?

How would you configure your oracle client software to support that?

Tom Kyte
June 04, 2012 - 11:31 am UTC

you wouldn't do anything to the client software, you'd have to set up a secure tunnel between the two machines.

http://www.easysoft.com/products/data_access/odbc_oracle_driver/security.html

is just one of thousands of articles on this.


If you want our software to do it, we call that the Advanced Security Option and I can point you to how to do that.

More to Explore

VLDB

If you are new to partitioning, check out Connor McDonald's introduction series here.

VLDB

Documentation set on VLDB and Partitioning.