Torna indietro   Hardware Upgrade Forum > Software > Programmazione

AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Cos'è la bolla dell'IA e perché se ne parla
Cos'è la bolla dell'IA e perché se ne parla
Si parla molto ultimamente di "bolla dell'intelligenza artificiale", ma non è sempre chiaro perché: l'IA è una tecnologia molto promettente e che ha già cambiato molte cose dentro e fuori le aziende, ma ci sono enormi aspettative che stanno gonfiando a dismisura i valori delle azioni e distorcendo il mercato. Il che, com'è facile intuire, può portare a una ripetizione della "bolla dotcom", e forse anche di quella dei mutui subprime. Vediamo perché
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile
BOOX Palma 2 Pro è l'ultima evoluzione della gamma Palma. Ma di cosa si tratta? In breve è un dispositivo e-ink da 6,13 pollici che sfida le convenzioni con un display Kaleido 3 a colori, supporto per stilo InkSense Plus, connettività 5G solo dati e alimentato dal sistema operativo Android 15. Con queste caratteristica si configura come qualcosa in più di un semplice e-reader
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-08-2005, 18:56   #1
prazision
Senior Member
 
L'Avatar di prazision
 
Iscritto dal: Dec 2003
Messaggi: 458
[java] pool di connessioni dbcp

dunque, ho utilizzato questa libreria

http://jakarta.apache.org/commons/db...iguration.html

per creare un pool di connessioni ad oracle.

sembra funzionare ma ci sono 2 cose che non mi tornano

1: qualora una connessione del pool non venga chiusa da codice (col metodo
close) questa connessione non viene rilasciata e rimane quindi
occupata(nel senso non ho aspettato 10 ore ma cmq perunpo' rimane occupata
e non so fino a quando).
è normale???
si puo' ovviare in qualche maniera???

2:nel file .xml di configurazione ci sono 2 valori (oltre a <MAXACTIVE>
che rappresenta il numero massimo di connessioni allocate dal pool in
contempranea)
<MAXIDLE>Numero</MAXIDLE>
<MINIDLE>Numero</MINIDLE>
da impostare
ho guardato qui

http://jakarta.apache.org/commons/db...iguration.html

per capire bene cosa rappresentano quei valori ma non mi è ancora chiaro.
qualcuno mi sa spiegare con precisione MAXIDLE e MINIDLE??

grazie mille
prazision è offline   Rispondi citando il messaggio o parte di esso
Old 01-08-2005, 21:12   #2
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da prazision

per capire bene cosa rappresentano quei valori ma non mi è ancora chiaro.
qualcuno mi sa spiegare con precisione MAXIDLE e MINIDLE??


se N°connessioni in idle >MAXIDLE le distrugge fino a raggiungere MAXIDLE

se N°connessioni in idle < MINIDLE nel crea di nuove.


nel primo caso vuoi liberare un po' di risorse inutilizzate, nel secondo vuoi consumarle anche quando non sarebbero strettamente necessarie per avere una potenziale connessione in più da renedere disponibile più velocemente.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 01-08-2005, 21:17   #3
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
coi parametri removeAbandoned e removeAbandonedTimeout puoi dire al gestore del pool dopo quanto tempo considerare "dimenticate" le connessioni non rilasciate e se eventualmente rilasciarle.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 01-08-2005, 22:02   #4
prazision
Senior Member
 
L'Avatar di prazision
 
Iscritto dal: Dec 2003
Messaggi: 458
Quote:
Originariamente inviato da kingv
se N°connessioni in idle >MAXIDLE le distrugge fino a raggiungere MAXIDLE

se N°connessioni in idle < MINIDLE nel crea di nuove.


nel primo caso vuoi liberare un po' di risorse inutilizzate, nel secondo vuoi consumarle anche quando non sarebbero strettamente necessarie per avere una potenziale connessione in più da renedere disponibile più velocemente.

in idle che significa??? a disposizione???(nel senso che se la deve rilasciare celha a disposizione velocemente)?

su removeAbandoned e removeAbandonedTimeout ho trovato questo:
http://www.onjava.com/onjava/2003/01...ntext.xml.html
vanno quindi settati nel file .xml vero???

grazie e bentornato (nei miei post malefici )
prazision è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2005, 08:54   #5
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da prazision
in idle che significa??? a disposizione???(nel senso che se la deve rilasciare celha a disposizione velocemente)?

grazie e bentornato (nei miei post malefici )

