GNU/Linux, Virtualization, Open Source, Oracle Fusion Middleware, Knowledge Management, troubleshooting & performance tuning tips.

Sunday, December 21, 2008

Ubuntu Kills your Laptop HD, Stop it!

It has been a known problem for Ubuntu since 6.06. I have no idea why it hasn't been fixed yet. It does affect 8.10 Intrepid Ibex. Maybe that's the price we pay for open source and freeware:)

I don't want to discuss the technical details about this issue again. For more info on this issue:
http://ubuntuforums.org/showthread.php?p=5031046

Normally, our laptop HD can handle 60000 Load_Cycle. I did see someone's Load_Cycle_Count hits 1 Million+ but his bloody HD is still working. So you'd better check your model specification to make sure.

Check if your HD is affected:

install smartmontools
sudo apt-get install smartmontools

smartctl -a /dev/sda | grep Load_Cycle_Count
193 Load_Cycle_Count 0x0032 092 092 000 Old_age Always - 87385

Check how fast the LCC is growing. In my case, the LCC grew 30-50 per hour before applying the fix...

If you feel the LCC grows too fast, try the command below and monitor if the LCC stops growing.
$sudo hdparm -B 254 /dev/sda

If it does help, we'll try to make this change permanent.

There are several workaround/fixes for this problem. I recommend using the ugly fix which is a script file hook up with acpi profile. It is easier to manage and roll back.

make a file named "99-hdd-ugly-fix.sh". The important thing is starting with "99".
Code:

$sudo gedit 99-hdd-ugly-fix.sh

make sure the file contains the following lines (fix it if you have PATA HDD):

#!/bin/bash
if on_ac_power; then
# on AC so don't do any head parking
hdparm -B 254 /dev/sda # you might need 255 or a different value
else
# either on battery or power status could not be determined
# so quickly park the head to protect the disk
hdparm -B 128 /dev/sda
fi

copy this file to 4 locations:

$sudo install 99-hdd-ugly-fix.sh /etc/acpi/resume.d/
$sudo install 99-hdd-ugly-fix.sh /etc/acpi/start.d/
$sudo install 99-hdd-ugly-fix.sh /etc/acpi/ac.d/
$sudo install 99-hdd-ugly-fix.sh /etc/acpi/battery.d/

By using install the file 99-hdd-ugly-fix.sh should have the x-bit set. Reboot and all these scripts will start taking effect.

Now it's done, LCC stops growing, peace of mind...

Again, I recommend reading this post before you start, it's very important that you understand what you are going to do. It's all on your own risk:)
http://ubuntuforums.org/showthread.php?p=5031046

In addition, I'll introduce how to check Load_Cycle_Count in Mac OS X and Windows.

Mac OS X
Install smartctl tool for OS X


Windows
Try Everest

Sunday, November 30, 2008

Free Dictionary solution for iPhone - use Stardict dictionaries for weDict

As a non native English speaker, I need good English-English dictionaries not only on my Laptop/desktop but also in my pocket.

On Treo 650, there is Zdic (free and opensouce app written by Chinese folks) with all kinds of free .pdb format dictionaries, works perfectly on Palm OS. I really miss the good part of Treo and Palm OS. While Palm is dying and hopeless, I have to choose my new platform. Early November I bought my new iPhone 3g 8G, simply because I am a *nix lover, its overall specifications meet my needs. In addtion, I don't take Windows (Mobile/CE) into account anyway.

As a result, I have to find a new bunch of apps and research the OS X mobile a bit. Fortunately it is a trimmed version of OS X, not hard for me at all.

Works for:
iPhone firmware 2.1 2.2
weDict 1.1 /weDict Pro 1.2 (works for 1.3 as well)

Note: if you upgrade weDictPro, custom added dictionaries will be kept.

Prerequisites:
  1. Jailbreak it
    use PWNageTool on Mac or QuickPWN on Windows, recommend using Cydia as package management tool, for more info, google please.
  2. OpenSSH installed and service started
    Use Cydia to install, search openssh package. ATP will take care of the installation and dependencies. In addition, I strongly recommend that we install Terminal/Finder/BossPrefs/SBSettings.
  3. Download the dictionaries you want in any language
    http://stardict.sourceforge.net/Dictionaries.php
  4. iPhone connected to the same wireless network as you Desktop/Laptop
    Get the LAN IP address, we need to use SSH.
  5. Any SSH tool
    Cyberduck or FileZilla for OS X
    Filezilla for Linux
    WinSCP/Filezilla for Windows
