الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مهم جدا..القراء من قاعدة البيانات اوركل

بدأه walleed23 في 20 نوفمبر 2008 · 8 رد · 1,263 مشاهدة · في قسم تكنولوجيا Microsoft .NET العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمةالله وبركاته

انا عامل برنامج (web service)

يستلم طلبات...عدد كبير من الطلبات واعملها مرة واحد

على قاعدة بيانات اوركلupdate

بها اقصى عدد للطلبات 500array انا بأستقبل

update اعمل الfor loopومن داخل

واحد لل 500 طلبconnectionبي

بتتناده من اكثر من جهه خارجيةweb serviceطبعا ال

web service ف حالة اكثر من من مناداه لل

بيظهر هذه الرسالة

ORA-01000: maximum open cursors exceeded

بقاعدة البيانات 1000cursors عدد ال

cursors الواحد اصفر الconnectionفكيف اول ما اخلص اول 500 بال

في نفس الوقت لا يحتسب علي الكيرسر الاول لكي لا تظهر هذه المشكلةweb serviceعشان لمن احد ينادي ال

الكود بشكل مختصر

Imports Oracle.DataAccess.Client

-----

Dim conn As New OracleConnection("بيانات الاتصال")

conn.Open()

For Each itemStatus In reply.OrderStatus

Dim sql As String = " update Statment "

Dim cmd As New OracleCommand(sql, conn)

cmd.CommandType = CommandType.Text

i = cmd.ExecuteNonQuery()

cmd.Dispose() هل تفرق لو استخدمتها او لا

Dim sql As String = " update Statment 2"

Dim cmd As New OracleCommand(sql, conn)

cmd.CommandType = CommandType.Text

i = cmd.ExecuteNonQuery()

cmd.Dispose() هل تفرق لو استخدمتها او لا

Next

conn.Close()

conn.Dispose() هل تفرق لو استخدمتها او لا

-----

ضروري شوفولي حل

#3

جمل update عادية

#4

قد يكون من الأفضل في هذه الحالة رفع عدد الـcursors أو (الطريقة الأفضل) استخدام الـqueuing لعمل قائمة انتظار لأوامر الـupdate

#5

طيب ممكن تشرحلي كيف اعمل queuing باستخدام ال V.B ؟

#7

طيب في طريقة ممكن بعد ما انتهي من for واقفل ال connection اصفر ال cursors؟

او

لو في طريقة اعمل loock لل object بحيث لا يتناده ال class الا بعد ما يخلص الاول؟

#8
walleed23 كتب:
طيب في طريقة ممكن بعد ما انتهي من for واقفل ال connection اصفر ال cursors؟

يفترض أن هذا يتم آلياً عن طريق الداتابيس.

walleed23 كتب:
لو في طريقة اعمل loock لل object بحيث لا يتناده ال class الا بعد ما يخلص الاول؟

هذه بالضبط فكرة الـqueuing

#9

شكرا...جزاك الله خير

مواضيع مشابهة