24/06/2011, 02:34
|
| | | Fecha de Ingreso: junio-2011 Ubicación: España
Mensajes: 24
Antigüedad: 13 años, 6 meses Puntos: 1 | |
Respuesta: diferencias entre una llamada a un procedure oracle desde java y desde la Hola
No era cuestión de los índices. Al final he resuelto el problema, aunque no me ha gustado del todo.
El problema era que la conexión la tenía como ReadOnly, para hacer una conexión mas eficiente y como llamaba a un Stored Procedure que se encargaba de hacer las inserciones, en teoría no habría problemas, puesto que el control lo tenía el Stored Procedure y no la conexión hecha desde java.
La cuestión es que por alguna razón que desconozco, Oracle no otorgaba los permisos de escritura en el primer ciclo del cursor, y daba un error de permisos de escritura. Sin embargo, al siguiente ciclo, tomaba los permisos del Stored Procedure en vez de el cliente que lo ha llamado, que en este caso era java. Al parecer hay varios hilos de ejecución en los cuales está la lectura de permisos y la de la ejecución del procedimiento y me parece que no le daba tiempo al hilo de los permisos a otorgarlos antes de que llegara a la primera inserción, pero a la segunda ya los tenía.
Lo he solucionado dejando la transacción sin el setReadOnly, que a fin de cuentas el volumen de datos no sera demasiado grande y se ejecutará por las noches. |