Hereby I use LDOCE as an example, it works for all other Stardict re-packed dictionaries.
1. Extrac stardict-longman-2.4.2.tar.bz2
2. Rename longman.dict.dz to longman.dict.gz or zip
3. Extrace and get longman.dict
4. Copy longman.idx and longman.ifo to /private/var/mobile/Applications/BFEA9FDA-0903-4321-9A7D-1A0DA030FF21/Documents folder (red+bold string varies on different devices, it may take some time to dig the right folder)
5. Change their attributes to 755 (-rwxr-x-r-x)
6. Launch weDict/weDict Pro, tap config button on bottom right, newly added dictionaries should be listed. Check the screen shot below:


If you don't like the dict name, you can double tap on the name and change it to whatever you like. If for some reason they are not listed, check the prefix for the dictionary file, make sure they are the same. Hold Home for 6 seconds to force exit the app, check again, it should work.


Difference between weDict Pro and weDict:
The Pro version has a built-in FTP service based on DiddyFTPServer, used to upload dictionaries . It's actually pointing to the same folder as I mentioned in the steps. And it is also capable to download dictionaries from a URL.

Also some one said performance of the free version is poorer than Pro, I don't know if it's true. Anyway, it's only 6 bucks.

Fore more info:
http://app.weiphone.com/wedict/index.html

Hope this helps. iPhone is excellent:)

Thursday, November 20, 2008

Too Many Open Files on Ubuntu Linux when installing Oracle BPM

Recently I've been working on VM images for test a test environment based on the new Oracle BPM 10gR3 release and the OS has to be Linux for some reason.

Environment
OS: Ubuntu 8.10 Intrepid Ibex 32-bit
Kernel: 2.6.27-7-generic
JDK: Sun JDK 1.6.0_10
Weblogic Server 10gR3 on JRockit 1.6.0_05 (R27.6.0-50 linux ia32)
(I use the Oracle Service Bus 10gR3 install media which includes WLS)
Oracle 10g XE


We can do it even though Ubuntu is not a supported configuration as per the support matrix. Baiscally all Linux distribution is the same, the only thing matters is the administrator;-)
Interoperability Matrix:
http://www.oracle.com/technology/products/bpm/obpm_config_matrix.html

Note: Create a user for WLS and OBPM is recommended. Using root to install is okay but DO remember to change the owner of the destination to the user created to run WLS and OBPM later. DO NOT use root to run WLS and OBPM in production environment for security.

  1. Launch admin center using root, just use su -s to avoid typing sudo all the time. If not we may encounter permission problems.
    /opt/OracleBPMwlHome/bin/./obpmadmcenter

  2. Click configuration, in Directory tab, click add to create directory. I don't want to talk all the details, please refer to the official installation guide for more details:http://download.oracle.com/docs/cd/E13154_01/bpm/docs65/config_guide/index.html

    Normally this is probably a pain free process (actually it was on Windows as I did it a few days ago)

    In this case, the Configuration wizard hang at around 70%, like in the screenshot.

So I checked the WLS logs as well as the Adim Center logs. It seems that errors were encountered when executing WLST. Errors in Admin Center log:

java.io.FileNotFoundException: /opt/bea/user_projects/domains/bpm/config/config.xml (Too many open files)

This is simply due to the default Linux user security limit, by default a user's max open files (per Terminal session) is 1024 on almost all Linux distributions that I am aware of. This default value is the culprit in this case. For WebLogic Server deployment, it is recommended to change the value to at lease 131072 (Oracle Enterprise Linux recommended, changes can be seen by looking into the oracle-validated RPM package).

Session Wide Solution:
Increase the limit of open files using the command ulimit -n 131072 in a Terminal session, start the obpmadmcenter and WLS in the same Terminal session.

