Gallery

Cara mendapatkan dan mengambil tanggal terakhir tiap bulan dengan bahasa pemrograman java

This gallery contains 1 photo.

Pada beberapa kasus program aplikasi harus bisa mendapatkan tanggal terakhir tiap bulan dan menampilkannya dalam sistem untuk keperluan tertentu. Ini adalah catatanku ketika sedang membuat aplikasi dan pada form input tanggal membutuhkan tampilan daftar tanggal terakhir tiap bulan. Bagi temen-temen … Continue reading

Step by step membuat java web service dengan database mysql

Ahsanfile.Com

Satu yang belum pernah aku temui adalah tutorial membuat web service menggunakan java dengan database mysql. Selama ini aku mencari-cari tutorial ini, karena tidak menemukan akhirnya aku explor sana dan sini bahkan pernah putus asa. Aku yakin banyak temen-temen programmer java yang masih pemula mengalami hal yang sama. Oleh karena itu kali ini aku ingin memposting hasil risetku sendiri tentang bagaimana cara membuat web service di java untuk menampilkan database mysql.

Sebelumnya maaf buat para master java dimanapun berada, bukan ane mau pamer tapi hanya ingin share dengan temen-temen yang belum bisa. Kalau nanti ada kesalahan dan kekurangan, tidak berlebihan kiranya untuk memberikan masukan dan koreksinya :mrgreen:

