小编Zde*_*end的帖子

无法从堆中收集无法访问的对象

我在JVM堆(Java 1.7)中遇到了无法访问的对象.从图片中可以看出(图片中的所有类都无法访问),我们有超过74%的对象没有参考,所以应该收集它.这个状态在我们的tomcat 7服务器上运行3周之后,只运行探测监控应用程序,tomcat管理器和我们的webapp,这可能是问题的根源.

我们的应用程序基于JSF 1.2,在客户端上具有状态保存功能,如下图所示 - 主要使用ViewSaveState的char数组.当我从jVisualVM手动运行GC时,它会删除所有无法访问的对象,并且在堆到达其限制的3周之前一切正常.

如何清除某些物体?

我们的JVM参数

-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=29001
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=
-Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true
-Xms320m
-Xmx2500m
-XX:MaxPermSize=500m
-XX:PermSize=96m
-verbose:gc
-Xloggc:/var/log/gc.log
-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails
-Xdebug -Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n
-XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC
Run Code Online (Sandbox Code Playgroud)

http://puu.sh/b7mjB/3d23de7d41.png

OutOfMemoryError的STACKTRACES

我认为原因隐藏在其他地方,堆栈跟踪来自app的不同部分.可能存在一些泄漏,但堆栈跟踪仅报告最后一个组件,当没有任何内容时,它会及时声明某些内存.

    java.lang.OutOfMemoryError: Java heap space
            at java.util.LinkedHashMap.createEntry(LinkedHashMap.java:442)
            at java.util.HashMap.addEntry(HashMap.java:888)
            at java.util.LinkedHashMap.addEntry(LinkedHashMap.java:427)
            at java.util.HashMap.put(HashMap.java:509)
            at sun.util.resources.OpenListResourceBundle.loadLookup(OpenListResourceBundle.java:134)
            at sun.util.resources.OpenListResourceBundle.loadLookupTablesIfNecessary(OpenListResourceBundle.java:113)
            at sun.util.resources.OpenListResourceBundle.handleGetObject(OpenListResourceBundle.java:74)
            at sun.util.resources.TimeZoneNamesBundle.handleGetObject(TimeZoneNamesBundle.java:75)
            at java.util.ResourceBundle.getObject(ResourceBundle.java:389)
            at java.util.ResourceBundle.getObject(ResourceBundle.java:392)
------------------
Exception in thread "Timer-22" Exception in thread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2" java.lang.OutOfMemoryError: Java heap space
Exception in thread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1" java.lang.OutOfMemoryError: Java heap space
------------------
Caused by: java.lang.OutOfMemoryError: Java heap …
Run Code Online (Sandbox Code Playgroud)

java heap tomcat garbage-collection jvm

10
推荐指数
2
解决办法
5734
查看次数

Spring数据JPA规范 - @OneToMany依赖

我有使用Spring数据JPA规范从实体Person获取List的问题(因为分页).我需要逐个获得所有笔记,但这两个实体之间的依赖关系是在人员方面.我不知道如何创建我的谓词因为Note不包含任何与Person相关的属性.

我只能得到List with Persons getter但我不能用这种方式,因为我需要返回数据分页.

@Entity
public class Person implements Serializable {

    @Id
    private Long personId;

    @OneToMany
    @JoinColumn(name = "personId")
    private List<Note> notes;

}

@Entity
public class Note implements Serializable {

    @Id
    private Long noteId;
}
Run Code Online (Sandbox Code Playgroud)

通常情况下,我会写这样的东西,但我没有注释中的属性人,数据库在此阶段无法重新映射.

public static Specification<Note> notesByPerson(final Long personId) {
        return new Specification<Note>() {
            @Override
            public Predicate toPredicate(final Root<Note> root, final CriteriaQuery<?> query,
                    final CriteriaBuilder builder) {

                final Path<Person> per = root.<Person> get("person");

                return builder.equal(per.<Long> get("personId"), personId);

            }
        };
    }
Run Code Online (Sandbox Code Playgroud)

谢谢你,Zdend

spring specifications jpa criteria-api spring-data-jpa

8
推荐指数
1
解决办法
2万
查看次数

上下文初始化失败或加载属性

我在构建应用程序时遇到问题,我收到此错误:

VII 08, 2012 10:03:46 DOP. org.apache.catalina.startup.Embedded start
INFO: Starting tomcat server
VII 08, 2012 10:03:46 DOP. org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.29
VII 08, 2012 10:03:47 DOP. org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
INFO : org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization started
INFO : org.springframework.web.context.support.XmlWebApplicationContext - Refreshing Root WebApplicationContext: startup date [Sun Jul 08 10:03:47 CEST 2012]; root of context hierarchy
INFO : org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from URL [file:/D:/work/projekty/java/evrem/target/classes/META-INF/spring/root-context.xml]
INFO : org.springframework.context.annotation.ClassPathBeanDefinitionScanner - JSR-330 …
Run Code Online (Sandbox Code Playgroud)

spring compiler-errors properties applicationcontext

2
推荐指数
1
解决办法
3万
查看次数