What is causing [Oracle JDBC Driver]Login has timed out

Posted by vcherepanov on 29-Nov-2018 10:29

Hello,

In server logs I see errors like

Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception:

java.sql.SQLException: [informatica][Oracle JDBC Driver]Login has timed out.

I cannot find exact defenition of what is "Login has timed out" error in docs.

I tried reproducing the issue locally stopping, dismounting, etc. database and stopping TNS listener - I was getting diffrerent self-descritive errors (most with ORA codes or Connection refused errors - cases that can understand by just reading the error message) but not the "Login has timed out" error. 

Could you please help me with understanding this error and technics of reproducing that locally.

Regards,

Valery

Posted by mikesp on 17-Jun-2019 13:52

There's no single database related state which leads to this error. Rather, if the driver is unable (in the alotted time) to establish a connection to the database and perform its initialization on that connection, then it will return this error. The error can be caused in part by server response latency, network traffic, etc.

I have "manufactured" this type of behavior in the past by making use of an external snoop tool that sits between the driver and the database. Pausing the snoop tool during the connect establishment process allows for reproducing this error.

Hope this helps.

Mike

All Replies

Posted by mikesp on 17-Jun-2019 13:29

The Oracle JDBC driver (as well as the other JDBC drivers) will throw such an exception only if the "LoginTimeout" connect option is specified as one of the connection properties AND the specified time is exceeded when attempting to establish the connection. See documentation.progress.com/.../index.html for the published documentation of that connect option.

Mike

Posted by vcherepanov on 17-Jun-2019 13:45

Thanks Mike,

>> "the specified time is exceeded when attempting to establish the connection"

However I still do not understand what is "LoginTimeout" -  what is the condition from Oracle perspective when "LoginTimeout" may take place?

In other words -  how can I reproduce this error?

Thanks,

Valery

Posted by mikesp on 17-Jun-2019 13:52

There's no single database related state which leads to this error. Rather, if the driver is unable (in the alotted time) to establish a connection to the database and perform its initialization on that connection, then it will return this error. The error can be caused in part by server response latency, network traffic, etc.

I have "manufactured" this type of behavior in the past by making use of an external snoop tool that sits between the driver and the database. Pausing the snoop tool during the connect establishment process allows for reproducing this error.

Hope this helps.

Mike

Posted by vcherepanov on 17-Jun-2019 13:59

Thanks Mike -  it is clear now

This thread is closed