Use ulimit -a or ulimit -n to check the new limit. This is just a temporary workaround, you lose the changes once terminal session ends.

Make the change permanent:
Change the file /etc/security/limits.conf (root access required)
Add the following lines, assume user is oracle (the following changes are recomended by Oracle, for Fusion Middleware and Database 10g/11g):

oracle hard nofile 131072
oracle soft nofile 131072
oracle hard nproc 131072
oracle soft nproc 131072
oracle soft core unlimited
oracle hard core unlimited
oracle soft memlock 3500000
oracle hard memlock 3500000
# Recommended stack hard limit 32MB for oracle installations
# oracle hard stack 32768

Start Admin Center, start BPM Web applications, then Weblogic Server. Now you can login to Process Administrator (webconsole) and Workspace and see the sample process if you selected the option.

Alternative workaround(from Official Debian Documentation and Oracle Technology Network):

make the change without rebooting the server box

sysctl -w fs.file-max 65536
sysctl -a
(echo "65536" > /proc/sys/fs/file-max)

To make this change permanent by inserting the kernel parameter in the /etc/sysctl.conf startup file:
# echo "fs.file-max=65536" >> /etc/sysctl.conf

To query the current usage of file handles by using the following:
# cat /proc/sys/fs/file-nr
825 0 65536

Difference between changing the resource limits via ulimit and sysctl:

Basically the priority is: soft limit < style="font-weight: normal;">The Linux kernel provides the getrlimit and setrlimit system calls to get and set resource limits per process. Each resource has an associated soft and hard limit. The soft limit is the value that the kernel enforces for the corresponding resource. The hard limit acts as a ceiling for the soft limit: an unprivileged process may only set its soft limit to a value in the range from 0 up to the hard limit, and (irreversibly) lower its hard limit. A privileged process (one with the CAP_SYS_RESOURCE capability) may make arbitrary changes to either limit value.

Doubt: Why the output from cat /proc/sys/fs/file-nr and lsof | wc -l always different?
Basically, file-nr provides the open File Descriptors (Data Structure, required handle when applications try to open a file) while lsof outputs Open Files including those NOT using File Descriptors (e.g. current working directory, library files mapped into memory, executable text file etc...).

Generally speaking, lsof of a process always > process's open file descriptors

Do a quick test on your system:
Get Firefox's pid

Get number of opened files by Firefox
lsof -p pid | wc -l
Or
lsof | grep pid | wc -l

Check Firefox process's File Descriptors
ls /proc/pid/fd | wc -l

Compare, got it?
Note: Loaded Library files can be checked by digging into /proc/pid/maps

For Oracle Enterprise Linux and Red Hat Enterprise Linux
Install the oracle-validated package which will resolve all Oracle Fusion Middleware and Database required dependencies and system configurations. Simple run yum install oracle-validated or download the rpm and manually install it!

Tips: Install OpenSSH for easy management as a VM. If you prefer Web UI, try webmin it is also a good tool for overall management. I install webmin on each of my Ubuntu Server VM or box.

References:

Monday, November 17, 2008

Always Remember to Lock your Computer Windows/Linux/Mac OS X

It's always important to lock your computer when you are away from it, even for a short while. I do see a lot of my friends, colleagues they just don't do this. They are not aware of the impact of a malicious attempt. You never know what happened until you find something weird happened to you data/bank account or things like that.

I formed this good habit when I was working for company M. At that time, if you don't lock you computer and was noticed by anyone an invitation email to all team members for lunch or dinner will be sent out. Well, it's no good to you wallet:(


Windows Family
Hotkey/Shortcut
Win+L or Ctrl+Alt+Del and press L

GNU/Linux
Ctrl+Alt+L
Note: at least this works on Debian/Ubuntu and Fedora Core series, GNOME Desktop Environment. Not sure if it applies to all distributions as they may use different desktop environment like KDE, XFCE, WM...

If you use GNOME, you can also add Lock screen applet and to do the same by clicking it.

Mac OS X
Use the Free locker widget in Dashboard, the fastest way would be F12 - > Double click on Lock widget.

Download: http://www.apple.com/downloads/dashboard/networking_security/locker.html

Alternative:
1. In QuickSilver, Create a trigger for /System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app, in my case, I use command+L which is easier to remember.

Note: It's a bit weird to create trigger, especially the process to search. For peace of mind, just copy and paste the full path of the ScreenSaverEngine.app:)




Special Thanks to Brian who shared the tips with us in comment:)

