Increasing JVM memory allocation for Tomcat 6


Pernah mengalami error seperti ini:

java.lang.OutOfMemoryError: Java heap space

Kalau anda cari secara plain ke Paman google, pasti hasil yang anda temui adalah karena memory pada JVM yang kurang besar. Solusi untuk permasalahan seperti ada banyak, contohnya: membagi file yang ditransfer agar lebih kecil, solusi yang kedua adalah memperbesar memory allocation untuk JVM.

Jika aplikasi anda adalah Desktop Base, maka caranya relatif mudah, cukup menambahkan -Xms dan -Xmx pada saat me-run aplikasi:

java -Xms[memory size] -Xmx[memory size] className

-Xms menunjukkan minimum memory location yang digunakan.

-Xmx menunjukkan maximum memory location yang digunakan.

Contoh penggunaannya:

java -Xms128m -Xmx1024m andreas

Contoh di atas menjalankan file andreas dengan minimum memory di JVM 128 MB dan maksimum memory-nya 1 GB.

Lalu bagaimana untuk aplikasi Web-base? Bagaimana caranya? Karena aplikasi berjalan di atas sebuah Web server maka sangat jelas, kalau memory JVM si Web server inilah yang harus diperbesar.

Bagi pengguna Apache Tomcat Versi 6, caranya relatif mudah. Cukup menambahkan variable CATALINA_OPTS pada system environment. Value yang perlu diisikan cukup seperti ini:

-Xms128m -Xmx1024m

See. It’s very simple. Silahkan anda sekalian untuk mencobanya.


Locking & Un-Locking Firefox Proxy Configuration Settings


Saya akan mencoba mengilustrasikan 2 tokoh dalam tulisan ini:

  1. Admin Jaringan: “Saya adalah admin disini, pokoknya saya harus mengamankan network internet di kantor biar aman. Tapi banyak proxy yang dibuka – bisa2 kebobolan nih. Ow iya saya ada ide, saya lock aja settingan browser di user biar gak bisa di kutak-katik.”
  2. Smart User: “Waduh settingan proxy di firefox saya ke lock, harus cari cara nih buat nge-unlock nya. Googling dulu ah caranya.”

Admin Jaringan:

Googling dulu ah buat cari cara nge-lock settingan proxy di firefox. Eh ketemu nih caranya:

  • create new text file – beri nama: mozilla.txt –> nama bisa apa saja
  • tuliskan code berikut:
  • lockPref("app.update.enabled", false); //Inilah yang meng-enable
    lockPref("network.proxy.http", "10.2.50.1");  //ganti dengan dedicated proxy yang diinginkan
    lockPref("network.proxy.http_port", 3128);  //ganti dengan port yang diinginkan
    lockPref("network.proxy.type", 1);
    lockPref("network.proxy.no_proxies_on", "localhost, 127.0.0.1"); //ini untuk settingan no proxy
    lockPref("network.proxy.share_proxy_settings", true);
    
  • The file must now be encoded with an offset of 13, and renamed.
  • Anda bisa mendownload software untuk meng-encode file mozilla.txt di atas melalui link ini atau bisa langsung meng-encode secara online melalui link ini
  • Hasil dari encoding di atas adalah file dengan nama mozilla.cfg
  • Go to C:\Program Files\Mozilla Firefox\greprefs\ and locate the all.js file
  • Tambahkan pada file all.js
  • pref("general.config.filename", "mozilla.cfg");
    
  • save dan coba jalankan firefox anda

Smart User:

Wah firefox saya proxy nya di lock. Pasti kerjaan-nya admin nih. Gimana caranya nge-unlock proxy ini. Googling dulu ah, cari cara untuk nge-unlock proxy setting di Firefox [NOTE: seperti layaknya seorang tabib/dokter, sebelum menemukan cara untuk menyembuhkan racun, maka harus mencari tahu terlebih dahulu bagaimana cara membuat racun tersebut. :p ]. Wah ketemu nih.

Setelah dibaca, ow ternyata inti dari cara nge-locking proxy setting di firefox itu ada di file mozilla.cfg toh. Jadi cara untuk meng-unlock proxy setting di firefox adalah:

  1. Go to C:\Program Files\Mozilla Firefox\greprefs\
  2. delete file mozilla.cfg
  3. run firefox

