Я подготовил 2 файла: «1.php» и «2.php».
"1.php" похож на это.
<?php
$dbh = new PDO('sqlite:test1');
$dbh->beginTransaction();
print "aaa<br>";
sleep(55);
$dbh->commit();
print "bbb";
?>
и "2.php" похожи на это.
<?php
$dbh = new PDO('sqlite:test1');
$dbh->beginTransaction();
print "ccc<br>";
$dbh->commit();
print "ddd";
?>
и я прошу прощения "1.php". Он начинает транзакцию и ждет 55 секунд.
Поэтому, когда я сразу же извиняюсь за «2.php», я ожидаю, что это:
- «1.php» получает транзакцию и
- «1» удерживает блокировку базы данных
- «2» не может начать транзакцию
- "2" не может получить блокировку базы данных, поэтому
- "2" должны ждать 55 секунд
НО, но тест пошел другим путем. Когда я извиняюсь "2", то
- "2" немедленно вернул свой результат
- «2» не ждал
поэтому я должен думать, что "1" не может получить транзакцию или не может получить блокировку базы данных.
Может кто-нибудь помочь?