Mysql
 sql >> Database >  >> RDS >> Mysql

Problema di timeout della connessione all'origine dati di base (usando mysql)

Cose che puoi provare:

  1. setMaxWait(-1) su BasicDataSource. Questo gli dice di aspettare indefinitamente una connessione.

  2. Verifica che il wait_timeout sul tuo server MySQL è impostato sull'impostazione predefinita 8h.

  3. Imposta ?autoReconnect=true sul tuo URL JDBC

  4. setTestOnBorrow(true) su BasicDataSource. Ciò impedirà di distribuire connessioni obsolete ma aggiungerà un sovraccarico alla tua app (sebbene se hai già query singole così lunghe probabilmente non noterai nemmeno quella parte).

In generale, trovo una cattiva idea continuare a riutilizzare una connessione. Per me, il punto di avere una piscina è che non devo farlo.

Le tue domande sono transazionali? È una query davvero lunga che blocca una tabella principale?