Ticket #7732: oracle_pool.6.diff

File oracle_pool.6.diff, 3.9 KB (added by erny, 15 years ago)

Oracle Pool for 1.0.X branch

  • django/db/backends/oracle/base.py

     
    257257
    258258    def __init__(self, *args, **kwargs):
    259259        super(DatabaseWrapper, self).__init__(*args, **kwargs)
    260 
     260        from django.conf import settings
     261        self.settings = settings
    261262        self.features = DatabaseFeatures()
    262263        self.ops = DatabaseOperations()
    263264        self.client = DatabaseClient()
     
    266267        self.validation = BaseDatabaseValidation()
    267268
    268269        # Fetch connection pool settings
    269         opts = self.settings_dict['DATABASE_OPTIONS']
     270        opts = settings.get('DATABASE_OPTIONS')
    270271        if not isinstance(opts, dict):
    271272            # Insurance against foolish users...
    272273            opts = {}
     
    279280
    280281    def _get_pool (self):
    281282        if not hasattr (self.__class__, '_pool'):
    282             settings_dict = self.settings_dict
     283            settings = self.settings
    283284            Database.OPT_Threading = 1
    284             if len(settings_dict['DATABASE_HOST'].strip()) == 0:
    285                 settings_dict['DATABASE_HOST'] = 'localhost'
    286             if len(settings_dict['DATABASE_PORT'].strip()) != 0:
    287                 dsn = Database.makedsn(settings_dict['DATABASE_HOST'],
    288                                        int(settings_dict['DATABASE_PORT']),
    289                                        settings_dict['DATABASE_NAME'])
    290                 p = Database.SessionPool(settings_dict['DATABASE_USER'],
    291                                          settings_dict['DATABASE_PASSWORD'],
     285            if len(settings.DATABASE_HOST.strip()) == 0:
     286                settings.DATABASE_HOST = 'localhost'
     287            if len(settings.DATABASE_PORT.strip()) != 0:
     288                dsn = Database.makedsn(settings.DATABASE_HOST,
     289                                       int(settings.DATABASE_PORT),
     290                                       settings.DATABASE_NAME)
     291                p = Database.SessionPool(settings.DATABASE_USER,
     292                                         settings.DATABASE_PASSWORD,
    292293                                         dsn,
    293294                                         self._pool_settings['SESSION_POOL_MIN'],
    294295                                         self._pool_settings['SESSION_POOL_MAX'],
    295296                                         self._pool_settings['SESSION_POOL_INCREMENT'],
    296297                                         threaded = True)
    297298            else:
    298                 p = Database.SessionPool(settings_dict['DATABASE_USER'],
    299                                          settings_dict['DATABASE_PASSWORD'],
    300                                          settings_dict['DATABASE_NAME'],
     299                p = Database.SessionPool(settings.DATABASE_USER,
     300                                         settings.DATABASE_PASSWORD,
     301                                         settings.DATABASE_NAME,
    301302                                         self._pool_settings['SESSION_POOL_MIN'],
    302303                                         self._pool_settings['SESSION_POOL_MAX'],
    303304                                         self._pool_settings['SESSION_POOL_INCREMENT'],
     
    360361            pass
    361362        return cursor
    362363
    363     def _cursor(self):
     364    def _cursor(self, settings):
    364365        cursor = None
    365366        if not self._valid_connection():
    366367            if self._use_pool and self.pool is not None:
    367368                self.connection = self.pool.acquire()
    368369            else:
    369                 self.connection = Database.connect(self._connect_string(),
    370                        **self.settings_dict['DATABASE_OPTIONS'])
     370                self.connection = Database.connect(self._connect_string(settings),
     371                       getattr(settings, 'DATABASE_OPTIONS'))
    371372                cursor = self._init_oracle_settings(self.connection)
    372373            try:
    373374                self.connection.stmtcachesize = 20
Back to Top