Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Procedimientos almacenados externos de Amazon RDS para Db2

Modo de enfoque
Procedimientos almacenados externos de Amazon RDS para Db2 - Amazon Relational Database Service

Puede crear rutinas externas y registrarlas en sus bases de datos de Amazon RDS para Db2 como procedimientos almacenados externos. Actualmente, RDS para Db2 solo admite rutinas basadas en Java para procedimientos almacenados externos.

Procedimientos almacenados externos basados en Java

Los procedimientos almacenados externos basados en Java son rutinas Java externas que se registran en la base de datos de RDS para Db2 como procedimientos almacenados externos.

Limitaciones de los procedimientos almacenados externos basados en Java

Antes de desarrollar su rutina externa, tenga en cuenta las siguientes limitaciones y restricciones.

Para crear su rutina externa, asegúrese de utilizar el kit de desarrollo de Java (JDK) proporcionado por Db2. Para obtener más información, consulte Java software support for Db2 database products.

Su programa Java solo puede crear archivos en el directorio /tmp y Amazon RDS no permite habilitar permisos ejecutables ni permisos de definición de ID de usuario (SUID) en estos archivos. Su programa Java tampoco puede usar llamadas al sistema de sockets ni las siguientes llamadas al sistema:

  • _sysctl

  • acct

  • afs_syscall

  • bpf

  • capset

  • chown

  • chroot

  • create_module

  • delete_module

  • fanotify_init

  • fanotify_mark

  • finit_module

  • fsconfig

  • fsopen

  • fspick

  • get_kernel_syms

  • getpmsg

  • init_module

  • mount

  • move_mount

  • nfsservctl

  • open_by_handle_at

  • open_tree

  • pivot_root

  • putpmsg

  • query_module

  • quotactl

  • reboot

  • security

  • setdomainname

  • setfsuid

  • sethostname

  • sysfs

  • tuxcall

  • umount2

  • uselib

  • ustat

  • vhangup

  • vserver

Para conocer las restricciones adicionales en las rutinas externas de Db2, consulte Restrictions on external routines en la documentación de IBM Db2.

Configuración de procedimientos almacenados externos basados en Java

Para configurar un procedimiento almacenado externo, cree un archivo .jar con su rutina externa, instálelo en la base de datos de RDS para Db2 y, a continuación, regístrelo como procedimiento almacenado externo.

Paso 1: habilite los procedimientos almacenados externos

Para habilitar los procedimientos almacenados externos, establezca el parámetro db2_alternate_authz_behaviour en uno de los valores siguientes en un grupo de parámetros personalizado asociado a la instancia de base de datos:

  • EXTERNAL_ROUTINE_DBADM: concede de forma implícita a cualquier usuario, grupo o rol con autoridad DBADM el permiso CREATE_EXTERNAL_ROUTINE.

  • EXTERNAL_ROUTINE_DBAUTH: permite a un usuario con autoridad DBADM conceder el permiso CREATE_EXTERNAL_ROUTINE a cualquier usuario, grupo o rol. En este caso, no se concede implícitamente este permiso a ningún usuario, grupo o rol, ni siquiera a un usuario con autoridad DBADM.

Para obtener más información sobre esta configuración, consulte GRANT (database authorities) statement en la documentación de IBM Db2.

Puede crear y modificar una instancia de base de datos mediante la AWS Management Console, la AWS CLI o la API de Amazon RDS.

Configuración del parámetro db2_alternate_authz_behaviour en un grupo de parámetros personalizado
  1. Si desea utilizar un grupo de parámetros de base de datos personalizado diferente al que está utilizando su instancia de base de datos, cree un nuevo grupo de parámetros de base de datos. Si utiliza el modelo Traiga su propia licencia (BYOL), asegúrese de que el nuevo grupo de parámetros personalizados incluya los ID de IBM. Para obtener información acerca de estos ID, consulte ID de IBM para Traiga su propia licencia para Db2. Para obtener más información acerca de cómo crear un grupo de parámetros de base de datos, consulte Creación de un grupo de parámetros de base de datos en Amazon RDS.

  2. Establezca el valor del parámetro db2_alternate_authz_behaviour en su grupo de parámetros personalizados. Para obtener más información acerca de cómo modificar un grupo de parámetros, consulte Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS.

Consola