in idle significa non utilizzate e quindi a disposizione.
mettiamo che tu abbia un pool di tre connessioni, di cui due utilizzate. Nel momento in cui ne viene chiesta una terza il tuo gestore la fornisce molto velocemente, ma se ci fosse la necessità di una quarta dovrebbe istanziarla (e questo per una connessione a database di solito vuol dire fare anche l'autenticazione, ci possono volere anche secondi) perdendo quindi tempo. Mettendo un MINIDLE più alto invece ne avresti avute altre da fornire subito e velocemente. Il lato negativo è che ogni connessione occupa risorse, lato client e soprattutto lato server per cui se esageri sprechi risorse e basta, per cui esiste l'altro parametro che fa rilasciare le connessioni libere al pool se sono troppe.

Il settaggio di questi due parametri dipende dall'applicazione naturalmente, nel dubbio lascia quelli di default.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2005, 08:57   #6
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da prazision
su removeAbandoned e removeAbandonedTimeout ho trovato questo:
http://www.onjava.com/onjava/2003/01...ntext.xml.html
vanno quindi settati nel file .xml vero???
sì, la configurazione avviene nell'xml.

Stai attento con quei parametri, il fatto che dopo un certo timeout lui consideri abbandonata la connessione è nella maggior parte dei casi un comportamento scorretto, se a un'applicazione non fai richieste è logico che le connessioni rimangano inutilizzate, solo che se vengono droppate dal pool nel momento in cui cerchi di utilizzarle ti becchi un'eccezione. Diciamo che nel 99% dei casi se scrivi codice corretto, rilasciando le connessioni al pool, non ti servono.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2005, 10:05   #7
prazision
Senior Member
 
L'Avatar di prazision
 
Iscritto dal: Dec 2003
Messaggi: 458
Quote:
Originariamente inviato da kingv
in idle significa non utilizzate e quindi a disposizione.
mettiamo che tu abbia un pool di tre connessioni, di cui due utilizzate. Nel momento in cui ne viene chiesta una terza il tuo gestore la fornisce molto velocemente, ma se ci fosse la necessità di una quarta dovrebbe istanziarla (e questo per una connessione a database di solito vuol dire fare anche l'autenticazione, ci possono volere anche secondi) perdendo quindi tempo. Mettendo un MINIDLE più alto invece ne avresti avute altre da fornire subito e velocemente. Il lato negativo è che ogni connessione occupa risorse, lato client e soprattutto lato server per cui se esageri sprechi risorse e basta, per cui esiste l'altro parametro che fa rilasciare le connessioni libere al pool se sono troppe.

Il settaggio di questi due parametri dipende dall'applicazione naturalmente, nel dubbio lascia quelli di default.
se ho un pool con 3 connessioni non dovrebbe istanziare una quarta ma mettere in coda,no???
cmq la differenza tra connessione idle e connessione non idle è che la prima è a disposizione immediatamente mentre l'altra deve essere istanziaat ecc., giusto???

grazie
prazision è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2005, 10:08   #8
prazision
Senior Member
 
L'Avatar di prazision
 
Iscritto dal: Dec 2003
Messaggi: 458
Quote:
Originariamente inviato da kingv
sì, la configurazione avviene nell'xml.

Stai attento con quei parametri, il fatto che dopo un certo timeout lui consideri abbandonata la connessione è nella maggior parte dei casi un comportamento scorretto, se a un'applicazione non fai richieste è logico che le connessioni rimangano inutilizzate, solo che se vengono droppate dal pool nel momento in cui cerchi di utilizzarle ti becchi un'eccezione. Diciamo che nel 99% dei casi se scrivi codice corretto, rilasciando le connessioni al pool, non ti servono.
si lo so, se chiudi le connessioni le rilascia ma mi stupiva il fatto che (senza chiuderle) dopo unpo' non le rilasciasse

grazie
prazision è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2005, 10:30   #9
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da prazision
se ho un pool con 3 connessioni non dovrebbe istanziare una quarta ma mettere in coda,no???
cmq la differenza tra connessione idle e connessione non idle è che la prima è a disposizione immediatamente mentre l'altra deve essere istanziaat ecc., giusto???

grazie
no non mette in coda, il pool ne crea un'altra, a meno che il numero non sia già uguale al valore del parametro maxActive.
Per idle intendo inutilizzata, ovvero già istanziata ma non usata da nessuno (e quindi disponibile per un eventuale richiedente)
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2005, 10:31   #10
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da prazision
si lo so, se chiudi le connessioni le rilascia ma mi stupiva il fatto che (senza chiuderle) dopo unpo' non le rilasciasse

grazie

se lo facesse rischi che ad esempio una webapplication funzioni tutto il giorno, poi di notte dato che non viene usata da nessun le connessioni vengano resettate e la mattina dopo non funziona nulla
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2005, 10:43   #11
prazision
Senior Member
 
L'Avatar di prazision
 
Iscritto dal: Dec 2003
Messaggi: 458
Quote:
Originariamente inviato da kingv
no non mette in coda, il pool ne crea un'altra, a meno che il numero non sia già uguale al valore del parametro maxActive.
Per idle intendo inutilizzata, ovvero già istanziata ma non usata da nessuno (e quindi disponibile per un eventuale richiedente)

ah ok pensavo che per pool con 3 connessioni intendessi un pool con maxActive=3; avevo capito male
prazision è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2005, 10:46   #12
prazision
Senior Member
 
L'Avatar di prazision
 
Iscritto dal: Dec 2003
Messaggi: 458
Quote:
Originariamente inviato da kingv
se lo facesse rischi che ad esempio una webapplication funzioni tutto il giorno, poi di notte dato che non viene usata da nessun le connessioni vengano resettate e la mattina dopo non funziona nulla

non capisco scusa.
io apro la connessione, faccio una select e dopo non la chiudo.
pensavo che dopo un tot in automatico quella connessione venisse rilasciata.

perchè la mattina non dovrebbe funzionare nulla??

grazie
prazision è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2005, 12:06   #13
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da prazision
non capisco scusa.
io apro la connessione, faccio una select e dopo non la chiudo.
pensavo che dopo un tot in automatico quella connessione venisse rilasciata.
perchè la mattina non dovrebbe funzionare nulla??
grazie

perchè se il pool te la rilascia sotto il naso per inattività tu pensi ancora di averla, quando arriva una nuova richiesta fai una select e ti arriva un errore. E' vero che puoi gestire l'errore e rinnovare la connessione, ma la maniera giusta quando hai un pool è di prendere e rilasciare appena hai utilizzato, tanto le operazioni di ottenimento e rilascio dal pool sono leggere dato che le connessioni al db sono preesistenti.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2005, 12:19   #14
prazision
Senior Member
 
L'Avatar di prazision
 
Iscritto dal: Dec 2003
Messaggi: 458
Quote:
Originariamente inviato da kingv
perchè se il pool te la rilascia sotto il naso per inattività tu pensi ancora di averla, quando arriva una nuova richiesta fai una select e ti arriva un errore. E' vero che puoi gestire l'errore e rinnovare la connessione, ma la maniera giusta quando hai un pool è di prendere e rilasciare appena hai utilizzato, tanto le operazioni di ottenimento e rilascio dal pool sono leggere dato che le connessioni al db sono preesistenti.

dunque quel che dici tu è vero se uno ha una pagina jsp (ad esempio) che fa una select e dopo 5 minuti fa un'altra select (se in quei 5 minuti il pool te la rilascia sotto il naso rrimani fregato)

ma se tu fai una select e basta in una pagina e poi dimetichi di scrivere il codice che chiude la connessione(so che è un esempio del cavolo) la cosa puo' tornare utile, no???

in ogni caso ho provato a configurare cosi il mio x.xml sotto web-inf

<?xml version="1.0" encoding="UTF-8"?>

<DB type="ORACLEDB">
<URL>....</URL>
<PSWD>a</PSWD>
<USER>a</USER>
<POOL>
<DRIVERNAME>DBCPPoolDrv</DRIVERNAME>
<MAXACTIVE>30</MAXACTIVE>
<MAXIDLE>20</MAXIDLE>
<MINIDLE>10</MINIDLE>
<MAXWAIT>-1</MAXWAIT>
<REMOVEABANDONED>TRUE</REMOVEABANDONED>
<REMOVEABANDONEDTIMEOUT>20</REMOVEABANDONEDTIMEOUT>
<WHENEXHAUSTED>1</WHENEXHAUSTED>
<EVICTORDELAY>300000</EVICTORDELAY>
</POOL>
</DB>

poi ho lanciato 40 volte(da script) una pagina che usa le connessioni del pool ma non le chiude.
ecco le prime 30 volte la pagina viene eseguita ma le altre 10 si blocca perchè le connessioni non vengono rilasciate nonostante :<REMOVEABANDONED>TRUE</REMOVEABANDONED>

sai come mai(forse non ho capito nulla dell'uso di REMOVEABANDONED)???

grazie

Ultima modifica di prazision : 02-08-2005 alle 15:57.
prazision è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2005, 14:37   #15
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
ma hai aspettato 20 secondi dopo aver utilizzato le prime 10 connessioni?
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2005, 14:42   #16
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da prazision
ma se tu fai una select e basta in una pagina e poi dimetichi di scrivere il codice che chiude la connessione(so che è un esempio del cavolo) la cosa puo' tornare utile, no???

a mio parere no, è un baco e come tale andrebbe corretto.
al massimo puo' essere utile l'opzione di logging delle connessioni abbandonate che ti permette di identificare i casi in cui non vengono rilasciate, ma puoi farlo anche con un po' di "code inspection" ( <- sta parolona la usava un tizio con cui lavoravo che dato che non sapeva scrivere codice guardava quello degli altri )
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2005, 14:57   #17
prazision
Senior Member
 
L'Avatar di prazision
 
Iscritto dal: Dec 2003
Messaggi: 458
Quote:
Originariamente inviato da kingv
ma hai aspettato 20 secondi dopo aver utilizzato le prime 10 connessioni?
guarda ora ho messo

<MAXACTIVE>3</MAXACTIVE>
<REMOVEABANDONED>TRUE</REMOVEABANDONED>
<REMOVEABANDONEDTIMEOUT>1</REMOVEABANDONEDTIMEOUT>

ho lanciato la pagina(dove la connessione non viene chiusa) da 3 browser , ho aspettato venissero eseguite, ho aspettato 30 secondi e poi ho rilanciato la pagina da unaltro browser che pero' rimane come sospesa, non viene mai eseguita come se non riuscisse a prendere la connessione(almeno penso)

cmq grazie dell'aiuto
prazision è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2005, 15:09   #18
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da prazision
guarda ora ho messo

devi mettere un po' di log per capire esattamente il problema.

c'e' una jsp di esempio sul sito, stai provando con quella?
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2005, 15:11   #19
prazision
Senior Member
 
L'Avatar di prazision
 
Iscritto dal: Dec 2003
Messaggi: 458
è piu'omeno fatta così
<%

String realPath = application.getRealPath("/");
ORACLEDBDAOFactory oracle_daoFactory=(ORACLEDBDAOFactory)DAOFactory.getDAOFactory(realPath);
Connection connOracle1=oracle_daoFactory.getConnection();
String str_sql = "SELECT * FROM A";
String str_sql2 = "SELECT * FROM A2";
Statement stmt=connOracle1.createStatement();
ResultSet rs = stmt.executeQuery(str_sql);
for(int y=0;y<12000;y++){
stmt.executeQuery(str_sql2);

}
rs = stmt.executeQuery(str_sql);
out.println("terminato***");
PARTE COMMENTATA
/*
rs.close();
stmt.close();
connOracle1.close();*/
%>
prazision è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2005, 15:35   #20
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
dovrei fare un piccolo prototipo per verificare il tutto.
Ma tu non stai usando DBCP directtamente, hai creato il datasource in tomcat definendolo come DBCP DataSource?
kingv è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
FRITZ!Repeater 1700 estende la rete super-veloce Wi-Fi 7 FRITZ!Repeater 1700 estende la rete super-veloce...
Fondazione Chips-IT, l'Italia alla riscossa nei chip. Il piano e la partnership EssilorLuxottica Fondazione Chips-IT, l'Italia alla riscossa nei ...
SpaceX ha annunciato che un satellite St...
ASUSTOR presenta i nuovi NAS Lockerstor ...
Rivoluzione fotovoltaico: i pannelli non...
Jared Isaacman è ufficialmente il...
Due smartphone super completi in offerta...
Le schede video Arc dominano la fascia e...
Auto elettriche sotto la lente dell'Anti...
Palo Alto Networks e IBM collaborano per...
Gemini può ora rilevare i deepfak...
Crisi delle RAM? A quanto pare non per N...
Dreame entra nel mercato smartphone: tra...
Cloudflare, nel 2025 un web a due facce:...
Riot prepara 'League Next': il futuro di...
NVIDIA e AMD interessate a Intel Foundry...
Sentite Volkswagen: "addio piccole ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:42.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v