Установка параметра тайм-аута соединения в соединении postgresql PDO

1

По какой-то причине я хочу установить тайм-аут соединения postgresql на 5 секунд. Я использую Zend Framework 1.12, а для создания соединения postgresql я использую класс Zend_Db_Adapter_Pdo_Pgsql, я не нашел никаких параметров, с помощью которых мы можем определить тайм-аут соединения.

Я ищу вокруг, но ничего не получил. Пожалуйста, дайте мне некоторое предложение, как я могу это сделать.

Спасибо

Теги:
pdo
zend-framework

2 ответа

0

Я нашел решение: вам нужно установить таймаут перед каждым запросом:

$db->beginTransaction();
$db->query('SET LOCAL statement_timeout = 2000'); //2 Sek. Timeout
$res = $db->fetchAll($select);

Это влияет только на NEXT Query на БД, и это важно, что у вас есть транзакция. Без транзакции это не сработает. Если после него вы сделали еще один запрос (поймать таймаут, транзакцию отката), он все равно будет иметь TIMEOUT по умолчанию. Создание DB-процедуры не будет работать! Вы действительно должны установить тайм-аут в своей функции.

-1

Вы нашли решение? Пробовал

$db->getConnection()->setAttribute(PDO::ATTR_TIMEOUT,1);

но не работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню