Ciao a tutti.
Mi scuso se il titolo del messaggio dice poco ma non essendo riuscito ancora a capire quale è la causa del mio problema non ho potuto essere più chiaro.
Vi descrivo quello che mi succede:
Utilizzo NetBeans 5.5 come ide e il server della JavaPlatform 9 per fare girare un'applicazioncina che ho fatto per imparare ad usare EJB 3.
Tutto funzion a meraviglia fino a quando non mi capita un eccezione SQL.
Ammettiamo che io mi dimentichi in fase di inserimento dei dati nel db di settare un campo che non può essere null.
Come è giusto che sia mi salta fuori una sql exception.
I fatti strani però sono 2:
1) La sql exception non mi viene data una sola volta ma mi viene data di continuo come se fosse dentro a un ciclo infinito. E' come se una volta fallito l'insert (e fatto il rollback) venisse tentato di nuovo l'insert, che fallisce nuovamente e così via.
Ovviamente la mia insert non è dentro un ciclo.
Altra cosa interessante è che il contatore (automatico) nel mio DB si incrementa ad ogni iterazione di questo ciclo fantasma! Infatti se provo a inserire un nuovo dato a mano nel db il contatore che all'inserimento del dato precedente era arrivato a 10 (supponiamo), dopo questa eccezione sarà circa a 1634567.
Quindi di fatto la mia insert viene tentata all'infinito.
Passiamo ora alla seconda cosa ancora più bizzarra.
2) L'unico modo che ho per terminare questo ciclo di sql exception che mi si ripropone è stoppare il server e così faccio.
Dopodichè vado e sistemo l'errore. Poi faccio ripartire l'applicazione e questa volta funziona MA:
sulla console continua a riproporsi il ciclo di sql exception relativo alla insert fatta in precedenza quando il programma era sbagliato. Infatti nella console mi viene stampata la sql che mi da l'eccezione e i dati inseriti nell'sql sono quelli vecchi.
Insomma mi ritrovo con un'applicazione che funziona (i dati mi vengono inseriti nel db ora che ho corretto l'errore) ma sotto in console continua a girarmi all'infinito la sql exception vecchia.
Insomma è come se si tenesse a mente di ritentare infinite volte le vecchie insert fallite oltre che a fare le insert corrette.
...e il contatore dell'id intanto cresce a dismisura.
Altra chicca importante è che il ciclo infinito di eccezioni, la prima volta mi si scatena quando sto eseguendo l'applicazione ma tutte le volte successive si scatena al deploy dell'applicazione anche se non faccio il run.
Insomma se l'applicazione è deploiata e faccio partire il server, partono anche le eccezioni.
Se l'applicazione non è deployata, appena la deployo partono le eccezioni, MA ANCHE SE L'APPLICAZIONE NON STA ESEGUENDO; E' ALLUCINANTE!!!
Ho provato ad eliminare il server e a ricrearlo in netbeans; a fare un clean e un build. A chiudere e riaprire il progetto a undeployarlo e a rideployarlo ma niente.
Non so più che fare.
Dipende dal server della java platform?
Da netbeans?
Dal database?
Attualmente come DBMS sto usando Mysql ma lo stesso problema che l'ho anche usando il DB della java platform.
Sono davvero alla frutta!
Vi prego aiutatemi!