MBean: Satu lagi “kacang” unik


MBean hampir mirip seperti Bean biasa, hanya saja ia punya kegunaan khusus bagi JMX API. Dengan JMX, kita bisa mengatur aplikasi tanpa harus banyak mengubah desain aplikasi. MBean menentukan layanan apa yang tersedia, melalui operasi (method) dan atribut yang disediakannya.

Untuk membuat sebuah MBean, aku harus membuat MBean interface terlebih dahulu, seperti berikut:

package training.java;

public interface LatihanMBean {

  public String getStatusAplikasi();

  public void pauseAplikasi();

  public void resumeAplikasi();

}

Spesifikasi JMS menganjurkan nama MBean interface berupa nama class implementasi-nya ditambah dengan akhiran “MBean”. Sekarang aku akan membuat MBean implementasi dari interface di atas:

package training.java;

public class Latihan implements LatihanMBean {

  private int status = 0;

  public String getStatusAplikasi() {
     if (status==0) {
        return "RUNNING";
     } else if (status==1) {
        return "PAUSED";
     } else {
        return "UNDEFINED";
     }
  }

  public void pauseAplikasi() {
     status = 1;
  }

  public void resumeAplikasi() {
     status = 0;
  }

}

Setelah itu, aku akan membuat sebuah JMX Agent, yang isinya sebagai berikut ini:

package training.java;

import java.lang.management.*;
import javax.management.*;

public class Main {
  
  public static void main (String[] args) throws Exception {
    
     MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
     ObjectName name = new ObjectName("training.java:type=Latihan");
     Latihan mbean = new Latihan();
     mbs.registerMBean(mbean, name);
     
     System.out.println("Sedang menunggu......");
     Thread.sleep(Long.MAX_VALUE);

  }

}

Jika aku menjalan JMX Agent di atas, aku akan mendapatkan tampilan “Sedang menungu…..” dan sesuai pesannya, program akan terus menunggu. Langkah berikutnya, aku akan mencoba ber-interaksi dengan MBean dengan bantuan utility “JConsole” bawaan dari Java. Saat pertama kali dijalankan, JConsole yang merupakan proram berbasis GUI, akan meminta informasi “New Connection”. Ia akan menampilkan daftar JMX Agent di localhost, dimana salah satunya adalah “Main” yang aku buat sebelumnya. Aku segera memilihnya dan menekan tombol “Connect”.

Pada tab “Mbean”, aku memilih MBean dengan nama “Latihan” dari daftar yang disediakan. Dari sini aku bisa melihat nilai atribut dan melakukan operasi untuk MBean tersebut. Misalnya aku mencoba memilih operasi “pauseAplikasi” dan menekan tombol dengan nama yang sama. Saat aku melihat isi atribut “StatusAplikasi”, nilainya kini menjadi “PAUSED” bukan lagi “RUNNING”.

Tentu saja penerapan JMX di dunia nyata tidak sesederhana ini, tapi setidaknya aku sudah punya gambaran sederhana seperti apa JMX itu.

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: