एक गतिरोध रिटर्न एरर 1213 जिसे आपको क्लाइंट साइड पर प्रोसेस करना चाहिए
ध्यान दें कि गतिरोध और लॉक प्रतीक्षा अलग-अलग चीजें हैं। गतिरोध में, कोई "विफल" लेनदेन नहीं है:वे दोनों दोषी हैं। इस बात की कोई गारंटी नहीं है कि किसे वापस लाया जाएगा।
आपको rollback
. का उपयोग करना चाहिए , आपका स्टाइल कोड डुप्लिकेट सम्मिलित करेगा। उदाहरण के लिए आपको यह करना चाहिए:
$retry = 0;
$done = false;
$this->entityManager->getConnection()->beginTransaction(); // suspend auto-commit
while (!$done and $retry < 3) {
try {
$this->entityManager->flush();
$this->entityManager->getConnection()->commit(); // commit if succesfull
$done = true;
} catch (\Exception $e) {
$this->entityManager->getConnection()->rollback(); // transaction marked for rollback only
$retry++;
}
}
आशा है कि यह मदद।