Hi !
Here i am again.
From the past few weeks , the DBA team who monitor our production database have been on my back regarding the ORA-1000 error. They say that there are a few sessions that have more than 999 cursors open. While i didnt take much notice of it , i was alarmed to see that 90-100% of Shared Pool is used nowadays full time , because of these open cursors! This is causing the database performance to go down. We have done no code change in the recent past and i would like your help in assisting me with this problem.
The DBA team mentions that the procedures do not have "close" cursor statements , hence are leading to this predicament. My answer is this : every single place that a cursor is used in the procedures , it is used in a FOR loop , and hence there is no requirement for me to OPEN ,FETCH or CLOSE. I even provided them with Oracle documentation on the same and they refuse to believe it citing 'perhaps Oracle never tested these(cursor FOR loops) through Java'. What do i say?![[sadeyes] [sadeyes] [sadeyes]](/data/assets/smilies/sadeyes.gif)
Is it true that even if i use the Cursors in FOR loops i have to go ahead and close them explicitly? i have more than 3-400 procedures and all of them use cursors left-right and center.... so i am consulting you all before going gung-ho on the changes.
Here is our system architecture: we have a Java front end on SunOne , calling procedures from an Oracle 9.2.0.4 db. All the business logic is there in the procedures and the front end just displays the data. Are there any known problems in Oracle 9i that result in ORA-1000s ? In fact , the DBA team mentioned that they have put a security patch on the prod db, on a date which suspiciously coincides with the date from which we are experiancing performance problems (they are refusing to see the light and are calling it a coincidence). Is there hope?
Regards,
S. Jayaram Uparna .

Here i am again.
From the past few weeks , the DBA team who monitor our production database have been on my back regarding the ORA-1000 error. They say that there are a few sessions that have more than 999 cursors open. While i didnt take much notice of it , i was alarmed to see that 90-100% of Shared Pool is used nowadays full time , because of these open cursors! This is causing the database performance to go down. We have done no code change in the recent past and i would like your help in assisting me with this problem.
The DBA team mentions that the procedures do not have "close" cursor statements , hence are leading to this predicament. My answer is this : every single place that a cursor is used in the procedures , it is used in a FOR loop , and hence there is no requirement for me to OPEN ,FETCH or CLOSE. I even provided them with Oracle documentation on the same and they refuse to believe it citing 'perhaps Oracle never tested these(cursor FOR loops) through Java'. What do i say?
![[sadeyes] [sadeyes] [sadeyes]](/data/assets/smilies/sadeyes.gif)
Is it true that even if i use the Cursors in FOR loops i have to go ahead and close them explicitly? i have more than 3-400 procedures and all of them use cursors left-right and center.... so i am consulting you all before going gung-ho on the changes.
Here is our system architecture: we have a Java front end on SunOne , calling procedures from an Oracle 9.2.0.4 db. All the business logic is there in the procedures and the front end just displays the data. Are there any known problems in Oracle 9i that result in ORA-1000s ? In fact , the DBA team mentioned that they have put a security patch on the prod db, on a date which suspiciously coincides with the date from which we are experiancing performance problems (they are refusing to see the light and are calling it a coincidence). Is there hope?
Regards,
S. Jayaram Uparna .