CreateRow increases memory and cpu. Tomcat+ADF Faces+BC4J in JDev 10.1.3.0

CreateRow increases memory and cpu. Tomcat+ADF Faces+BC4J in JDev 10.1.3.0.4
My old problem is this Ineffectiveness/Inconsistency BC4J createrow in tomcat, CPU = 100%,Mem=2.2G
I have tested my Adf Faces application with jmx in server and, in my machine, jconsole and mc4j.
When cpu=100% and memory increases, jconsole constantly returned similar trace:
In all trace, I see that common is:
oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:2203)
oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:2088)
Therefore, I believe that function populateRow make infinity loop (or fuction fech make infinity loop, called populateRow), but I don’t know populteRow or fetch code.
tomcat Version: 5.5.16
Jdeveloper Version: 10.1.3.0.4
Adf Business component Version: 10.1.3.36.73
Java version: 1.5.0_05
Please, any oracle ACE could help me?
When cpu=100% and memory increases, jconsole constantly returned any of these trace:
First trace
java.net.SocketOutputStream.socketWrite0(Native Method)
java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
java.net.SocketOutputStream.write(SocketOutputStream.java:136)
oracle.net.ns.DataPacket.send(Unknown Source)
oracle.net.ns.NetOutputStream.flush(Unknown Source)
oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
oracle.net.ns.NetInputStream.read(Unknown Source)
oracle.net.ns.NetInputStream.read(Unknown Source)
oracle.net.ns.NetInputStream.read(Unknown Source)
oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:979)
oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:951)
oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:448)
oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:185)
oracle.jdbc.driver.T4CPreparedStatement.fetch(T4CPreparedStatement.java:692)
oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:258)
oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:193)
oracle.jbo.server.QueryCollection.hasNextInResultSet(QueryCollection.java:3014)
oracle.jbo.server.ViewObjectImpl.hasNextForCollection(ViewObjectImpl.java:3650)
oracle.jbo.server.QueryCollection.hasNext(QueryCollection.java:2992)
oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:2207)
oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:2088)
oracle.jbo.server.QueryCollection.get(QueryCollection.java:1468)
oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:3650)
oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:2612)
oracle.jbo.server.ViewObjectImpl.activateCurrentRow(ViewObjectImpl.java:12360)
oracle.jbo.server.ViewRowSetIteratorImpl.activateIteratorState(ViewRowSetIteratorImpl.java:3768)
oracle.jbo.server.ViewRowSetImpl.activateIteratorState(ViewRowSetImpl.java:4960)
oracle.jbo.server.ViewRowSetImpl.doCreateAndInitRow(ViewRowSetImpl.java:1901)
oracle.jbo.server.ViewRowSetImpl.createRow(ViewRowSetImpl.java:1891)
oracle.jbo.server.ViewObjectImpl.createRow(ViewObjectImpl.java:6555)
com.samesi.segestion.view.backing.app.Clientes.devoluciones_action(Clientes.java:1845)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:146)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:92)
oracle.adf.view.faces.component.UIXCommand.broadcast(UIXCommand.java:211)
oracle.adf.view.faces.component.UIXCollection.broadcast(UIXCollection.java:94)
oracle.adf.view.faces.component.UIXTable.broadcast(UIXTable.java:205)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:95)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
javax.faces.webapp.FacesServlet._service_79(FacesServlet.java:197)
javax.faces.webapp.FacesServlet.service(FacesServlet.java)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:367)
oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:336)
oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:196)
oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:87)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:332)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Thread.java:595)
Second trace
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:129)
oracle.net.ns.Packet.receive(Unknown Source)
oracle.net.ns.DataPacket.receive(Unknown Source)
oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
oracle.net.ns.NetInputStream.read(Unknown Source)
oracle.net.ns.NetInputStream.read(Unknown Source)
oracle.net.ns.NetInputStream.read(Unknown Source)
oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:979)
oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:951)
oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:448)
oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:185)
oracle.jdbc.driver.T4CPreparedStatement.fetch(T4CPreparedStatement.java:692)
oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:258)
oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:193)
oracle.jbo.server.QueryCollection.hasNextInResultSet(QueryCollection.java:3014)
oracle.jbo.server.ViewObjectImpl.hasNextForCollection(ViewObjectImpl.java:3650)
oracle.jbo.server.QueryCollection.hasNext(QueryCollection.java:2992)
oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:2207)
oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:2088)
oracle.jbo.server.QueryCollection.get(QueryCollection.java:1468)
oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:3650)
oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:2612)
oracle.jbo.server.ViewObjectImpl.activateCurrentRow(ViewObjectImpl.java:12360)
oracle.jbo.server.ViewRowSetIteratorImpl.activateIteratorState(ViewRowSetIteratorImpl.java:3768)
oracle.jbo.server.ViewRowSetImpl.activateIteratorState(ViewRowSetImpl.java:4960)
oracle.jbo.server.ViewRowSetImpl.doCreateAndInitRow(ViewRowSetImpl.java:1901)
oracle.jbo.server.ViewRowSetImpl.createRow(ViewRowSetImpl.java:1891)
oracle.jbo.server.ViewObjectImpl.createRow(ViewObjectImpl.java:6555)
com.samesi.segestion.view.backing.app.Clientes.devoluciones_action(Clientes.java:1845)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:146)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:92)
oracle.adf.view.faces.component.UIXCommand.broadcast(UIXCommand.java:211)
oracle.adf.view.faces.component.UIXCollection.broadcast(UIXCollection.java:94)
oracle.adf.view.faces.component.UIXTable.broadcast(UIXTable.java:205)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:95)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
javax.faces.webapp.FacesServlet._service_79(FacesServlet.java:197)
javax.faces.webapp.FacesServlet.service(FacesServlet.java)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:367)
oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:336)
oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:196)
oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:87)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:332)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Thread.java:595)
Third trace
java.lang.System.arraycopy(Native Method)
com.sun.java.util.collections.ArrayList.toArray(ArrayList.java:287)
oracle.jbo.server.ViewDefImpl.getEntityReferences(ViewDefImpl.java:547)
oracle.jbo.server.ViewRowStorage.entityCacheAdd(ViewRowStorage.java:1730)
oracle.jbo.server.ViewRowImpl.entityCacheAdd(ViewRowImpl.java:2151)
oracle.jbo.server.ViewDefImpl.createInstanceFromResultSet(ViewDefImpl.java:1070)
oracle.jbo.server.ViewObjectImpl.createRowFromResultSet(ViewObjectImpl.java:2943)
oracle.jbo.server.ViewObjectImpl.createInstanceFromResultSet(ViewObjectImpl.java:2841)
oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:2203)
oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:2088)
oracle.jbo.server.QueryCollection.get(QueryCollection.java:1468)
oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:3650)
oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:2594)
oracle.jbo.server.ViewObjectImpl.activateCurrentRow(ViewObjectImpl.java:12360)
oracle.jbo.server.ViewRowSetIteratorImpl.activateIteratorState(ViewRowSetIteratorImpl.java:3768)
oracle.jbo.server.ViewRowSetImpl.activateIteratorState(ViewRowSetImpl.java:4960)
oracle.jbo.server.ViewRowSetImpl.doCreateAndInitRow(ViewRowSetImpl.java:1901)
oracle.jbo.server.ViewRowSetImpl.createRow(ViewRowSetImpl.java:1891)
oracle.jbo.server.ViewObjectImpl.createRow(ViewObjectImpl.java:6555)
com.samesi.segestion.view.backing.app.Clientes.devoluciones_action(Clientes.java:1845)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:146)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:92)
oracle.adf.view.faces.component.UIXCommand.broadcast(UIXCommand.java:211)
oracle.adf.view.faces.component.UIXCollection.broadcast(UIXCollection.java:94)
oracle.adf.view.faces.component.UIXTable.broadcast(UIXTable.java:205)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:95)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
javax.faces.webapp.FacesServlet._service_79(FacesServlet.java:197)
javax.faces.webapp.FacesServlet.service(FacesServlet.java)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:367)
oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:336)
oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:196)
oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:87)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:332)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Thread.java:595)
Fourth (and end) trace
oracle.sql.NUMBER.toBigDecimal(NUMBER.java:715)
oracle.sql.NUMBER.bigDecimalValue(NUMBER.java:2080)
oracle.jbo.domain.Number.bigDecimalValue(Number.java:551)
oracle.jbo.domain.Number.hashCode(Number.java:431)
oracle.jbo.Key.hashCode(Key.java:384)
oracle.jbo.common.WeakHashtableImpl.get(WeakHashtableImpl.java:195)
oracle.jbo.common.WeakHashtable.get(WeakHashtable.java:98)
oracle.jbo.server.EntityCache.add(EntityCache.java:327)
oracle.jbo.server.ViewRowStorage.entityCacheAdd(ViewRowStorage.java:1762)
oracle.jbo.server.ViewRowImpl.entityCacheAdd(ViewRowImpl.java:2151)
oracle.jbo.server.ViewDefImpl.createInstanceFromResultSet(ViewDefImpl.java:1070)
oracle.jbo.server.ViewObjectImpl.createRowFromResultSet(ViewObjectImpl.java:2943)
oracle.jbo.server.ViewObjectImpl.createInstanceFromResultSet(ViewObjectImpl.java:2841)
oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:2203)
oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:2088)
oracle.jbo.server.QueryCollection.get(QueryCollection.java:1468)
oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:3650)
oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:2594)
oracle.jbo.server.ViewObjectImpl.activateCurrentRow(ViewObjectImpl.java:12360)
oracle.jbo.server.ViewRowSetIteratorImpl.activateIteratorState(ViewRowSetIteratorImpl.java:3768)
oracle.jbo.server.ViewRowSetImpl.activateIteratorState(ViewRowSetImpl.java:4960)
oracle.jbo.server.ViewRowSetImpl.doCreateAndInitRow(ViewRowSetImpl.java:1901)
oracle.jbo.server.ViewRowSetImpl.createRow(ViewRowSetImpl.java:1891)
oracle.jbo.server.ViewObjectImpl.createRow(ViewObjectImpl.java:6555)
com.samesi.segestion.view.backing.app.Clientes.devoluciones_action(Clientes.java:1845)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:146)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:92)
oracle.adf.view.faces.component.UIXCommand.broadcast(UIXCommand.java:211)
oracle.adf.view.faces.component.UIXCollection.broadcast(UIXCollection.java:94)
oracle.adf.view.faces.component.UIXTable.broadcast(UIXTable.java:205)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:95)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
javax.faces.webapp.FacesServlet._service_79(FacesServlet.java:197)
javax.faces.webapp.FacesServlet.service(FacesServlet.java)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:367)
oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:336)
oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:196)
oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:87)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:332)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Thread.java:595)Tranks,

