[Zope] DCOracle problems after dropping/reloading tables

Mark Langkau mark.langkau@pbmplus.com
Wed, 08 Aug 2001 13:51:35 -0500


Hi,

We're using Zope 2.3.2 and DCOracle2 Beta-4 against a remote Oracle
8.1.6 database on RH Linux 6.2.

We have a data mart (MCMART) where tables and views are dropped and
refreshed nightly. This seems to be the cause of the following error:

-- Error Message --

an exception occurred in a DTML method or document.

Error type: DatabaseError
Error value: (4068, 'ORA-04068: existing state of packages has been
discarded\012ORA-04061: existing state of package body
"MCMART.MC_MART_RPT"
has been invalidated\012ORA-04065: not executed, altered or dropped
package
body "MCMART.MC_MART_RPT"\012ORA-06508: PL/SQL: could not find program
unit
being called\012ORA-06512: at line 1')

Innermost method:
/mc/mc_mart_dyn/mc_dd/daily_sales/show_daily_sales.dtml

------------------
If we reconnect to the Oracle database, the error goes away.

The connections from Zope to Oracle remain open during these nightly
refreshes, and we are thinking this is causing the error. Is there a way
to programatically close and reopen these connections? Or better yet,
have Zope/DCO2 detect the error and try to close/reopen the connection?
A reasonable solution might be to have the Oracle view refresh process
use wget (or similar) to call a script telling DCO2 to close/reopen the
database connection. (But then I'm not sure how to handle logging in, so
Joe Hacker doesn't help me by doing this himself all day long ;-)

Has anyone seen this before? I see that a new version of DCO2 was
released last night, but I haven't had time to check that out yet for
new functionality. Have I overlooked something that is in the current
version?

Thanks for your help.

Cheers,
Mark