Running VNC Server di Linux
Untuk alasan kecepatan dan proses terasa lebih ringan, saya melakukan develop suatu aplikasi GUI di mesin server Linux yang lumaynlah spek hardwarenya. Tapi karena komputer yang dedicated ke sy di kantor ya yag agak lemot ini, pake Win, maka saya perlu mengakses mesin Linux tadi dari Win. Biasanya sih cuma mode text saja, karena hanya sebatas proses administrasi. Tapi kali ini kayaknya saya perle me-remote aplikasi x-windownya. Saya pake VNC. Nah, sya pake centOS 5.1. Sudah ada aplikasi VNC tersebut.
Cara menjalankan service VNC:
[root@localhost etc]# service vncserver start Starting VNC server: [ OK ] [root@localhost etc]# [root@localhost etc]# vncpasswd Password: Verify: [root@localhost etc]# [root@localhost etc]# vncserver New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1 Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/localhost.localdomain:1.log [root@localhost etc]#
Biar GUI-nya bisa diremote maka perlu ada sedikit perubahan di file /root/.vnc/xstartup. Perubahan ada di baris paling bawha dengan mencantumkan startx &
#!/bin/sh # Uncomment the following two lines for normal desktop: unset SESSION_MANAGER exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & startx &
Sekarang untuk menjalankan dari windows, perlu ada VNC client atau viewernya, dan saya pake RealVNC. Ada versi free-nya kok. Klo yang lain juga ada UltraVNC dan TightVNC. Install dan jalankan.
Install Websphere MQ di Sun Solaris (X86) 10
- Download master dari http://www.ibm.com/developerworks/downloads/ws/wmq/ dan pilih yang dibawah OS Sun Solaris (X86)
- extract master yang telah di-download dengan perintah
$ zcat trial-websphere-.tar.Z | tar xvf -
- Kemudian buat group baru
$ groupadd mqm
- Kemudian buat user baru
$ useradd -g mqm mqm
- Kemudian buat direktori /opt/mqm
- Kemudian juga buat direktori /var/mqm, /var/mqm/errors, /var/mqm/log, /var/mqm/trace
- Mulai install dengan perintah
$ pkgadd -d nama_direktori_dimana_file_hasilekstraksi_master/
-Pengalaman seperti itu
setelah bingung2 baca manual
Sun Solaris 10 X86 - Yaa…pake barang baru lagi
Wah…sebenarnya rekomendasi dari Pak Bos sih pake mesin AMD 64 dingen Os Linux…
e… ternyata sama adminnya dikasih mesin Sun dengan OS Solaris 10 (kata senior sih mesin pembersih debu, karena suarnya minta ampun bisingnya). Baru pertama ini sbenarnya megang langsung Sun Solaris. Dulu pernah tapi cuma sebatas dengar. Tapi syukurlah, tidak terlalu beda sama linux yang biasa sy pegang.
Kernel version : Solaris 10 8/07 s10x_u4wos_12b X86
OS Release : SunOS x4200 5.10 Generic_127112-07 i86pc i386 i86pc
cat etc/release -> melihat versi atau release dari OS
uname -a -> melihat versi kernel
psrinfo -> melihat status prosesor
psrinfo -v -> melihat lebih detil status prosesor
prtconf -> melihat total memory, dan informasi ttg konfigurasi sistem
dmesg -> menunjukkan diagnostic message
df -k -> mengetaui jumlah free disk
vmstat -> informasi statistik dari virtual memory
Dulu Pake RMI, sekarang pake IBM Websphere MQ
Aplikasi terdistribusi yang pernah saya kembangkan dulu selalu berbasis RMI dan socket programming. Ini adalah teknologi klasik dari Java. Prinsip dari Java RMI adalah pemangglan prosedur atau metode yang ada di komputer remote. Ya…kayak prinsip RPC-Remote PRocedure Call gitu deh… Dari proses invoke ke metode yang ada di komputer remote (seperti pemanggilan metode dalam satu mesin) bisa dilewatkan parameter atau argumen. Argumen di sini bisa berupa data dengan tipe primitif, collection, maupun objek. Nah untuk objek yang akan dilewatkn dalam paramter fungsi yang ada di remote komputer, Java menediakan dukungan Synchronizable.
Sekarang musimnya sudah SOA dan messaging, makanya mulai mengubah kiblat ke arah sana. Keunggulan akan terlihat pada kemampuannya mengintegrasikan beberapa sistem yang berbeda dengan proses messaging. Java menyediakan Java Messaging Service untuk ini.
IBm juga menyediakan provider untuk proses messaging ini. Disebutlah IBM Websphere MQ. IBM-MQ ini juga menyediakan dukungan untuk teknologi JMS. Dan ini yang saat ini sdang saya pelajari. Lagi-lagi karena ini ditugasin sama big boss
Sekarang dengan SolidDB
Wah… setelah belajar TimesTen beberapa waktu lalu, ketika mau memulai untuk implementasi sistem dengan TimesTen, e… terntaya saya diminta ganti dengan SolidDB. Yang ini juga in-memory database (IM-DB) , cuma dengan sistem administrasi dan fitur yang berbeda dengan IM-DB sebelumnya.
Untuk sementara syaa masih pake yang versi trial, dan Anda juga dapat mendapatkan lebih informasi, dokumentasi, download trial version dari SolidDB dengan langsung mengakses ke http://www.solidtech.com/
Bekerja Sederhana dengan TimesTen
Mengingat TimesTen juga merupakan database engine, maka bekerja dengan TimesTen berarti kita akan bekerja dengan data-data. Data-data tersebut akan disimpan dalam sekumpulan tabel dan index yang disebut sebagai Data Store. Data Store tersebut diakses melalui Data Source Name(DSN). Jadi yang diperlukan pertama kali setelah berhasil menginstal TimesTen adalah men-set DSN.
DSN merupakan string yang mengidentifikasikan sebuah data store TimesTen dan sekumpulan atribut koneksi yang nantinya akan digunakan saat terhubung dengan data store. DSN diklasifikasikan ke beberapa kategori.
Dilihat dari hak aksesnya, maka ada dua tipe DSN yaitu:
-
User DSN : DSN ini hanya bisa digunakan oleh user yang mendefinisikan DSN tersebut.
-
Pada Windows, untuk mendefinisikan User DSN ini bisa dilakukan melalui tab User DSN dari ODBC Data Source Administrator yaitu dengan masuk ke Control Panel > Administrative Tools > Data Source (ODBC) > Pilih Tab User DSN.
-
Pada Linux, untuk mendefinisikan User DSN di file $HOME/.odbc.ini
-
-
System DSN : DSN ini bisa digunakan oleh semua user.
-
Pada Windows, untuk mendefinisikan User DSN ini bisa dilakukan melalui tab System DSN dari ODBC Data Source Administrator yaitu dengan masuk ke Control Panel > Administrative Tools > Data Source (ODBC) > Pilih Tab System DSN.
-
Pada Linux, untuk mendefinisikan User DSN di file /var/TimesTen/sys.odbc.ini jika user yang digunakan saat instalasi adalah root, atau install_dir/info/sys.odbc.ini
-
Dilihat dari jenisnya, juga ada 2 tpe DSN yaitu:
-
Data Manager DSN : DSN ini digunakan oleh TimesTen Data Manager. DSN ini akan langsung menghubungkan dengan data store atau direct driver.
-
Client DSN : DSN ini tidak langsung menghubungkan dengan data store, tetapi masih melalui DSN yang lain (Data Manager DSN), jadi alurnya Client DSN – Data Manager DSN – Data Store. DSN client berisi nama atau alamat host, nama DSN dan port dimana TimesTen Server Daemon berjalan. Bisasnya sih digunakan pada sistem Client /Server gitu.
Untuk lebih jelasnya akan diberikan contoh. Pada aplikasi yang syaa kembangkan, merupakan termasuk aplikasi Client/Server dari TimesTen (sesuai dengan tipe instalasinya utk Client/Server). Data Manager DSN, saya konfigurasi sebagai System DSN dan Client DSN sebagai User DSN.
Contoh koneksi di Windows (Win XP Home Edition, SP-2)
-
Install TimesTen untuk Windows dan waktu intstalasi pilih tipe client/server
-
Setelah selesai, buat Data Manager DSN sebagai system DSN.
-
Control Panel > Adinistrative Tools > Data Source (ODBC) > Tab System DSN > Tekan tombol Add > Pada pilihan driver, pilih TimesTen Data Manager > Finish. Maka akan muncul tampilan kayak begini:
-
Pada tab Data Store, isi nama Data Source Name, Description, Data Store Path, Log Directory dst. Sebagai contoh, yang pernah saya gunakan sbb:
-
DSN = cobaTTwin
-
Description = cobaTTwin
-
Data Store Path = D:\dataTT\cobaTTwin
-
Log Dir = D:\dataTT
-
Data Base character Set = AL32UTF8
-
Type Mode = 1-TimesTen
-
-
Untuk mencoba pertama kali saya sudah cukup seperti itu. Nanati apabila diinginkan untuk konek lewat cache ke Oracle DB maka akan dilakukan konfigurasi pada tab Cache Connect.
-
OK
-
-
Sebenarnya setelah ada Data Manager bisa langsung digunakan untuk masuk dan memanipulasi Data Store. Caranya bis lewat command prompt C:> ttIsql cobaTTwin. Tapi karena syaa ingin mencoba utk client server, maka saya juga membuat Client DSN.
-
Untuk konfigurasi Client DSN diperlukan user ID dan Password. Jadi sebelum saya buat Client DSN, maka saya buat user baru dan passwordnya, misal user=cobattuser, pass=cobattuser.
-
Masuk dulu ke ttIsql dengan C:\> ttIsql cobaTTwin
-
Setelah masuk, buat user dengan sintaks create user
-
Command > create user cobattuser identified by ‘cobattuser’;
-
Command > grant DDL, Admin to cobattuser;
-
Dan setelah membuat user baru, ubah/edit konfigurasi Data Manager DSN cobaTTwin pada tab General Connection
-
Dan isikan User ID dengan cobattuser yang baru saja dibuat.
-
-
Setelah selesai, kita buat Client DSN sebagai user DSN.
-
Control Panel > Adinistrative Tools > Data Source (ODBC) > Tab User DSN > Tekan tombol Add > Pada pilihan driver, pilih TimesTen Client > Finish. Maka akan muncul tampilan kayak begini:
-
Untuk mendefinisikan servernya klik tombol Servers. Kamudian akan muncul window baru dan klik tombol Add utk menambah daftar server. Karena letak server dan client yang saya coba ada di satu komputer maka saya komfigurasi server seperti ini:
-
Setelah saya konfigurasi Client DSN tampil seperti ini