OK, langsung aja.
Saat ini arah pengembangan aplikasi adalah menggunakan model SOA (service oriented application). Salah satu bentuk implementasi di tingkat dasar adalah penggunaan web service sebagai jalan untuk berkomunikasi lintas platform aplikasi. Gampangnya dengan web service, apapun aplikasinya (web, dekstop…

View original post 1,318 more words

Step by step how to invoke Java Web Service JAX-WS with PHP Soap – Cara consume Java Web Service JAX-WS dengan PHP Soap

Sekali-kali kasusnya adalah sistem aplikasi yang kita bangun menggunakan PHP 5 dan ada kebutuhan untuk mengakses sebuah web service berbasis Java. Kalau dari pengalamanku, yang seperti ini jarang sekali dibuat. Nhaa sekalinya kudu buat, banyak hal yang belum aku ketahui tentang konsep SOA di PHP. Makanya aku buat tulisan ini agar nggak lupa nanti jika ada keperluan yang sama.

Jika selama ini aku mengembangkan aplikasi berbasis SOA menggunakan Java EE 6, yang di sana itu begitu mudah dan simpel, maka ketika menggunakan PHP agak keteteran karena harus banyak hal manual yang harus dilakukan. Misalnya mengetahui struktur xml untuk yang complexType, baik ketika sebagai parameter maupun sebagai return.

Oke, di bawah ini aku share cara menginvoke java web service JAX-WS dengan PHP Soap pada PHP 5. Ada beberapa point yang aku tulis dibawah ini yaitu :

  • Skenario
  • Programming Stack
  • Step by step
  • Study Case
  • Permasalahan

Mari kita mulai satu per satu !

Continue reading

Tunning GlassFish 3.1.2 Performance – Based On Experience In Production

Glassfish Application Server memiliki kemampuan yang sangat layak untuk dijadikan server production yang handal, cuma seperti pada umumnya pokoknya yang berbau java application server sepertinya harus di tunning. Kalau enggak bakalan lambat dan habis memory, atau ngehang di tengah jalan.

Oke di bawah ini pengalamanku setting dan tunning glassfish yang sudah aku gunakan di beberapa server production diantaranya :

  1. Official website Indonesia National Single Window
  2. Sistem Indonesia National Trade Repository (INTR)
  3. Official Website DJBC
  4. Portal Pengguna Jasa DJBC
  5. Portal Intranet DJBC

Awalnya memang agak berdarah-darah karena belum tau bagaimana mensetting yang sesuai dengan kapasitas server dan jumlah request user. Karena di Indonesia sepertinya belum ada tempat training dan trainer yang mengerti atau sudah ahli di Glassfish, maka seriiring berjalannya waktu, aku menemukan beberapa settingan yang harus dilakukan agar glassfish itu bisa tangguh. Dan di bawah ini aku share untuk para pembaca semua.

Oh iya, kenapa sih nggak menggunakan apache yang sudah jelas terbukti handal dalam urusan web server ? Jawabannya juga berdasar pengalaman yaitu intinya di tempat kerjaku disamping memproses jumlah request yang banyak, data yang diproses juga besar-besar banget. Entah aku yang salah setting atau gimana, pernah aku nyoba memproses 20 request data dengan parameter berupa xml berukuran 1mb s/d 3mb, koq ketika pakai php ngehang. Nah ketika pakai Java ada proses tetapi tidak ngehang … Yaaaa itulah cerita singkat kenapa pakai java…

Langsung aja, berikut yang harus ditunning ketika menggunakan glassfish. Spek server yang aku gunakan adalah prosesor 1 quadcore 3.0 Ghz, Ram 4GB, OS Ubuntu Server 10.04 LTS 64Bit, Jdk 1.6.

Tipikal request oleh user adalah akses website dengan respon berukuran rata-rata 900kb, hampir 1 mb per user.

Mengubah parameter JVM option

  1. -client -> -server
  2. -Xmx512m -> -Xmx3072m
  3. -XX:MaxPermSize=192m -> -XX:MaxPermSize=256m

Mengubah max open files, yaitu untuk menambah jumlah maximum file yang dihandle oleh OS. Ini berpengaruh sekali pada performa JVM ketika menangani file request yang besar

  1. /etc/security/limit.conf
    Open File
    *      soft      nofile    4096
    *      hard    nofile    40960

    User Process
    *      soft      nproc    10240
    *      hard    nproc    102400

  2. /etc/sysctl.conf
    # sysctl -w fs.file-max=4096
    # sysctl -p

Mengubah setingan http-thread-pool

  1. Max Queue Size: -1
  2. Max Thread Pool Size: 250

Mengubah File Cache pada network config http-listener-1

  1. Max Cache Size: 41943040
  2. Max File Count: 4096

Oke itu menurut pengalamanku settingan max untuk ram 4GB. Biasanya sih server untuk java web normalnya bergiga-giga. Tapi kadang spek server hanya ada yang itu saja. Dari angka-angka itu server mampu menangani concurrent user sampe 1000an dengan respon data sekitar 900an KB untuk tiap user, yang artinya 1000 user x 900KB = 900Mb trp, hampir 1 giga data diproses ke user.

Di atas angka 1000 user, server udah kolap… bias diakses tetapi lambat banget dan kandang sampai time out. Harus dilakukan tunning lagi sesuai dengan kebutuhan. Mungkin kelihatannya boros banget ya konsumsi memorynya, tapi kebutuhannya memang terjawab di sana.

Cara reset password root MySql di Ubuntu Server dengan cara yang elegan – How to reset MySql root password on Ubuntu Server with elegant way

Beberapa hari yang lalu aku install ulang komputer di kantor. Semua data, dokumen, project dan file-file log sudah aku backup. Udah sah rasanya install ulang dengan OS yang lebih baru. Tapiii ternyata ada yang kelupaan yaitu data history pada browser Mozilla Firefox. Disana sudah aku simpan beberapa log password ke server yang administrasinya berbasis web. Salah satunya adalah akses ke database MySql … arrgggghh…. dan yang lupa adalah password root… kacau banget pokoknya …

Udah browsing sana dan sini, tetapi dapetnya tutorial mereset password root mysql dengan cara yang sedikit ekstreem. Seperti re-install, injeksi file init dan lainnya. Bahkan yang resmi petunjuk dari MySql sendiri yang aku temukan di sini juga menggunakan injeksi file init.

Nhaaa ternyata kalau di Ubuntu Server, ada cara yang sangat mudah dan resmi langsung dari bawaan OSnya … jadi aku yakin akan aman, karena oleh para pembuatnya pasti dah dipikirkan cara untuk mengantisipasi efek buruknya. Cukup dengan satu command di terminal atau shellyaitu : sudo dpkg-reconfigure mysql-server-5.1

Kemudian akan tampil form untuk membuat password yang baru seperti ini:

Setelah password baru dan konformasinya diisi, sistem akan merestart secara otomatis mysqlnya dan root mysql dah bisa diakses lagi ! Tapi aku nggak tau kalau di OS linux yang lain, soalnya ini spesifik untuk Debian base …

Efek lain paling kalau pakai aplikasi yang menggunakan connection pool kudu dicek apakah auto re-conectnya berjalan atau tidak. Kalau yang terjadi sama aku, Glassffish Application Servernya jadi ngehang karena databasenya direstart… 😦 Tapi solusinya cukup restart aja koq 😀

How to set ZK Combobox Selected Item ? How to setSelectedItem on ZK Combobox ? Set selected item pada combobox zk

Hi there ..
finally i found the simple way to set selected item or selected index on zk combobox ! yeah … it’s very simple !

Mungkin banyak temen-temen programmer zk yang dipusingkan dengan hal ini, tetapi belum menemukan solusi yang simpel atau sudah punya solusi tetapi rumit dan butuh alokasi memory yang lebih. Berikut cara yang menurutku paling simpel, cukup 4 baris kode, tanpa perlu method atau class tambahan. Ini per 5 Januari 2012, jika nanti ada metode yang lebih baik aku akan memakainya.

Ada dua case dimana kita kadang butuh untuk mengeset nilai default pada zk combobox dari daftar nilai yang ada yaitu ketika :

  1. On Render
    Yaitu ketika sebuah form baru ditampilkan atau ketika baru diload, sebuah combobox ingin kita set nilai defaultnya atau set selected index-nya. Contohnya pada form edit atau detail data, dimana kita meng-assign nilai pada field-field dalam tampilan tersebut yang seringnya diantara field itu ada yang berbentuk combobox
  2. On Event
    Yaitu ketika ketika sebuah event dijalankan pada sebuah tampilan / form yang sudah dirender.

Permasalahan:
Pengisian nilai combobox oleh zk dilakukan setelah compose html, sehingga kalau kita melakukan hal yang sama dengan ketika koding html+javascript convensional yaitu pada ‘domready’ = ‘onload’ = ‘ready’ contohnya memberi value pada combobox, tidak akan berlaku pada zk. Dengan kata lain doAfterCompose != domready.

Maka solusinya, kita bisa melakukan intervensi pemberian selected index pada combobox ketika zk sedang melakukan render data yaitu pada case nomor 1..

Untuk case nomor 1: onRender
Pada saat doAfterCompose, kita harus memiliki nilai yang sama dengan salah satu comboitem value pada combobox yang kan kita set nilai defaultnya, pada saat render comboitem, kita cari nilai comboitem yang nilainya sama dengan data kita, kemudian kita setSelectedItem dengan comboitem yang nilainya sama dengan yang kita inginkan dengan method setSelectedItem(comboitem). Contoh kodingnya seperti ini.

List<TblSetKota> ltsk = k.getTrSetKotas(); // from jdbc or orm
cmbKota.setModel(new ListModelList(ltsk, true)); // cmbKota = id zk combobox
cmbKota.setItemRenderer(new ComboitemRenderer() {

	public void render(Comboitem cmbtm, Object o) throws Exception {
		TblSetKota tsk = (TblSetKota) o;
		cmbtm.setLabel(tsk.getNmKota());
                cmbtm.setValue(tsk);
		// set selected item
                if (tblSetUser != null) {
			if (tsk.getKdKota() == tblSetUser.getKdKota()) {
                            	cmbKota.setSelectedItem(cmbtm);
			}
		}
	}
});

Logic:
Ada sebuah form perekaman user. Form user berisi grid yang berisi daftar user, dan ada 2 button “Add” dan “Edit”. Kemudian terdapat sebuah form yang digunakan untuk menambah user dan mengedit user. Form Add dan Form Edit ini sama dalam rangka menghemat koding. Dalam Form Add user terdapat field berupa zk combobox yang isinya berasal daftar kota. Jika button “Add” di klik, maka akan tampil window Form Add dalam kondisi kosong. Jika button “Edit” di klik maka window Form Add akan tampil dalam keadaan sudah isi berdasarkan user yang terpilih untuk diedit. Dalam mode edit nilai combobox kota akan terisi sesuai kota user ketika form diload.

Untuk case nomor 2: onEvent
Syaratnya hampir sama dengan case nomor 1, bedanya hanya waktu kita untuk melakukan setSelectedItem yaitu pertama kita ambil jumlah item dalam combobox dengan method getItemCount() kemudian kita looping untuk mendapatkan comboitemnya. Pada saat looping kita ambil nilai dari comboitemnya dan kita bandingkan dengan data yang kita miliki. Jika hasilnya sama maka itulah nilai index yang kita bisa gunakan untuk melakukan dengan method setSelectedIndex(index).

Cara menginstall Oracle XE 11g pada Linux Red Hat dan Cara Membuat Connection Pool pada Glassfish 3.1 ke Oracle XE di OS Red Hat 5.5 64 bit

Melanjutkan catatanku mengenai installasi server yang aku tulis di sini, yaitu mengenai Cara menginstall java jdk6 pada Red Hat 5 dan Cara Mengganti default java pada Red Hat 5 Enterprise Server 64 bit, kali ini catatanku berisi tentang cara menginstall Oracle XE 11g para OS Linux Red Hat 5.5 64 bit.

Pokoknya kali ini aku sedang menginstall sebuah web server glassfish 3.1 untuk memasang aplikasi SSO yang telah aku jelaskan sebelumnya di bawah ini :

  1. https://ahsanfiles.wordpress.com/2011/02/20/step-by-step-membuat-server-single-sign-on-sso/
  2. https://ahsanfiles.wordpress.com/2011/02/24/membangun-sso-server-untuk-implementasi-single-sign-on/
  3. https://ahsanfiles.wordpress.com/2011/09/28/mengintegrasikan-banyak-sistem-user-management-menggunakan-single-sign-on-sso/
  4. https://ahsanfiles.wordpress.com/2011/09/28/implementasi-sso-single-sign-on-pada-inhouse-aplikasi-ditjen-bea-dan-cukai/

Lho apa hubungannya glassfish, oracle dengan SSO ? Baca dulu tulisan mengenai SSO yang aku sebutkan di atas !
Glassfish sebagai application server yang aku gunakan untuk memasang SSO Server, Oracle XE aku gunakan untuk membuat user management. Yaah pokoknya gitu deh intinya …

Yuk kita mulai dengan cara menginstall Oracle XE-nya dulu di red hat : Continue reading