0

我有这个一般的问题:连接池可以保持缓存一些“古老”的连接,并为另一个被称为服务?我知道它不知道怎么做,但它是否使用已经通过某个DataSource创建的连接对象,而我明确地将查找转换为该数据源到一个新的JNDI地址,并通过这个新查找创建了一个新连接(我希望使用该连接,那是) ?GlassFish中的连接,奇怪的行为?

是有点特殊,这里是我的步骤:

我已经创建了我的GlassFish服务器的连接,在JNDI给它一个名字,用在我的代码如下:

InitialContext ctx = new InitialContext(); 
     //The JDBC Data source that we just created 
     DataSource ds = (DataSource) ctx.lookup("postgresJNDI"); 
     Connection connection = ds.getConnection(); 
     Statement st = connection.createStatement(); 

     ResultSet rs = st.executeQuery("SELECT util_firm, util_name, previlege FROM utilisateur WHERE password = '" + password + "' AND pseudo = '" + pseudo + "' ") ; 

问题是一旦请求被发送,我回去的警告,指出:

serverError: class javax.faces.el.EvaluationException the name of column utilfirm was not found in this ResultSet. 

而且utilfirm甚至不是在我的要求,也不是对我的数据库为此事(但上一个一个我已经擦除的,一个通过其他JNDI地址访问的)。

我可能会补充一点,我已经注意到关闭了我使用的每个连接。

那么这是正常的吗?或者它是我的配置中的东西?

在此先感谢。

回答

0

因此,正如人们所期待的那样,事实上(出于某种神秘的原因),使用连接池的bean保存了一些旧的JNDI的名称,因此没有考虑到代码中指定的新名称。因此,我只是继续创建一个新bean并使用它,现在一切正常。

我仍然对任何有关该主题的文档感兴趣。

祝您有美好的一天/夜晚!