[CalendarServer-changes] [2639] CalendarServer/branches/sqlpropstore-2629/twistedcaldav

source_changes at macosforge.org source_changes at macosforge.org
Sat Jun 28 10:59:54 PDT 2008


Revision: 2639
          http://trac.macosforge.org/projects/calendarserver/changeset/2639
Author:   cdaboo at apple.com
Date:     2008-06-28 10:59:54 -0700 (Sat, 28 Jun 2008)
Log Message:
-----------
Explicitly close the sqlite DB after each time it is used to prevent too many open files.

Modified Paths:
--------------
    CalendarServer/branches/sqlpropstore-2629/twistedcaldav/sqlprops.py
    CalendarServer/branches/sqlpropstore-2629/twistedcaldav/test/test_sqlprops.py

Modified: CalendarServer/branches/sqlpropstore-2629/twistedcaldav/sqlprops.py
===================================================================
--- CalendarServer/branches/sqlpropstore-2629/twistedcaldav/sqlprops.py	2008-06-28 15:27:28 UTC (rev 2638)
+++ CalendarServer/branches/sqlpropstore-2629/twistedcaldav/sqlprops.py	2008-06-28 17:59:54 UTC (rev 2639)
@@ -374,6 +374,7 @@
             pname = self._decodePropertyName(row[1])
             pvalue = self._decodePropertyValue(pname, row[2])
             self.cache.setdefault(rname, {})[pname] = pvalue
+        self._db_close()
 
     def getOnePropertyForResource(self, rname, pname):
         """
@@ -394,12 +395,14 @@
                     sqlpname = self._decodePropertyName(row[0])
                     sqlpvalue = self._decodePropertyValue(sqlpname, row[1])
                     self.cache[rname][sqlpname] = sqlpvalue
+                self._db_close()
             
             # Get the property and do negative caching if not present
             return self.cache[rname].setdefault(pname, None)
         else:
             log.debug("[%s] Getting property {%s}%s for %s" % (self.instance, pname[0], pname[1], rname,))
             pxml = self._db_value_for_sql("select PROPERTYXML from PROPERTIES where RESOURCENAME = :1 and PROPERTYNAME = :2", rname, self._encodePropertyName(pname))
+            self._db_close()
             pvalue = self._decodePropertyValue(pname, pxml)
             return pvalue
 
@@ -421,6 +424,7 @@
             pname = self._decodePropertyName(row[0])
             pvalue = self._decodePropertyValue(pname, row[1])
             properties[pname] = pvalue
+        self._db_close()
 
         return properties
 
@@ -438,6 +442,7 @@
         log.debug("[%s] Setting property {%s}%s for %s" % (self.instance, pname[0], pname[1], rname,))
         self._add_to_db(rname, self._encodePropertyName(pname), property.toxml(), property.hidden)
         self._db_commit()
+        self._db_close()
         
         if self.use_cache and self.cache.has_key(rname):
             self.cache[rname][pname] = property 
@@ -455,6 +460,7 @@
         for property in properties:
             self._add_to_db(rname, self._encodePropertyName(property.qname()), property.toxml(), property.hidden)
         self._db_commit()
+        self._db_close()
 
         if self.use_cache and self.cache.has_key(rname):
             for property in properties:
@@ -471,6 +477,7 @@
         log.debug("[%s] Removing property {%s}%s from %s" % (self.instance, pname[0], pname[1], rname,))
         self._delete_from_db(rname, self._encodePropertyName(pname))
         self._db_commit()
+        self._db_close()
         
         if self.use_cache and self.cache.has_key(rname):
             self.cache[rname][pname] = None
@@ -485,6 +492,7 @@
         log.debug("[%s] Removing all properties from %s" % (self.instance, rname,))
         self._delete_all_from_db(rname)
         self._db_commit()
+        self._db_close()
         
         if self.use_cache:
             try:
@@ -508,6 +516,7 @@
             log.debug("[%s] Listing all properties for %s via query" % (self.instance, rname,))
             for row in self._db_execute("select PROPERTYNAME from PROPERTIES where RESOURCENAME = :1", rname):
                 members.add(self._decodePropertyName(row[0]))
+            self._db_close()
         return members
 
     def _add_to_db(self, rname, pname, pxml, hidden):

Modified: CalendarServer/branches/sqlpropstore-2629/twistedcaldav/test/test_sqlprops.py
===================================================================
--- CalendarServer/branches/sqlpropstore-2629/twistedcaldav/test/test_sqlprops.py	2008-06-28 15:27:28 UTC (rev 2638)
+++ CalendarServer/branches/sqlpropstore-2629/twistedcaldav/test/test_sqlprops.py	2008-06-28 17:59:54 UTC (rev 2639)
@@ -14,13 +14,11 @@
 # limitations under the License.
 ##
 
-from twistedcaldav.ical import Component
-from twisted.web2.dav.element.rfc2518 import DisplayName
-
 import os
 
 from twisted.web2 import responsecode
 from twisted.web2.dav import davxml
+from twisted.web2.dav.element.rfc2518 import DisplayName
 from twisted.web2.dav.fileop import put
 from twisted.web2.dav.resource import TwistedGETContentMD5
 from twisted.web2.dav.test.util import serialize
@@ -29,6 +27,8 @@
 from twisted.web2.test.test_server import SimpleRequest
 
 from twistedcaldav import caldavxml
+from twistedcaldav.config import config
+from twistedcaldav.ical import Component
 from twistedcaldav.root import RootResource
 from twistedcaldav.sqlprops import sqlPropertyStore, SQLPropertiesDatabase
 from twistedcaldav.static import CalDAVFile
@@ -52,6 +52,11 @@
         caldavxml.CalendarDescription.fromString("My Calendar"),
     )
     
+    def setUp(self):
+        config.PropertyStore = "SQL"
+        config.updatePropertyStore()
+        super(SQLProps, self).setUp()
+
     def _setUpIndex(self):
         self.collection_name, self.collection_uri = self.mkdtemp("sql")
         rsrc = CalDAVFile(os.path.join(self.collection_name, "file.ics"))
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20080628/cfc38dcc/attachment-0001.html 


More information about the calendarserver-changes mailing list