Configuración del parámetro db2_alternate_authz_behaviour en un grupo de parámetros personalizado
  1. Si desea utilizar un grupo de parámetros de base de datos personalizado diferente al que está utilizando su instancia de base de datos, cree un nuevo grupo de parámetros de base de datos. Si utiliza el modelo Traiga su propia licencia (BYOL), asegúrese de que el nuevo grupo de parámetros personalizados incluya los ID de IBM. Para obtener información acerca de estos ID, consulte ID de IBM para Traiga su propia licencia para Db2. Para obtener más información acerca de cómo crear un grupo de parámetros de base de datos, consulte Creación de un grupo de parámetros de base de datos en Amazon RDS.

  2. Establezca el valor del parámetro db2_alternate_authz_behaviour en su grupo de parámetros personalizados. Para obtener más información acerca de cómo modificar un grupo de parámetros, consulte Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS.

Configuración del parámetro db2_alternate_authz_behaviour en un grupo de parámetros personalizado
  1. Si desea utilizar un grupo de parámetros de base de datos personalizado diferente al que está utilizando su instancia de base de datos, cree un grupo de parámetros personalizado ejecutando el comando create-db-parameter-group. Si utiliza el modelo Traiga su propia licencia (BYOL), asegúrese de que el nuevo grupo de parámetros personalizados incluya los ID de IBM. Para obtener información acerca de estos ID, consulte ID de IBM para Traiga su propia licencia para Db2.

    Incluya las siguientes opciones obligatorias:

    • --db-parameter-group-name: un nombre para el grupo de parámetros que se está creando.

    • --db-parameter-group-family: la edición y la versión principal del motor de Db2. Los valores válidos son db2-se-11.5 y db2-ae-11.5.

    • --description: la descripción para este grupo de parámetros.

    Para obtener más información acerca de cómo crear un grupo de parámetros de base de datos, consulte Creación de un grupo de parámetros de base de datos en Amazon RDS.

    En el siguiente ejemplo, se muestra cómo crear un grupo de parámetros personalizado denominado MY_EXT_SP_PARAM_GROUP para la familia de grupos de parámetros db2-se-11.5.

    Para Linux, macOS o:Unix

    aws rds create-db-parameter-group \ --region us-east-1 \ --db-parameter-group-name MY_EXT_SP_PARAM_GROUP \ --db-parameter-group-family db2-se-11.5 \ --description "test db2 external routines"

    En:Windows

    aws rds create-db-parameter-group ^ --region us-east-1 ^ --db-parameter-group-name MY_EXT_SP_PARAM_GROUP ^ --db-parameter-group-family db2-se-11.5 ^ --description "test db2 external routines"
  2. Modifique el parámetro db2_alternate_authz_behaviour en su grupo de parámetros personalizados ejecutando el comando modify-db-parameter-group.

    Incluya las siguientes opciones obligatorias:

    • --db-parameter-group-name: el nombre del grupo de parámetros creado.

    • --parameters: una matriz de los nombres de parámetros, valores y métodos de aplicación para la actualización del parámetro.

    Para obtener más información acerca de cómo modificar un grupo de parámetros, consulte Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS.

    En el siguiente ejemplo, se muestra cómo modificar el grupo de parámetros MY_EXT_SP_PARAM_GROUP configurando el valor de db2_alternate_authz_behaviour en EXTERNAL_ROUTINE_DBADM.

    Para Linux, macOS o:Unix

    aws rds modify-db-parameter-group \ --db-parameter-group-name MY_EXT_SP_PARAM_GROUP \ --parameters "ParameterName='db2_alternate_authz_behaviour',ParameterValue='EXTERNAL_ROUTINE_DBADM',ApplyMethod=immediate"

    En:Windows

    aws rds modify-db-parameter-group ^ --db-parameter-group-name MY_EXT_SP_PARAM_GROUP ^ --parameters "ParameterName='db2_alternate_authz_behaviour',ParameterValue='EXTERNAL_ROUTINE_DBADM',ApplyMethod=immediate"

