Spring Data Rest使GC开销超出了

堡垒

已编辑

有2个实体,用户和RefSecQuestion链接如下-

内部用户:已更改为EAGER以解决错误

@ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "question", nullable = false)
    public RefSecQuestion getRefSecQuestion() {
        return this.refSecQuestion;
}

内部RefSecQuestion:

@OneToMany(fetch = FetchType.LAZY, mappedBy = "refSecQuestion")
public Set<User> getUsers() {
    return this.users;
} 

访问URL-/ api / refSecQuestions或/ api / users / 2 / refSecQuestions给出此错误-

 11:25:14,320 WARN LoadContexts.cleanup():115 - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@32f6b537<rs=org.apache.commons.dbcp2.DelegatingResultSet@72b935ef>
2014-10-19 11:25:14.522:WARN:oejs.ServletHandler:qtp1075697729-17: 
org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.OutOfMemoryError: GC overhead limit exceeded
    at org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1280)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:958)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:769)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1125)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1059)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
    at org.eclipse.jetty.server.Server.handle(Server.java:497)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:248)
    at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:610)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:539)
    at java.lang.Thread.run(Thread.java:745)
Caused by: 
java.lang.OutOfMemoryError: GC overhead limit exceeded
    at org.hibernate.internal.AbstractSessionImpl.generateEntityKey(AbstractSessionImpl.java:327)
    at org.hibernate.engine.internal.StatefulPersistenceContext.getCollectionOwner(StatefulPersistenceContext.java:694)
    at org.hibernate.loader.plan.exec.process.internal.CollectionReferenceInitializerImpl.findCollectionOwner(CollectionReferenceInitializerImpl.java:141)
    at org.hibernate.loader.plan.exec.process.internal.CollectionReferenceInitializerImpl.finishUpRow(CollectionReferenceInitializerImpl.java:87)
    at org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.readRow(AbstractRowReader.java:125)
    at org.hibernate.loader.plan.exec.process.internal.ResultSetProcessorImpl.extractResults(ResultSetProcessorImpl.java:129)
    at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:138)
    at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:102)
    at org.hibernate.loader.collection.plan.AbstractLoadPlanBasedCollectionInitializer.initialize(AbstractLoadPlanBasedCollectionInitializer.java:100)
    at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:693)
    at org.hibernate.event.internal.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:92)
    at org.hibernate.internal.SessionImpl.initializeCollection(SessionImpl.java:1897)
    at org.hibernate.collection.internal.AbstractPersistentCollection$4.doWork(AbstractPersistentCollection.java:558)
    at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:260)
    at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:554)
    at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:142)
    at org.hibernate.collection.internal.AbstractPersistentCollection$1.doWork(AbstractPersistentCollection.java:171)
    at org.hibernate.collection.internal.AbstractPersistentCollection$1.doWork(AbstractPersistentCollection.java:156)
    at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:260)
    at org.hibernate.collection.internal.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:155)
    at org.hibernate.collection.internal.PersistentSet.isEmpty(PersistentSet.java:166)
    at org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler$1.doWithAssociation(PersistentEntityResourceAssembler.java:159)
    at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:337)
    at org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler.getEmbeddedResources(PersistentEntityResourceAssembler.java:128)
    at org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler.wrap(PersistentEntityResourceAssembler.java:106)
    at org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler.toResource(PersistentEntityResourceAssembler.java:84)
    at org.springframework.data.rest.webmvc.RepositoryPropertyReferenceController$1.apply(RepositoryPropertyReferenceController.java:141)
    at org.springframework.data.rest.webmvc.RepositoryPropertyReferenceController$1.apply(RepositoryPropertyReferenceController.java:110)
    at org.springframework.data.rest.webmvc.RepositoryPropertyReferenceController.doWithReferencedProperty(RepositoryPropertyReferenceController.java:464)
    at org.springframework.data.rest.webmvc.RepositoryPropertyReferenceController.followPropertyReference(RepositoryPropertyReferenceController.java:148)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
菲利普·马歇尔

GC overhead limit exceeded表示使用CMS垃圾收集器时内存不足。这可能是由于内存泄漏引起的,或者是您的应用程序仅具有比VM选项所允许的更大的实时数据集。找出问题的用途

-XX:+HeapDumpOnOutOfMemoryError

并可能-XX:HeapDumpPath(请查看Java HotSpot VM Options了解更多信息)。然后运行诸如Eclipse MAT之类的工具来找出问题所在。还有一些商业工具,例如Plumbr

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Spring Data Neo4j超出了GC开销限制

来自分类Dev

Clojure错误-超出了GC开销限制

来自分类Dev

Android Studio:超出了GC开销限制

来自分类Dev

Hadoop流“超出了GC开销限制”

来自分类Dev

Clojure错误-超出了GC开销限制

来自分类Dev

jmeter中超出了gc内存开销

来自分类Dev

Spring HATEOAS与Spring Data Rest

来自分类Dev

无法执行dex:超出了GC开销限制->库

来自分类Dev

尝试构建LibGDX项目超出了GC开销限制

来自分类Dev

Tomcat java.lang.OutOfMemoryError:超出了GC开销限制

来自分类Dev

Jmeter java.lang.OutOfMemoryError:超出了GC开销限制

来自分类Dev

java.lang.OutOfMemoryError:Scala超出了GC开销限制

来自分类Dev

构建Android源时超出了GC开销限制

来自分类Dev

Android Studio中超出了GC开销限制

来自分类Dev

java.lang.OutOfMemoryError(超出了GC开销限制)

来自分类Dev

无法执行dex:超出了GC开销限制->库

来自分类Dev

超出了GC开销限制,但有足够的内存

来自分类Dev

Google Play服务超出了GC开销限制

来自分类Dev

Spring Data Rest绑定

来自分类Dev

Spring Data Rest和Spring MVC仇恨

来自分类Dev

Spring Data Rest基本路径

来自分类Dev

Spring Data REST UPSERT语句

来自分类Dev

Spring Data Rest引导问题

来自分类Dev

Spring Data Rest和Hateoas

来自分类Dev

Spring Data Rest JSON模式

来自分类Dev

Spring Data REST Bean验证

来自分类Dev

Spring Data Rest事务边界

来自分类Dev

Spring Data Rest和Hateoas

来自分类Dev

Spring Data Rest中的关联