I continued researching. When my server gain cpu and memory in Catalina.out, I can to see this output:
Feb 28, 2008 10:25:53 AM oracle.adf.view.faces.webcache.component.UICache encodeBegin
INFO: fragment is Facturacion.jspx:_id3
Feb 28, 2008 10:25:53 AM oracle.adf.view.faces.webcache.component.UICache getFragmentFromCache
INFO: fragment (Facturacion.jspx:_id3) fetch: cache miss
Feb 28, 2008 10:25:53 AM oracle.adf.view.faces.webcache.component.UICache insertFragmentInCache
INFO: fragment (Facturacion.jspx:_id3) insert: cached for 864000 secs
Feb 28, 2008 10:25:53 AM oracle.adf.view.faces.webcache.component.UICache encodeBegin
INFO: fragment is Facturacion.jspx:_id4
Feb 28, 2008 10:25:53 AM oracle.adf.view.faces.webcache.component.UICache getFragmentFromCache
INFO: fragment (Facturacion.jspx:_id4) fetch: cache missIn this example, I belive that user is resuming the Facturacion.jspx page. In my code I have this line:
It’s corresponding to menu.
I have looking this documentation:
http://download.oracle.com/docs/html/B25947_01/web_cache002.htm
In this documentation, first access, the cache miss, but the following times the cache could hit. . When my server gain cpu and memory I look that the following times the cache always miss in all pages. Subsequently tomcat no reply and the malicious thread, execute Armageddon trace. This behavior of the cache is strange, right?
I’m sure that I’m making anything that fetch in queryCollection make big loop.
I have redefining getRangeSize and CurrentRow of my CustomViewObject (all viewOjects about my applications extends CustomViewObject and CustomViewObject extends viewObject) and I looked correct rangesize (not -1). I got system.out.println(getFetchedRowCount()) in createRow and obtain 13 or 15. I belive that It’s correct.
Another example of problematic trace is (in this case is in preparemodel):
com.sun.java.util.collections.ArrayList.indexOf(ArrayList.java:201)
com.sun.java.util.collections.ArrayList.contains(ArrayList.java:183)
oracle.jbo.server.ViewRowCache.addWithCheck(ViewRowCache.java:351)
oracle.jbo.server.ViewRowCache.add(ViewRowCache.java:409)
oracle.jbo.server.QueryCollection.addRowToColl(QueryCollection.java:2069)
oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:2111)
oracle.jbo.server.QueryCollection.get(QueryCollection.java:1468)
oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:3650)
oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:2612)
oracle.jbo.server.ViewObjectImpl.activateCurrentRow(ViewObjectImpl.java:12360)
oracle.jbo.server.ViewRowSetIteratorImpl.activateIteratorState(ViewRowSetIteratorImpl.java:3768)
oracle.jbo.server.ViewRowSetIteratorImpl.getRangeSize(ViewRowSetIteratorImpl.java:627)
oracle.jbo.server.ViewRowSetImpl.getRangeSize(ViewRowSetImpl.java:2251)
oracle.jbo.server.ViewObjectImpl.getRangeSize(ViewObjectImpl.java:6065)
oracle.adf.model.binding.DCIteratorBinding.initSourceRSI(DCIteratorBinding.java:1549)
oracle.adf.model.binding.DCIteratorBinding.callInitSourceRSI(DCIteratorBinding.java:1420)
oracle.adf.model.binding.DCIteratorBinding.getRowSetIterator(DCIteratorBinding.java:1403)
oracle.adf.model.binding.DCIteratorBinding.setRangeSize(DCIteratorBinding.java:2641)
oracle.adf.model.binding.DCBindingContainer.internalRefreshControl(DCBindingContainer.java:2484)
oracle.adf.model.binding.DCBindingContainer.refresh(DCBindingContainer.java:2257)
oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.prepareModel(PageLifecycleImpl.java:104)
com.samesi.segestion.view.frameworkExt.SegestionPageLifecycle.prepareModel(SegestionPageLifecycle.java:354)
oracle.adf.controller.v2.lifecycle.Lifecycle$8.execute(Lifecycle.java:210)
oracle.adf.controller.v2.lifecycle.Lifecycle.executePhase(Lifecycle.java:116)
oracle.adf.controller.faces.lifecycle.ADFPhaseListener.mav$executePhase(ADFPhaseListener.java)
oracle.adf.controller.faces.lifecycle.ADFPhaseListener$4.after(ADFPhaseListener.java:331)
oracle.adf.controller.faces.lifecycle.ADFPhaseListener.afterPhase(ADFPhaseListener.java:97)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:254)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:367)
oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:336)
oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:196)
oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:87)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:332)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Thread.java:595)Thanks,

