Hibernate sessionFactory创建和weblogic数据源交互

时间:2014-05-21 17:32:39

标签: java hibernate weblogic datasource sessionfactory

我看到很多使用hibernate的例子,特别是会话工厂,以编程方式 我用过这个:

private static final SessionFactory sessionFactory = buildSessionFactory();

private static SessionFactory buildSessionFactory() {
    try {
        // Create the SessionFactory from hibernate.cfg.xml
        return new Configuration()
                .configure()
                .buildSessionFactory();
    } catch (Throwable ex) {
        System.err.println("Initial SessionFactory creation failed." + ex);
        throw new ExceptionInInitializerError(ex);
    }
}

public static SessionFactory getSessionFactory() {
    return sessionFactory;
}

但是在我当前的项目中我需要一些不同的实现,所以我删除了sessionFactory常量的FINAL,并且我实现了一个构造函数,以便在它为null时对其进行初始化。

所以我有一个hibernateUtil abstrac类,只有SYNCHRONIZED方法buildSessionFactory和一个实现类,这个构造函数

public myHibernateUtil(){
        if (mySessionFactory == null){
            mySessionFactory = buildSessionFactory();
        }
    }

安全吗?在您看来,通过删除会话工厂的FINAL,可能会遇到会话数问题并使数据源饱和吗?

我提出这个问题是因为我为weblogic收到了一个奇怪的错误:

池myDatasource已暂停,无法为应用程序分配资源..

感谢所有人!

编辑: 进入Server1-diagnostic.log有以下异常:

[2014-05-21T18:46:41.428 + 02:00] [Server_1] [NOTIFICATION] [DFW-40101] [oracle.dfw.incident] [tid:[ACTIVE] .ExecuteThread:队列'12' :'weblogic.kernel.Default(self-tuning)'] [userId:] [ecid:356fce390f623850:-983a53a:1461f7d7cb4:-8000-0000000000000b1e,0]事件已通过事件事实发出信号:[problemKey = BEA- 337 [WebLogicServer] incidentSource = SYSTEM incidentTime = Wed May 21 18:46:41 CEST 2014 errorMessage = BEA-337 executionContextId = 356fce390f623850:-983a53a:1461f7d7cb4:-8000-0000000000000995] [2014-05-21T18:46:42.927 + 02:00] [Server_1] [NOTIFICATION] [DFW-40104] [oracle.dfw.incident] [tid:[ACTIVE] .ExecuteThread:'12'表示队列:'weblogic .kernel.Default(self-tuning)'] [userId:] [ecid:356fce390f623850:-983a53a:1461f7d7cb4:-8000-0000000000000b1e,0] [errid:84] [detailLoc:/ app / oss / bea-domains / osssbdomain / servers / Server_1 / adr / diag / ofm / osssbdomain / Server_1 / incident / incdir_84] [probKey:BEA-337 [WebLogicServer]]使用问题密钥“BEA-337 [WebLogicServer]”创建的事件84

此外,我在server1.log中发现了很多这样的错误:

尝试全部:'1'地址,但无法通过HTTP连接到服务器:'127.0.0.1',port:'7333' 在oracle服务总线和我的应用程序之间的通信中。

谢谢!

0 个答案:

没有答案