sql >> Databáze >  >> RDS >> Mysql

Jak se vyhnout pozastaveným připojením DB s fondem připojení JDBC TomEE?

Úspěšně používám resources.xml v mém WEB-INF složka podobná této v mých produkčních projektech:

<?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>

Jedním z důležitých rozdílů je použití DataSourceCreator = tomcat . To zajišťuje, že TomEE vytvoří fond, který se postará o ověření připojení ("SELECT 1") a odstraní zablokovaná/zastaralá připojení, čímž uvolní zdroje na pozadí.

Naproti tomu DataSourceCreator = dbpc (což je výchozí když není nastaveno:"Výchozí poskytované fondy jsou DBCP... ") se choval tak, jak jste to popsal/zažil (časové limity,...). Zkontrolujte související dokumentaci pro další rozdíly.

Všimněte si také, že = se používá v mé pracovní konfiguraci. Zjistil jsem, že v předchozích verzích TomEE se zdálo, že to funguje bez = . Doporučuji však konfigurovat pomocí = konzistentně, když je váš cílový aplikační server TomEE 1.7.2 nebo vyšší.

Další podrobnosti o tom lze také nalézt v Konfigurace zdroje dat strana.

Doufám, že to pomůže.




  1. Jak programově spustit KDYŽ a POTOM na aktualizaci MySQL pomocí Pythonu a Django?

  2. Návrh tabulky entity-atributu-hodnoty

  3. Proč nemůžete použít OR nebo IN s operací OUTER JOIN?

  4. Procházení databáze mysql