PDA

View Full Version : جلوگیری از تداخل چند یوزر در ورود به برنامه



raha_hakhamanesh
شنبه 27 مرداد 1386, 23:13 عصر
با سلام

در یک برنامه تعدادی پردازه داریم که پس از مراجعه به یکی از صفحات وب پروژه مان در بانک، اطلاعاتی را ثبت می کند و بالافاصله مجدداً اطلاعات ثبت شده را در جایی دیگر فراخوانی می کند فاصله زمانی بین این دو بسیار کم است اما در حین این عملیات پردازش دوم می تواند اطلاعات خودش را ثبت کند و پردازش اول اشتباهی اطلاعات پردازش دوم را فراخوانی کند.
چگونه این مشکل را حل کنم؟
این سیستم بسیار شبیه سیستم ورود کاربران به سایت است و اطلاعات می تواند مشابه رمز عبور آنها باشد یکی از دوستان استفاده از سشن را پیشنهاد دادند اگر صحیح است لطفا راهنمایی بفرمایید چگونه ؟

با تشکر

rtech
یک شنبه 28 مرداد 1386, 00:27 صبح
میشه دقیقا بگید این اطلاعاتی که ذخیره میکنید چیه و آیا در همون صفحه اطلاعات را فراخوانی میکنید ؟

raha_hakhamanesh
یک شنبه 28 مرداد 1386, 10:18 صبح
سلام
با تشکر از توجه شما
اطلاعاتی که ذخیره می شوند شامل شماره ID هر پروسس هست به همرا نام برنامه فراخوان و شماره پدر(ایجاد کننده) پروسس.
ID کلید هست .
ضمنا اطلاعات در صفحه ای دیگر فراخوانی می شود.
منتظر پاسخ شما هستم.

Behrouz_Rad
یک شنبه 28 مرداد 1386, 18:27 عصر
در یک برنامه تعدادی پردازه داریم که پس از مراجعه به یکی از صفحات وب پروژه مان در بانک، اطلاعاتی را ثبت می کند و بالافاصله مجدداً اطلاعات ثبت شده را در جایی دیگر فراخوانی می کند
این قسمت رو بیشتر توضیح بده.

raha_hakhamanesh
چهارشنبه 31 مرداد 1386, 13:01 عصر
با سلام

در صفحه ای شماره آی دی پروسس دریافت و در دیتابیس ذخیره می شود پس از اتمام ذخیره سازی ، کنترل برنامه به یک صفحه دیگر Redirect شده و در آنجا مشخصات آن پروسسی که آخرین بار ذخیره شده است فراخوانی می شود. مشکل بر سر همین آخرین بار است زیرا ممکن است در یک لحظه با احتمال بسیار اندک دو پردازه همزمان قصد ثبت در بانک را داشته باشند ولی در صفحه جدید فقط یک پروسس خوانده می شود آنکه دیرتر ثبت شده.
آقای راد این موضوع بسیار شبیه دریافت آی دی پسوورد user و تعیین هویت و سپس Redirect به صفحه درخواست شده می باشد بنابراین اگر چنین چیزی را هم راهنمایی بفرمایید کفایت می کند.
بحث سمافورها را هم به خاطر داشته باشید . دقیقا همان مسئله است

Behrouz_Rad
چهارشنبه 31 مرداد 1386, 13:13 عصر
در آنجا مشخصات آن پروسسی که آخرین بار ذخیره شده است فراخوانی می شود.
آی دی پروسس رو با Query String پاس بده.

raha_hakhamanesh
چهارشنبه 31 مرداد 1386, 13:56 عصر
از شما متشکرم