My Life My Dream!

守信 求实 好学 力行
随笔 - 193, 文章 - 0, 评论 - 55, 阅读 - 34万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

MAT快速分析内存问题(OOM)

Posted on   召冠  阅读(461)  评论(0编辑  收藏  举报

Eclipse Memory Analyzer 是一款功能强大的java内存快照的分析工具。

常见的分析方法,在此记录。

 

jcmd PID Thread.print  pid-threadprint.log
jcmd PID GC.heap_dump  pid-heapdump.bin

jcmd PID GC.run

 

 

image

 

线程堆栈:

复制代码
Thread Stack

banktransdetail-async-service-1
  at sun.nio.ch.FileDispatcherImpl.read0(Ljava/io/FileDescriptor;JI)I (Native Method)
  at sun.nio.ch.SocketDispatcher.read(Ljava/io/FileDescriptor;JI)I (SocketDispatcher.java:39)
  at sun.nio.ch.IOUtil.readIntoNativeBuffer(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I (IOUtil.java:223)
  at sun.nio.ch.IOUtil.read(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I (IOUtil.java:197)
  at sun.nio.ch.SocketChannelImpl.read(Ljava/nio/ByteBuffer;)I (SocketChannelImpl.java:380)
  at oracle.net.nt.TimeoutSocketChannel.read(Ljava/nio/ByteBuffer;)I (TimeoutSocketChannel.java:174)
  at oracle.net.ns.NSProtocolNIO.doSocketRead(I)V (NSProtocolNIO.java:555)
  at oracle.net.ns.NIOPacket.readHeader()I (NIOPacket.java:258)
  at oracle.net.ns.NIOPacket.readPacketFromSocketChannel(Z)V (NIOPacket.java:190)
  at oracle.net.ns.NIOPacket.readFromSocketChannel(ZZ)V (NIOPacket.java:132)
  at oracle.net.ns.NIOPacket.readFromSocketChannel(Z)V (NIOPacket.java:105)
  at oracle.net.ns.NIONSDataChannel.readDataFromSocketChannel()V (NIONSDataChannel.java:91)
  at oracle.jdbc.driver.T4CMAREngineNIO.prepareForUnmarshall()V (T4CMAREngineNIO.java:764)
  at oracle.jdbc.driver.T4CMAREngineNIO.unmarshalUB1()S (T4CMAREngineNIO.java:429)
  at oracle.jdbc.driver.T4CTTIfun.receive()V (T4CTTIfun.java:407)
  at oracle.jdbc.driver.T4CTTIfun.doRPC()V (T4CTTIfun.java:268)
  at oracle.jdbc.driver.T4C8Oall.doOALL(ZZZZZLoracle/jdbc/internal/OracleStatement$SqlKind;I[BI[Loracle/jdbc/driver/Accessor;I[Loracle/jdbc/driver/Accessor;I[B[C[SILoracle/jdbc/driver/DBConversion;[B[[Ljava/io/InputStream;Loracle/jdbc/driver/OracleStatement;[B[C[S[Loracle/jdbc/driver/T4CTTIoac;[I[I[ILoracle/jdbc/driver/NTFDCNRegistration;Loracle/jdbc/driver/ByteArray;[J[IZ)V (T4C8Oall.java:655)
  at oracle.jdbc.driver.T4CPreparedStatement.doOall8(ZZZZZI)V (T4CPreparedStatement.java:270)
  at oracle.jdbc.driver.T4CPreparedStatement.fetch(IZ)V (T4CPreparedStatement.java:1079)
  at oracle.jdbc.driver.OracleStatement.fetchMoreRows(J)J (OracleStatement.java:3456)
  at oracle.jdbc.driver.InsensitiveScrollableResultSet.fetchMoreRows()V (InsensitiveScrollableResultSet.java:742)
  at oracle.jdbc.driver.InsensitiveScrollableResultSet.absoluteInternal(J)Z (InsensitiveScrollableResultSet.java:698)
  at oracle.jdbc.driver.InsensitiveScrollableResultSet.next()Z (InsensitiveScrollableResultSet.java:412)
  at com.zaxxer.hikari.pool.HikariProxyResultSet.next()Z (Unknown Source)
  at org.hibernate.loader.Loader.processResultSet(Ljava/sql/ResultSet;Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;ZLorg/hibernate/transform/ResultTransformer;ILjava/util/List;)Ljava/util/List; (Loader.java:986)
  at org.hibernate.loader.Loader.doQuery(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;ZLorg/hibernate/transform/ResultTransformer;)Ljava/util/List; (Loader.java:948)
  at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;ZLorg/hibernate/transform/ResultTransformer;)Ljava/util/List; (Loader.java:340)
  at org.hibernate.loader.Loader.doList(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/transform/ResultTransformer;)Ljava/util/List; (Loader.java:2689)
  at org.hibernate.loader.Loader.doList(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;)Ljava/util/List; (Loader.java:2672)
  at org.hibernate.loader.Loader.listIgnoreQueryCache(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;)Ljava/util/List; (Loader.java:2506)
  at org.hibernate.loader.Loader.list(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;Ljava/util/Set;[Lorg/hibernate/type/Type;)Ljava/util/List; (Loader.java:2501)
  at org.hibernate.loader.hql.QueryLoader.list(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;)Ljava/util/List; (QueryLoader.java:504)
  at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;)Ljava/util/List; (QueryTranslatorImpl.java:395)
  at org.hibernate.engine.query.spi.HQLQueryPlan.performList(Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/util/List; (HQLQueryPlan.java:220)
  at org.hibernate.internal.SessionImpl.list(Ljava/lang/String;Lorg/hibernate/engine/spi/QueryParameters;)Ljava/util/List; (SessionImpl.java:1508)
  at org.hibernate.query.internal.AbstractProducedQuery.doList()Ljava/util/List; (AbstractProducedQuery.java:1537)
  at org.hibernate.query.internal.AbstractProducedQuery.list()Ljava/util/List; (AbstractProducedQuery.java:1505)
  at org.hibernate.query.Query.getResultList()Ljava/util/List; (Query.java:132)
  at org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getResultList()Ljava/util/List; (CriteriaQueryTypeQueryAdapter.java:74)
  at org.springframework.data.jpa.repository.query.JpaQueryExecution$CollectionExecution.doExecute(Lorg/springframework/data/jpa/repository/query/AbstractJpaQuery;Lorg/springframework/data/jpa/repository/query/JpaParametersParameterAccessor;)Ljava/lang/Object; (JpaQueryExecution.java:126)
  at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(Lorg/springframework/data/jpa/repository/query/AbstractJpaQuery;Lorg/springframework/data/jpa/repository/query/JpaParametersParameterAccessor;)Ljava/lang/Object; (JpaQueryExecution.java:88)
  at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(Lorg/springframework/data/jpa/repository/query/JpaQueryExecution;[Ljava/lang/Object;)Ljava/lang/Object; (AbstractJpaQuery.java:154)
  at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute([Ljava/lang/Object;)Ljava/lang/Object; (AbstractJpaQuery.java:142)
  at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (RepositoryFactorySupport.java:618)
  at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (RepositoryFactorySupport.java:605)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186)
  at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (DefaultMethodInvokingMethodInterceptor.java:80)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186)
  at org.springframework.transaction.interceptor.TransactionInterceptor$$Lambda$975.proceedWithInvocation()Ljava/lang/Object; (Unknown Source)
  at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(Ljava/lang/reflect/Method;Ljava/lang/Class;Lorg/springframework/transaction/interceptor/TransactionAspectSupport$InvocationCallback;)Ljava/lang/Object; (TransactionAspectSupport.java:353)
  at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (TransactionInterceptor.java:99)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186)
  at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (PersistenceExceptionTranslationInterceptor.java:139)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186)
  at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (CrudMethodMetadataPostProcessor.java:149)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186)
  at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (ExposeInvocationInterceptor.java:93)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186)
  at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; (JdkDynamicAopProxy.java:212)
  at com.sun.proxy.$Proxy1105.findAllByLastModifiedTimeLessThan(Ljava/time/OffsetDateTime;)Ljava/util/List; (Unknown Source)
  at com.inspur.edp.event.stream.producer.strore.EventLogServiceImpl.syncLog(Lcom/inspur/edp/event/stream/center/api/entity/EventLog;)V (EventLogServiceImpl.java:177)
  at com.inspur.edp.event.stream.producer.strore.EventLogServiceImpl.addEvent(Lcom/inspur/edp/event/stream/center/api/entity/EventLog;Lcom/inspur/edp/event/stream/domain/CommonEvent;)V (EventLogServiceImpl.java:77)
  at com.inspur.edp.event.stream.producer.EventProducerService.recordEventlog(Lcom/inspur/edp/event/stream/center/api/entity/EventState;Lcom/inspur/edp/event/stream/domain/CommonEvent;Ljava/time/OffsetDateTime;Ljava/time/OffsetDateTime;Lcom/inspur/edp/event/stream/center/api/entity/BizEvent;)V (EventProducerService.java:309)
  at com.inspur.edp.event.stream.producer.EventProducerService.process(Lcom/inspur/edp/event/stream/domain/CommonEvent;Ljava/time/OffsetDateTime;)V (EventProducerService.java:157)
  at com.inspur.edp.event.stream.producer.EventProducerService$1.afterCommit()V (EventProducerService.java:129)
  at org.springframework.transaction.support.TransactionSynchronizationUtils.invokeAfterCommit(Ljava/util/List;)V (TransactionSynchronizationUtils.java:134)
  at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerAfterCommit()V (TransactionSynchronizationUtils.java:122)
  at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCommit(Lorg/springframework/transaction/support/DefaultTransactionStatus;)V (AbstractPlatformTransactionManager.java:946)
  at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(Lorg/springframework/transaction/support/DefaultTransactionStatus;)V (AbstractPlatformTransactionManager.java:783)
  at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(Lorg/springframework/transaction/TransactionStatus;)V (AbstractPlatformTransactionManager.java:712)
  at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(Lorg/springframework/transaction/interceptor/TransactionAspectSupport$TransactionInfo;)V (TransactionAspectSupport.java:619)
  at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(Ljava/lang/reflect/Method;Ljava/lang/Class;Lorg/springframework/transaction/interceptor/TransactionAspectSupport$InvocationCallback;)Ljava/lang/Object; (TransactionAspectSupport.java:372)
  at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (TransactionInterceptor.java:99)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186)
  at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed()Ljava/lang/Object; (CglibAopProxy.java:747)
  at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Lorg/springframework/cglib/proxy/MethodProxy;)Ljava/lang/Object; (CglibAopProxy.java:689)
  at com.inspur.edp.bef.core.action.save.LcpSaveAction$$EnhancerBySpringCGLIB$$740d78f0.execute(Lcom/inspur/edp/bef/core/be/BEManager;Lcom/inspur/edp/bef/api/parameter/save/SaveParameter;)V (Unknown Source)
  at com.inspur.edp.bef.core.lcp.StandardLcp.save(Lcom/inspur/edp/bef/api/parameter/save/SaveParameter;)V (StandardLcp.java:478)
  at com.inspur.edp.bef.core.lcp.StandardLcp.save()V (StandardLcp.java:470)
  at com.inspur.gs.bp.bebc.banktransactiondetails.ccmp.GetBankTransDetailScheduler.lambda$null$1(Ljava/lang/Object;Lio/iec/edp/caf/lockservice/api/ILockService;Ljava/lang/String;Ljava/lang/String;Lio/iec/edp/caf/lockservice/api/DataLockOptions;Ljava/lang/String;Ljava/lang/String;Lcom/inspur/edp/bef/api/services/IBefSessionManager;Ljava/util/List;)V (GetBankTransDetailScheduler.java:137)
  at com.inspur.gs.bp.bebc.banktransactiondetails.ccmp.GetBankTransDetailScheduler$$Lambda$1749.run()V (Unknown Source)
  at java.util.concurrent.Executors$RunnableAdapter.call()Ljava/lang/Object; (Executors.java:511)
  at java.util.concurrent.FutureTask.run()V (FutureTask.java:266)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V (ThreadPoolExecutor.java:1149)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run()V (ThreadPoolExecutor.java:624)
  at java.lang.Thread.run()V (Thread.java:748)
复制代码
复制代码
Thread Stack

b1c1ff5f-d5b0-48f9-beff-650fa48a5ad4.CMd649ade4-ff95-43c5-9009-d36a2972c316-1
  at sun.nio.ch.FileDispatcherImpl.read0(Ljava/io/FileDescriptor;JI)I (Native Method)
  at sun.nio.ch.SocketDispatcher.read(Ljava/io/FileDescriptor;JI)I (SocketDispatcher.java:39)
  at sun.nio.ch.IOUtil.readIntoNativeBuffer(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I (IOUtil.java:223)
  at sun.nio.ch.IOUtil.read(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I (IOUtil.java:197)
  at sun.nio.ch.SocketChannelImpl.read(Ljava/nio/ByteBuffer;)I (SocketChannelImpl.java:380)
  at oracle.net.nt.TimeoutSocketChannel.read(Ljava/nio/ByteBuffer;)I (TimeoutSocketChannel.java:174)
  at oracle.net.ns.NSProtocolNIO.doSocketRead(I)V (NSProtocolNIO.java:555)
  at oracle.net.ns.NIOPacket.readHeader()I (NIOPacket.java:258)
  at oracle.net.ns.NIOPacket.readPacketFromSocketChannel(Z)V (NIOPacket.java:190)
  at oracle.net.ns.NIOPacket.readFromSocketChannel(ZZ)V (NIOPacket.java:132)
  at oracle.net.ns.NIOPacket.readFromSocketChannel(Z)V (NIOPacket.java:105)
  at oracle.net.ns.NIONSDataChannel.readDataFromSocketChannel()V (NIONSDataChannel.java:91)
  at oracle.jdbc.driver.T4CMAREngineNIO.prepareForUnmarshall()V (T4CMAREngineNIO.java:764)
  at oracle.jdbc.driver.T4CMAREngineNIO.unmarshalUB1()S (T4CMAREngineNIO.java:429)
  at oracle.jdbc.driver.T4CTTIfun.receive()V (T4CTTIfun.java:407)
  at oracle.jdbc.driver.T4CTTIfun.doRPC()V (T4CTTIfun.java:268)
  at oracle.jdbc.driver.T4C8Oall.doOALL(ZZZZZLoracle/jdbc/internal/OracleStatement$SqlKind;I[BI[Loracle/jdbc/driver/Accessor;I[Loracle/jdbc/driver/Accessor;I[B[C[SILoracle/jdbc/driver/DBConversion;[B[[Ljava/io/InputStream;Loracle/jdbc/driver/OracleStatement;[B[C[S[Loracle/jdbc/driver/T4CTTIoac;[I[I[ILoracle/jdbc/driver/NTFDCNRegistration;Loracle/jdbc/driver/ByteArray;[J[IZ)V (T4C8Oall.java:655)
  at oracle.jdbc.driver.T4CPreparedStatement.doOall8(ZZZZZI)V (T4CPreparedStatement.java:270)
  at oracle.jdbc.driver.T4CPreparedStatement.fetch(IZ)V (T4CPreparedStatement.java:1079)
  at oracle.jdbc.driver.OracleStatement.fetchMoreRows(J)J (OracleStatement.java:3456)
  at oracle.jdbc.driver.InsensitiveScrollableResultSet.fetchMoreRows()V (InsensitiveScrollableResultSet.java:742)
  at oracle.jdbc.driver.InsensitiveScrollableResultSet.absoluteInternal(J)Z (InsensitiveScrollableResultSet.java:698)
  at oracle.jdbc.driver.InsensitiveScrollableResultSet.next()Z (InsensitiveScrollableResultSet.java:412)
  at com.zaxxer.hikari.pool.HikariProxyResultSet.next()Z (Unknown Source)
  at org.hibernate.loader.Loader.processResultSet(Ljava/sql/ResultSet;Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;ZLorg/hibernate/transform/ResultTransformer;ILjava/util/List;)Ljava/util/List; (Loader.java:986)
  at org.hibernate.loader.Loader.doQuery(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;ZLorg/hibernate/transform/ResultTransformer;)Ljava/util/List; (Loader.java:948)
  at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;ZLorg/hibernate/transform/ResultTransformer;)Ljava/util/List; (Loader.java:340)
  at org.hibernate.loader.Loader.doList(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/transform/ResultTransformer;)Ljava/util/List; (Loader.java:2689)
  at org.hibernate.loader.Loader.doList(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;)Ljava/util/List; (Loader.java:2672)
  at org.hibernate.loader.Loader.listIgnoreQueryCache(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;)Ljava/util/List; (Loader.java:2506)
  at org.hibernate.loader.Loader.list(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;Ljava/util/Set;[Lorg/hibernate/type/Type;)Ljava/util/List; (Loader.java:2501)
  at org.hibernate.loader.hql.QueryLoader.list(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;)Ljava/util/List; (QueryLoader.java:504)
  at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;)Ljava/util/List; (QueryTranslatorImpl.java:395)
  at org.hibernate.engine.query.spi.HQLQueryPlan.performList(Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/util/List; (HQLQueryPlan.java:220)
  at org.hibernate.internal.SessionImpl.list(Ljava/lang/String;Lorg/hibernate/engine/spi/QueryParameters;)Ljava/util/List; (SessionImpl.java:1508)
  at org.hibernate.query.internal.AbstractProducedQuery.doList()Ljava/util/List; (AbstractProducedQuery.java:1537)
  at org.hibernate.query.internal.AbstractProducedQuery.list()Ljava/util/List; (AbstractProducedQuery.java:1505)
  at org.hibernate.query.Query.getResultList()Ljava/util/List; (Query.java:132)
  at org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getResultList()Ljava/util/List; (CriteriaQueryTypeQueryAdapter.java:74)
  at org.springframework.data.jpa.repository.query.JpaQueryExecution$CollectionExecution.doExecute(Lorg/springframework/data/jpa/repository/query/AbstractJpaQuery;Lorg/springframework/data/jpa/repository/query/JpaParametersParameterAccessor;)Ljava/lang/Object; (JpaQueryExecution.java:126)
  at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(Lorg/springframework/data/jpa/repository/query/AbstractJpaQuery;Lorg/springframework/data/jpa/repository/query/JpaParametersParameterAccessor;)Ljava/lang/Object; (JpaQueryExecution.java:88)
  at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(Lorg/springframework/data/jpa/repository/query/JpaQueryExecution;[Ljava/lang/Object;)Ljava/lang/Object; (AbstractJpaQuery.java:154)
  at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute([Ljava/lang/Object;)Ljava/lang/Object; (AbstractJpaQuery.java:142)
  at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (RepositoryFactorySupport.java:618)
  at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (RepositoryFactorySupport.java:605)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186)
  at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (DefaultMethodInvokingMethodInterceptor.java:80)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186)
  at org.springframework.transaction.interceptor.TransactionInterceptor$$Lambda$975.proceedWithInvocation()Ljava/lang/Object; (Unknown Source)
  at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(Ljava/lang/reflect/Method;Ljava/lang/Class;Lorg/springframework/transaction/interceptor/TransactionAspectSupport$InvocationCallback;)Ljava/lang/Object; (TransactionAspectSupport.java:353)
  at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (TransactionInterceptor.java:99)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186)
  at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (PersistenceExceptionTranslationInterceptor.java:139)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186)
  at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (CrudMethodMetadataPostProcessor.java:149)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186)
  at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (ExposeInvocationInterceptor.java:93)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186)
  at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; (JdkDynamicAopProxy.java:212)
  at com.sun.proxy.$Proxy1423.findAllByLastModifiedTimeLessThan(Ljava/time/OffsetDateTime;)Ljava/util/List; (Unknown Source)
  at com.inspur.edp.event.stream.consumer.store.EventHandleLogServiceImpl.addEventHandleLog(Lcom/inspur/edp/event/stream/center/api/entity/EventHandleLog;Lcom/inspur/edp/event/stream/domain/CommonEvent;)V (EventHandleLogServiceImpl.java:69)
  at com.inspur.edp.event.stream.consumer.EventHandlerActuator.addEventHandleLog(Ljava/lang/String;Lcom/inspur/edp/event/stream/domain/CommonEvent;Ljava/time/OffsetDateTime;Ljava/time/OffsetDateTime;Lcom/inspur/edp/event/stream/center/api/entity/EventSubscriber;)V (EventHandlerActuator.java:526)
  at com.inspur.edp.event.stream.consumer.EventHandlerActuator.actuator(Lcom/inspur/edp/event/stream/domain/CommonEvent;Ljava/lang/String;Z)V (EventHandlerActuator.java:95)
  at com.inspur.edp.event.stream.consumer.EventHandler.handleEvent(Lcom/inspur/edp/stream/consumer/dynamic/StreamMessage;)Z (EventHandler.java:76)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (Method.java:498)
  at com.inspur.edp.stream.common.utils.ClazzUtil.invokeMethod(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; (ClazzUtil.java:73)
  at com.inspur.edp.stream.common.utils.ClazzUtil.invokeMethod(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object; (ClazzUtil.java:28)
  at com.inspur.edp.stream.common.utils.ClazzUtil.invokeMethod(Lcom/inspur/edp/stream/common/utils/AssemblyCallee;[Ljava/lang/Object;)Ljava/lang/Object; (ClazzUtil.java:17)
  at com.inspur.edp.stream.consumer.dynamic.MessageStreamConsumer.execute(Lcom/inspur/edp/stream/common/utils/GenericCallee;Lcom/inspur/edp/stream/consumer/dynamic/StreamMessage;)V (MessageStreamConsumer.java:301)
  at com.inspur.edp.stream.consumer.dynamic.MessageStreamConsumer.process(Lorg/springframework/messaging/Message;Ljava/lang/String;Ljava/lang/String;)V (MessageStreamConsumer.java:240)
  at com.inspur.edp.stream.consumer.dynamic.MessageStreamConsumer.lambda$subscribe$0(Lorg/springframework/messaging/Message;)V (MessageStreamConsumer.java:59)
  at com.inspur.edp.stream.consumer.dynamic.MessageStreamConsumer$$Lambda$1668.handleMessage(Lorg/springframework/messaging/Message;)V (Unknown Source)
  at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(Lorg/springframework/messaging/Message;)Z (AbstractDispatcher.java:115)
  at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(Lorg/springframework/messaging/Message;)Z (UnicastingDispatcher.java:132)
  at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(Lorg/springframework/messaging/Message;)Z (UnicastingDispatcher.java:105)
  at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(Lorg/springframework/messaging/Message;J)Z (AbstractSubscribableChannel.java:73)
  at org.springframework.integration.channel.AbstractMessageChannel.send(Lorg/springframework/messaging/Message;J)Z (AbstractMessageChannel.java:453)
  at org.springframework.integration.channel.AbstractMessageChannel.send(Lorg/springframework/messaging/Message;)Z (AbstractMessageChannel.java:401)
  at org.springframework.messaging.core.GenericMessagingTemplate.doSend(Lorg/springframework/messaging/MessageChannel;Lorg/springframework/messaging/Message;J)V (GenericMessagingTemplate.java:187)
  at org.springframework.messaging.core.GenericMessagingTemplate.doSend(Lorg/springframework/messaging/MessageChannel;Lorg/springframework/messaging/Message;)V (GenericMessagingTemplate.java:166)
  at org.springframework.messaging.core.GenericMessagingTemplate.doSend(Ljava/lang/Object;Lorg/springframework/messaging/Message;)V (GenericMessagingTemplate.java:47)
  at org.springframework.messaging.core.AbstractMessageSendingTemplate.send(Ljava/lang/Object;Lorg/springframework/messaging/Message;)V (AbstractMessageSendingTemplate.java:109)
  at org.springframework.integration.endpoint.MessageProducerSupport.sendMessage(Lorg/springframework/messaging/Message;)V (MessageProducerSupport.java:205)
  at org.springframework.integration.amqp.inbound.AmqpInboundChannelAdapter.access$600(Lorg/springframework/integration/amqp/inbound/AmqpInboundChannelAdapter;Lorg/springframework/messaging/Message;)V (AmqpInboundChannelAdapter.java:61)
  at org.springframework.integration.amqp.inbound.AmqpInboundChannelAdapter$Listener.createAndSend(Lorg/springframework/amqp/core/Message;Lcom/rabbitmq/client/Channel;)V (AmqpInboundChannelAdapter.java:266)
  at org.springframework.integration.amqp.inbound.AmqpInboundChannelAdapter$Listener.onMessage(Lorg/springframework/amqp/core/Message;Lcom/rabbitmq/client/Channel;)V (AmqpInboundChannelAdapter.java:232)
  at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doInvokeListener(Lorg/springframework/amqp/rabbit/listener/api/ChannelAwareMessageListener;Lcom/rabbitmq/client/Channel;Ljava/lang/Object;)V (AbstractMessageListenerContainer.java:1569)
  at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.actualInvokeListener(Lcom/rabbitmq/client/Channel;Ljava/lang/Object;)V (AbstractMessageListenerContainer.java:1488)
  at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer$$Lambda$1664.invokeListener(Lcom/rabbitmq/client/Channel;Ljava/lang/Object;)V (Unknown Source)
  at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.invokeListener(Lcom/rabbitmq/client/Channel;Ljava/lang/Object;)V (AbstractMessageListenerContainer.java:1476)
  at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doExecuteListener(Lcom/rabbitmq/client/Channel;Ljava/lang/Object;)V (AbstractMessageListenerContainer.java:1467)
  at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.executeListener(Lcom/rabbitmq/client/Channel;Ljava/lang/Object;)V (AbstractMessageListenerContainer.java:1411)
  at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.doReceiveAndExecute(Lorg/springframework/amqp/rabbit/listener/BlockingQueueConsumer;)Z (SimpleMessageListenerContainer.java:958)
  at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.receiveAndExecute(Lorg/springframework/amqp/rabbit/listener/BlockingQueueConsumer;)Z (SimpleMessageListenerContainer.java:908)
  at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$1600(Lorg/springframework/amqp/rabbit/listener/SimpleMessageListenerContainer;Lorg/springframework/amqp/rabbit/listener/BlockingQueueConsumer;)Z (SimpleMessageListenerContainer.java:81)
  at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.mainLoop()V (SimpleMessageListenerContainer.java:1279)
  at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run()V (SimpleMessageListenerContainer.java:1185)
  at java.lang.Thread.run()V (Thread.java:748)
复制代码

 

 

从内存对象数量的直方图,反向查找GCRoot引用。通过GC Roots的线程及引用对象数的统计,可以与线程角度的分析做进一步确认。

 

定位GC Root有两个方法。

方法1:选中直方图的数据类型,直接merge查找。

image

image

 

方法2:先列出所有对象,然后使用Path to GC Roots。

image

image

image

 

通过关键堆栈的信息,排查代码发现是没有做筛选条件的过滤及分页,导致DB的累计数据一次加载到应用内存。

努力加载评论中...
点击右上角即可分享
微信分享提示