Configuración del parámetro db2_alternate_authz_behaviour en un grupo de parámetros personalizado
  1. Si desea utilizar un grupo de parámetros de base de datos personalizado diferente al que está utilizando su instancia de base de datos, cree un grupo de parámetros personalizado ejecutando el comando create-db-parameter-group. Si utiliza el modelo Traiga su propia licencia (BYOL), asegúrese de que el nuevo grupo de parámetros personalizados incluya los ID de IBM. Para obtener información acerca de estos ID, consulte ID de IBM para Traiga su propia licencia para Db2.

    Incluya las siguientes opciones obligatorias:

    • --db-parameter-group-name: un nombre para el grupo de parámetros que se está creando.

    • --db-parameter-group-family: la edición y la versión principal del motor de Db2. Los valores válidos son db2-se-11.5 y db2-ae-11.5.

    • --description: la descripción para este grupo de parámetros.

    Para obtener más información acerca de cómo crear un grupo de parámetros de base de datos, consulte Creación de un grupo de parámetros de base de datos en Amazon RDS.

    En el siguiente ejemplo, se muestra cómo crear un grupo de parámetros personalizado denominado MY_EXT_SP_PARAM_GROUP para la familia de grupos de parámetros db2-se-11.5.

    Para Linux, macOS o:Unix

    aws rds create-db-parameter-group \ --region us-east-1 \ --db-parameter-group-name MY_EXT_SP_PARAM_GROUP \ --db-parameter-group-family db2-se-11.5 \ --description "test db2 external routines"

    En:Windows

    aws rds create-db-parameter-group ^ --region us-east-1 ^ --db-parameter-group-name MY_EXT_SP_PARAM_GROUP ^ --db-parameter-group-family db2-se-11.5 ^ --description "test db2 external routines"
  2. Modifique el parámetro db2_alternate_authz_behaviour en su grupo de parámetros personalizados ejecutando el comando modify-db-parameter-group.

    Incluya las siguientes opciones obligatorias:

    • --db-parameter-group-name: el nombre del grupo de parámetros creado.

    • --parameters: una matriz de los nombres de parámetros, valores y métodos de aplicación para la actualización del parámetro.

    Para obtener más información acerca de cómo modificar un grupo de parámetros, consulte Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS.

    En el siguiente ejemplo, se muestra cómo modificar el grupo de parámetros MY_EXT_SP_PARAM_GROUP configurando el valor de db2_alternate_authz_behaviour en EXTERNAL_ROUTINE_DBADM.

    Para Linux, macOS o:Unix

    aws rds modify-db-parameter-group \ --db-parameter-group-name MY_EXT_SP_PARAM_GROUP \ --parameters "ParameterName='db2_alternate_authz_behaviour',ParameterValue='EXTERNAL_ROUTINE_DBADM',ApplyMethod=immediate"

    En:Windows

    aws rds modify-db-parameter-group ^ --db-parameter-group-name MY_EXT_SP_PARAM_GROUP ^ --parameters "ParameterName='db2_alternate_authz_behaviour',ParameterValue='EXTERNAL_ROUTINE_DBADM',ApplyMethod=immediate"
Configuración del parámetro db2_alternate_authz_behaviour en un grupo de parámetros personalizado
  1. Si desea utilizar un grupo de parámetros de base de datos personalizado diferente del que utiliza su instancia de base de datos, cree un nuevo grupo de parámetros de base de datos mediante la operación CreateDBParameterGroup de la API de Amazon RDS. Si utiliza el modelo Traiga su propia licencia (BYOL), asegúrese de que el nuevo grupo de parámetros personalizados incluya los ID de IBM Db2. Para obtener información acerca de estos ID, consulte ID de IBM para Traiga su propia licencia para Db2.

    Incluya los siguientes parámetros obligatorios:

    • DBParameterGroupName

    • DBParameterGroupFamily

    • Description

    Para obtener más información acerca de cómo crear un grupo de parámetros de base de datos, consulte Creación de un grupo de parámetros de base de datos en Amazon RDS.

  2. Modifique el parámetro db2_alternate_authz_behaviour del grupo de parámetros personalizado que creó mediante la operación ModifyDBParameterGroup de la API de RDS.

    Incluya los siguientes parámetros obligatorios:

    • DBParameterGroupName

    • Parameters

    Para obtener más información acerca de cómo modificar un grupo de parámetros, consulte Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS.

