JRockit Virtualization Edition

Ab heute gibt es Oracle WebLogic Server on JRockit Virtualization Edition als Download. Vor ein paar Wochen gab es bereits ein Meldung bei heise.de zu neuen Java-Virtualisierungswerkzeugen von Oracle – Oracle präsentiert Java-Virtualisierungswerkzeuge. Die technische Basis für dieses Produkt wurde Ende 2006 von der Firma BEA als Liquid VM angekündigt (theserverside.com – JRockit’s Liquid VM could be the first real Java OS). Hinter der JRockit Virtualization Edition steckt der Ansatz eine Java VM direkt auf virtualisierter Hardware, ohne Betriebssystem-Schicht, laufen zu lassen. Einen ähnlichen Ansatz stellt das Projekt JNode.org (Java New Operating System Design Effort) dar.

Oracle liefert die JRockit Virtualization Edition zusammen mit Weblogic als 370 MB grosses Zip-File. Darin sind folgende Dateien enthalten:

# unzip -t wlsvePackage.zip 
Archive:  wlsvePackage.zip
    testing: wlsve/                   OK
    testing: wlsve/system.img         OK
    testing: wlsve/vm.cfg             OK
    testing: wlsveimagetool.jar       OK
    testing: README.txt               OK
    testing: wlsve_medrec_domain_with_odb.pdf   OK
    testing: THIRDPARTYLICENSEREADME.txt   OK

Hauptbestandteil ist das Disk-Image system.img

$ qemu-img info wlsve/system.img 
image: wlsve/system.img
file format: raw
virtual size: 1.0G (1073741824 bytes)
disk size: 1.0G

Als Dateisystem wird in diesem Disk-Image ext2 verwendet, die Disk lässt sich daher unter Linux ohne Schwierigkeiten direkt mounten.

# mount -o loop wlsve/system.img /mnt
# cd /mnt
# ls -l
total 20
drwx------ 8 root root 4096 2010-04-14 02:48 application
drwx------ 3 root root 4096 2010-04-14 02:49 boot
drwx------ 8 root root 4096 2010-04-14 02:49 jrockitve
drwx------ 2 root root 4096 2010-04-14 02:48 lost+found
-rw------- 1 root root  361 2010-04-14 02:49 VERSION

Für den Betrieb einer Virtuellen-Maschine mit JRockit VE wird eigentlich Oracle VM benötigt. In einem ersten Test ließ sich das Disk-Image aber auch in einer normalen Xen-Umgebung booten. Hierzu wurde die Konfigurations-Datei vm.cfg mit folgendem Inhalt versehen:

name="wlsve01"
bootloader="/usr/bin/pygrub"
memory=1024
disk=['tap:aio:/var/nfs/system.img,sda1,w']
vif=['bridge=xenbr0']

Der Start der Xen-Domain erfolgt dann wie gewohnt mit den entsprechenden Xen-Befehlen.

# xm create -c vm.cfg

FC5 – install j2sdk1.4.2_06

I just tried to install j2sdk1.4.2_06 under FC5 and got:

[root@w0004 stage]# bash j2sdk-1_4_2_06-linux-i586.bin

...

Do you agree to the above license terms? [yes or no]
yes
Unpacking...
tail: cannot open `+486' for reading: No such file or directory
Checksumming...
1
The download file appears to be corrupted.  Please refer
to the Troubleshooting section of the Installation
Instructions on the download page for more information.
Please do not attempt to install this archive file.

hmm… well, Google is always your best friend :-).

You need to set:

[root@w0004 stage]# unset _POSIX2_VERSION=199209

to work around that problem.

OC4J JSP Profiling with JProbe

I have done some Profiling with JProbe – hey I didn’t know that you can download a Freeware Edition from Quest.

To get it working with Oracle OC4J 10g (Version 10.1.3) I used the following configuration:

  • Application Server Type: Other Server
  • Server Directory: toplevel directory where you installed OC4J (<install -dir>)
  • Server Class: oracle.oc4j.loader.boot.BootStrap
  • Class Path: <install -dir>/j2ee/home/oc4j.jar
  • Java Executable: /usr/java/j2sdk1.4.2_09/bin/java
  • Java Options: -DORACLE_HOME=<install -dir>
  • Working Directory: <install -dir>
  • Server Class Arguments: -config <install -dir>/j2ee/home/config/server.xml

I hope that helps to get you started with profiling. It is always a cool thing to see where the performance bottlenecks are buried inside of some piece of software. Sometimes some „improvements“ make it worse when seeking to make it better :-D.