Prosedur tersimpan eksternal untuk Amazon RDS untuk Db2 - Layanan Basis Data Relasional Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Prosedur tersimpan eksternal untuk Amazon RDS untuk Db2

Anda dapat membuat rutinitas eksternal dan mendaftarkannya dengan database Amazon RDS untuk Db2 Anda sebagai prosedur tersimpan eksternal. Saat ini, RDS untuk Db2 hanya mendukung rutinitas berbasis Java untuk prosedur tersimpan eksternal.

Prosedur tersimpan eksternal berbasis Java

Prosedur tersimpan eksternal berbasis Java adalah rutinitas Java eksternal yang Anda daftarkan dengan RDS Anda untuk database Db2 sebagai prosedur tersimpan eksternal.

Batasan untuk prosedur tersimpan eksternal berbasis Java

Sebelum Anda mengembangkan rutinitas eksternal Anda, pertimbangkan batasan dan batasan berikut.

Untuk membuat rutinitas eksternal Anda, pastikan untuk menggunakan Java Development Kit (JDK) yang disediakan oleh Db2. Untuk informasi selengkapnya, lihat dukungan perangkat lunak Java untuk produk database Db2.

Program Java Anda dapat membuat file hanya di /tmp direktori, dan Amazon RDS tidak mendukung pengaktifan izin executable atau Set User ID (SUID) pada file-file ini. Program Java Anda juga tidak dapat menggunakan panggilan sistem soket atau panggilan sistem berikut:

  • _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

Untuk pembatasan tambahan pada rutinitas eksternal untuk Db2, lihat Pembatasan rutinitas eksternal dalam dokumentasi. IBM Db2

Mengkonfigurasi prosedur tersimpan eksternal berbasis Java

Untuk mengkonfigurasi prosedur tersimpan eksternal, buat file.jar dengan rutinitas eksternal Anda, instal pada database RDS untuk Db2 Anda, dan kemudian daftarkan sebagai prosedur tersimpan eksternal.

Langkah 1: Aktifkan prosedur tersimpan eksternal

Untuk mengaktifkan prosedur tersimpan eksternal, dalam grup parameter kustom yang terkait dengan instans DB Anda, setel parameter db2_alternate_authz_behaviour ke salah satu nilai berikut:

  • EXTERNAL_ROUTINE_DBADM— Secara implisit memberikan izin kepada pengguna, grup, atau peran apa pun dengan DBADM otoritas. CREATE_EXTERNAL_ROUTINE

  • EXTERNAL_ROUTINE_DBAUTH— Memungkinkan pengguna dengan DBADM wewenang untuk memberikan CREATE_EXTERNAL_ROUTINE izin kepada pengguna, grup, atau peran apa pun. Dalam hal ini, tidak ada pengguna, grup, atau peran yang secara implisit diberikan izin ini, bahkan pengguna dengan DBADM otoritas.

Untuk informasi selengkapnya tentang pengaturan ini, lihat pernyataan GRANT (otoritas database) dalam IBM Db2 dokumentasi.

Anda dapat membuat dan mengubah grup parameter kustom dengan menggunakan AWS Management Console, AWS CLI, atau Amazon RDS API.

Untuk mengkonfigurasi parameter db2_alternate_authz_behavior dalam grup parameter kustom
  1. Jika Anda ingin menggunakan grup parameter DB kustom yang berbeda dari yang digunakan instans DB Anda, buat grup parameter DB baru. Jika Anda menggunakan model Bring Your Own License (BYOL), pastikan grup parameter kustom baru menyertakan IBM ID. Untuk informasi tentang ID ini, lihatIBM IDsuntuk Bawa Lisensi Anda Sendiri untuk Db2. Lihat informasi yang lebih lengkap tentang cara membuat grup parameter basis data di Membuat grup parameter DB di Amazon RDS Amazon.

  2. Tetapkan nilai untuk db2_alternate_authz_behaviour parameter dalam grup parameter kustom Anda. Lihat informasi yang lebih lengkap tentang mengubah grup parameter di Memodifikasi parameter dalam grup parameter DB di Amazon RDS Aurora.