Configuración del parámetro db2_alternate_authz_behaviour en un grupo de parámetros personalizado
  1. Si desea utilizar un grupo de parámetros de base de datos personalizado diferente del que utiliza su instancia de base de datos, cree un nuevo grupo de parámetros de base de datos mediante la operación CreateDBParameterGroup de la API de Amazon RDS. Si utiliza el modelo Traiga su propia licencia (BYOL), asegúrese de que el nuevo grupo de parámetros personalizados incluya los ID de IBM Db2. Para obtener información acerca de estos ID, consulte ID de IBM para Traiga su propia licencia para Db2.

    Incluya los siguientes parámetros obligatorios:

    • DBParameterGroupName

    • DBParameterGroupFamily

    • Description

    Para obtener más información acerca de cómo crear un grupo de parámetros de base de datos, consulte Creación de un grupo de parámetros de base de datos en Amazon RDS.

  2. Modifique el parámetro db2_alternate_authz_behaviour del grupo de parámetros personalizado que creó mediante la operación ModifyDBParameterGroup de la API de RDS.

    Incluya los siguientes parámetros obligatorios:

    • DBParameterGroupName

    • Parameters

    Para obtener más información acerca de cómo modificar un grupo de parámetros, consulte Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS.

Paso 2: instale el archivo .jar con la rutina externa

Tras crear la rutina de Java, cree el archivo .jar y, a continuación, ejecute db2 "call sqlj.install_jar('file:file_path',jar_ID)" para instalarlo en la base de datos de RDS para Db2.

En el siguiente ejemplo, se muestra cómo crear una rutina de Java e instalarla en una base de datos de RDS para Db2. En el ejemplo, se incluye un código de ejemplo para una rutina sencilla que puede utilizar para probar el proceso. En este ejemplo, se da por supuesto lo siguiente:

  • El código Java se compila en un servidor en el que está instalado Db2. Se trata de una práctica recomendada, ya que si no se compila con el JDK proporcionado por IBM, se pueden producir errores sin ninguna explicación.

  • El servidor tiene la base de datos de RDS para Db2 catalogada localmente.

Si desea probar el proceso con el siguiente código de ejemplo, cópielo y guárdelo en un archivo denominado MYJAVASP.java.

import java.sql.*; public class MYJAVASP { public static void my_JAVASP (String inparam) throws SQLException, Exception { try { // Obtain the calling context's connection details. Connection myConn = DriverManager.getConnection("jdbc:default:connection"); String myQuery = "INSERT INTO TEST.TEST_TABLE VALUES (?, CURRENT DATE)"; PreparedStatement myStmt = myConn.prepareStatement(myQuery); myStmt.setString(1, inparam); myStmt.executeUpdate(); } catch (SQLException sql_ex) { throw sql_ex; } catch (Exception ex) { throw ex; } }

El siguiente comando compila la rutina de Java.

~/sqllib/java/jdk64/bin/javac MYJAVASP.java

El siguiente comando crea el archivo .jar.

~/sqllib/java/jdk64/bin/jar cvf MYJAVASP.jar MYJAVASP.class

Los siguientes comandos se conectan a la base de datos denominada MY_DB2_DATABASE e instalan el archivo .jar.

db2 "connect to MY_DB2_DATABASE user master_username using master_password" db2 "call sqlj.install_jar('file:/tmp/MYJAVASP.jar','MYJAVASP')" db2 "call sqlj.refresh_classes()"

Paso 3: registre el procedimiento almacenado externo

Tras instalar el archivo .jar en la base de datos de RDS para Db2, regístrelo como procedimiento almacenado ejecutando el comando db2 CREATE PROCEDURE o db2 REPLACE PROCEDURE.

El siguiente ejemplo muestra cómo conectarse a la base de datos y registrar la rutina de Java creada en el paso anterior como un procedimiento almacenado.

db2 "connect to MY_DB2_DATABASE user master_username using master_password" create procedure TESTSP.MYJAVASP (in input char(6)) specific myjavasp dynamic result sets 0 deterministic language java parameter style java no dbinfo fenced threadsafe modifies sql data program type sub external name 'MYJAVASP!my_JAVASP';

Paso 4: valide el procedimiento almacenado externo

Utilice los siguientes pasos para probar el procedimiento almacenado externo de ejemplo que se registró en el paso anterior.

Validación del procedimiento almacenado externo
  1. Cree una tabla como TEST.TEST_TABLE en el siguiente ejemplo.

    db2 "create table TEST.TEST_TABLE(C1 char(6), C2 date)"
  2. Llame al nuevo procedimiento almacenado externo. La llamada devuelve un estado de 0.

    db2 "call TESTSP.MYJAVASP('test')" Return Status = 0
  3. Consulte la tabla que creó en el paso 1 para comprobar los resultados de la llamada al procedimiento almacenado.

    db2 "SELECT * from TEST.TEST_TABLE"

    La consulta produce una salida similar a la del ejemplo siguiente:

    C1 C2 ------ ---------- test 02/05/2024

En esta página

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.