<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.0.6603.0">
<TITLE>custom_zodb.py and Control_Panel</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->
<P><FONT SIZE=2 FACE="Arial">v2.7.4 running on Linux - I'm trying to use this (custom_zodb.py in INSTANCE_HOME)</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">---------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">import os</FONT>
<BR><FONT SIZE=2 FACE="Arial">import ZODB.FileStorage</FONT>
<BR><FONT SIZE=2 FACE="Arial">import ZODB.DB</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">filename = os.path.join(INSTANCE_HOME, 'var', 'Data.fs')</FONT>
<BR><FONT SIZE=2 FACE="Arial">Storage = ZODB.FileStorage.FileStorage(filename)</FONT>
<BR><FONT SIZE=2 FACE="Arial">DB = ZODB.DB(Storage, pool_size=10)</FONT>
<BR><FONT SIZE=2 FACE="Arial">-----------------------------------------------------------</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">When I do it, zope does start up and run, but I get IOError every time I try to look at the "main" storage in Control_Panel->Database: </FONT></P>
<P><FONT SIZE=2 FACE="Arial">Traceback (most recent call last):</FONT>
<BR><FONT SIZE=2 FACE="Arial"> File "<string>", line 1, in ?</FONT>
<BR><FONT SIZE=2 FACE="Arial"> File "/home/zope/Zope-2.7.4-0/lib/python/Zope/__init__.py", line 51, in app</FONT>
<BR><FONT SIZE=2 FACE="Arial"> startup()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> File "/home/zope/Zope-2.7.4-0/lib/python/Zope/__init__.py", line 47, in startu</FONT>
<BR><FONT SIZE=2 FACE="Arial">p</FONT>
<BR><FONT SIZE=2 FACE="Arial"> _startup()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> File "/home/zope/Zope-2.7.4-0/lib/python/Zope/App/startup.py", line 57, in sta</FONT>
<BR><FONT SIZE=2 FACE="Arial">rtup</FONT>
<BR><FONT SIZE=2 FACE="Arial"> DB = configuration.dbtab.getDatabase('/', is_root=1)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> File "/home/zope/Zope-2.7.4-0/lib/python/DBTab/DBTab.py", line 96, in getDatab</FONT>
<BR><FONT SIZE=2 FACE="Arial">ase</FONT>
<BR><FONT SIZE=2 FACE="Arial"> db = self._createDatabase(name, is_root)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> File "/home/zope/Zope-2.7.4-0/lib/python/DBTab/DBTab.py", line 113, in _create</FONT>
<BR><FONT SIZE=2 FACE="Arial">Database</FONT>
<BR><FONT SIZE=2 FACE="Arial"> db = factory.open()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> File "/home/zope/Zope-2.7.4-0/lib/python/Zope/Startup/datatypes.py", line 172,</FONT>
<BR><FONT SIZE=2 FACE="Arial"> in open</FONT>
<BR><FONT SIZE=2 FACE="Arial"> DB = self.createDB()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> File "/home/zope/Zope-2.7.4-0/lib/python/Zope/Startup/datatypes.py", line 169,</FONT>
<BR><FONT SIZE=2 FACE="Arial"> in createDB</FONT>
<BR><FONT SIZE=2 FACE="Arial"> return ZODBDatabase.open(self)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> File "/home/zope/Zope-2.7.4-0/lib/python/ZODB/config.py", line 97, in open</FONT>
<BR><FONT SIZE=2 FACE="Arial"> return ZODB.DB(section.storage.open(),</FONT>
<BR><FONT SIZE=2 FACE="Arial"> File "/home/zope/Zope-2.7.4-0/lib/python/ZODB/config.py", line 128, in open</FONT>
<BR><FONT SIZE=2 FACE="Arial"> quota=self.config.quota)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> File "/home/zope/Zope-2.7.4-0/lib/python/ZODB/FileStorage.py", line 232, in __</FONT>
<BR><FONT SIZE=2 FACE="Arial">init__</FONT>
<BR><FONT SIZE=2 FACE="Arial"> self._lock_file = LockFile(file_name + '.lock')</FONT>
<BR><FONT SIZE=2 FACE="Arial"> File "/home/zope/Zope-2.7.4-0/lib/python/ZODB/lock_file.py", line 62, in __ini</FONT>
<BR><FONT SIZE=2 FACE="Arial">t__</FONT>
<BR><FONT SIZE=2 FACE="Arial"> lock_file(self._fp)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> File "/home/zope/Zope-2.7.4-0/lib/python/ZODB/lock_file.py", line 42, in lock_</FONT>
<BR><FONT SIZE=2 FACE="Arial">file</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fcntl.flock(file.fileno(), _flags)</FONT>
<BR><FONT SIZE=2 FACE="Arial">IOError: [Errno 11] Resource temporarily unavailable</FONT>
</P>
<BR>
<P><FONT SIZE=2 FACE="Arial">If I remove the custom_zodb.py file, the problem goes away. Why is the file locked to the ZMI when I use custom_zodb.py?</FONT></P>
<BR>
<BR>
<BR>
<BR>
<BR>
</BODY>
</HTML>