السلام عليكم ورحمةالله وبركاته
انا عامل برنامج (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() هل تفرق لو استخدمتها او لا
-----
ضروري شوفولي حل


