7 Replies Latest reply on Dec 18, 2018 11:45 AM by user12148293

    Leak memory with ADF.How to use jrockit with weblogic server

    user12148293

      I am using weblogic server 11g VERSION 10.3.6.0. Having issues with ADF and we think it is memory leak.I find that we must use jrockit to be able to find the code that is creating this.How to install this software or is it already integrated in weblogic and how to activate it. Or is there a way to find the leak code with weblogic itself.

      thanks for your help

      Jayan

        • 1. Re: Leak memory with ADF.How to use jrockit with weblogic server
          dvohra21

          Refer documentation

          Running WebLogic JRockit JVM with WebLogic Server on Linux

          Using WebLogic JRockit JVM with Other WebLogic Applications

          Starting and Configuring WebLogic JRockit JVM

          • 2. Re: Leak memory with ADF.How to use jrockit with weblogic server
            Timo Hahn

            JDev comes with a build in memory profiler (see https://docs.oracle.com/cd/E37975_01/user.111240/e17455/aud_prof_test_apps.htm#OJDUG538 ). Have you tried using this?

             

            The Oracle JDK has similar features to monitor the JVM called Mission Control (https://www.oracle.com/technetwork/java/javaseproducts/mission-control/index.html ).

             

            Timo

            • 3. Re: Leak memory with ADF.How to use jrockit with weblogic server
              user12148293

              Hi Thanks for your reply.

              But  I having this error below and want to know what can cause this. Is  it a leak to the data source not being close?Users are working  and some are rejected when click on a detail button that call a view object with added clause where in the java code. Sometimes clicking on the button do nothing the detail screen become blank. They have to log out and login to be able to continue there jobs.

              Thanks if i can have an urgent help . It more than one month we are having the issue and could not solve it.

               

              ooooooooooooooooooooooooooooooooooooooooooooo

              ####<Dec 5, 2018 5:15:28 AM EST> <Warning> <JDBC> <KCMBPRDADF1> <scope_prod_rop_fr> <[ACTIVE] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <03eddea9e8fca9d5:-2537177b:1676d205916:-8000-0000000000009abc> <1544004928405> <BEA-001153> <Forcibly releasing inactive/harvested connection "weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection@ec550" back into the data source connection pool "DS_LRSREF_ROPFRV9", currently reserved by: java.lang.Exception

              at weblogic.jdbc.common.internal.ConnectionEnv.setup(ConnectionEnv.java:356)

              at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:364)

              at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:330)

              at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:469)

              at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:363)

              at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:125)

              at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:158)

              at weblogic.jdbc.pool.Driver.connect(Driver.java:132)

              at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:658)

              at weblogic.jdbc.jts.Driver.connect(Driver.java:127)

              at weblogic.jdbc.common.internal.RmiDataSource.getConnectionInternal(RmiDataSource.java:533)

              at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:498)

              at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:491)

              at oracle.jbo.server.DBTransactionImpl.establishNewConnection(DBTransactionImpl.java:968)

              at oracle.jbo.server.DBTransactionImpl.initTransaction(DBTransactionImpl.java:1147)

              at oracle.jbo.server.DBTransactionImpl.initTxn(DBTransactionImpl.java:6838)

              at oracle.jbo.server.DBTransactionImpl2.connectToDataSource(DBTransactionImpl2.java:298)

              at oracle.jbo.server.DBTransactionImpl2.connectToDataSource(DBTransactionImpl2.java:329)

              at oracle.jbo.common.ampool.DefaultConnectionStrategy.connect(DefaultConnectionStrategy.java:203)

              at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolConnect(ApplicationPoolMessageHandler.java:600)

              at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolMessage(ApplicationPoolMessageHandler.java:417)

              at oracle.jbo.server.ApplicationModuleImpl.doPoolMessage(ApplicationModuleImpl.java:9053)

              at oracle.jbo.common.ampool.ApplicationPoolImpl.sendPoolMessage(ApplicationPoolImpl.java:4606)

              at oracle.jbo.common.ampool.ApplicationPoolImpl.prepareApplicationModule(ApplicationPoolImpl.java:2536)

              at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:2346)

              at oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule(ApplicationPoolImpl.java:3245)

              at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:571)

              at oracle.jbo.http.HttpSessionCookieImpl.useApplicationModule(HttpSessionCookieImpl.java:234)

              at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:504)

              at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:499)

              at oracle.adf.model.bc4j.DCJboDataControl.initializeApplicationModule(DCJboDataControl.java:517)

              at oracle.adf.model.bc4j.DCJboDataControl.getApplicationModule(DCJboDataControl.java:867)

              at oracle.adf.model.binding.DCDataControl.setErrorHandler(DCDataControl.java:487)

              at oracle.jbo.uicli.binding.JUApplication.setErrorHandler(JUApplication.java:261)

              at oracle.adf.model.BindingContext.put(BindingContext.java:1318)

              at oracle.adf.model.binding.DCDataControlReference.getDataControl(DCDataControlReference.java:247)

              at oracle.adf.model.BindingContext.instantiateDataControl(BindingContext.java:1020)

              at oracle.adf.model.dcframe.DataControlFrameImpl.doFindDataControl(DataControlFrameImpl.java:1645)

              at oracle.adf.model.dcframe.DataControlFrameImpl.internalFindDataControl(DataControlFrameImpl.java:1514)

              at oracle.adf.model.dcframe.DataControlFrameImpl.findDataControl(DataControlFrameImpl.java:1474)

              at oracle.adf.model.BindingContext.internalFindDataControl(BindingContext.java:1150)

              at oracle.adf.model.BindingContext.get(BindingContext.java:1103)

              at oracle.adf.model.binding.DCParameter.evaluateValue(DCParameter.java:82)

              at oracle.adf.model.binding.DCParameter.getValue(DCParameter.java:111)

              at oracle.adf.model.binding.DCBindingContainer.getChildByName(DCBindingContainer.java:2743)

              at oracle.adf.model.binding.DCBindingContainer.internalGet(DCBindingContainer.java:2791)

              at oracle.adf.model.binding.DCExecutableBinding.get(DCExecutableBinding.java:115)

              at oracle.adf.model.binding.DCUtil.findSpelObject(DCUtil.java:329)

              at oracle.adf.model.binding.DCBindingContainer.evaluateParameterWithElCheck(DCBindingContainer.java:1473)

              at oracle.adf.model.binding.DCBindingContainer.findDataControl(DCBindingContainer.java:1603)

              at oracle.adf.model.binding.DCIteratorBinding.initDataControl(DCIteratorBinding.java:2542)

              at oracle.adf.model.binding.DCIteratorBinding.getDataControl(DCIteratorBinding.java:2477)

              at oracle.jbo.uicli.binding.JUCtrlActionBinding.getDataControl(JUCtrlActionBinding.java:583)

              at oracle.adf.model.binding.DCInvokeAction.refresh(DCInvokeAction.java:28)

              at oracle.adf.model.binding.DCBindingContainer.internalRefreshControl(DCBindingContainer.java:3306)

              at oracle.adf.model.binding.DCBindingContainer.refresh(DCBindingContainer.java:2906)

              at oracle.jheadstart.controller.jsf.lifecycle.JhsPageLifecycle.refreshRegion(JhsPageLifecycle.java:583)

              at oracle.adf.controller.internal.binding.TaskFlowRegionController.doRegionRefresh(TaskFlowRegionController.java:288)

              at oracle.adf.controller.internal.binding.TaskFlowRegionController.refreshRegion(TaskFlowRegionController.java:134)

              at oracle.adf.model.binding.DCBindingContainer.internalRefreshControl(DCBindingContainer.java:3237)

              at oracle.adf.controller.internal.binding.DCMultiTaskFlowBinding.internalRefreshControl(DCMultiTaskFlowBinding.java:213)

              at oracle.adf.model.binding.DCBindingContainer.refresh(DCBindingContainer.java:2906)

              at oracle.adf.model.binding.DCBindingContainer.internalRefreshControl(DCBindingContainer.java:3228)

              at oracle.adf.model.binding.DCBindingContainer.refresh(DCBindingContainer.java:2906)

              at oracle.jheadstart.controller.jsf.lifecycle.JhsPageLifecycle.refreshRegion(JhsPageLifecycle.java:583)

              at oracle.adf.model.binding.DCBindingContainer.internalRefreshControl(DCBindingContainer.java:3237)

              at oracle.adf.model.binding.DCBindingContainer.refresh(DCBindingContainer.java:2906)

              at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.prepareRender(PageLifecycleImpl.java:561)

              at oracle.adf.controller.faces.lifecycle.FacesPageLifecycle.prepareRender(FacesPageLifecycle.java:81)

              at oracle.jheadstart.controller.jsf.lifecycle.JhsPageLifecycle.prepareRender(JhsPageLifecycle.java:439)

              at oracle.adf.controller.v2.lifecycle.Lifecycle$9.execute(Lifecycle.java:236)

              at oracle.adfinternal.controller.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:197)

              at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.access$1000(ADFPhaseListener.java:23)

              at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener$5.before(ADFPhaseListener.java:402)

              at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.beforePhase(ADFPhaseListener.java:64)

              at oracle.adfinternal.controller.faces.lifecycle.ADFLifecyclePhaseListener.beforePhase(ADFLifecyclePhaseListener.java:44)

              at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:327)

              at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:236)

              at javax.faces.webapp.FacesServlet.service(FacesServlet.java:309)

              at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)

              at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)

              at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)

              at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)

              at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)

              at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173)

              at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)

              at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:125)

              at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)

              at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)

              at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)

              at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)

              at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)

              at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)

              at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)

              at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)

              at java.security.AccessController.doPrivileged(Native Method)

              at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)

              at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)

              at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)

              at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)

              at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)

              at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)

              at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)

              at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)

              at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)

              at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)

              at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)

              at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)

              at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)

              at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)

              at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)

              at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)

              at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

              .>

              • 4. Re: Leak memory with ADF.How to use jrockit with weblogic server
                Timo Hahn

                Sorry, but your question did not reveal what your real problem is!

                 

                You asked for help in finding out if you have a memory leak. That is what dvohra21 and I provided.

                 

                From your stacktrace all we can see is that you might have a problem with your application and using JDBC connections. As we don't know your app or its kind (ADF, JHeadstart, SOA,...) we can't comment. In general, the warning tells you that some jdbc connections are never closed and/or never pushed back to the connection pool. Check your code if you close all used connections.

                 

                Timo

                • 5. Re: Leak memory with ADF.How to use jrockit with weblogic server
                  user12148293

                  Thanks. The  application is ADF and jheadstart for bluiding the screen. There lots of codes not easy to find where the issue is. As the error does not specify any connection name or statement that failed to close.

                  on the screen i have a view object  with a get detail button on each record.

                  Users click on each record to call a region detail screen.

                  They do some changes on the screen do save

                  then click on another record get detail button to open the detail screen again  (as master detail ).

                  They do this for sometime and then some of the users are rejected .They click on the get detail button the region screen become blank.

                  And in the log we find this error message i sent you.

                  The detail button call the code below

                   

                      public void goDetail(ActionEvent actionEvent) {

                          DCBindingContainer bindings = (DCBindingContainer) BindingContext.getCurrent().getCurrentBindingsEntry();

                          DCIteratorBinding itorBinding = bindings.findIteratorBinding("StkR008UlpeYcfCrit_Iterator");

                          OperationBinding oB = bindings.getOperationBinding("detailActionListener");

                   

                   

                          oB.getParamsMap().put("item", itorBinding.getCurrentRow().getAttribute("Item")) ;

                          oB.getParamsMap().put("loc", itorBinding.getCurrentRow().getAttribute("Loc"));

                          oB.execute();

                  }

                   

                  The detail action listener code is

                   

                      public void detailActionListener(String item, String loc) {

                          String i = item.equals(" ") ? "vide" : item ;

                          String l = loc.equals(" ") ? "vide" : loc ;

                          String seq = this.getCurrentCidentStkR008().toString();

                        

                          StkR008UlpeYcfHistVOImpl vo = (StkR008UlpeYcfHistVOImpl)this.findViewObject("StkR008UlpeYcfHistVO1");

                         

                          if (l.equals("vide")) {

                              //String where_clause =" UlpeYcfHistEO.ITEM ='"+item+"' And  UlpeYcfHistEO.LAST_CALCUL_SW= 1 And UlpeYcfHistEO.CRIT_TYPE <> ' ' And (UlpeYcfHistEO.LOC In (Select LOC From scpomgr.LOC" +

                              //" Where U_USER in ("+call_CONVERT_LIST(listUser) + ")))"; //Or '"+master.getT_USER()+"' IS NULL)";

                              String where_clause =

                                  " UlpeYcfHistEO.ITEM ='" + item + "' And  UlpeYcfHistEO.LAST_CALCUL_SW= 1 And UlpeYcfHistEO.CRIT_TYPE <> ' ' And (UlpeYcfHistEO.LOC In (select value from lrsref.lrs_convert_list where type = 'LOC' and cident ='" +

                                  seq + "'))";

                            

                              vo.setNamedWhereClauseParam("getAll", 1);

                              vo.setWhereClause(where_clause);

                              vo.executeQuery();

                              //vo.executeQuery();

                          }

                          if (i.equals("vide")) {

                              //String where_clause =" UlpeYcfHistEO.LOC = '"+loc+"' And UlpeYcfHistEO.CRIT_TYPE <> ' '";

                              String where_clause =

                                  " UlpeYcfHistEO.LOC ='" + loc + "' And  UlpeYcfHistEO.LAST_CALCUL_SW= 1 And UlpeYcfHistEO.CRIT_TYPE <> ' ' And (UlpeYcfHistEO.ITEM In (select value from lrsref.lrs_convert_list where type = 'MRIN' and cident ='" +

                                  seq + "'))";

                             

                              vo.setNamedWhereClauseParam("getAll", 1);

                              vo.setWhereClause(where_clause);

                              vo.executeQuery();

                          }

                      }

                  • 6. Re: Leak memory with ADF.How to use jrockit with weblogic server
                    Timo Hahn

                    The code would not be the root cause of loss of connections (in ADF).

                     

                    As you use JHeadstart you are posting in the wrong space. I move this over to the JHeadstart space. I personally don't know how JHeadstart works internally.

                     

                    Timo

                    • 7. Re: Leak memory with ADF.How to use jrockit with weblogic server
                      user12148293

                      Hi

                      I pass parameters for each call when click on the delete button.The parameters are from each record of the screen. Can this be the cause of the memory leak. These must closed after each call?

                      Thanks