lost connection (ORA-01089, ORA-12500) - application freezes

lupik

Member
Hello,
I have a TOracleSession component (DOA 3.4.4) and try to connect to a database (9.2.0.4 server on Linux) every 60 seconds by doing:

Connected := False;
(here changing database name, login and password
which can be different from previous parameters)
Connected := True;

When the database is shut down I get ORA-01089
message first and after a minute there's ORA-12500
message and after another minute again ORA-12500. Then the database is stared and the fourth attempt to connect freezes the application. If I kill the application and start it again it works fine. What can cause the component to freeze?
Thank you for any answer in advance.

Best regards,
lupik
 
Are all these ORA-01089 and ORA-12500 caused by setting Connected to True or are you ding something else after a minute?
 
Hi,
When there's no exception I do a select sql with TOracleDataSet + while not Eof ... and reading/writing some fields. Besides I use TOracleQuery + another TOracleSession component (in a separate thread) to do inserts with a clob field but in these case I did nothing else (only Connected := False, Connected := True) because of the exceptions. Could it freeze on Connected := False? I just hanged on the fourth try and killing the application from the task manager + running it again helped.

Best regards,
lupik
 
Hello,
I've written a simple procedure:

with OracleSession do
for i := 0 to 10 do
try
if Connected then Connected := False;
LogonDatabase := edDB.Text;
LogonUsername := edLogin.Text;
LogonPassword := edPass.Text;
Connected := True;
except
on E : Exception do
showmessage(E.Message);
end;

I set a breakpoint on "if Connected then Connected := False;" row. After the session was connected for the first time I restarted the database server and I got the following messages (on Connected := True) after each iteration until the server was running again:
1. ORA-12500
2. ORA-12535
3. ORA-12535
4. ORA-01033.
After that the connection was finally established because the server was already on.
I ran the program again and restarted the server and I got similar messages (but without 12500):
1. ORA-03113 (this appeared on Connected := False)
2. ORA-12535
3. ORA-12535
4. ORA-01033.
Before every ORA-12535 message (timeout) there was a delay about 20 seconds. Is there any way to change this timeout value or maybe it's set on Oracle Client/Server? Do DOA show any messages (like showmessage or messagedlg - this could hang in a thread, I have only dcu so I couldn't check it) or only exceptions are raised? Please for any answer. Thank you very much in advance.

Best regards,
lupik
 
Direct Oracle Access does not show any messages, it merely raises exceptions in case of an error message. I'm not sure if the delay in case of a database shutdown can be altered.
 
Hi,
So do you have any idea why it hangs on Connected := True with Linux server (the example was checked on Windows Server)?

Best regards,
lupik
 
Back
Top