[Twisted-web] ConnectionPool problem

Craig H. Anderson craig at coot.net
Mon Jun 14 13:18:36 MDT 2004


What am I doing wrong.  The call back is never run. 

# twisted.web server
from twisted.application import internet, service
from twisted.web import static, server, script
from twisted.python import components 

root = static.File("/CraigSvn/Code/Python/twistedWebTest/trunk/")
#root.ignoreExt(".rtl")
root.processors = {'.rtl': script.ResourceTemplate,
                  '.rpy': script.ResourceScript
                  }
application = service.Application('web')
site = server.Site(root)
sc = service.IServiceCollection(application)
ii = internet.TCPServer(8080, site)
ii.setServiceParent(sc) 

 

#-------------------------
from twisted.web import resource, server
from gcs.htmllib import sessionData
from twisted.enterprise import adbapi
import time 

class MyResource(resource.Resource):
   isLeaf = 1
   #Package twisted :: Package python :: Module failure :: Class Failure
   def dbErrBack(self,failure):
	html = "<html><head>" \
		"<head><title>GCS database exercise</title></head>" \
		"<body><h1>GCS database exercise</h1>"
	self.request.write(html)
	self.request.write('Error<br></body></html>')
	self.request.finish()
	return None
   #def dbThread(self,txn,arg):
   def dbThread(self,txn,arg):
	qry = 'select top 1 recordid from ActiveLeads'
	txn.execute(qry)
	rslt = txn.fetchall()
	return rslt[0][0]
   def finish(self,arg):
	html = "<html><head>" \
		"<head><title>GCS database exercise</title></head>" \
		"<body><h1>GCS database exercise</h1>"
	self.request.write(html)
	self.request.write('<br></body></html>')
	self.request.finish()
   def render_GET(self, request):
	return self.render_it(request)
   def render_it(self,request):
	print 'render_it'
	self.request = request
	self.connData = ('DENVERORACLE','GcsProduction','sa','mushroom')
	self.connectionStr = "Provider=sqloledb;" \
                            "Data Source=%s;" \
                            "Initial Catalog=%s;" \
                            "User Id=%s;" \
                            "Password=%s" \
                            % self.connData
	dbpool = adbapi.ConnectionPool('adodbapi',self.connectionStr)
	dfrd = dbpool.runInteraction(self.dbThread,None)
	dfrd.addCallback(self.finish,self)
	dfrd.addErrback(self.dbErrBack,None)
	print 'render_it. about to return dbpool running %s' % str(dbpool.running)
	return  server.NOT_DONE_YET
   def render_POST(self, request):
	return self.render_it(request) 

resource = MyResource() 




More information about the Twisted-web mailing list