Access Violation in ORA73.dll w/3.4.6

GregW

Member²
Okay, here's the setup: Delphi 4 program with DOA 3.4.6 and Oracle 7.3.4.something client software. Program runs 24x7 and processes around 30k txns/day, pretty much evenly spread with occasional spikes. Program is threaded; each transaction thread instantiates a data module with a TOracleSession and several TOracleQuery objects (only 2-3 of which are used in any given txn). Almost all of the "processing" just involves calling stored procs and bind variables are used.

Here's the problem: After an unpredictable amount of time, I suddenly start getting access violations in ORA73.dll on the execution of a query. Nothing will succeed from that time. It's not associated with a spike in activity. Sometimes it's an hour after startup; sometimes 2.5 days.

I'd be grateful for any nudges in the right direction.

G
 
Happened twice last Friday (with a reboot in between). The first time, every message referenced address 0FA09FE7. The second time, they were at 10019FE7. As I go back through the logs, it seems to always end in 9FE7 and it's always consistent within one run of AV's.
 
i'm french developer.

i have the same problem with DOA4.6 (DOA4.4 and DOA4.5) and Oracle V7.3 on WinNT4

Application is oneSession/oneThread (Total thread : 4)

All option Threaded,.. = False

Error :

-->Violation d'acc
 
i have always this probleme
frown.gif


with oracle8 too ...
 
When does this access violation occur? During Logon, Logoff, SQL execution, ...?

------------------
Marco Kalter
Allround Automations
 
1) Mkalter , This access violation occur on the Dataset Open or Query Execute but it's completely random (one of datasets/querys in one of threads)

2) GregW, I view the problem with DOA 3.4.6 , win2000 and Oracle 8.1.7.

3) Mkalter, i resend you a email with a example BUT my observation is that this problem does not appear on all computers, it does not appear on powerfull computers ( it's crazy a computer with configuration Win2000-DOA4.6 and Oracle 8.1.7 is OK and the same configuration on a "portable computer" (
smile.gif
is not OK )
 
Note that version 3.4.6 will do this mutexing for you if TOracleSession.ThreadSafe = True.

------------------
Marco Kalter
Allround Automations
 
test ok
smile.gif
!!

Modification :
I create a TcriticalSection and i "protect" all Connected action of OracleSession.

example :

**Main of Service
Definition critical section(SessionCriticalSection)

**procedure TService.ServiceStart
Create critical section (SessionCriticalSection)

-> and for all thread
**procedure TXYZThread.execute;

XYZDM := TXYZDM.Create(nil);
SessionCriticalSection.Enter;
try
XYZDM.oraSession.Connected := True;
finally
SessionCriticalSection.Leave;
end;

Thanks (a lot) for help !!
---------
nb: i don't test TOracleSession.ThreadSafe = True.

[This message has been edited by cgi (edited 05 March 2003).]
 
Back
Top