def getHandle():
    #open database
    _db.open(misc.getCallableByName(settings['store']['interface']))
    #create in-memory session manager
    SessionManager.open(inMemorySessionManager.SessionManager, 1200)
    oSystemUser = _db.getItem('system')
    context = HttpContext()
    context.session = SessionManager.create(oSystemUser)
    
    currentThread().context = context
    currentThread().trans = None
    return _db
    def start(self):
        try:
            # read configuration file
            from porcupine.config.settings import settings
            # initialize logging
            log.initialize_logging()
            self.logger.info('Server starting...')
            
            # register request interfaces
            for key, value in settings['requestinterfaces'].items():
                settings['requestinterfaces'][key] = \
                    misc.getCallableByName(value)
            self.logger.info('Succesfullly registered %i request interfaces' % \
                             len(settings['requestinterfaces']))
            
            # register template languages
            for key, value in settings['templatelanguages'].items():
                settings['templatelanguages'][key] = \
                    misc.getCallableByName(value)
            self.logger.info('Succesfullly registered %i template languages' % \
                             len(settings['templatelanguages']))
                        
            # load published directories
            self.logger.info('Loading published directories\' registrations...')
            from porcupine.config import pubdirs

            # open database
            self.logger.info('Opening database...')
            _db.open(misc.getCallableByName(
                     settings['store']['interface']))

            # create session manager
            self.logger.info('Creating session manager...')
            SessionManager.open(misc.getCallableByName(
                            settings['sessionmanager']['interface']),
                            int(settings['sessionmanager']['timeout']))
            
            self.services['_controller'] = self
            # start services
            self.logger.info('Starting services...')
            services.startServices()
            
        except Exception, e:
            self.logger.log(logging.ERROR, e[0], *(), **{'exc_info' : True})
            raise e