PDA

View Full Version : همزمانی در اجرا در برنامه تحت شبکه



ali_mnkt
دوشنبه 11 خرداد 1388, 00:17 صبح
دوستان من در شبیه سازی همزمانی یه مشگل کوچولو دارم:

یه transaction به صورت زیر در managment studio به صورت زیر می نویسم :



set transaction Isolation Level Serializable
begin transaction
update customer set id=13;
where id=12


حلا یکی دیگه هم به صورت زیر اضافه می کنم :


begin transaction

insert into customer(id,price) values(12,1000)


حالا کد اول رو اجرا می کنم و بعد کد دوم رو اما می بینم که کد دوم اجرا می شه در صورتی

که چون در کد اول من از isolation level serializable استفاده کردم و هنوز تکلیف commit

یا rollback شدن اون مشخص نشده قاعدتا باید کد دوم به wait برود . اما چرا نمی ره ؟

NewFoxStudent
دوشنبه 11 خرداد 1388, 09:49 صبح
فکر کنم اگه کد دوم رو بدون Transaction اجرا کنید به نتیجه برسید

ali_mnkt
دوشنبه 11 خرداد 1388, 14:25 عصر
دوست عزیز من اونو بدون tran هم نوشتم اما وارد wait نمی شه . یعنی اگر مثلا قسمت

insert رو چند بار هم بزنیم بازم insert میکنه ( در حالی که tran مخصوص update هنوز commit

یا rollback شدنش مشخص نیست) اما بعد از چند لحظه یه time out می ده که شکلشو میذارم

ali_mnkt
سه شنبه 12 خرداد 1388, 14:25 عصر
از دوستان کسی نمی تونه کمکی کنه ؟

Mahdi1001
سه شنبه 12 خرداد 1388, 14:31 عصر
من فکر کنم اگه از سمافور ها استفاده کنی موشکلت حل شه . درس سیستم عامل اگه پاس کردی ؟
البته از اون تو سی شارپ باید استفاده کنی . خوب به طبع کوری مورد نظرت نیز باید تو سی شارپ بفرستی .