0

我已经在 Wildfly 8.1 上运行了启用 eclipselink v 2.5 的应用程序,我注意到的问题是启动应用程序后内存增加,因为以下类的实例数量巨大(Visaul VM 的快照):

org.eclipse.persistence.internal.identitymaps.HardCacheWeakIdentityMap$ReferenceCacheKey 13083824 13,083,824 (3.1%) 125,806 (1.4%) org.eclipse.persistence.internal.helper.linkedlist.LinkedNode 3020376 3,020,376 (0.6%) 125,849 (1.org.org. eclipse.persistence.indirection.IndirectList 916608 916,608 (0.3%) 14,322 (0.2%)

当我手动启动 GC 时,这些类没有发生任何变化,并且它继续增加实例的总数。

这是我的代码中的一个 EJB 作为示例,它显示了我用来访问持久性上下文的方式:

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;

import com.sh.entities.Groups;


@Stateless
public class GroupsFacade extends AbstractFacade<Groups> {

    @PersistenceContext(unitName = "WebApplication3PU")
    private EntityManager em;

    @Override
    protected EntityManager getEntityManager() {
        return em;
    }

    public GroupsFacade() {
        super(Groups.class);
    }

    public Groups getByGroupName(String name) {
        TypedQuery<Groups> query = getEntityManager().createNamedQuery("Groups.findByGroupName", Groups.class);

        query.setParameter("groupName", name);
        return query.getSingleResult();
    }

有谁知道问题出在哪里以及为什么会这样?

谢谢。

4

0 回答 0