Untuk mengkonfigurasi parameter db2_alternate_authz_behavior dalam grup parameter kustom
  1. Jika Anda ingin menggunakan grup parameter DB kustom yang berbeda dari yang digunakan instans DB Anda, buat grup parameter khusus dengan menjalankan create-db-parameter-groupperintah. Jika Anda menggunakan model Bring Your Own License (BYOL), pastikan grup parameter kustom baru menyertakan IBM ID. Untuk informasi tentang ID ini, lihatIBM IDsuntuk Bawa Lisensi Anda Sendiri untuk Db2.

    Sertakan opsi-opsi yang diperlukan berikut:

    • --db-parameter-group-name – Nama untuk grup parameter yang sedang Anda buat.

    • --db-parameter-group-family – Edisi mesin dan versi utama Db2. Nilai yang valid adalah db2-se-11.5 dan db2-ae-11.5.

    • --description – Deskripsi untuk grup parameter ini.

    Lihat informasi yang lebih lengkap tentang cara membuat grup parameter basis data di Membuat grup parameter DB di Amazon RDS Amazon.

    Contoh berikut menunjukkan cara membuat grup parameter kustom bernama MY_EXT_SP_PARAM_GROUP untuk keluarga grup parameterdb2-se-11.5.

    Untuk Linux, macOS, atau 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"

    Untuk 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. Ubah db2_alternate_authz_behaviour parameter dalam grup parameter kustom Anda dengan menjalankan modify-db-parameter-groupperintah.

    Sertakan opsi-opsi yang diperlukan berikut:

    • --db-parameter-group-name – Nama grup parameter yang Anda buat.

    • --parameters – Array nama parameter, nilai parameter, dan metode aplikasi untuk pembaruan parameter.

    Lihat informasi yang lebih lengkap tentang mengubah grup parameter di Memodifikasi parameter dalam grup parameter DB di Amazon RDS Aurora.

    Contoh berikut menunjukkan cara memodifikasi grup parameter MY_EXT_SP_PARAM_GROUP dengan menetapkan nilai db2_alternate_authz_behaviour keEXTERNAL_ROUTINE_DBADM.

    Untuk Linux, macOS, atau 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"

    Untuk 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"
Untuk mengkonfigurasi parameter db2_alternate_authz_behavior dalam grup parameter kustom
  1. Jika Anda ingin menggunakan grup parameter DB kustom yang berbeda dari yang digunakan instans DB Anda, buat grup parameter DB baru dengan menggunakan CreateDBParameterGroupoperasi Amazon RDS API. Jika Anda menggunakan model Bring Your Own License (BYOL), pastikan grup parameter kustom baru menyertakan IBM Db2 ID. Untuk informasi tentang ID ini, lihatIBM IDsuntuk Bawa Lisensi Anda Sendiri untuk Db2.

    Sertakan parameter-parameter yang diperlukan berikut:

    • DBParameterGroupName

    • DBParameterGroupFamily

    • Description

    Lihat informasi yang lebih lengkap tentang cara membuat grup parameter basis data di Membuat grup parameter DB di Amazon RDS Amazon.

  2. Ubah db2_alternate_authz_behaviour parameter dalam grup parameter kustom yang Anda buat dengan menggunakan ModifyDBParameterGroupoperasi RDS API.

    Sertakan parameter-parameter yang diperlukan berikut:

    • DBParameterGroupName

    • Parameters

    Lihat informasi yang lebih lengkap tentang mengubah grup parameter di Memodifikasi parameter dalam grup parameter DB di Amazon RDS Aurora.

Langkah 2: Instal file.jar dengan rutinitas eksternal Anda

Setelah Anda membuat rutinitas Java Anda, buat file.jar dan kemudian jalankan db2 "call sqlj.install_jar('file:file_path',jar_ID)" untuk menginstalnya pada database RDS untuk Db2 Anda.

Contoh berikut menunjukkan cara membuat rutin Java dan menginstalnya pada database RDS untuk Db2. Contoh termasuk kode sampel untuk rutinitas sederhana yang dapat Anda gunakan untuk menguji proses. Contoh ini membuat asumsi berikut:

  • Kode Java dikompilasi pada server tempat Db2 diinstal. Ini adalah praktik terbaik karena tidak mengkompilasi dengan JDK yang disediakan IBM dapat mengakibatkan kesalahan yang tidak dapat dijelaskan.

  • Server memiliki database RDS untuk Db2 yang dikatalogkan secara lokal.

Jika Anda ingin mencoba proses dengan kode contoh berikut, salin dan kemudian simpan ke file bernamaMYJAVASP.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; } }

Perintah berikut mengkompilasi rutin Java.

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

Perintah berikut membuat file.jar.

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

Perintah berikut terhubung ke database bernama MY_DB2_DATABASE dan menginstal file.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()"

Langkah 3: Daftarkan prosedur tersimpan eksternal

Setelah Anda menginstal file.jar pada RDS Anda untuk database Db2, daftarkan sebagai prosedur tersimpan dengan menjalankan perintah or. db2 CREATE PROCEDURE db2 REPLACE PROCEDURE

Contoh berikut menunjukkan cara menghubungkan ke database dan mendaftarkan rutinitas Java yang dibuat pada langkah sebelumnya sebagai prosedur tersimpan.

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';

Langkah 4: Validasi prosedur tersimpan eksternal

Gunakan langkah-langkah berikut untuk menguji sampel prosedur tersimpan eksternal yang terdaftar pada langkah sebelumnya.

Untuk memvalidasi prosedur tersimpan eksternal
  1. Buat tabel seperti TEST.TEST_TABLE pada contoh berikut.

    db2 "create table TEST.TEST_TABLE(C1 char(6), C2 date)"
  2. Panggil prosedur tersimpan eksternal yang baru. Panggilan mengembalikan status0.

    db2 "call TESTSP.MYJAVASP('test')" Return Status = 0
  3. Kueri tabel yang Anda buat di langkah 1 untuk memverifikasi hasil panggilan prosedur yang disimpan.

    db2 "SELECT * from TEST.TEST_TABLE"

    Query menghasilkan output yang mirip dengan contoh berikut:

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