PDA

Ver la Versión Completa : BBDD externa


dmartinezm
16/05/06, 12:28:53
Hola a todo el foro.

Vuelvo a solicitar la ayuda de los cracks!

Tengo un programa SAP que, llegado un punto, realiza una conexión con una BBDD Oracle externa. El código utilizado para realiar la conexión (y la correspondiente consulta) es el que sigue:

*******************************************************
connx = 'C1'.
**** PRIMERA CONEXIÓN
EXEC sql.
connect to :con_name as :connx
ENDEXEC.


IF sy-subrc NE 0.
connx = 'C2'.
***** SEGUNDA CONEXIÓN
EXEC sql.
connect to :con_name as :connx
ENDEXEC.
IF sy-subrc NE 0.
err = 4.
* No hay conexión con la BBDD de usuarios
MESSAGE i003(zcw3).
ENDIF.
ENDIF.

IF err EQ 0.
EXEC sql.
set connection :connx
ENDEXEC.
IF sy-subrc EQ 0.
IF sy-sysid = 'AC2'.
EXEC sql.
SELECT PASSWORD
INTO :siebel_password
FROM serveis.ACACERTIF_CONTRACTISTES
WHERE id_SAP = :p_prov
ENDEXEC.
ELSE.
EXEC sql.
SELECT PASSWORD
INTO :siebel_password
FROM accduca.ACACERTIF_CONTRACTISTES
WHERE id_SAP = :p_prov
ENDEXEC.
ENDIF.
IF sy-subrc NE 0.
p_return = 'X'.
ENDIF.
EXEC sql.
* DESCONECTAMOS DE C1 O BIEN DE C2
disconnect :connx
ENDEXEC.
ENDIF.
ENDIF.
*******************************************************

Este código lo he heredado, pero aparentemente lo veo correcto, realiza tan sólo una desconexión porque si la primera conexión se ha realizado correctamente, la segunda no se llega a probar, y si la primera falla se realiza la segunda, entonces no hay que desconectar de la primera, que no se ha establecido (que lío, no?).

El problema es el que sigue: los usuarios que utilizan este programa, de vez en cuando, se encuentran con un maravilloso DUMP que muestra un error de Oracle: SQL ORA-3113. Este mensaje puede ser debido a una desconexión inesperada, a un timeout... cosas por el estilo.

Monitoreando con los responsables de la BBDD externa hemos visto que de vez en cuando hay una conexión que se queda colgada, sin realizar ni siquiera la consulta, y que no desconecta.

Para más confusión, si yo ejecuto el programa no tengo ningún problema, pero los usuarios si se encuentran con este "fregao".

Qué puede ocurrir? Puede ser una cuestión de permisos SAP? Para la bbdd externa, el usuario de conexión (y por tanto los privilegios) són los mismos ejecute quien ejecute el report (sea yo o sean los usuarios), y al salir la petición del servidor de aplicaciones, las reglas de firewalls y accessos también son los mismos indepenientemente de quien ejecute el programa.

De todos modos, el tema de los permisos SAP me extañaría, puesto que SAP es muy rígido con estos temas y, o bien tienes permisos, o bien no los tienes y no te deja hacer nada, pero eso de "ahora si, ahora no" me tiene muy muy escamado.

Necesito ayuda!!!

Gracias por adelantado a todos, cualquier pista será bienvenida!.

Saludos,
Dani