Ian, Thanks a lot!
Now I get it. Ed. <cita quien="Ian Bicking"> > On Dec 2, 2003, at 2:29 PM, Eduardo Elgueta wrote: >> I usually store a database connection in my sessions. How can I make >> the >> database connection pickable? Are regular classes pickable or I have to >> add custom code? Sessions expire because of this or they're just not >> saved >> to disk? > > Most classes are pickleable, but only if they don't have anything > transient -- like an open file object, a socket, or in this case a > database connection. > > One way to handle this would be to put the connection parameters in the > session, and create the connection in your servlet's awake() method (or > probably your SitePage's awake). If you use DBPool, it will reuse old > connections based on those parameters, or make a new connection if > necessary. So when you restart the server, the connection will be > recreated. > > If you are doing long transactions then you need to be more sure that > you get the exact connection back. Then you might put a connection ID > (that you make yourself) into the session, and keep the actual > connections in a module global. Like: > > _connections = {} > _count = 0 > _connLock = threading.Lock() > def saveConnection(conn): > _connLock.acquire() > connID = _count > _count += 1 > _connLock.release() > # Make sure it's extra unique: > connID = '%s_%s' % (time.time, connID) > _connections[connID] = connection > return connID > > def getConnection(connID): > try: > return _connections[connID] > except KeyError: > raise KeyError, "Your connection has expired, been closed, or > has been lost in a server restart" > # and maybe redirect or something intelligent based on this > > -- > Ian Bicking | [EMAIL PROTECTED] | http://blog.ianbicking.org > > -- Eduardo Elgueta Senior Consultant Navix emial: [EMAIL PROTECTED] phone: +56 (2) 315-7608 mobile: +56 (9) 821-0033 web: www.navix.cl ------------------------------------------------------- This SF.net email is sponsored by OSDN's Audience Survey. Help shape OSDN's sites and tell us what you think. Take this five minute survey and you could win a $250 Gift Certificate. http://www.wrgsurveys.com/2003/osdntech03.php?site=8 _______________________________________________ Webware-discuss mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/webware-discuss