Similar Messages

  • How much memory and CPU requirement to deploy  ADF Faces application ?

    Hi All,
    Is there any formula or docs to help me to determine how much memory and CPU requirement for IAS server, to deploy ADF Faces application ?
    How much memory / CPU GHz required per 1 user ?
    We plan to develope web based ERP application using ADF Faces and ADF BC.
    Pleasssee.. give me any aclue.. I need it so badly..
    Thank you for your help,
    xtanto

    xtanto,
    there is no formular for this. Note that it is not only ADF Faces but th emodel layer in particular that adds to this requirement.
    Frank

  • Memory and CPU issue

    Hi experts,
    My Oracle version is:
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
    PL/SQL Release 10.2.0.4.0 - Production
    CORE 10.2.0.4.0 Production
    TNS for IBM/AIX RISC System/6000: Version 10.2.0.4.0 - Productio
    NLSRTL Version 10.2.0.4.0 - Production
    we have 2 node RAC. my client (WAS) connects to the DB using JDBC and establishes connection with the DB.
    Now problems is coming that my RAC memory on both the nodes gets fully consumed and CPU utilisation is also very high.
    We are using proxy login in our application connection. which means that connection to the DB will be created with a schema(User) and after that Proxy session will be established for a particular user. So for a request we have two session. The main session which we had will schema user becomes inactive and proxy session becomes active.
    So this way we have 2 sessions for a request which is not wrong but memory and CPU utilisation are bottlenecked.
    Can anyone tell what is the minimum memery that a connection takes even if its idle or inactive.
    Regards,
    Vikas

    JDBC 'applications' quite often don't use persistent connections, and often do not exit gracefully by calling 'exit' or 'disconnect'.
    This means the session will continue to exist.
    It also means, if you don't establish any form of connection pooling and/or dead connection detection, you can throw whatever amount of memory in the server, and you will continue to report
    'Now problems is coming'. Apart from crippled English, the general lesson any DBA should know is how these 'applications' operate, and, contrary to some, you can never ever fight problems caused by applications,
    by throwing memory and cpu at the problem.
    When I read your text, I also assume the application is not using PrepareStatement calls and not using bindvariables, this is why your 'application' is burning the CPU.
    Find those 'application developers', sue them, or better still : Beat them with a whip, and have them fix their 'crapplication'.
    Paraphrasing William Jefferson Clinton: It's the application, stupid!
    Sybrand Bakker
    Senior Oracle DBA

  • Can we control user request w.r.t Memory and CPU utilization in Oracle 10g

    Dear All,
    We are having Production with Oracle 10.2.0.4 (5 Node RAC, 32Gb RAM each) running on RHEL5.2 with 12000 Users. We have some schema say FIN, HRMS, SALES, REPORT and many dedicated users for those schemas. We need to control the user request against these schema with respect to Memory (or CPU utilization)
    Suppose users using FIN schema can use Maximum 40 % of Total Memory, HRMS schema can use Max 20%, SALES can use Max 20% and REPORT can use Max 20%.
    Is it possible to create any Service in Server side to handle this type of scenareo or any existing service which can be customised to fullfil this?
    Please suggest me.......
    Thanks,
    Tusar
    Edited by: gohappy on Jan 27, 2011 5:59 AM
    Edited by: gohappy on Jan 27, 2011 6:00 AM

    JDBC 'applications' quite often don't use persistent connections, and often do not exit gracefully by calling 'exit' or 'disconnect'.
    This means the session will continue to exist.
    It also means, if you don't establish any form of connection pooling and/or dead connection detection, you can throw whatever amount of memory in the server, and you will continue to report
    'Now problems is coming'. Apart from crippled English, the general lesson any DBA should know is how these 'applications' operate, and, contrary to some, you can never ever fight problems caused by applications,
    by throwing memory and cpu at the problem.
    When I read your text, I also assume the application is not using PrepareStatement calls and not using bindvariables, this is why your 'application' is burning the CPU.
    Find those 'application developers', sue them, or better still : Beat them with a whip, and have them fix their 'crapplication'.
    Paraphrasing William Jefferson Clinton: It's the application, stupid!
    Sybrand Bakker
    Senior Oracle DBA

  • A process named "update.exe *32" and description is "Firefox" keeps using a lot of memory and cpu; the longer forefox is on, the worse it gets. How to prevent?

    using Windows 7, firefox 15.0.1
    This process uses more and more memory and CPU, sometimes there are several of these processes running. If I kill these processes, it doesn't seem to affect the utilization of Firefox. Then the process slowly starts to use more and more memory and CPU all over again.
    This happens all the time, every time I use Firefox.

    I do not have a ComObjects folder under C:\Program Files (x86)\Common Files. That is not part of Firefox.
    wscript.exe is a utility included with Windows to run scripts at the system level. It generally is not used by major programs. If update.exe is starting up with Windows, you may be able to find the script that wscript.exe is running using [http://technet.microsoft.com/en-us/sysinternals/bb963902.aspx Autoruns].
    It definitely sounds viral. I suggest deleting the update.exe file, although Windows might prevent you from doing that until you kill all related processes. And if you have a persistent infection, the file may be restored or re-downloaded.
    It might be easiest to seek assistance from a forum more dedicated to malware cleanups such as the following:
    * [http://www.bleepingcomputer.com/forums/forum22.html Virus, Trojan, Spyware, and Malware Removal Logs - BleepingComputer.com]
    * [http://forums.majorgeeks.com/forumdisplay.php?f=35 Malware Removal - MajorGeeks Support Forums]
    Hope you get it removed.

  • Firefox 3.6.24 is stressing memory and CPU resources to the point that Hotmail is almost unusuable and computer jams while FF goes thru its athletics; what to do?

    I have a Dell Inspiron 710m, with Windows XP, Norton 360, IE8. My computer understanding and needs are simple. Norton lets me know that Firefox is eating memory and CPU. The machine often jams while this happens, whether or not Norton has flagged an operation, and then resumes function. Hotmail is in shambles (jamming between operations, and having sign out problem). Neither Norton nor CC Cleaner (including Registry) indicate a problem. This is a nifty little machine that I use for email, mostly newspaper subscriptions, online shopping and banking, personal, and for Internet research. I have tried more advanced versions of Firefox and found them buggy. So, I went back. The upgrades are coming too fast. Not everyone is going to invest in another machine for Windows 7 or IE 9 capability right away. Meanwhile, Firefox, which worked just fine, seems to be pushing along, in what seems to be an industry in which cooperation and compatibility have ceased to be important. I don't know what to do. I can't do complex diagnostics and fixes, and am not in an area where I would take this computer anywhere.

    Thank you for taking the time out to reply. I don't know whether or not your suggestions would have worked, but I did solve my problem. I eventually figured out that the file, overlay.xul, was doing something and when I changed the filename, the bar went away.
    I was reading that the xul error usually meant something wrong with an extension, but that didn't make sense because after uninstalling/reinstalling, there were no extensions present, on an assumption, of course. I noticed a file through a search, and it was located in a folder without a mozilla/firefox name in it, looked like a randomly generated folder name. I looked in the extensions. ini and noticed it pointed to that overlay.xul file in that random named folder and thought, what the hell, and just renamed the overlay.xul file to something else and the problem went away.
    Thanks again.

  • Need to retrieve memory and cpu information

    level: Advanced
    i m working on a cluster related software (not a business software, just a thesis work). i need to retrieve current memory and cpu usage info (i m using windows xp, i need the info what we get by pressing (alt+ctrl+del)). i need to use pure java. please tell me a better and easy way.

    i know about JNI and i know Runtime.exec(), but theRight, then you also know what to search for on google.
    problem is it would not be helpful for my program to
    call taskmgr by Runtime.exec() and for using JNI i
    need the native code in c or c++ to retrieve the cpu
    and memory usage information. but i m not expert in c
    or c++. Thats more search factors to add to the google search.
    please help me somehow. if u have any reliable native
    code then help me. the code should provide both cpu
    and memory usage info instantly.Thats another requirement to add to that google search.
    There may be free versions out ther, but you are going to have to do the leg work, nobody is going to do your work for you. You know about runtime.exec(), you know about JNI, now do a search.

  • How to get alert for app server that experienced high memory and CPU utiliz

    Hi
    How to get  alerts configured and turned u201Conu201D for the  app server that experienced high memory and CPU utilization?
    And let me know where we can check this?
    Regards,
    Neni

    hi,
    Have you configured a Central Monitoring System (CEN)? This includes registering the agent on the CEN, starting it and configuring the Central Auto Reactions on CEN using RZ21 transaction.
    [http://help.sap.com/saphelp_nw70ehp1/helpdata/en/48/05c80724d63836e10000000a42189b/frameset.htm|http://help.sap.com/saphelp_nw70ehp1/helpdata/en/48/05c80724d63836e10000000a42189b/frameset.htm]
    Jansi

  • Memory and CPU load for one Oracle instance

    I need to design a database server with 5 oracle instances.
    Each instance have only 2 or 3 connected application users and the rate of transactions is about 10 transactions/hour.
    How can I estimate to total memory and CPU needed for my server ?
    The minimum esimation : 2x2Ghz and 2Go of RAM per instance is it pertinent ?
    Dominik

    Dominik wrote:
    I need to design a database server with 5 oracle instances.
    Each instance have only 2 or 3 connected application users and the rate of transactions is about 10 transactions/hour.
    How can I estimate to total memory and CPU needed for my server ?
    The minimum esimation : 2x2Ghz and 2Go of RAM per instance is it pertinent ?
    DominikThough the picked specs look okay but the better answer, as being mentioned already, would be "it depends" . At this moment, almost all the machines are coming with very good specs so 2gb probably would be the least . You can even have a 4gb RAM system with x86_64 architecture , leaving room for future growth if needed. About setting the memory for the SGA, if the release is 11g, setting the Memory_Target would take care of the the memory allocation for both SGA and PGA and you can start by the default that Oracle picks which I guess is about 40% of the total RAM. Afterwards, you can monitor the performance and can bring down the memory settings if you feel its overly allocated.
    That said, I think that this is a question better answered by the capacity planning and management people. I shall see if I can ask my friend, who is in this domain to comment on it.
    Just my 2 cents.
    Aman....

  • How to find a memory and CPU used by a specific concurrent program ?

    Dear All ,
    How to find a memory and CPU used by a specific concurrent program ?
    Thanks.

    Hi,
    How to find a memory and CPU used by a specific concurrent program ?
    Could you please let us can we get the
    memory used for a specific concurrent request .
    Please refer scripts available at:
    Concurrent Manager and program related scripts
    Queries : Concurrent Managers/Processes
    Thanks &
    Best Regards,

  • JTextarea area takes all the memory and CPU

    I need a component like JTextarea
    To view (not to edit) large text files (3 mb)
    When I use JTextarea my PC run out of memory and CPU
    Can you sagest the right viewer component ?

    Sounds like you have never done a PRAM reset or a SMC reset. Do both and see if this helps:
    _SMC RESET_
    • Shut down the computer.
    • Plug in the MagSafe power adapter to a power source, connecting it to the Mac if its not already connected.
    • On the built-in keyboard, press the (left side) Shift-Control-Option keys and the power button at the same time.
    • Release all the keys and the power button at the same time.
    • Press the power button to turn on the computer.
    _PRAM RESET_
    • Shut down the computer.
    • Locate the following keys on the keyboard: Command, Option, P, and R. You will need to hold these keys down simultaneously in step 4.
    • Turn on the computer.
    • Press and hold the Command-Option-P-R keys. You must press this key combination before the gray screen appears.
    • Hold the keys down until the computer restarts and you hear the startup sound for the second time.
    • Release the keys.
    Roger

  • Monitoring Line card Memory and CPU utlization

    Hi,
    Please help me to configure CPU and Memory utlization of Line card modules using HP NNM tool.
    I need MIB values to configure the same.

    Hi,
    Is there any utility in solaris similar to nmon,
    found in AIX, to monitor the server resources like
    memory and CPU ? Could you describe the features of nmon that you're looking for?
    Is "sar" the only command to monitor ?Other commands might be vmstat, prstat, iostat, mpstat. There's also "orca" which can be run to collect and graph data from a system.
    Darren

  • When router reconnects, Mail locks up, eats memory and CPU

    This is something that happens to me since I upgraded to Leopard.
    When my router reconnects, i.e. gets a new IP addresse (and maybe the Internet is unreachable for some seconds), Mail starts to go crazy. The spinning circle behind the IMAP mailboxes never go away, and Mail starts to swallow the whole memory and CPU, until the system dies because of being completely unresponsive.
    Has anyone encountered the same problem? Is there something I can do to find out what's wrong here?

    It would be interesting to see Mail swallow all the memory and the CPU on a computer, but that's not what's happening.
    Do you have Mail set to launch when you startup your Mac, or do you launch it yourself when you startup your Mac? Either way, if you do that before your router has an IP address and a connection, that could cause a problem, so the first thing you should try is to not do that.
    Secondly, have you tried repairing permissions, since you upgraded to 10.5.4? If not, do that as well and then restart your Mac, wait for your router to be connected and ready, then try opening Mail.
    Mulder

  • How to check the memory and CPU usage on NPU

    Hi expert ,
    Could you tell me how to check the memory and cpu usage on NPU?
    I think ASR1000 has this command (show platform hardware qfp active...) , but I coudn't find the same command on ASR9001.
    I checked " show controllers np counters all"  command, but I did not find it.
    Platform: ASR9001
    version: 4.3.2
    NP: Tyhoon
    Thanks,

    Hi Kanako,
    understand your question, but something like that doesnt exist for the trident/typhoon NPU's for the asr9k.
    in fact cpu usage is not really applicable for parallel/serialized hardware forwarders, but mainly the KPI is here
    the PPS it handles.
    The max pps it can handle is dependent on feature set.
    What you could do is measure the rates on the PARSE_FABRIC_RECEIVE count (packets received from fabric, so egress direction), PARSE_ENET_RECEIVE count (packets received from the interface to the fabric, so ingress) and the LOOPBACK count, that is packets that are recirculated for extra processing. The sum of these 3 gives an idea of the PPS rate the NPU is working on.
    Memory consumption is something tricky also, there are many memories attached to the NPU, notably:
    TCAM used for vlan matching, ACL and QOS matching
    Search memory for L2 and L3 (shared on Trident, separated on Typhoon)
    Frame memory for packet bufferin in QOS
    Stats memory, for all kinds of counters of QOS maps, interface stats etc
    their usage is rather dynamic also.
    The few things you want to verify on these are:
    - ACL usage (in terms of Tcam entries)
    - MAC table size (2M max on typhoon)
    - FIB size (4M max on typhoon)
    frame memory is dependent on the buffering, which is a sum of all the packets instant queue length and size of all pmaps attached to interfaces served by the same NPU. there is no good overview as to how much you have available of that, but it has a rather significant size 1G or 2G depending on the TR or SE cards (typhoon specific).
    regards
    xander
    Xander Thuijs CCIE #6775
    Principal Engineer 
    ASR9000, CRS, NCS6000 & IOS-XR

  • Hyper-V Resource Pools for Memory and CPU

    Hi all,
    I'm trying to understand the concepts and details of resource pools in Hyper-V in Windows Server 2012. It seems as if there is almost no documentation on all that. Perhaps somebody can support me here, maybe I've not seen some docs yet.
    So far, I learned that resource pools in their current implementation serve mainly for metering purposes. You can create pools per tenant and then group VM resources into those pools to facilitate resource metering per tenant. That is, you enable metering
    once per pool and get all the data necessary to bill that one customer for all their resources (without metering individual VMs). Is that correct?
    Furthermore, it seems to me that an ethernet pool goes one step further by providing an abstraction level for virtual switches. As far as I've understood you can add multiple vSwitches to a pool and then connect a VM to the pool. Hyper-V then decides which
    actual switch to use. This may be handy in a multi-host environment if vSwitches on different hosts use different names although they connect to the same network. Is that correct?
    So - talking about actually managing that stuff I've learned how to create a pool and how to add VHD locations and virtual switches to a pool. Enabling resource metering for a pool then collects usage data from all the resources inside that pool.
    But now: I can create a pool for memory and a pool for CPU. But I cannot add resources to those. Neither can I add a complete VM to a pool. Now I'm launching a VM that belongs to a customer whose resources I'm metering. How will Hyper-V know that it's
    supposed to collect data on CPU and memory usage for that VM?
    Am I missing something here? Or is pool-based metering only good for ethernet and VHD resources, and CPU and memory still need to be metered per VM?
    Thanks for clarification,
    Nils
    Nils Kaczenski
    MVP Directory Services
    Hannover, Germany

    Thank you for the links. I already knew those, and unfortunately they are not matching my question. Two of them are about Windows Server 2008/R2, and one only lists a WMI interface. What I'm after is a new feature in Windows Server 2012, and I need conceptional
    information.
    Thanks for the research anyway. I appreciate that a lot!
    In the meantime I've gotten quite far in my own research. See my entry above of January 7th. Some additions:
    In Windows Server 2012, Hyper-V resource pools are mainly for metering purposes. You cannot compare them to resource pools in VMware.
    A resource pool in Hyper-V (2012) facilitates resource metering and billing for VM usage especially in hosting scenarios. You can either measure resource usage for single VMs, or you can group existing resources (such as CPU power, RAM, virtual hard disk
    storage, Ethernet traffic) into pools. Those pools will mostly be assigned to one customer each. That way you can bill the customer for their resource usage in a given time period by just querying the customer's pool.
    Metering only collects aggregated data with one value per resource (i.e. overall CPU usage, maximum VHD storage, summed Ethernet traffic and so on). You can control the time period by explicitly resetting the counter at any given time (a day, a week, a
    month or what you like).
    There is no detailed data. The aggregate values serve as a basis for billing, not as monitoring data. If you need detailed monitoring data use Performance Monitor.
    There is currently only one type of resource pool that adds an abstraction layer to a virtualization farm, and that is the Ethernet type. You can use that type for metering, but you can also use it to group a number of virtual switches (that connect to
    the same network segment) and then a VM connected to that pool will automatically use an appropriate virtual switch from the pool. You need no longer worry about virtual switch names across multiple hosts as long as all equivalent virtual switches are
    added to the pool.
    While you can manage two types of pool resources in the GUI (VHD pools and Ethernet pools) you should only manage resource pools via PowerShell. Only there will you be able to control what happens. And only PowerShell provides a means to start, stop, and
    reset metering and query metering data.
    The process to use resource pools in Hyper-V (2012) in short:
    First create a new pool via PowerShell (New-VMResourcePool). (In case of a VHD pool you must specify the VHD storage paths to add to the pool in the moment you create the pool.)
    In case of an Ethernet pool add existing virtual switches to the pool (Add-VMSwitch).
    Reconfigure existing VMs that you want to measure so that they use resources from the pool. The PowerShell
    Set-VM* commands accept a parameter -ResourcePoolName to do that. Example:
    Set-VMMemory -VMName APP-02 -ResourcePoolName MyPool1
    Start measuring with Enable-VMResourceMetering.
    Query collected data as often as you need with Measure-VMResourcePool.
    Note that you should specify the pool resource type in the command to get reliable data (see my post above, Jan 7th).
    When a metering period (such as a week or a month) has passed, reset the counter to zero with
    Reset-VMResourceMetering.
    Hope that helps. I consider this the answer to my own question. ;)
    Here's some links I collected:
    http://itproctology.blogspot.ca/2012/12/hyper-v-resource-pool-introduction.html
    http://www.ms4u.info/2012/12/configure-ethernet-resource-pool-in.html
    http://blogs.technet.com/b/virtualization/archive/2012/08/16/introduction-to-resource-metering.aspx
    http://social.technet.microsoft.com/Forums/en-US/winserverhyperv/thread/1ce4e2b2-8fdd-4f16-8ab6-e1e1da6d07e3
    Best wishes, Nils
    Nils Kaczenski
    MVP Directory Services
    Hannover, Germany

Maybe you are looking for