- - PR -
【PosgreSQL】JBossにてデータソースからコネクションを取得できない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-02-26 23:59
掲題の通り、ある一定時間後PosgreSQLのテーブルにSQL問い合わせたところ、
最初の一回目は必ずコネクションが取得できなくエラーとなってしまいます。 二回目以降はインスタンスができているのかうまくいきます。。。 ネットで色々調べてみたのですが、原因がわからずここに書き込みました。 何かわかりましたらご教授願えればと思います。 環境は以下の通りです。 APサーバ:JBoss4.02 DBサーバ:PostgreSQL8.2 JDK:jdk1.5 ソース private Connection con = null; private PreparedStatement pstm = null; private ResultSet rs = null; public Object getInfo(Object key) throws SQLException, SystemErrorException { UserInfo info = (UserInfo) key; String id = info.getId(); String password = info.getPassword(); // SQLの組み立て String sql = "SELECT NAME FROM USER_INFO_TBL WHERE ID = ? AND PASSWORD = ?"; try { InitialContext context = new InitialContext(); DataSource dataSource = (DataSource) context.lookup("java:/PostgresDS"); con = dataSource.getConnection(); pstm = con.prepareStatement(sql); pstm.setString(1, id); pstm.setString(2, password); rs = pstm.executeQuery(); if (rs.next()){ info.setName(rs.getString("NAME")); } } catch(SQLException sqle) { sqle.printStackTrace(); throw new SQLException(); } catch(Exception e) { e.printStackTrace(); throw new SystemErrorException(); } finally{ if(rs != null) { rs.close(); } if(pstm != null) { pstm.close(); } if(con != null) { con.close(); } } return info; } 以下、ログです。 2008-02-26 20:40:49,468 DEBUG [org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory] Using properties: {user=xxxxx, password=--hidden--} 2008-02-26 20:40:49,750 WARN [org.jboss.resource.connectionmanager.JBossManagedConnectionPool] Throwable while attempting to get a new connection: null org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (org.postgresql.util.PSQLException: The connection attempt failed. Exception: java.net.SocketException: Connection reset Stack Trace: java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:168) at org.postgresql.core.VisibleBufferedInputStream.readMore(VisibleBufferedInputStream.java:135) at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:104) at org.postgresql.core.VisibleBufferedInputStream.read(VisibleBufferedInputStream.java:73) at org.postgresql.core.PGStream.ReceiveChar(PGStream.java:255) at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:253) at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:94) at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66) at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:125) at org.postgresql.jdbc2.Jdbc2Connection.<init>(Jdbc2Connection.java:24) at org.postgresql.Driver.makeConnection(Driver.java:382) at org.postgresql.Driver.connect(Driver.java:260) at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:151) at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConnectionPool.java:508) at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:207) at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:534) at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:395) at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:297) at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:447) at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:874) at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:103) at jp.co.ditgroup.bs.integration.postgresdb.UserInfoDAO.getInfo(UserInfoDAO.java:60) at jp.co.ditgroup.bs.action.LoginAction.execute(LoginAction.java:81) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:170) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:307) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:385) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:748) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:678) at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:871) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595) End of Stack Trace 以上、よろしくお願い致します。 | ||||
|
投稿日時: 2008-02-27 09:15
JBOSSはつかったことがないのですが 症状からはpoolの設定に問題がありそうですね。 2回目以降はつながるということなので設定XMLを 5.2.3. JBossManagedConnectionPool MBean に従って見直してみてください。 | ||||
|
投稿日時: 2008-02-28 00:11
kumaさん、早速のご回答ありがとうございました!!
提示いただいたURLを基にJbossの設定を変えたところうまくいきました! やはりConnectionPoolingのところの設定がだめだったみたいです。 大変助かりました。本当にありがとうございました。 |
1