JPA transaction unexpectedly rolled back
Bonjour,
J'ai une fonction de mon appli qui appelle une procédure stockée.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Connection dbConnection = null;
dbConnection = ds.getConnection();
Statement sql = dbConnection.createStatement();
StringBuffer sqlstr = new StringBuffer("call MA_PROC(xxxxxx)");
try {
sql.executeUpdate(sqlstr.toString());
dbConnection.commit();
} catch (Exception e) {
throw new Exception(e.getMessage() + "|" + sqlstr.toString());
}finally{
if (dbConnection != null) {
dbConnection.close();
}
} |
Dans certains cas, si je lance cela tel quel, j'ai :
Citation:
JPA transaction unexpectedly rolled back (maybe marked rollback-only after a failed operation); nested exception is javax.persistence.RollbackException: Error while commiting the transaction
Alors que si j'ajoute un petit sleep avant dbConnection.close(), ça passe! 8O 8O
Note :
sans sleep : 100% d'échec
avec sleep(100) 50% de réussite
avec sleep(1000) 100% de réussite
Alors dans la console ça me parle d'une Primary Key violated mais ça n'a pas de sens : même causes, mêmes effets alors si les paramètres passés à la proc restent les mêmes, aucune raison d'avoir des PK violated que dans le cas où on n'a pas mis la rustine "sleep"...
Pour info, j'ai trouvé ce post...mais ça m'aide pas trop :
http://www.developpez.net/forums/d90...ing-hibernate/