Hello, A simple CMP bean on a Oracle table with 1200 records is causing an error : javax.ejb.EJBException: Load failed; CausedByException is: ORA-04031: unable to allocate 232 bytes of shared memory ("shared pool","SELECT frm_code, frm_name, f...","sql area","qerixs : rixalo")
System : Oracle 8.1.7 : ojdbc14.jar : JBoss 3.2.3 (also 3.2.5) : jdk 1.4.2_04-b05 : local-tx-datasource I'm using normal getters with default transaction attributes. I'm accessing the CMP bean through a session bean. This is the method in the session bean: /** * @ejb.interface-method * @ejb.transaction * type="Required" */ public Collection getProductionFirms() { try { Context context = new InitialContext(); ProductionFirmLocalHome home = (ProductionFirmLocalHome) context.lookup(ProductionFirmLocalHome.COMP_NAME); Collection c = home.findAll(); Collection tos = new ArrayList(c.size()); for (Iterator i = c.iterator(); i.hasNext();) { ProductionFirmLocal productionFirm = (ProductionFirmLocal) i.next(); ProductionFirmTO to = new ProductionFirmTO(productionFirm.getCode(), productionFirm.getName(), productionFirm.getIndependent(), new DomainItemTO(productionFirm.getCountryCode(), productionFirm.getCountryName())); tos.add(to); } return tos; } catch (NamingException e) { throw new EJBException(e); } catch (FinderException e) { throw new EJBException(e); } } I turned on the trace on org.jboss.tm and org.jboss.ejb.plugins. JBoss first finds the PK's (1200). Then JBoss writes a SQL statement like "Select ... from ... where (PK = ?) OR (PK=?) OR (PK=?) OR (PK=?) etc. Then is JBoss is setting the parameters 1200 times. But at 1000 it gives the Oracle error. This is the last snippet of the trace : 2004-09-22 23:20:07,119 TRACE [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.ProductionFirm#code] Set parameter: index=999, jdbcType=VARCHAR, value=PDB 2004-09-22 23:20:07,119 TRACE [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.ProductionFirm#code] Set parameter: index=1000, jdbcType=VARCHAR, value=PEARC 2004-09-22 23:20:14,181 TRACE [org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy] Resized cache for bean ProductionFirm: old capacity = 1000000, new capacity = 50 2004-09-22 23:20:17,010 TRACE [org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy] entryRemoved, entry=key: null, object: null, entry: 966905 2004-09-22 23:20:17,010 TRACE [org.jboss.ejb.plugins.EntityInstanceInterceptor] Ending invoke, exceptionThrown, [EMAIL PROTECTED] javax.ejb.EJBException: Load failed; CausedByException is: ORA-04031: unable to allocate 232 bytes of shared memory ("shared pool","SELECT frm_code, frm_name, f...","sql area","qerixs : rixalo") at org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.execute(JDBCLoadEntityCommand.java:232) at org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.execute(JDBCLoadEntityCommand.java:72) at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.loadEntity(JDBCStoreManager.java:612) at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.loadEntity(JDBCStoreManager.java:594) at org.jboss.ejb.plugins.CMPPersistenceManager.loadEntity(CMPPersistenceManager.java:381) at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.loadEntity(CachedConnectionInterceptor.java:352) at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke(EntitySynchronizationInterceptor.java:239) at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185) at org.jboss.ejb.plugins.EntityReentranceInterceptor.invoke(EntityReentranceInterceptor.java:114) at org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstanceInterceptor.java:163) at org.jboss.ejb.plugins.EntityLockInterceptor.invoke(EntityLockInterceptor.java:89) at org.jboss.ejb.plugins.EntityCreationInterceptor.invoke(EntityCreationInterceptor.java:54) at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84) at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:267) at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:128) at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:118) at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191) at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122) at org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:489) at org.jboss.ejb.Container.invoke(Container.java:700) at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:375) at org.jboss.ejb.plugins.local.EntityProxy.invoke(EntityProxy.java:38) at $Proxy37.getCode(Unknown Source) at nl.vda.won.tv.j2ee.ejb.DomainAgentBean.getProductionFirms(DomainAgentBean.java:94) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:683) at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185) at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:72) at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84) at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:267) at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:128) at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:118) at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191) at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122) at org.jboss.ejb.StatelessSessionContainer.internalInvoke(StatelessSessionContainer.java:331) at org.jboss.ejb.Container.invoke(Container.java:700) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546) at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:367) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) at sun.rmi.transport.Transport$1.run(Transport.java:148) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:144) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) at java.lang.Thread.run(Thread.java:534) The error is reproducable and occurs under the Required transaction attribute of the session method. It does not appear when I change the transaction attribute to NotSupported (but that should be a bad idee) Anybody any idee? T.I.A. Johan Borchers View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3849192#3849192 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3849192 ------------------------------------------------------- This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170 Project Admins to receive an Apple iPod Mini FREE for your judgement on who ports your project to Linux PPC the best. Sponsored by IBM. Deadline: Sept. 24. Go here: http://sf.net/ppc_contest.php _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user