AS/400 - Stored Procedure en Java dejo de funcionar en AS/400 al migrar de V5R4 a V6R1

   
Vista:

Stored Procedure en Java dejo de funcionar en AS/400 al migrar de V5R4 a V6R1

Publicado por Ruben Diaz (1 intervención) el 22/03/2011 16:01:13
La definicion que funcionaba en V5R4 es:

CREATE PROCEDURE MYSCHEMA.LOAD_ETL ( ) LANGUAGE JAVA SPECIFIC MYSCHEMA.LOAD_ETL NOT DETERMINISTIC MODIFIES SQL DATA CALLED ON NULL INPUT EXTERNAL NAME 'ETL!loadETL' PARAMETER STYLE JAVA ;

Con "System i Navigator" le di permisos de lectura y ejecucion a todos. El archivo Java .class se copio y compilo dentro de la AS/400 en /QIBM/UserData/OS400/SQLLib/Function/ETL.CLASS

Al tratar de ejecutar el stored procedure con "call MYSCHEMA.LOAD_ETL ()", obtengo el error:

[SQL4303] Java stored procedure or user-defined function name, specific name spec-name could not be identified from external name string.Explanation: The CREATE PROCEDURE or CREATE FUNCTION statement that declared this stored procedure or user-defined function had a badly formatted EXTERNAL NAME clause. The external name must be formatted as follows: "package.subpackage.class!method".

Entonces cambie la clase para que este dentro de un paquete a "com.mycompany.ETL" y la copie y recompile dentro de la AS/400 en /QIBM/UserData/OS400/SQLLib/Function/com/mycompany/ETL.class

Y recree el stored procedure:

CREATE PROCEDURE MYSCHEMA.LOAD_ETL ( ) LANGUAGE JAVA SPECIFIC MYSCHEMA.LOAD_ETL NOT DETERMINISTIC MODIFIES SQL DATA CALLED ON NULL INPUT EXTERNAL NAME 'com.mycompany.ETL!loadETL' PARAMETER STYLE JAVA ;

Sin embargo siguio sin funcionar.

Ahora el error es:

SQL0551. Authorization-ID does not have the privilege to perform operation operation on object name.

Nuevamente con "System i Navigator" di permisos de lectura y ejecucion a la clase Java en /QIBM/UserData/OS400/SQLLib/Function/com/mycompany/ETL.CLASS.

Obtuve el mensaje de error: CPFA0A9 (Object not found) : /QIBM/UserData/OS400/SQLLib/Function/com.mycompany.ETL.class

Lo siguiente que hice es empaquetar la clase, dentro del espacion de nombre com.mycompany y lo copie a:

/QIBM/UserData/OS400/SQLLib/Function/etl.jar

Recree el procedimiento almacenado una vez mas pero siguio sin funcionar

Entonces recree el procedimiento almacenado de la manera siguiente:

CREATE PROCEDURE MYSCHEMA.LOAD_ETL ( ) LANGUAGE JAVA SPECIFIC MYSCHEMA.LOAD_ETL NOT DETERMINISTIC MODIFIES SQL DATA CALLED ON NULL INPUT EXTERNAL NAME 'com/mycompany/ETL!loadETL' PARAMETER STYLE JAVA ;

Una vez mas no funciono.

Desde ya muchas gracias por cualquier ayuda.

Saludos,

Ruben D.

PD: Version de la consulta en "spanglish": http://stackoverflow.com/questions/5382446/java-stored-procedure-doesnt-work-on-db2-400-v6r1-it-used-to-work-on-v5r4
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Stored Procedure en Java dejo de funcionar en AS/400 al migrar de V5R4 a V6R1

Publicado por Cristian (1 intervención) el 03/04/2014 00:03:32
Que tal ruben una pregunta si lograaste resolver este problema, saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar