1,
ORA-04031: 无法分配 4096 字节的共享内存 ("shared pool","begin :1 := dbms_lob.getchun...","PL/SQL MPCODE","BAMIMA: Bam Buffer")
Start server side stack trace:
java.sql.SQLException: ORA-04031: 无法分配 4096 字节的共享内存 ("shared pool","begin :1 := dbms_lob.getchun...","PL/SQL MPCODE","BAMIMA: Bam Buffer")
2,ORA-22990: LOB 定位器无法扩展事务处理
ORA-06512: 在"SYS.DBMS_LOB", line 708
ORA-06512: 在line 1
Start server side stack trace:
java.io.IOException: ORA-22990: LOB 定位器无法扩展事务处理
ORA-06512: 在"SYS.DBMS_LOB", line 708
ORA-06512: 在line 1 at oracle.jdbc.dbaccess.DBError.SQLToIOException(DBError.java:531)
at oracle.jdbc.driver.OracleClobWriter.flushBuffer(OracleClobWriter.java:181)
at oracle.jdbc.driver.OracleClobWriter.flush(OracleClobWriter.java:141)
at weblogic.jdbc.common.internal.JDBCWriterImpl.flush(JDBCWriterImpl.java:72)
at weblogic.jdbc.common.internal.JDBCWriterImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:362)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:821)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:308)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)以上连个问题,好久都不能解决。查找资料也没有较好的解决办法。
等待牛人出现!

解决方案 »

  1.   

    ORA-04031 unable to allocate string bytes of shared memory ("string","string","string","string")Cause: More shared memory is needed than was allocated in the shared pool.Action: If the shared pool is out of memory, either use the DBMS_SHARED_ POOL package to pin large packages, reduce your use of shared memory, or increase the amount of available shared memory by increasing the value of the initialization parameters SHARED_POOL_RESERVED_SIZE and SHARED_ POOL_SIZE. If the large pool is out of memory, increase the initialization parameter LARGE_POOL_SIZE.ORA-22990 LOB locators cannot span transactionsCause: A LOB locator selected in one transaction cannot be used in a different transaction.Action: Reselect the LOB locator and retry the operation.
      

  2.   

    系统全局域SGA太小,调整加大INIT<SID>.ORA 共享池的大小
      

  3.   

    同意smallcrocodile(大鳄鱼)
    我尝试了很多办法,就是没有较详细的解决办法。都是说要改动initsid.ora,以上的方法我早就试过了!
    按照下面的描述我也试过。
    /****************
    sga太小,需要挑战其大小,SGA=0.45*(OS RAM)
    根据你的情况调整这个参数文件的大小。
    initorasid.ora文件里具体各参数如下:shared_pool_size = 314572800
    # 300 Mdb_block_buffers = 72960
    # 570 Mlog_buffer = 524288
    # 512k (128K*CPU个数)
    调整后重新启动数据库。
    ****************/有真正的高手能知道一下吗?等待中。。
      

  4.   

    1。重新启动数据库。
    2。用pl/sql编译非法对象的功能(里面没有非法对象显示),转动几下小齿轮就可以了,
       在重复2动作,包好!