Dari cerita di atas dapat disimpulkan bahwa cara untuk meng-unlock jauh lebih mudah daripada cara untuk mengelock, tetapi jalan untuk mengetahui cara meng-unlock jauh lebih panjang daripada cara untuk mengelock firefox.

Semoga tulisan saya bermanfaat untuk anda.

Manajemen Path


Dapet ilmu baru nih mengenai manajemen PATH. Dikasih tau ama sesepuh di kantor. Kalo di Java kan biasanya kita harus banyak input PATH secara manua, mulai dari PATH JAVA bin itu sendiri sampe tambahan framework-framework lainnya.

Saya sebelumnya biasa menambahkan path langsung ke dalam variable PATH pada windows environment. Caranya:

  1. Click kanan My Computer -> Properties
  2. Advanced
  3. Environment variables
  4. Pada Frame “System Variables” cari Variable yang bernama Path
  5. Lalu klik kiri 2 kali, atau klik tombol edit
  6. Akan keluar text box, tambahkan path disini dengan pemisah antara path adalah tanda baca titik koma (‘;‘)

Tapi cara ini tidak aman, karena langsung berkaitan dengan sistem path yang ada pada Windows. Nah cara yang baru ini yaitu dengan menambahkan sebuah user variable yang bernama PATH juga. Karena variable ini adalah milik user,jadi hanya berlaku untuk user yang bersangkutan saja.

Bingung dengan teorinya? Baiklah langsung saja saya berikan contoh, misalkan kita ingin menambahkan path JAVA ke dalam sistem. Anggaplah path java ini adalah “C:\Java\jdk1.6.0_05\bin”

Langkah yang harus anda lakukan adalah:

  1. Click kanan My Computer -> Properties
  2. Advanced
  3. Environment variables
  4. Pada Frame “User Variables” click New
  5. Isi Variable name dengan “JAVA_HOME” dan isi Variable Value dengan “C:\Java\jdk1.6.0_05″
  6. OK
  7. Pada Frame “User Variables” click New
  8. Isi Variable name dengan “PATH” dan isi Variable Value dengan “%PATH%;%JAVA_HOME%\bin
  9. OK

Anda sudah membuat 2 buah variable baru dengan nama PATH dan JAVA_HOME, selanjutnya jika anda ingin menambahkan path yang lainnya, dapat melakukan langkah yang sama seperti di atas. Dan anda hanya tinggal mengedit variable PATH untuk menambahkan path yang baru.

Command Prompt Date Problem


Pendahuluan

Artikel ini saya buat karena sebelumnya saya mengalami kesulitan dalam mengekstraksi tanggal (DATE) di command prompt. Sebelumnya saya pernah menggunakan Sistem Operasi di UNIX, di OS UNIX ini sangat mudah sekali untuk mengekstraksi tanggal (DATE), dengan adanya perintah substring. Tapi lain halnya dengan sistem command prompt di Windows.

ISI

Coba anda ketikkan perintah “echo %date%” di command prompt, Output yang keluar adalah:

Thu 09/11/2008

Pola yang keluar adalah seperti di atas [DAY DD/MM/YYYY]. Sekarang permasalahannya adalah bagaimana caranya untuk mengambil hanya tanggalnya saja tanpa nama hari. Lupakan saja ide anda tentang menggunakan %DAY%, %YEAR%, %MONTH%, atau system.getDate() karena hal-hal tersebut tidak dapat dilakukan pada sistem Windows, walaupun sebelumnya saya juga sempat berpikir ke arah itu. Command-command seperti itu tidak berlaku pada command prompt. Yang perlu anda lakukan adalah mendapatkan substring dari variable %date%. Bagaimana caranya? Cara yang paling mudah adalah dengan menambahkan “:~” pada nama variabel. Sebagai contoh:

0 1 2 3 4 5 6 7 8 9 10 11 12 13
T h u 0 9 / 1 1 / 2 0 0 8

echo %date:~4%

09/11/2008

It’s very simple to apply. Tambahan “:~” sama saja dengan command substring pada UNIX (bash), angka pertama (4 dalam contoh) menunjukkan posisi character awal yang akan dicetak, lalu angka yang kedua menunjukkan panjang substring. Sebagai contoh:

0 1 2 3 4 5 6 7 8 9 10 11 12 13
T h u 0 9 / 1 1 / 2 0 0 8

echo %date:~4,2%

09