Meskipun tidak terkait secara langsung dengan PHPMaker, kisah berikut yang akan saya ceritakan ini patut disimak. Ada begitu banyak pelajaran yang bisa kita ambil bersama.
Diawali sekitar dua tahun yang lalu, tepatnya November 2013. Saya menginstal Database Oracle versi 11g di laptop yang saya gunakan sampai saat ini. Versi yang saya instal saat itu adalah 11.1.0. Belakangan, saya baru tahu bahwa ini merupakan Oracle 11 versi awal (Release 1) sebelum akhirnya nanti muncul yang Release 2-nya.
Semuanya berjalan dengan lancar saat itu. Koneksi ke database Oracle Release 1 menggunakan tools database manager favorit saya; Navicat, dapat dilakukan dengan mulus. Pembuatan table-table juga dapat dikerjakan dengan normal. PHPMaker (waktu itu masih versi 10) dapat tersambung dengan baik ke database tadi, sampai kepada berhasilnya menghasilkan sebuah Aplikasi Web untuk salah satu client saya.
Singkat cerita, sekitar dua tahun kemudian, atau lebih tepatnya tiga hari yang lalu dari saat saya menulis artikel ini, ada kebutuhan untuk memperbarui Aplikasi Web tadi. Karena versi terakhir PHPMaker saat ini adalah 12, maka saya membuka file project yang sudah hampir dua tahun tidak pernah disentuh itu menggunakan versi 12. Tidak ada masalah. Dilanjutkan dengan men-generate ulang kembali semua file script (tentu saja menggunakan Masino Extensions versi terakhir), pun berjalan dengan baik dan lancar car car, hehehe…
Setelah proses generate oleh PHPMaker selesai, tibalah saatnya untuk mencoba Aplikasi Web tersebut di browser. Duaaarr! Muncul-lah sebuah warning message yang kurang sedap dipandang mata. Isinya kira-kira begini:
oci_connect(): ORA-24315: illegal attribute type in blablablabla....
Hmm, panik sih nggak, cuman heran aja. Kok terakhir sekitar dua tahun lalu mulus, lalu sekarang timbul masalah? Padahal saya ingat betul, sejak dua tahun yang lalu itu gak pernah diutak-atik Database Oracle dan Aplikasi Web-nya. Sampai di sini rasa penasaran muncul (naluri detektif, eh). Ada apa dengan Oracle?
Tiba-tiba teringat dengan aplikasi web lainnya yang pernah dibuat menggunakan database Oracle 11 juga. Langsung coba jalankan di browser, eh, hasilnya sama saja. Muncul pesan error warning seperti yang di atas tadi.
Timbul pertanyaan, Mengapa PHPMaker 12 dapat menjalankan file project tersebut, bahkan sampai men-generate semua file script, tapi ketika Aplikasi Web dijalankan lewat browser, selalu muncul pesan error warning tadi. Hm… seharian itu jujur hanya baru bisa bertanya-tanya saja, sambil beberapa kali masih belum percaya mengapa bisa terjadi, hiks.
Cari-cari di arsip topik Forum Diskusi PHPMaker juga tidak membuahkan hasil. Belum ada satupun yang membahas warning message tersebut. Cari di Google rata-rata membahas yang versi 10. Hmm… tidak nyambung juga. Berarti ada penyebab lainnya yang harus dicari tahu.
Masih penasaran, akhirnya saya coba dengan me-restart extension php_oci8_11g dari Wampserver yang saya gunakan, tetap juga tidak membuahkan hasil yang menggembirakan. Error warning masih juga menggoda. Akhirnya naluri detektif mulai bekerja. Coba jalankan fungsi phpinfo(). Hasilnya mulai menunjukkan secercah sinar melalui dua baris petunjuk berikut di bagian oci8:
Oracle Run-time Client Library Version 11.1.0.6 Oracle Instant Client Version 11.2
Ahaaa! Ada yang tidak beres ternyata. Di situ jelas tertera bahwa versi Oracle Run-time Client Library di laptop saya adalah 11.1.x sementara versi Oracle Instant Client-nya adalah 11.2.
Naluri detektif semakin menjadi-jadi. Segera cek ke website resmi Oracle, di sana tertera versi 11g yang terakhir ternyata sudah Relase 2. Berarti selama ini saya memang tidak mengikuti perkembangan release yang terakhir dari versi 11 ini.
Masih timbul pertanyaan yang lain, mengapa sebelumnya bisa? Lalu coba ingat-ingat kembali. Sepertinya, saya pernah memutahirkan versi Java dan/atau yang lainnya yang terkait dengan Oracle. Atau bahkan (mungkin, entahlah sudah lupa) saya pernah menginstal aplikasi yang menggunakan Oracle Instant Client versi 11g Release 2 (11.2). Itulah mungkin penyebab timbulnya perbedaan versi antara Run-time Client Library dengan Instant Client-nya.
Kesimpulan sementara di hari pertama adalah, saya harus mengunduh instaler Oracle 11 Release 2; dengan ukuran sekitar 2 GB. Feeling-nya sih begitu. Karena sudah malam dan waktunya tidak memungkinkan lagi, akhirnya rasa penasaran itu harus saya simpan untuk sementara waktu.
Pulang dari kantor, sebenarnya masih penasaran tingkat tinggi, dan bercampur dengan keinginan kuat untuk mengunduh dan langsung menggunakan Oracle 11g Release 2. Tapi apa daya, harus saya lupakan sejenak. Toh tetap saja tidak bisa dilakukan karena waktunya untuk tidur. Pasrah dan ikhlas supaya hati tenang.
Keesokan harinya (hari kedua), setelah semua pekerjaan utama selesai dikerjakan, langsung unduh instaler database Oracle 11g Release 2. Untunglah koneksi Internet lumayan lancar. Hanya dibutuhkan waktu sekitar 2 jam untuk menyelesaikan proses unduh. Tanpa lama-lama lagi, langsung segera instal. Saya memilih upgrade dari versi sebelumnya.
Ternyata, proses instalasi pun sedikit mengalami hambatan. Beberapa error saat instalasi (dulu juga begitu) terjadi, tapi untungnya masih ada pilihan ignore dan melanjutkan proses instalasi sampai selesai. Entah mengapa, setiap melakukan instalasi Oracle (baru atau upgrade), pasti membutuhkan waktu sampai berjam-jam. Melatih kesabaran juga pada akhirnya.
Tidak terasa, hari kedua ini sepertinya juga berlalu begitu cepat. Karena sudah malam, akhirnya saya putuskan untuk bersabar dan melanjutkan penyelidikan ala detektif besoknya. Hari ini murni untuk upgrade ke Release 2 saja. Kadang-kadang, hal ini tidak bisa kita hindari. Ingin melakukan A sampai Z, tapi bisanya hanya A saja. Dibutuhkan kebesaran hati dan jiwa yang tenang untuk menerima kondisi tadi.
Anda pasti pernah mengalaminya juga kan? Pulang dengan segudang pertanyaan dan penasaran yang belum terjawab, tapi masih sulit untuk dilupakan begitu saja? Tidak ada cara selain melupakannya sejenak.
Keesokan harinya, yaitu memasuki hari ketiga, saya baru teringat. Seharusnya yang saya cek pasca instalasi hari kedua tadi adalah membandingkan versi antara Run-time Client Library dengan Instant Client di atas tadi. Segara saya lakukan hal itu, dan benar saja, ternyata sekarang sudah menunjukkan tanda-tanda yang menggembirakan. Hasilnya adalah seperti ini:
Oracle Run-time Client Library Version 11.2.0.1.0 Oracle Instant Client Version 11.2
Seperti yang kita lihat dari dua angka pertama tersebut, versi keduanya saat ini sudah sama. Cukup melegakan. Karena masih penasaran, saya langsung menjalankan kembali Aplikasi Web dari browser. Eiit, hasilnya masih sama dengan hari pertama tadi. Error warning masih belum beranjak juga dari sana.
Langkah selanjutnya, memeriksa dua buah Service yang terkait dengan Oracle dari bagian Control Panel Windows. Di situ ternyata TNS Listener versi terdahulu masih aktif. Logika sederhana pun berjalan. Karena sudah tidak menggunakan versi lama (Release 1), harus dimatikan. Lalu saya jalankan TNS Listener versi terakhir (Release 2) yang muncul di sana, yaitu OracleOraDb11g_homeTNSListener. Selain itu, saya memastikan satu Service utama Oracle lainnya yang bernama OracleServiceORA11G tetap harus berjalan.
Tibalah kini pada hal yang paling mendebarkan. Menjalankan kembali Aplikasi Web menggunakan browser. Eng… ing… eng… Bagaimana hasilnya? Horeeeee!!! Puji Tuhan, akhirnya sekarang Aplikasi Web sudah bisa dijalankan dengan mulus. Tidak ada lagi pesan error warning di atas tadi.
Lega, puas, dan senang tentunya. Semuanya bercampur menjadi satu. Pingin rasanya melompat dan berteriak kegirangan. Tapi karena melihat kiri dan kanan banyak orang, akhirnya niat gila itu saya batalkan. Apa nanti kata dunia? Mereka pasti bilang: Wah, sudah stress dia selama ini! Hahahaha….
Dari kisah ini, maka dapat disimpulkan bahwa jika Aplikasi Web yang menggunakan database Oracle mengalami error warning seperti di atas tadi, segera cek versi Run-time Client Library dan Instant Client-nya. Pastikan versi major dan minor-nya sama, sedangkan versi build keduanya boleh saja berbeda. Paling tidak itu yang saat ini sudah pernah saya alami. Entah untuk kasus yang lain.
Kesimpulan atau pelajaran yang sangat berharga lainnya: Jangan Panik! Tetap tenang! Stay Cool!
Setiap kali Anda mengalami masalah, tetap berpikirlah secara positif bahwa tidak ada masalah yang tidak bisa diselesaikan. Pasti ada solusi di waktu mendatang, entah di hari yang sama atau hari yang berbeda. Bersabarlah sambil tetap berusaha. Tetap lanjutkan hidup dan kegiatan Anda lainnya.
Jangan fokus kepada masalah yang Anda hadapi. Fokuslah kepada kegiatan positif dan yang menyenangkan lainnya, karena itu merupakan energi baru untuk membantu menyelesaikan masalah Anda.
Kalau memang saat itu harus pulang, tinggalkan pekerjaan dan lupakan sejenak masalah Anda tadi. Kalau waktunya tidur, segera tidur. Jangan memikirkannya menjelang tidur. Karena toh tidak ada gunanya, bukan?
Kalau Anda setiap pagi berolah raga jalan pagi dan bertemu dengan sahabat Anda, tetap lakukan kegiatan itu dengan normal dan gembira. Lupakan sejenak masalah dan pekerjaan Anda, supaya kegiatan Anda itu tetap menyenangkan dan optimal seperti biasa, hehehe… 😉
Percayalah, ketika Anda kembali lagi ke pekerjaan tadi, maka pikiran Anda menjadi jauh lebih segar. Mengapa? Karena dengan melupakan sejenak masalah dengan cara melakukan kegiatan positif lainnya, misalnya berolah raga dan berdiskusi dengan sahabat baik Anda, maka hati menjadi gembira. Kalau sudah gembira, apapun bisa dikerjakan dengan mudah.
Akhirnya, naluri detektif Anda untuk mencari tahu penyebab sekaligus mengatasi masalah, semakin hari akan semakin tajam. Solusi dengan sendirinya pun akan datang menghampiri Anda dengan mudah dan cepat!
Nggak percaya? Buktikan saja sendiri! Hehehe… 😛
sidik mengatakan
Setiap kali Anda mengalami masalah, tetap berpikirlah secara positif bahwa tidak ada masalah yang tidak bisa diselesaikan. Pasti ada solusi di waktu mendatang, entah di hari yang sama atau hari yang berbeda. Bersabarlah sambil tetap berusaha. Tetap lanjutkan hidup dan kegiatan Anda lainnya.
Akhirnya, naluri detektif Anda untuk mencari tahu penyebab sekaligus mengatasi masalah, semakin hari akan semakin tajam. Solusi dengan sendirinya pun akan datang menghampiri Anda dengan mudah dan cepat!
Benar sekali Pak Masino,
luar biasa.. motivasinya
Masino Sinaga mengatakan
Hehe, terima kasih.