Bug #22127 Oracle error about too many open cursors when moving many db's
Submitted: 8 Sep 2006 20:11 Modified: 9 Sep 2006 2:04
Reporter: marc castrovinci (Basic Quality Contributor) Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Migration Toolkit Severity:S3 (Non-critical)
Version: OS:
Assigned to: CPU Architecture:Any
Tags: curors, error, Oracle

[8 Sep 2006 20:11] marc castrovinci
Description:
I don't have the exact error with me, but I have most of it.

I open up the Migration Toolkit, loads up then shows the schemas. I have around 415 at my work. Well, i'm moving them all on my local machine to test them. So if I click and drag MORE then 75 schemas, it will mess up.

After SOME TIME, it will generate and error saying that Oracle has to many open cursors or something like that. If it happens again i'll post the real error. 

Now, I don't know if this is critical or not. I would prefer to select all 415 and let the computer do its thing. But now I have to monitor it while I do 70 at a time.

How to repeat:
Start the Toolkit.

Select more then 75 schemas to migrate.

Wait.
[8 Sep 2006 21:38] marc castrovinci
It did it again. This time I had only selected 50. 

The schema could not be reverse engineered (error: 0).
ReverseEngineeringOracle.reverseEngineer :ORA-01000: maximum open cursors exceeded
ORA-06512: at "SYS.DBMS_DDL", line 179
ORA-06512: at "SYS.DBMS_UTILITY", line 331
ORA-06512: at line 1

Details: 
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3390)
com.mysql.grt.modules.ReverseEngineeringOracle.reverseEngineer(ReverseEngineeringOracle.java:121)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.mysql.grt.Grt.callModuleFunction(Unknown Source)
[9 Sep 2006 2:04] marc castrovinci
Sorry guys. Upon further research it is an Oracle setting. I had the open_cursors setting at only 100. Some sites say it should be up as high as 1000. I don't know how the toolkit accesses the schema's, but maybe it should close the cursor after it's done and then open again. Just a thought.