Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774

    [commons-DBCP] - problemi con il connectionPool

    salve a tutti,
    ho un grosso applicativo web (composto da jsp e servlet) da modificare per inserire la gestione delle connessioni al database tramite un connectionPool.
    Ho optato per il Jakarta Commons DataBase Connection Pool.
    E devo dire che è una figata perchè non devo toccare niente sull'applicativo, il pool viene gestito da Tomcat ed io non devo far altro che modificare la stringa di connessione x farla puntare al pool anzichè direttamente al database...

    infatti ho fatto la modifica e l'applicativo funziona bene, ma c'è un caso in cui mi da un problema piuttosto grave:

    se una delle connessioni gestite dal pool viene killata a mano sul database (nel mio caso oracle) l'intero pool, anzi l'intero tomcat si impianta!!
    così nessuno può più accedere all'applicativo e al sottoscritto viene fatto un mazzo tanto
    Purtroppo questa è una situazione che può verificarsi con una certa frequenza, poichè i lock sul db capitano, e il dba mi killa le connesioni per risolvere il problema.
    Dunque devo assolutamente risolvere questa cosa...
    ed è qui che mi rivolgo a voi


    Ho provato a spulciare la documentazione (http://jakarta.apache.org/commons/dbcp/configuration.html ) per vedere se il problema è gestibile configurando adeguatamente il pool ma non ho trovato nulla di significativo...
    ..anche perchè vengono citati solo i parametri ma nessuno mi dice dove cavolo modificarli..


    da quello che ho trovato qui: http://www.mokabyte.it/2004/06/jcommons-7.htm ho potuto vedere che
    è possibile testare le connessioni prima di rilasciarle e anche quando vengono restituite, in modo da filtrare connessioni bloccate o roba del genere....

    il problema è che se viene killata a mano una connessione sul db il problema persiste!
    qualcuno sa dirmi come configurare il pool per fare in modo che ciò non avvenga?
    anche consigli sulla configurazione in generale sono bene accetti, tenete presente che l'applicativo è molto grande e quindi ho bisogno di una configurazione il più ottimale possibile.

    grazie mille a tutti
    citruz

  2. #2
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774
    eccomi di nuovo....
    sono riuscito a risolvere il problema di cui sopra utilizzando l'oggetto AbandonedObjectPool...

    codice:
    abandonedConfig = new AbandonedConfig();
    abandonedConfig.setLogAbandoned(true);
    abandonedConfig.setRemoveAbandoned(true);
    abandonedConfig.setRemoveAbandonedTimeout(60);
    però ora ne sorge uno nuovo (l'immortacci sua...)...

    di fatto le connessioni che vengono killate o rimangono bloccate vengono automaticamente eliminate dal pool ogni 60 secondi.. e fin qui tutto ok...
    il problema ora è che anche quelle che invece sono "sane" vengono buttate fuori dal pool...
    in parole povere viene a mancare la bufferizzazione delle connessioni che vengono aperte e richiuse fisicamente ogni volta...
    invece il compito del pool dovrebbe essere quello di tenersele in canna per poi assegnarle a chi le richiede senza doverle ricreare ogni volta...

    qualcuno sa dirmi come mai succede questa cosa?
    sono 2 giorni che impazzisco dietro ste benedette connessioni...
    sarò infinitamente grato a chiunque sappia darmi qualche dritta..
    grazie in anticipo
    citruz

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.