У меня есть следующая архитектура:Load Balancer - Тайм-аут блокировки ожидания превышено - попробуйте перезапустить транзакцию
1 Load балансира
3 Amazon EC 2 экземпляра (лампы, с Symfony2)
1 RDS База данных
Я недавно установил это, потому что я получал много трафика для одного экземпляра, и я сделал Symfony2 использовать базу данных для сеансов, но теперь я продолжаю получать эту ошибку в файле журнала:
Uncaught PHP Exception PDOException: "SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction" at /var/www/front/shared/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php line 513
Я предполагаю, что это происходит потому, что все экземпляры записывают в столбец сеансов в базе данных, что я могу сделать, чтобы избежать этой ошибки? И что именно теряется, когда эта ошибка срабатывает?
EDIT:
таблица Session выглядит следующим образом.
CREATE TABLE `sessions` (
`sess_id` VARBINARY(128) NOT NULL PRIMARY KEY,
`sess_data` BLOB NOT NULL,
`sess_time` INTEGER UNSIGNED NOT NULL,
`sess_lifetime` MEDIUMINT NOT NULL
) COLLATE utf8_bin, ENGINE = InnoDB;
что тип (MyISAM, InnoDB, память) таблицы сессий? –
Тип таблицы сеансов: InnoDB –
показать структуру и ключи таблицы сеансов, pls –