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並使用它,現在一切正常。

我仍然對任何有關該主題的文檔感興趣。

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