Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да избегнем блокираните DB връзки с пула за JDBC връзки на TomEE?

Успешно използвам resources.xml в моя WEB-INF папка, подобна на тази в моите производствени проекти:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<Resource id="mysql-jdbc-jta-resource-stg" type="javax.sql.DataSource">
    JtaManaged = true
    DataSourceCreator = tomcat

    validationQuery = SELECT 1
    initialSize = 2
    removeAbandoned = true
    removeAbandonedTimeout = 120

    driverClassName = com.mysql.jdbc.Driver
    url = jdbc:mysql://db-stg.bar.someRegion.rds.amazonaws.com/someDBname
    username = your-username
    password = your-pw
</Resource>
</resources>

Една важна разлика е да използвате DataSourceCreator = tomcat . Това гарантира, че TomEE създава пул, който се грижи за валидирането на връзката („SELECT 1“) и премахва блокираните/остарели връзки, като по този начин освобождава ресурси във фонов режим.

За разлика от това, DataSourceCreator = dbpc (което е по подразбиране когато не е зададено:"По подразбиране предоставените пулове са DBCP... ") се държеше, както го описахте/изпитахте (изчаквания,...). Проверете свързана документация за допълнителни разлики.

Също така имайте предвид, че = се използва в моята работна конфигурация. Открих, че в предишни версии на TomEE изглеждаше, че работи без = . Въпреки това бих препоръчал да конфигурирате с = последователно, когато вашият целеви сървър на приложения е TomEE 1.7.2 или по-нова версия.

Допълнителни подробности за това могат да бъдат намерени и в Конфигурация на източник на данни страница.

Надявам се да помогне.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка при MySQL връзката в Java - com.mysql.jdbc.Driver

  2. Кое е по-ефективно за изпращане на актуализации на WebSocket с промяна на MySQL база данни

  3. Как да проверите базата данни и в резултат да проверите радио бутон?

  4. Изчислете разликата между две дати и часа

  5. Не могат да се вмъкват нелатински символи в MySQL