Oracle HTTP Server: Dalam Database Oracle


Aku pernah mendengar bahwa Oracle Database 10g dilengkapi dengan sebuah HTTP Server berbasis Apache. Tapi setelah aku otak-atik paket instalasi default, aku tidak menemukannya. Akhirnya, kemarin setelah mencari-cari jawaban, aku menemukan apa yang disebut Oracle Database Companion. Paket yang dikemas dalam CD terpisah dari Oracle Database tersebut terdiri atas dua jenis instalasi tambahan: Oracle Database 10g Products dan Oracle Database 10g Companion Products. Oracle Database 10g Products terdiri atas: Oracle Database Examples, JPublisher, Legato Single Server Version, Natively Compiled Java Libraries, dan Oracle Text Supplied Knowledge Bases. Oracle Database 10g Companion Products terdiri atas: Oracle HTTP Server dan Oracle HTML DB (kini bernama Oracle Application Express). Aku pun segera melakukan instalasi Oracle HTTP Server di Oracle Home yang baru, sesuai permintaan dari installation guide.

Saat mencoba mengerjakan:


%ORACLE_HOME%\opmn\bin\opmnctl status

Aku mendapatkan pesan error karena tidak menemukan jdk java di Oracle Home baru tersebut. Setelah melakukan copy-paste jdk dari Oracle Home yang sudah ada, OPMNCTL tidak complain lagi dan segera melaporkan status HTTP Server yang sedang aktif.

Sekarang aku akan melihat file konfigurasi untuk Oracle HTTP Server. Lokasi file konfigurasi berada di direktori %ORACLE_HOME%\Apache\Apache\conf. File konfigurasi utama memiliki nama httpd.conf. Dalam file ini, aku menemukan entry DocumentRoot menunjuk ke:


C:\oracle\product\10.1.0\db_HTTPServer\Apache\Apache\htdocs

Ini berarti secara default, aku bisa menemukan dan meletakkan file HTML disini. Sementara itu, entry ErrorLog memiliki nilai:


ErrorLog "|C:\oracle\product\10.1.0\db_HTTPServer\Apache\Apache\bin\rotatelogs logs/error_log 43200"

Ini berarti, log error akan ditangani oleh program rotatelogs. Logs akan dihasilkan pada folder logs dengan nama error_log.nnnn, dimana nnnn adalah system time pada saat log dibuat.

Salah satu tambahan dari Oracle atas server HTTP Apache ini adalah MOD_PLSQL. Ini memungkinkan kita untuk mengerjakan PL/SQL melalui protokol HTTP, atau dengan kata lain membangun aplikasi berbasis Web melalui PL/SQL. Sebelumnya, aku harus melakukan konfigurasi terlebih dahulu. Langkah pertama adalah meng-install PL/SQL Web Toolkit ke dalam schema SYS di database Oracle. Caranya cukup dengan menjalankan owaload.sql yang ada di folder %ORACLE_HTTP_SERVER_HOME%\Apache\modplsql\owa. Berhubung aku sudah memakai OWA versi 9.0.4.0.2 yang lebih baru, maka tidak perlu melakukan instalasi lagi.

Langkah berikutnya adalah membuat DAD (Database Access Descriptor). Aku akan mengedit file ORACLE_HOME/Apache/modplsql/conf/dads.conf. Aku menambahkan directive Location baru seperti berikut ini:


<Location /latihan>

  SetHandler pls_handler
  Order deny,allow
  Allow from all
  AllowOverride None

  PlsqlDatabaseUsername scott
  PlsqlDatabasePassword tiger
  PlsqlDatabaseConnectString orcl
  PlsqlAuthenticationMode Basic


</Location>

Lalu aku me-restart Oracle HTTP Server dengan perintah berikut:


opmnctl restartproc ias-component=HTTP_Server

Mulai sekarang, aku bisa mengerjakan sebuah PL/SQL Procedure dengan melalui HTTP. Misalnya, di schema SCOTT ada sebuah procedure dengan nama TEST_LATIHAN, aku bisa mengerjakannya dengan mengetik URL berikut di Internet Explorer:


http://localhost:7777/latihan/test_latihan

dimana latihan adalah DAD yang aku set-up sebelumnya, dan test_latihan adalah nama procedure.

Demi alasan keamanan, aku dapat men-obfuscate nilai PlsqlDatabasePasword dengan bantuan DadTool.pl yang ada di folder yang sama dengan file konfigurasi. Sebelumnya, aku melakukan setup environment PATH ke interpreter PERL yang ter-install bersama database Oracle, dan juga setup environment ORACLE_HOME yang sesuai. Setelah itu, aku akan menemukan entry PlsqlDatabasePassword sudah berubah menjadi:


PlsqlDatabasePassword @BVFD6+ZrAnoB4VFGhjJTn8E=

Perihal Solid Snake
I'm nothing...

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: