DCOracle2: OCI error

C

Chris

Hello

I'm using DCOracle2 with Python 2.1 and Oracle 8.1.7 on Solaris and
while it's working most of the time, I have random ORA-01084 invalid
argument in OCI call errors that occur on INSERT.
Out of 18000 queries all using the same DB connection I have like 15
errors of this type. It's always the same SQL queries (2 different
INSERT and some other SELECT), only the parameters change and they're
always valid. When the error occur I can simply retry the statement and
it works, so nothing's wrong with the query and its parameters.
If I launch all the queries again the errors will occur again but never
at the same place, it's really random except for the fact that it only
occurs on INSERT.
There are commits after each INSERT. When I have an ORA-1084 I rollback
and go on with the next queries and they work.

So I'm thinking it may be a bug in DCOracle2.
I've activated the DCOracle traceback and I've noticed that the error
always occurs on the binding of NULL (None) values.
My guess at the moment is that the bindObject function in dco2.c should
return 0x00000000 for bind->valuep when the value is None and indeed
it's what it does most of the time but when the error occurs I can see
in the traceback that 0xffffffff is returned and this make the
following call to OCIBindByPos fail with the above error.
Why would 0xffffffff be returned? Any help on this is appreciated.
I'm especially interested in the inner working of dco2.c OCI calls so I
can investigate more because for now I'm stuck.
I'll try to add disconnect / reconnect every now and then to see if it
helps.

Regards
Chris
 
C

Chris

Update: Instead of disconnect / reconnect, I made it so that in case of
1084 errors I rollback and retry the same INSERT again.
It worked... It's not beautiful code but it's working.
So really I think something's fishy in dco2.c
If someone tell me what should be investigated I could look into the
issue.

Chris
 
D

Diez B. Roggisch

Chris said:
Update: Instead of disconnect / reconnect, I made it so that in case of
1084 errors I rollback and retry the same INSERT again.
It worked... It's not beautiful code but it's working.
So really I think something's fishy in dco2.c
If someone tell me what should be investigated I could look into the
issue.

No idea, but could as well be OCI. We're working here with ORACLE 10g with
the java JDBC-driver - and already found an oracle-bug and a driver-bug. So
what I would recommend is looking into what dco2 actually does at that
point - if it only puts a thin layer above OCI, and the problems come from
there.

Diez
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,043
Latest member
CannalabsCBDReview

Latest Threads

Top