PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

java.sql.SQLException:Połączenie zostało już zamknięte

Poniższa konfiguracja zadziałała dla mnie

<Context context="ROOT" debug="0" reloadable="false" useHttpOnly="true" cacheMaxSize="40960" cacheTTL="60000" cachingAllowed="true" antiJARLocking="true">
    <Resource name="XYZ" auth="Container"
            description="Exchange DB Connection"
            dataSourceClassName="org.postgresql.ds.PGSimpleDataSource"
            dataSource.serverName="XXXXX"
            dataSource.databaseName="XXXX"
            dataSource.portNumber="XXXX"
            dataSource.user="xyz"
            dataSource.password="xyz"
            maximumPoolSize="20"
            minimumIdle="5"
            connectionTimeout="300000"
            factory="com.zaxxer.hikari.HikariJNDIFactory"
            registerMbeans="true"
            type="javax.sql.DataSource" />

Kluczową wartością jest tutaj connectionTimeout .Fabryka, z której obecnie korzystasz, ma domyślny limit czasu, po którym wymusza zamknięcie sesji.

Powyższa wartość limitu czasu połączenia zadziałała dla mnie , w przypadku scenariuszy aplikacji będziesz musiał trochę poeksperymentować, aby uzyskać odpowiednią wartość.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak stworzyć widok w PostgreSQL

  2. Ograniczenie PostgreSQL - tylko jeden wiersz może mieć ustawioną flagę

  3. PostgreSQL — Quartz JDBC-JobStoreTX — getTriggersForJob — ArrayIndexOutOfBoundsException

  4. Poprawa wydajności procedur składowanych w PostgreSQL 9.6

  5. Jak wyodrębnić rok i miesiąc od daty w PostgreSQL bez użycia funkcji to_char()?