Dear webware community, I'm perplexed, I have been playing around with XMLRPC as a way to connect to a database and deliver content. Please see the code below:(one is a XMLRPCServlet and the second is a regular servlet)
The is issue is that the XMLRPC servlet is about 8 times slower then the regular servlet. This doesn't make any sense to me. If I kill the sleep method, and not close the db connection, then it is really fast, but somehow that does not feel right. I don't seem to be taking much of a hit by getting a new connection every time with the regular servlet, so why should it be so with the xmlrpc servlet? Am I doing something fundamentally wrong in the xmlrpc? Any help would be great, and thanks in advance Jose ===================================================================== server.py: ===================================================================== from WebKit.XMLRPCServlet import XMLRPCServlet as XS import psycopg as pg class server(XS): def __init__(self): XS.__init__(self) self.db = None def awake(self, trans): XS.awake(self, trans) self.db = pg.connect(user = 'postgres', database='phonebook') def sleep(self, trans): XS.sleep(self, trans) if self.db: self.db.close() def cur(self): return self.db.cursor() def exposedMethods(self): return [ 'echo', 'listPeople' ] def echo(self, what='you need to enter something'): return what def listPeople(self): sql = ''' select fname, lname from people ''' cur = self.cur() cur.execute(sql) people = cur.fetchall() return people ============================================================ test.py ============================================================ from WebKit.Page import Page import psycopg as pg class test(Page): def __init__(self): Page.__init__(self) self.db = None def awake(self, trans): Page.awake(self, trans) self.db = pg.connect(user = 'postgres', database='phonebook') def sleep(self, trans): Page.sleep(self, trans) if self.db: self.db.close() def cur(self): return self.db.cursor() def writeContent(self): sql = ''' select fname, lname from people ''' cur = self.cur() cur.execute(sql) people = cur.dictfetchall() self.write(people) ============================================================================ ========= ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id396&op=click _______________________________________________ Webware-discuss mailing list Webware-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/webware-discuss