Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336

    JBoss-Oracle: errore in connessione se tanti utenti

    Ciao a tutti! Non sono sicura di aver postato nel posto giusto, ma non ho idea di quale sia il problema quindi scusatemi se sono fuori luogo!
    Ho un'applicazione J2EE su Jboss e che si connette a un db Oracle: nessun problema di funzionamento apparente.... fino a quando il numero di utenti non aumenta.
    Se lancio un test in cui 20 thread differenti fanno la stessa sequenza di operazioni in concorrenza, l'applicazione risponde a dovere; se faccio girare lo stesso test con 80 utenti, ottengo (a volte subito, a volte oltre metà test) l'errore The Network Adapter could not establish the connection. Sembrerebbe quasi che il test sfori il numero di connessioni disponibili... qualche suggerimento?

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Potrebbe essere un problema legato al fatto che lo stesso Oracle non accetti un numero elevato di connessioni.

    Per risalire alla fonte del problema, si dovrebbero conoscere però molti più aspetti della tua applicazione: come è organizzata, come apri le connessioni, come viene gestita la loro chiusura, di quale natura è il test, ecc.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336
    Ciao alka e grazie per le indicazioni!
    Allora, l'applicazione è un'applicazione J2EE che utilizza JSP + Struts a livello view e EJB + DAO a livello model.
    La gestione delle connessioni è quella "solita": apertura, creazione di uno statement, esecuzione della query, chiusura di statement e connessione; in particolare, tutte le chiusure si trovano in blocchi finally, in modo che vengano effettivamente eseguite anche in caso di eccezione.
    Il test è l'unica cosa secondo me particolare (ma non ho grandissima esperienza quindi forse conta poco): si tratta di un test automatico lanciato da JMeter, un tool apposito per il test di applicazioni web. Consiste nella simulazione dell'esecuzione di una particolare procedura da parte di un numero n di utenti: in pratica ogni utente effettua il login, visualizza alcune pagine contententi degli elenchi di record filtrati secondo i parametri scelti dall'utente e registra un nuovo record. Si tratta di una procedura abbastanza pesante in termini di accessi al db e proprio per questo l'abbiamo scelta come oggetto di test, oltre al fatto che si prevede possa essere eseguita in concorrenza da molti utenti poi anche nell'effettivo.
    Rispetto alla configurazione standard, su Oracle abbiamo alzato il numero massimo di processi attivi, ottenendo qualche miglioramento (prima c'erano problemi anche con meno di 50 utenti, ora arriviamo a 70 ma poi l'errore di ripresenta). Un ulteriore test utilizzando il JBoss su un'altra macchina un po' più potente in termini di risorse di quella di ieri ha portato ad avere ancora un errore di connessione ma diverso dal precedente: stavolta il problema riguardava l'impossibilità di reperire una connessione nel tempo di timeout previsto (30 secondi secondo lo stack, ma deve essere il valore di default).
    Ora sto quindi cercando di capire come si può modificare il file di configurazione xml del datasource, in particolare per quanto riguarda il massimo timeout di attesa della connessione, ma non ho ancora trovato documentazione precisa, sto googleando...
    Se avete suggerimenti o link che mi possano essere utili.... in ogni caso grazie per l'attenzione!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.