Print Thread
Page 1 of 3 1 2 3
Temporary TLOBLocator Free - Exception
#6476 06/28/04 05:44 PM
Joined: Feb 2001
Posts: 15
C
ChrisG Offline OP
Member
OP Offline
Member
C
Joined: Feb 2001
Posts: 15
Hi

I'm experiencing problems when freeing a temporary TLobLocator at certain times.

My TOracleQuery calls a stored proc which has a CLOB parameter for saving data. The stored proc then calls another stored proc and passes the CLOB parameter through.

It would appear that when the parameter in the second stored proc is declared as a CLOB, an exception is generated in Delphi when I come to free the temporary TLobLocator.

If the second stored proc uses a long parameter, there is no problem. However, we really need it to be a CLOB because of the amount of data we are sending.

Can you please help?

(Using DOA 4.0.3)

Many thanks
Chris

Re: Temporary TLOBLocator Free - Exception
#6477 06/28/04 09:31 PM
Joined: Aug 1999
Posts: 22,208
Member
Offline
Member
Joined: Aug 1999
Posts: 22,208
What exactly is the exception message?


Marco Kalter
Allround Automations
Re: Temporary TLOBLocator Free - Exception
#6478 06/29/04 02:37 PM
Joined: Feb 2001
Posts: 15
C
ChrisG Offline OP
Member
OP Offline
Member
C
Joined: Feb 2001
Posts: 15
It's very strange. There is an exception, it is captured by the exception handler, however there is NO message. (i.e. E.message="")

Re: Temporary TLOBLocator Free - Exception
#6479 06/29/04 02:55 PM
Joined: Feb 2001
Posts: 15
C
ChrisG Offline OP
Member
OP Offline
Member
C
Joined: Feb 2001
Posts: 15
1. Have downloaded DOA 4.0.5 - Same problem occurs.

2. Although exception message is blank, if I use EOracleError the exception numbers raised are:-
32550540, 33070844, 32554684, 32553312
If I "unload" my delphi app from IIS and try again I get the same sequence of error numbers(!)

Re: Temporary TLOBLocator Free - Exception
#6480 06/29/04 09:42 PM
Joined: Aug 1999
Posts: 22,208
Member
Offline
Member
Joined: Aug 1999
Posts: 22,208
These numbers don't seem right. What is the Exception class (EOracleError or something else)?


Marco Kalter
Allround Automations
Re: Temporary TLOBLocator Free - Exception
#6481 06/30/04 02:51 PM
Joined: Feb 2001
Posts: 15
C
ChrisG Offline OP
Member
OP Offline
Member
C
Joined: Feb 2001
Posts: 15
Here is my code:

try
myCLOB.Free;
except
on E: EOracleError do
begin
LogAction('Save Dealer Exception - Unable to free Temporary CLOB'+#13#10+
'mess='+e.Message+' num='+FloatToStr(E.ErrorCode));
end;
end;

and here is an extract from my log file:

29/06/2004 10:42:57 Save Dealer Exception - Unable to free Temporary CLOB
mess= num=32550540
29/06/2004 10:42:58 Save Dealer Exception - Unable to free Temporary CLOB
mess= num=33070844
29/06/2004 10:43:17 Save Dealer Exception - Unable to free Temporary CLOB
mess= num=32554684
29/06/2004 10:43:18 Save Dealer Exception - Unable to free Temporary CLOB
mess= num=32553312

If the exception was not an EOracleError surely this handler will not capture the exception(?)

Re: Temporary TLOBLocator Free - Exception
#6482 06/30/04 10:38 PM
Joined: Aug 1999
Posts: 22,208
Member
Offline
Member
Joined: Aug 1999
Posts: 22,208
It is indeed an EOracleError. The bogus error code makes me wonder if the session is still connected at this time. Can you verify this?


Marco Kalter
Allround Automations
Re: Temporary TLOBLocator Free - Exception
#6483 07/01/04 05:50 PM
Joined: Feb 2001
Posts: 15
C
ChrisG Offline OP
Member
OP Offline
Member
C
Joined: Feb 2001
Posts: 15
Yes. The TOracleQuery.Session.Connected property is still true at this point.

Re: Temporary TLOBLocator Free - Exception
#6484 07/01/04 08:19 PM
Joined: Aug 1999
Posts: 22,208
Member
Offline
Member
Joined: Aug 1999
Posts: 22,208
Okay. Can you send me a little demo project that reproduces the issue?


Marco Kalter
Allround Automations
Re: Temporary TLOBLocator Free - Exception
#6485 07/02/04 02:04 PM
Joined: Feb 2001
Posts: 15
C
ChrisG Offline OP
Member
OP Offline
Member
C
Joined: Feb 2001
Posts: 15
Demo project and stored procs sent as requested.

To summarise: Delphi would appear to be unable to free the temporary LOB, only when all the following are true:-
1) OracleQuery calls a stored proc which calls another
2) Both stored procs have a CLOB input parameter
3) Both stored procs evaluate the CLOB as XML

I eagerly await your comments.

Page 1 of 3 1 2 3

Moderated by  support 

Link Copied to Clipboard
Powered by UBB.threads™ PHP Forum Software 7.7.4
(Release build 20200307)
Responsive Width:

PHP: 7.1.33 Page Time: 0.029s Queries: 13 (0.007s) Memory: 2.5563 MB (Peak: 3.0379 MB) Data Comp: Off Server Time: 2024-05-05 23:46:21 UTC
Valid HTML 5 and Valid CSS