Получение запроса Symfony и кеша результатов для работы с Oracle 11g - PullRequest
2 голосов
/ 01 ноября 2011

Я пытаюсь заставить кеш запросов / результатов memcache работать с Oracle.Он работает безупречно с mysql (проверено с помощью memcached консоли: ./memcached -u nobody -m 40 -vv).Вот что находится в файле web / index.php:

$servers = array(
    'host' => 'localhost',
    'port' => 11211,
    'persistent' => false
);

$cacheDriver = new Doctrine_Cache_Memcache(array(
    'servers' => $servers,
    'compression' => false,
    'prefix' => 'qc-')
);
$manager = Doctrine_Manager::getInstance();
$manager->setAttribute(Doctrine::ATTR_QUERY_CACHE, $cacheDriver);
$manager->setAttribute(Doctrine::ATTR_RESULT_CACHE, $cacheDriver);
$manager->setAttribute(Doctrine_Core::ATTR_RESULT_CACHE_LIFESPAN, 3600);

Это работает так, как и предполагалось для MySQL, но не получается, когда в первом месте, где я использую, появляется следующее сообщение -> useResultCache (true):

Result Cache driver не инициализирован.

Кто-нибудь знает, что происходит и / или нужна ли дополнительная настройка для его работы с серверной частью Oracle DB?

Спасибо.

1 Ответ

2 голосов
/ 23 декабря 2011

вы должны попытаться установить эти атрибуты менеджера внутри вашего класса YOUR_APPConfiguration, как описано здесь: http://www.funstaff.ch/2009/03/19/le-cache-de-resultat-avec-doctrine

class frontendConfiguration extends sfApplicationConfiguration
{
  public function configureDoctrine(Doctrine_Manager $manager)
  {
    $servers = array(
        'host' => 'localhost',
        'port' => 11211,
        'persistent' => false
    );

    $cacheDriver = new Doctrine_Cache_Memcache(array(
        'servers' => $servers,
        'compression' => false,
        'prefix' => 'qc-')
    );
    $manager->setAttribute(Doctrine_Core::ATTR_QUERY_CACHE, $cacheDriver);
    $manager->setAttribute(Doctrine_Core::ATTR_QUERY_CACHE_LIFESPAN, 3600);
    $manager->setAttribute(Doctrine_Core::ATTR_RESULT_CACHE, $cacheDriver);
    $manager->setAttribute(Doctrine_Core::ATTR_RESULT_CACHE_LIFESPAN, 3600);
  }
}
...