PDA

Visualizza la versione completa : Netbeans ed Entity Manager


salcam
14-11-2008, 12:15
Ciao a tutti, è da un pò che nn ci si vede (impegni vari). Cmq bando alle ciancie, ho il seguente problema.
Premetto che utilizzo Netbeans 6.1 e sto facendo un applicazione che si connette semplicemente ad un database javadb (ex derby). Vorrei sapere il perchè la connessione iniziale tramite entity manager è lenta, ma poi una volta avviata va veloce. Non c'è qualche modo per velocizzare il tutto?

Grazie in anticipo

salcam
14-11-2008, 18:36
Ma nessuno usa l'entitymanager di netbeans?

@DI3GO@
15-11-2008, 02:56
Sinceramente no....ma sono affascinato ed interessato in merito....
Se non risulta OT spiega brevemente di che si tratta.....

:mame:

salcam
15-11-2008, 09:56
L'entity manager permette di gestire la connessione al database e le varie comunicazioni con query attraverso delle transazioni. Niente di strano in tutto ciò. Il problema, se così si può chiamare, è l'avvio della connessione al db che è lentissima!!! Qualche consiglio?

@DI3GO@
15-11-2008, 13:18
Ho capito...ho letto la documentazioni di JavaEE a riguardo....in poche parole creano una Connection SINGLETON per i processi multithread, cose cha in JavaSE devi farti manualmente....
Beh, se ho capito male è ovvio che ci metta tanto....infatti:

1) Le operazioni di Connessione al db sono note per esser molto costose in quanto tempo e risorse occupate.
2) Le Operazioni di sincronizzazione ( SINGLETON ) molto meno, ma se aggiunte ad operazioni di connessioni danno il loro contributo....

Non mi sono mai cimentato in JavaEE in quanto programma anche per il web in JavaSE (imposizioni aziendali....) però ultimamente mi ci stavo avvicinando per fattacci miei.... ma lo trovo una miglioria per alcuni punti ( questo per esempio )....

peppem
15-11-2008, 13:26
Come inizializzi l'entity manager?
Con la dependency injection?
Incolla il codice di inizializzazione dell'entitymanager.

Inoltre come misuri la lentezza dell'inizializzazione?

Stai sviluppando un progetto java ee? ejb? oppure lo stai usando in java se?

salcam
15-11-2008, 14:02
Per quanto concerne il tipo di progetto sto usando java se.
La lentezza la misura sul fatto che la prima volta che l'entity manager si connette al db ci sta molto tempo.
Io per ogni classe istanzio una entity manager (lo fa in auto netbeans), e mi accorgo che a seconda di quale classe accedo per primo nel programma è più lenta la connessione. Faccio un esempio: Clienti-Fornitori

Sia per la classe ClientiFrame che per la FornitoriFrame io ho una istanza dell'entitymanager. Se quando avvio il programma accedo per la prima volta indiffirentemente all'una o all'altra classe vedo che ci sta un 10 secondi. Da lì in poi in 1 secondo apre la qualsiasi. C'è qualche modo per velocizzare la connessione al db? Grazie dell'aiuto

@DI3GO@
15-11-2008, 14:22
Scusa se sono monotono, ma penso che si tratti di quello che ho detto prima.
GEstisce in automatico una connessione univoca al tuo db, quindi alla prima istanza ( indipendentemente da chi la chiama ) avrà il tempo di connessione, mentre alle successive chiamate accadrà una cosa simile:



if( !connessione_istanziata ){
istanzia_connessione;

return connessione_istanziata;
}


Spero di essermi fatto capire

Mentre per velocizzare la connessione al db....Non credo....Insomma...sono i suoi tempi....Personalmente credo di no.

Loading