If y'all remember, I have had issues with WK crashing without a traceback.  
Much research later, my suspicions centered on MySQL for Python: basically, 
I figured that since I was not using a threadsafe DB link to WK, at some 
point MySQL was killing the connection to WK, which brought WK down, 
probably via the mysqldb module.

The only real way to verify this, was to switch to DBPool and see if that 
fixed my stability issues.  The problems there were that a) my ORM code is 
used by other non-WK python code that is not threaded, and b) that I already 
have kLOCs of code in place (check it out: http://memigo.com/).

So, I came up with a solution that maybe a nice recipe for using DBPool; or 
it maybe brain-dead, and that's why I wanna run it by y'all (I will say 
though that it has fixed my stability problems for good).

My ORM classes all inherit from a class called Store. I added an optional 
switch to Store, threaded, and a connect() and disconnect() method.  Now, in 
the constructor of my WK Page servlets, I changed calls like this:
   self.userstore = UserStore()

to this:
   self.userstore = self.addStore(UserStore)

(you will notice that is a simple regex job).  Where:

class SitePage(Page):
   ...

   def addStore(storeClass):
      storeObj = storeClass(threaded=1)
      self._stores.append(storeObj)
      return storeObj

   def respond(self, trans):
      for store in self._stores:
         store.connect()
      Page.respond(self, trans)
      for store in self._stores:
         store.disconnect()

So, far, crashes have gone away, and the whole migration took about 1-2 
hours of running greps and seds and verifying the results.  What do y'all 
think?  Is this a valid approach or can it be done faster/better?

Thanks,

Costas





_________________________________________________________________
Chat with friends online, try MSN Messenger: http://messenger.msn.com



-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390
_______________________________________________
Webware-discuss mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/webware-discuss

Reply via email to