Exception with connection pool-datasource redeploy

2019-09-03 06:26发布

问题:

I'm having a problem with hibernate and weblogic 12c, and Oracle 11g When I install my app it runs correctly, but when I update the app it throws this: An exception occurred while acquiring a poolable resource. Will retry. java.lang.NullPointerException Regards

Hibernate properties:

hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
hibernate.show_sql=true 
hibernate.generate_statistics=false
hibernate.use_sql_comments=false
hibernate.debugging=false
hibernate.hbm2ddl.auto=validate

hibernate.c3p0.min_size=5
hibernate.c3p0.max_size=20
hibernate.c3p0.timeout=300
hibernate.c3p0.max_statements=50
hibernate.c3p0.idle_test_period=3000

回答1:

Using the destroyMethod="" on the java config will make the bug SPR-13022 corrected:

    @Bean (name="dataSource", destroyMethod="")
    public DataSource getDatasourceConfiguration() {
        System.out.println("empezando a buscar jndi-------------");
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e1) {

        } 

     Hashtable<String, String> h = new Hashtable<String, String>();
     h.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); 

      InitialContext context=null;

     DataSource dataSource = null;
    try {
        context = new InitialContext(h);
        dataSource = (javax.sql.DataSource) context.lookup("ds_c719_002");      
        this.ds=dataSource;
        context.close();
        return dataSource;
    }catch(NamingException e){

        log.error(e);
        try { 
            dataSource = (javax.sql.DataSource) context.lookup("java:comp/env/ds_c719_002");
        } catch (NamingException e1) {
 System.out.println("--------ups----");
 e1.printStackTrace();
 System.exit(1);
        }


    }
      finally {
            try {
                context.close();}
         catch (Exception e) {
             e.printStackTrace();
         }
              // a failure occurred
            }
return null;
 }


    @Bean (name="sessionFactoryBean", destroyMethod="")
    public LocalSessionFactoryBean  sessionFactoryBean()
    {

        LocalSessionFactoryBean  asfb = new LocalSessionFactoryBean ();
        asfb.setHibernateProperties(getHibernateProperties());
         asfb.setDataSource(getDatasourceConfiguration());
         asfb.setPackagesToScan(new String[]{"mx.com.banamex.tdc.modelo"});
        return asfb;
    }

    @Bean 
        public SessionFactory sessionFactory() { 
            return sessionFactoryBean().getObject(); 
        }

Bug documentation: https://jira.spring.io/browse/SPR-13022