この一般的な質問がありました。接続プールはキャッシュに「古い」接続を保持し、他の接続が呼び出されている間にそれを提供できますか? どういうわけか知っていますが、そのデータソースへのルックアップを新しいJNDIアドレスに明示的に変更し、この新しいルックアップで新しい接続を作成している間に、何らかのデータソースを介して既に作成された接続オブジェクトを使用しますか?あれは) ?
少し具体的に言うと、私の手順は次のとおりです。
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 アドレス経由でアクセスされたものにありました...)。
使用したすべての接続を閉じるように注意したことを付け加えるかもしれません。
これは正常ですか?それとも私の構成に何かありますか?
前もって感謝します。