2. execute this command in Terminal
/System/Library/CoreServices/"Menu Extras"/User.menu/Contents/Resources/CGSession -suspend


I don't like to use the hot corner to trigger a screen saver anyway. So to normal users use the Locker widget is probably the best approach I have found so far to lock a Mac.

It's weird to me that Apple don't assign a key combination to lock OS X.

Hope this helps.

Friday, November 14, 2008

Switch Oracle BPM (ALBPM) Studio Language

AquaLogic (Fuego) BPM is now part of Oracle BPM Suite and renamed to Oracle BPM.

Back in the 5.x era, the studio IDE is a Swing based app. As far as I know, from 5.7 BEA started to implement i18n for Studio. However, only several languages are available. It can be switched via menu.

From 6.0 whose code name is puma, a new Studio IDE is built on top of Eclipse IDE. In theory it is should support multiligual. However there is not apparent options in the UI to switch language.

A coworker of mine in China asked my that why his ALBPM 6.0 Studio was in Chinese Simplified. And he was not able to change it. After looking at the locale setting which was zh_CN. And he was not willing to change the system locale. So I told him to try switching using eclipse way:) It did work. I then digged further into the installation folder and found it is multilingual in fact.

Tip applicable for version:
ALBPM Studio 6.0.x
Oracle BPM Studio 10gR3 (10.3) which is ALBPM 6.5

How to use:
Windows OS
Edit the Studio shortcut and add the -nl option. It should look like this:
C:\Oracle\OracleBPMStudio\eclipse\eclipse.exe -nl de

*NIX
Assume that we install Studio in /opt folder.
/opt/OracleBPMStudio/eclipse/./eclipse -nl de
Note: In the 10gR3 Studio installatio folder, there is even no icon for the app but a Eclipse icon...

Check the installation folder and you will find the available languages:
C:\OracleBPMStudio\studio\eclipse\plugins
/opt/OracleBPMStudio/studio/eclipse/plugins

en
es
ja
ko
zh
zh_TW
de
fr
it
nl
pt

For more info on Eclipse:
http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclipse.platform.doc.user/tasks/running_eclipse.htm

Wednesday, October 22, 2008

Install Ubuntu from USB Stick, Stop odering free Ubuntu CDs

Ubuntu 8.10, Intrepid Ibex is around the corner. I saw the news among my RSS subscriptions that we can now pre-order free Ubuntu 8.10 CDs now.

