Приветствую, собственно имеется следующий вопрос:
Есть таблица, например:
create table info_data (
item_id int unsigned not null,
item_param mediumint unsigned
)
ENGINE = INNODB
процесс работы с этой таблицей, в результате которого появился данный вопрос, выглядит следующим образом:
- на сервере
S1 некий php-скрипт
S1-А при своём запуске, создаёт
PDO-подключение к БД
- скрипт
S1-А обращается на удалённый сервер
S2, и дёргает (то есть, просто вызывает по HTTP) другой скрипт
S2-A на этом удалённом сервере, в блокирующем режиме, то есть, скрипт
S1-А не получит управление до тех пор, пока не получит ответ от скрипта
S2-A- скрипт
S2-A в свою очередь, выполняет некие действия, и так же вызывает (по HTTP) другой скрипт
S1-B на первом сервере
S1- скрипт
S1-B меняет значение столбца item_param в вышеприведённой таблице, и заканчивает свою работу
- скрипт
S2-A получает ответ от
S1-B и заканчивает свою работу
-
S1-A получает ответ от
S2-A и смотрит значение поля item_param.
Собственно, проблема в том, что значение этого поля не изменилось для скрипта
S1-A, когда же в самой БД, это поле меняется.
Все скрипты которые пишут в базу используют транзакции с явным коммитом.
В общем, подскажите, из-за чего происходит подобная проблема.
Отредактированно zenovy (25.10.2013 14:09:41)