MySQL Forums
Forum List  »  Italian

Record fantasma
Posted by: a b
Date: May 31, 2007 06:59AM

Salve a tutti,
ho effettuato il porting di un applicazione in VC++ 6.0 da DB2 a MySQL 5.0.37.
L'applicazione è così strutturata:
Client (PC-WinXP)
Applicazione VC++ 6.0 - VC++ 6.0 COM object obj1
Server (PC-Win 2000)
Servizio (DCOM) - COM object obj2 - MySQL
L'utente dell'applicazione effettua una scelta che comprta l'iserimento di dati nel DB. Dall'applicativo, attraverso obj1, viene chiamato un metodo esportato dal servizio sul server. Questo metodo inizia una transazione e chiama un metodo di obj2 per eseguire delle operazioni sul DB (select/insert/update). Se il metodo di obj2 non ritorna errori viene effettuata la commit. Dal servizio si ritorna a obj1, e se la chiamata precedente è OK, viene chiamato un secondo metodo del servizio che inizia un'altra transazione e chiama un ulteriore metodo di obj2. A questo punto ottengo un errore strano in quanto cerco di fare una UPDATE, su un record inserito nella prima chiamata al servizio, che fallisce per "not found", però il record c'è in quanto con una COUNT fatta prima della update ottengo il numero corretto di record e in + se faccio una SELECT dal query browser il record è in bella mostra. L'errore non è sistematico ma si verifica nel 50% dei casi.
Facendo dei test ho notato che se inserisco una pausa di 1 secondo tra le due chiamate in obj1, oppure se effettuo tutte le operazioni verso il DB nella prima chiamata al servizio (senza ritornare 2 volte a obj1), tutto sembra funzionare correttamente. Anche se metto tutto (client+server) su un PC WinXP ottengo l'errore molto molto raramente.
Qualcuno mi può aiutare a trovare una soluzione?
Grazie a tutti

Options: ReplyQuote


Subject
Views
Written By
Posted
Record fantasma
4615
a b
May 31, 2007 06:59AM
2718
a b
May 31, 2007 09:53AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.