Foros > Java: Aunque parezca increible, en java jcbc: algunos DML(insert, update) indican OK, y no es verdad

  1. amendozr2

    Mensajes [1] - Enviado el Martes 31 de Julio de 2007 a las 22:08hs

    Hola a .


    Estoy teniendo problemas con algunos queries (INSERT, UPDATE). El servidor de aplicaciones es como sigue: java 1.5.0_06, oc4j 10.1.3 (con oracle jdbc 10.2.0.3) y Linux SuSE 9. La Bd es Oracle 9.2.0.7.0 y est? en un servidor aparte (ibm). Todo inici? cuando el sistema creci? en un 80%, lo cual implic? la incorporaci?n de muchas nuevas clases?incluyendo servlets. El sistema falla incluso donde antes no suced?a, es decir, en c?digo que no fue modificado. Sucede que algunos UPDATE e insert, se validan como sigue:


    String qry = "update?tabla
    " + ...;


    try {
    ?? enunciado = cnn.createStatement();
    ?? int resultado = enunciado.executeUpdate(qry);

    ?? if (resultado != 1) {
    ??????? return ERROR;
    ?? }

    ? return OK;
    } catch (SQLException sqle) {
    System.err.println( "Err, No se grab? informaci?n"+ sqle);
    return ERROR;
    } finally {
    ?? try {
    ?????? if (enunciado != null) {
    ????????? enunciado.close();
    ?????? }
    ?? } catch (SQLException sqle) {
    ????? System.err.println("Erroral cerrar conexion en graba alumno: "+ sqle);
    ?? }
    }

    -----


    Este dml es parte de una transacci?n, por eso no aparece el commit. Este querie (modificado para simplificarlo) devuelve OK, a?n cuando el cambio no se ve reflejado en la BD -por supuesto despu?s de commit; (no siempre sucede este problema). El sistema actualmente se usa en dos modos, uno, de la forma tradicional, es decir, no se usa la funcionalidad de?las clases nuevas (pero ah? est?n en el Serv de apl), y otra, se usan las clases nuevas - m?s la forma tradicional... los usuarios que usan s?lo la parte tradicional, no tienen problemas, los que usan la nueva -adem?s-, tienen el problema descrito. El DML aqu? presentado, nunca falla por lo tanto para los usuarios tradicionales, y el mismo c?digo a veces falla para los que usan tambi?n lo reci?n incorporado al sistema.


    C?mo es natural, ya hemos metido programaci?n defensiva y hecho pruebas de carga y de toda naturaleza, pero no logramos reproducir el error, en el ambiente de producci?n es donde surge dicho error.


    ?Alguien tiene idea de por d?nde buscarle?


    Gracias.


    Saludos.


responder

Para poder responder a este tema tenes que ingresar. Si no tenes una cuenta podes registrarse gratis..

Anuncie Aqui