In the past few years, I have applied for 6.0.6 LTS CDs for x86, x86-64, powerpc, sparc(actually it's not possible for me to have a sparc powered machine at home, why I need this?), 7.04 CDs x86, x86-64 when I was working and living in Shanghai, China. In addition to the CDs, some stickers were in the package. They were posted from Europe and the postage was around several euros. The total cost would not be cheap.

To be open, I applied for Solaris 10(sparc + x86) free DVDs from Sun and got 2. I didn't feel guilty because after all Sun Microsystem is a commercial company. They have enough budget for things like this.

Later on, I found these CDs were useless to me, I hardly use them. Finally I gave all them away to my colleagues who were interested in trying Linux. I think it was a good result. It seemed that I used them to show that I am a GNU/Linux, Open Source supporter rather than install and spead. In fact I use the downloaded ISO image as well as bootable USB stick created via UNetbootin much more often.

I think it was something stupid. I requested for something useless to me, whilst it's a waste of Canonical's money as well as their limited resources.

Here I suggest that Ubuntu as well as other distros users try using USB installtion. It's much faster, cost effective, reusable and environmental friendly. I assume that now most machines support boot from USB devices.

Basically, we can create a bootable Linux distro USB stick by using UNetbootin (Universal NetBook Installer)/Ubuntu Live USB Creator/Live USB System Creator to create a bootable USB stick. I personally prefer to use UNetbootin. It's with a GUI and available on Linux and Windows. So easy to use.

In brief what UNetbootin can do for us:
1. Download the distro image automatically and install the distro to a USB stick, it's bootable. If we install distros like Ubuntu which supports LiveCD installation, of course you can now boot and install from the stick.
2. Already have the image? Just do it on the fly by choosing image and specify the path.
3. Advanced options, custom...

UNetBootin: http://unetbootin.sourceforge.net

More info: Install from USB Stick

Stop requesting useless CDs and save money for Canonical, leave the free CDs for people in real need, those who can't afford a USB stick and CD/DVD burner, those who don't have easy+fast internet access, those who...

That's what we can to do to spread Ubuntu - Linux for Human Beings. Also, stop burning useless CD/DVDs to protect our environment, our earth.

Saturday, October 18, 2008

Oracle BPM 10gR3 (ALBPM 6.5) GA

Oracle BPM 10gR3 which was BEA AquaLogic BPM, Fuego BPM is GA now.

From the new versioning, we can clearly see that it is 10.3. However, in fact it is 6.5.

After the acquisition, ALBPM has been renamed to Oracle BPM and put into the Oracle Fusion Middleware stack, along with Oracle BPEL Process Manager and Oracle BPA Suite.

Differences between BPM Suite offerings
Oracle
BPM
Human and System Centric BPM with SOA. Easy integration with WebCenter Interaction (AquaLogic Interaction, Plumtree Portal).
Business user friendly
Collaborative
Agile
BPMN & BPEL
SOA architecture
Apps integration, AIA


Oracle BPEL Process Manager
System Centric
SOA architecture
Apps integration, AIA
BPEL
High performance STP
Round-tripping with BPA

Oracle BPA Suite
Methodology Driven Process Modeling and Analysis.
Process Experts
Six Sigma, Lean
Methodology
Hierarchical Modeling
Documentation


Download: http://edelivery.oracle.com
or
http://www.oracle.com/technology/software/products/bpm/index.html

Fill in some necessary info and go to Oracle Fusion Middleware, choose your platform, you will finally find them in Oracle Application Server 10g Release 3 (10.1.3) Media Pack.

Studio
Enterprise Standalone
Enterprise for Weblogic Server
Enterprise For Websphere Application Server

I have no idea why the links on the page below haven't been upgraded yet. Maybe Oracle is going to decommission the BEA page.
http://www.oracle.com/technology/software/products/ias/bea_main.html

Oracle BPM 10gR3 docs
http://download.oracle.com/docs/cd/E13154_01/bpm/docs65/index.html
The docs are still not helpful enough, I hope that Oracle improves its newly acquired products. At least make them as good as Oracle Database docs.

Interoperability matrix:
http://www.oracle.com/technology/products/bpm/obpm_config_matrix.html

All BEA docs, including new versions of WebCenter Interaction suite (AquaLogic User Interaction).
http://www.oracle.com/technology/documentation/bea.html

Enjoy the new release. I believe that the next GA will be named 11g, if there is such thing.

Articles you may be interested in: Ten reasons why you should look at Oracle BPM Suite 10gR3

Sunday, August 31, 2008

My first Post on Blogspot

As a result of the takeover, my tech blog on dev2dev China community has been decommissioned without notification. I don't even know when and where it is done. Will all the invaluable tips and articles contributed by the tech folks be fully migrated to OTN? It is a big question mark.

Anyway, I have had backup for all the articles, I should thank Windows Live Writer (I use it in the only Windows I have). I recognize it as one of the best Windows Live projects (The others would be Windows Live Mail and Windows Live Folder Share, Live Mesh.).

As a knowledge worker nowadays, it sounds weird if u don't have a blog to share tips and experiences with folks. And also, some investigation statistics implies that blog and social networks seem to be some new form of resume and a better way to present your abilities. It's pretty much the new form of seeking new candidates and an alternative to traditional resume. Fair enough.

I am in the middle of moving and translating my previous articles into English. Later on, I will post articles mostly in English. But comments in Chinese warmly welcomed.

I think I am going to share more interesting stuff here.

About Me

Sydney, NSW, Australia
Keep Life Simple and Stupid:)

FriendFeed badge

Tags