-
Pada isian User ID, sesuaikan dengan User ID yang telah di-set kan pada Data Manager Dsn cobaTTwin sebelumnya yaitu cobattuser. Dan kemudian masukkan passwordnya juga cobattuser.
-
-
Untuk mencobanya saya pakai SQL Developer
Linux (CentOS 5.1)
-
Untuk membuat Data Manager DSN di linux, saya definisikan DSN tersebut di install_dir/info/sys.odbc.ini. Sudah ada filenya, tapi biar amannya saya membuat backupnya dan saya edit.
-
Masuk ke direktori info cd install_dir/info/
-
cp sys.odbc.ini sys.odbc.ini.bckp
-
mc -e sys.odbc.ini (Saya menggunkan editor MC-Midnight Commander)
-
dan saya isi seperti ini:
-
[ODBC Data Sources]
-
ttirnet=TimesTen 7.0 Driver
-
-
[ttirnet]
-
Driver=/timesten/TimesTen/ttirnet/lib/libtten.so
-
DataStore=/timesten/TimesTen/ttirnet/info/ttirnet
-
DatabaseCharacterSet=US7ASCII
-
Authenticate=1
-
AutoCreate=1
-
-
Dalam hal ini nama DSN adalah ttirnet.
-
-
Setelah selesai membuat Data Manager DSN, kita masuk dan memanipulasi data store melalui DSN ttirnet
-
Masuk ke direktori info cd install_dir/bin/
-
ttIsql ttirnet
-
command > create user rcs247 identified by ‘rcs247′;
-
command > grant DDL, Admin to rcs247 ;
-
-
Sebelum kita buat Client DSN, maka untuk koneksi client ke server yang berbeda mesin, maka perlu diatur konfigurasi pada file install_dir/info/sys.ttconnect.ini. Pada file ini diletakkan konfigurasi nama logikal dari server, alamat dan portnya yang digunakan. Isinya saya coba seperti ini:
-
[ttirnetserver]
-
Description=TimesTen Irnet Server
-
Network_Address=10.1.80.99
-
TCP_PORT=17002
-
-
Kemudian kita buat Client DSN dengan mengatur konfigurasi di file $HOME/.odbc.ini, dan saya isi seperti ini
-
[ttirnetclient]
-
TTC_SERVER=ttirnetserver
-
TCP_PORT=17002
-
TTC_SERVER_DSN=ttirnet
-
UID=rcs247
-
-
Dimana nama Client DSN ini adalah ttirnetclient , dan nama logikanl server adalah ttirnetserver (seperti yang telah diset di sys.ttconnect.ini), nama Server DSN adalah ttirnet dan uiser ID nya adalah rcs247, sesuai dengan user yang tadi telah kita buat.
-
Untuk mencobanya dari client, kita pakai ttIsqlCS saja. Caranya
-
ttIsqlCS -connStr “DSN=ttirnetclient”
-
Atau bisa juga kita definisikan server tidak melalui langsung connection stringnya, yaitu:
-
ttIsqlCS -connStr “TTC_Server=10.1.80.99; TTC_Server_DSN=ttirnet; TCP_Port=17002”
-
Instalasi TimesTen di CentOS 5.1
Oracle TimesTen In-Memory Database atau yang lebih sering disebut sebagai TimesTen saja merupakan engine database relasional yang disimpan dalam memori, berbeda dengan database flat pada umumnya yang disimpan dalam flat file di harddsik. Konsekuensi dari penggunaan In-Memory Database ini adalah performansi kecepatan transaksi yang bisa lebih cepat. Sehingga banyak bisa digunakan untuk membangun sistem realtime. Dalam proses pengaksesan in-memory database ini pun juga memakai standar SQL, JDBC dan ODBC.
Seperti sistem yang sedang akan saya bangun (radar network) yang membutuhkan untuk diklasifikasikan sebagai realtime sistem. Antara proses transfer data dari tiap radar ke pusat data dan displaying data2 tersebut, sebisa mungkin berjalan bersamaan (hampir bersamaan). Sehingga saya disuruh untuk pake Timesten (selain RDBMS Oracle yang juga tetap dipake).
Masih baru akai ni, dan utk kali pertamanya saya pake mesin dg CentOS 5.1 sebagai server databasenya.
Persiapan Instalasi
1. Saya memakai user non-root untuk proses instalasi ini, sebelumnya saya juga pernah menggunakan user root utk instalasi. Jika ingin melakukan instalasi dengan user selain root. Maka pertamakali kita harus membuat user baru. Semisal kita buat user timesten.
useradd timesten
2.Buat direktori /etc/TimesTen dan set agar owned by user timesten (direktori ini digunakan sebagai Instance Registry oleh TimesTen Database). Untuk melakukan ini tentu kta harus login sebagai root.
mkdir /etc/TimesTen
chown timesten:timesten /etc/TimesTen
3. Download TimesTen In-Memory database dari http://www.oracle.com/technology/software/products/timesten/index.html
Proses Instalasi
1. Ekstrak master installer yang telah didownload tar -cvf timesten70400.linux86.tar
2. Jalankan setup.sh dan akan didapatkan tampilan pada konsol kurang lebih seperti ini
3. Akan muncul pertanyaan-pertanyaan yang di belakangnya (dalam tanda kurung siku [ ] ) adalah jawaban defaultnya, bisa diubah sesuai dengan keinginan kita.
4. Pertanyaan pertama adalah berkenaan dengan nama instance dari proses instalasi ini, jika langsung ditekan enter maka, nama instance akan mengikuti setingan defaullt yaitu tt70, jika ingin nama yang lainmaka masukkan nama tersebut, baru tekan enter.
5. Kemudian pilih produk yang akan diinstall. Pilihan [1] berrarti kita hanya ingin install engin in-memory database, tapi [2] engin in-memory database dan disertai dengan fasilitas Cache Connect dengan Oracle. Mengenai Cache Connect dengan Oracle akan dibahas belaakangan. InsyaAllah. Dan karen asaya menginginkan TimesTen yang saya install ada cache Connection dengan oracle, maka saya pilih yang [2]
6. Kemudian akan muncul
7. Kemudian masukkan tipe komponen yang ingin diinstall, apakah hanya komponen Data Manager [2] saja, atau client [3] saja, atau dua2nya [1]. untuk ini saya pilih komponen [1], jadi satu mesin bisa saaya fungsikan sebagai client ataupun data manager untuk TimesTen.
8. Kemudian masukkan drektori instalasi, dan direktosi daemon home nya.
9. Kemudian akan muncul tampilan kayak gini
10. Kemudian akan muncul pertnyaan untuk instalasi DemoDataStore, untuk sample.
11. Kemudian masukkan port utk TimesTen daemon, default 17000, dan saya pake ini.
12. Kemudian muncul pertanyaan apakah ingin memakai datastore access control, saya pilih yes.
13. Kemudian akan muncul tampilan seperti di bawah, dan pilih jawaban default (dengan langsung menekan enter) paa setiap pertanyaannya
14. Untuk TimesTen server, port yang idpakai default adalah 17002.
15. Dan terakhir akan muncul tampilan
16. Untuk mengecek status TimesTen (jalan atau tidak)
$TimesTen_Home/bin/ttStatus
17. Start atau Stop TimesTen dengan
$TimesTen_Home/bin/ttdaemonadmin -start
$TimesTen_Home/bin/ttdaemonadmin -stop
Melihat Registry Windows dengan Java
Dengan memanfaatkan perintah REG.EXE yang ada pada Windows, dan mengambil output dari hasil eksekusi terhadap perintah tersebut oleh klas Runtime dari Java, dapat dilihat isi dari registry. Contoh seperti berikut:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/package tool;
/**
*
* @author rcs247
*/
import java.io.*;public class RegQuery {
private static final String REGQUERY_UTIL = “reg query “;
private static final String REGSTR_TOKEN = “REG_SZ”;
private static final String REGDWORD_TOKEN = “REG_DWORD”;private static final String PERSONAL_FOLDER_CMD = REGQUERY_UTIL +
“\”HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\”
+ “Explorer\\Shell Folders\” /v Personal”;
private static final String CPU_SPEED_CMD = REGQUERY_UTIL +
“\”HKLM\\HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\”"
+ ” /v ~MHz”;
private static final String CPU_NAME_CMD = REGQUERY_UTIL +
“\”HKLM\\HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\”"
+ ” /v ProcessorNameString”;public static String getCurrentUserPersonalFolderPath() {
try {
Process process = Runtime.getRuntime().exec(PERSONAL_FOLDER_CMD);
StreamReader reader = new StreamReader(process.getInputStream());reader.start();
process.waitFor();
reader.join();String result = reader.getResult();
int p = result.indexOf(REGSTR_TOKEN);if (p == -1)
return null;return result.substring(p + REGSTR_TOKEN.length()).trim();
}
catch (Exception e) {
return null;
}
}public static String getCPUSpeed() {
try {
Process process = Runtime.getRuntime().exec(CPU_SPEED_CMD);
StreamReader reader = new StreamReader(process.getInputStream());reader.start();
process.waitFor();
reader.join();String result = reader.getResult();
int p = result.indexOf(REGDWORD_TOKEN);if (p == -1)
return null;// CPU speed in Mhz (minus 1) in HEX notation, convert it to DEC
String temp = result.substring(p + REGDWORD_TOKEN.length()).trim();
return Integer.toString
((Integer.parseInt(temp.substring(”0x”.length()), 16) + 1));
}
catch (Exception e) {
return null;
}
}public static String getCPUName() {
try {
Process process = Runtime.getRuntime().exec(CPU_NAME_CMD);
StreamReader reader = new StreamReader(process.getInputStream());reader.start();
process.waitFor();
reader.join();String result = reader.getResult();
int p = result.indexOf(REGSTR_TOKEN);if (p == -1)
return null;return result.substring(p + REGSTR_TOKEN.length()).trim();
}
catch (Exception e) {
return null;
}
}static class StreamReader extends Thread {
private InputStream is;
private StringWriter sw;StreamReader(InputStream is) {
this.is = is;
sw = new StringWriter();
}public void run() {
try {
int c;
while ((c = is.read()) != -1)
sw.write(c);
}
catch (IOException e) { ; }
}String getResult() {
return sw.toString();
}
}public static void main(String s[]) {
System.out.println(”Personal directory : “
+ getCurrentUserPersonalFolderPath());
System.out.println(”CPU Name : ” + getCPUName());
System.out.println(”CPU Speed : ” + getCPUSpeed() + ” Mhz”);
}
}
iSQL*Plus gak ada lagi di Oracle 11g Release 1
Ada beberapa komponen yang di-deprecated dari semula di Oracle 10g R.2 ada pada Oracle 11g R.1 tidak ada lagi, termasuk iSQL*Plus. Berikut ini komponen-komponen tersebut. :
- iSQL*Plus
- Oracle Workflow
- Oracle Data Mining Scoring Engine
- Oracle Enterprise Manager Java console
Dan ternyata jika pingin emmasang iSQL*Plus yang ada di 10g ke 11g menurut literatur yang saya dapatkan tidak bisa. Kita direkomendasikan unuk pindah ke Raptor (SQLDeveloper) atau Application Express - APEX (HTMLDB) atau juga command line sqlplus
Menjalankan (start) Listener dan Service Database pada Startup di Linux-CentOS 5
1. Agar service database bisa jalan pada saat startup yang pertama dilakukan adalah menset oratab yang pada kasus saya (di CentOs 5) ada di /etc/oratab. File oratab berisi nama SID, direktori $ORACLE_HOME dan mode utk start saat booting atao tidak (Y atau N)
indracx:/u01/app/oracle/product/9.2.0:Y
2. Membuat file di “/etc/init.d/dbora”. Untuk membuatnya perlu login ke user root
#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.
ORA_HOME=/u01/app/oracle/product/9.2.0
ORA_OWNER=oracle
if [ ! -f $ORA_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi
case "$1" in
'start')
# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
su - $ORA_OWNER -c $ORA_HOME/bin/dbstart
;;
'stop')
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
;;
esac
3. Ubah privileges ke 750.
chmod 750 /etc/init.d/dbora
4. Tambahkan service dbora ke chkconfig
chkconfig --add dbora
4. Atur run levels dan set agar bisa auto-start
chkconfig --level 345 dbora on
5. Utk mengecek hasil pake
chkconfig --list dbora











