PDA

View Full Version : خطای مبهم



mhkyazd
جمعه 17 آذر 1391, 12:24 عصر
سلام به همه
یه برنامه نوشتم که تو یه حلقه بی نهایت اجرا میشه ولی بعد از چند دقیقه یه خطا میده و مینویسه
Database Error

Error: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction
لطفا اگه کسی میدونه یه چند جمله ای در باره این خطا توضیح بده و بگه چجوری میتونم این خطا رو برطرف کنم

pani.khoram
شنبه 18 آذر 1391, 07:47 صبح
با سلام ،
تو دیتابیس هایی که چند کاربره و ( multi user ) و چند فرآینده هستند ( multi Proccess ) ، سفارش هایی که به سمت سرور ارسال می شود ، قفل می شود تا کاربر نتواند درخواست های همزمان بر رویه یک سفارش خاص ارسال کند ، به اصطلاح ، جلوگیری از تغییر خودسرانه از فرایندهای متعدد اتفاق می افتد.
این اتفاق یا به دلیل بهینه نبودن کد درخواستی به سمت سرور می باشد یا معمولا ضعف های سیستمی که مثلا InnoDB ها داشتن و برطرف شد .

دوباره کدتون رو تست بگیرید تو یه سیستم دیگه و مطمئن شوید که کدتون بدون مشکل است و در نظر داشته باشید هوشمند بودن سیستم های پایگاه داده اجازه نمی دهند که فرایند های همزمانی داشته باشید .

اگه تو کد هم حتما لازم است که این فرایند حلقه بی نهایت رو داشته باشید حتما exception مناسب براش در نظر بگیرید .

موفق باشید

mhkyazd
شنبه 18 آذر 1391, 18:18 عصر
خیلی ممنون از راهنماییتون،کدی که من نوشتم 3 ،4 ساعت کار میکنه و بعد این خطا رو میده ،ایا راهی دیگه نداره که تنظیمات دیتابیس داشته باشه تا این خطا رخ نده مثلا دیتا بیس رو صفشو برا عملیات بیشتر کنم،ضمنا نوشته بودید exception مناسب بزارم تو حلقه اگه مشه یه توضیح بدید که چگونه این کار رو انجام بدم

rezasprit
یک شنبه 01 بهمن 1391, 17:11 عصر
Deadlock etefagh miofte too halghat ye sleep bezar ta database karesh tamom she
bad farayande badi ro anjam bede