Been hearing about the good view and nice food at Si Chuan Dou Hua Restaurant @ UOB Plaza for quite some time.
hungrygowhere put it at 7.2 and yum.sg put it at 6.1. should be quite safe i thought. Is it? let me pen down my experience.
The place is just a stone throw from Raffles MRT station. Though i find it a hassle to switch lift to get to level 60 but the way up is pretty smooth. not much people in the building on a sunday evening.
View from the window is actually pretty good though today the weather is a little too foggy/misty for taking photos.

I always like to bring my family during occasions to try out Cantonese and other good food. Cheap or expensive, no harm trying for once.
Here we were served with pickles while we browse through 1 set of menu for the 4 of us. er... how come only one set? no money to print because of recession? well, just joking. looks like the 'feel good' feeling is not there already. we were given ample time to go through the menu though.
First thing, i asked what tea do they served? knowing that my dad's habit of ordering "tie guan yin" tea, i asked if i can order one pot but was told they don't have serving in pot. i thought that this is very strange but never mind. 1 "tie guan yin" and 3 "ba bao cha" then. i worry that the drink might become a nightmare.

What they didn't say was that the guy with the special kettle will refill you tea cup. I like the "ba bao cha". the fragrance is balance and calming. The guy with the special kettle did refill our cups a few times, each time never fails to amaze me. Pardon for the rather weak camera in the phone.
Ordered chiken with mushroom in claypot. The chicken is tender and not too oily. Surprised that the garlic smell and taste is somewhat plain. mum says that the chef could have done something to prevent the garlic breath from us later. haha...

Now i see something. How come the pot is chipped? Feel that this is not right as the restaurant should be a fine chinese dinning place right? Would germs or other stuff get absorbed into the claypot? yucks!
See below for a closed up.

Next up is the celery with black fugus. The cooking is average. not too oily and the fried mee basket is done just crispy.

we also had some ee-fu noodle and yang chow fried rice. This 2 dishes, i find is quite good. nicely done and the ingredients are just right. in my opinion, the fried rice tasted better than the din tai fung restaurant i tried in Taiwan. i have not eaten any din tai fung in Singapore since the experience in din tai fung. Those who know me will know why. :P
After the food's eaten, the plates get collected one by one, what's left on the table are the 4 tea cups. What's next? i'm clueless on what to do next. Shouldn't the waitress ask me if i need deserts or more tea?
As i have reserved the table with informing them that we are celebrating a birthday there. They have a nice gesture of offering to give birthday cake if you pre-inform them. I asked if the birthday cake is ready. The waitress didn't know. asked my name, my phone number and checked. wasted more time. Then the cake comes.
They had a nice little chocolate cake. Surprise! The cake is purchased from Hans. Then another wait. we had out own singing of birthday song by ourselves, then wait. no plates. Asked for plates. Then one of the waitress offered to cut the cake for us. ok... but yet another surprise. we each received a small slice of the cake and never see the rest of the cake ever again. i'm like, huh? only a slice? what do they do to the rest of the cake? supper for the staff tonight? hahaa....

I'm fed up with the service rendered so far. While being served the cake, i asked for the bill to be served when we finish the cake. Didn't even want to order desert. Do inform that you can using your UOB card to enjoy 15% discount. Only for ala-carte.
oh yes. remembered that we were served pickles before ordering? The waitress actually took back one plate of the pickles that we didn't touch, leaving the one we have touched. emm.... does it mean that the pickles are kept and will be served to another customer? cost-saving measure? shouldn't it be left on the table in case we eat it during the meal? how unprofessional.
Overall, I think given the price point, the service given is very lacking. The good is just nicely done but not special nor very good. i have experienced much better Cantonese food else where at similar pricing. The waitress serving you don't even know that you have made a reservation with the birthday celebration.
Also given the rather nicely decorated place, the chipped claypot and the worn-out table cloth shouldn't be occuring here. Another thing, there is only one pathetic cheap serviette
I would rate the food at 6 / 10.
Service at 3 / 10.
Grand overall at a lousy 4 / 10 since my emphasis is always slight more on the service.
Sunday, September 20, 2009
Dinner at Si Chuan Dou Hua Restaurant @ UOB Plaza
Moving large directories in Solaris
Learnt a neat way to transfer a large directory of files, esp useful if you are going to move more than 8Gb of data.
1) cd into that directory.
2) use the following command
# tar cpBEf - * | ( cd /
Do note that the "E" flag is very important if you are copying files that are larger than 8Gb.
Persistent route in Solaris 10
Found a neat feature in Solaris 10.
An improvement for static routing.
Simply type 'route -p' for persistent route which Solaris will store the entry in /etc/inet/static_routes.
One more excuse not to use your own routing file and putting into /etc/rc3.d/.
i.e.
# route -p add net 10.10.10.0 10.50.50.254 1
# more /etc/inet/static_routes
# File generated by route(1M) - do not edit.
net 10.10.10.0 10.50.50.254 1
Have fun!
Getting "Host key verification failed" error message when you try to ssh to any server including localhost
In case any of you ever get the "Host key verification failed" error message when you try to ssh to any server including localhost. Thanks kaisen.
Symptoms:
Unable to ssh to any server including localhost when using a non-root account.
Consistently getting the "Host key verification failed" error message even when
~/known_hosts is already empty or doesn't exist
~/known_hosts never gets updated with new host keys
Reason:
Device pointed to by /dev/tty is not of 666 permission.
Resolution:
chmod 666 /dev/tty
Example:
Failed ssh attempts to localhost and other servers:
root@myserver:/etc/ssh>su - account1
myserver% ssh devusr@localhost
Host key verification failed.
myserver% ssh devusr@myserver
Host key verification failed.
root@myserver:/etc/ssh>su - myname
-bash-3.00$ ssh -x myname@myserver
Host key verification failed.
-bash-3.00$ ssh -x myname@myserver
Host key verification failed.
The culprit:
root@myserver:/etc/ssh>ls -l /dev/tty
lrwxrwxrwx 1 root other 26 Sep 11 2006 /dev/tty -> ../devices/pseudo/sy@0:tty
root@myserver:/etc/ssh>ls -l /devices/pseudo/sy@0:tty
crw--w---- 1 root tty 22, 0 Dec 15 20:20 /devices/pseudo/sy@0:tty
chmod 666 /dev/tty:
root@myserver:/etc/ssh>chmod 666 /devices/pseudo/sy@0:tty
root@myserver:/etc/ssh>ls -l /devices/pseudo/sy@0:tty
crw-rw-rw- 1 root tty 22, 0 Dec 15 20:20 /devices/pseudo/sy@0:tty
root@myserver:/etc/ssh>su - account2
-bash-3.00$ ls -l /devices/pseudo/sy@0:tty
crw-rw-rw- 1 root tty 22, 0 Dec 15 20:20 /devices/pseudo/sy@0:tty
ssh should now works and you are able to add new host keys to ~/known_hosts:
-bash-3.00$ ssh -x myname@myserver
The authenticity of host 'myserver (10.100.10.100)' can't be established.
RSA key fingerprint is 43:27:c1:aa:b9:c9:f1:21:33:11:aa:dd:ee:ff:10:9f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'myserver,10.100.10.100' (RSA) to the list of known hosts.
Password:
Last login: Mon Dec 15 19:20:41 2008 from myserver2
Sun Microsystems Inc. SunOS 5.9 Generic May 2002
$ Connection to myserver closed.
-bash-3.00$ logout
Retrieving errors generated in FMA in Solaris 10
Found this script circulating.
NB: Matty, hope you don't mind me listing this useful stuff to share.
#!/bin/bash
#
# Program: E-mail fault manager errors
#
# Version 1.0
# Initial Release
#
# Last Updated: 08-18-2006
#
# Purpose:
# Fmadm.sh queries the fault manager to see if errors have been
# generated. If an error is detected, the script will email the
# admininstrator defined in the ADMIN vairable with the error
# details.
#
# License:
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# Installation:
# Copy the shell script to a suitable location
#
# Usage:
# To check for events once per hour, add a cron job similar to the following:
#
# $ crontab -l | grep fmadmnotifier.sh
# 0 * * * * /etc/scripts/fmadmnotifier.sh
#
PATH=/usr/bin:/sbin:/usr/sbin:/usr/sfw/bin
# Who to E-mail with new updates
ADMIN="root"
# Location of binaries
AWK=$(which awk)
FMADM=$(which fmadm)
HOSTNAME=$(which hostname)
MAIL=$(which mailx)
MKTEMP=$(which mktemp)
# Check to make sure the mail binary exists if [ ! -f ${MAIL} ] then
echo "Cannot find ${MAIL}"
exit 1
fi
# Check to make sure the fmadm utility exists if [ ! -f ${FMADM} ] then
echo "Cannot find ${FMADM}"
exit 1
fi
# Verify that mktemp exists
if [ ! -f ${MKTEMP} ]
then
echo "Cannot find ${MKTEMP}"
exit 1
fi
# Run fmadm fauly to check for hardware errors FMADMOUTPUT=$(${FMADM} faulty | ${AWK} '$0 !~ /STATE/ && $0 !~ /^----/ { print $0 }')
if [ -n "${FMADMOUTPUT}" ]
then
WORK=`${MKTEMP} /tmp/fmadm.results.XXXXXX`
echo "The fault manager detected a problem with the system hardware." >> ${WORK}
echo "The fmadm and fmdump utilities can be run to retrieve additional" >> ${WORK}
echo "details on the faults and recommended next course of action. " >> ${WORK}
echo "" >> ${WORK}
echo "fmadm faulty output:" >> ${WORK}
echo "" >> ${WORK}
# TODO: Find a way to do all of the above in memory
${FMADM} faulty >> ${WORK}
HOST=$($HOSTNAME)
cat ${WORK} | ${MAIL} -s "Hardware fault on ${HOST}" ${ADMIN}
rm -f ${WORK}
fi
How to fix X forwarding broken by Aug 09 EIS on Solaris
Quite a while back, encountered X forwarding broken for many of the servers.
Basically, this is caused by the SSH patch due to regression in SSHD
Solaris 9 with patch 122300-28 or later
Solaris 10 with patch 126133-03 or later
Solaris 10 with patch 138060-03 and without patch 138060-04
To work around this issue, the following command can be executed as root user:
# ifconfig lo0 inet6 plumb up
More information can be found in this article - sun link
How to setup SSL certificate for MQ6
I have setup this for MQ communication with some external party.
In brief, the steps are as follows
1) Create a key store (key.kdb is the default name)
# gsk7cmd -keydb -create -db
i.e.
# gsk7cmd -keydb -create -db /var/mqm/qmgrs/
** Important to stash the password, otherwise MQ will not know what password to use. The password is stash to key.sth.
2) Generate a certificate (CSR)
# gsk7cmd -certreq -create -db
^^ dn --> distinguished name. X.500 distinguished name enclosed in double quotes.
Note that only the CN attribute is required.
You can supply multiple OU attributes.
*** VERY IMPT
For MQ server, please use ibmwebspheremq'queue manager name' without the quotes. Do not try to "learn" from the hard way. All small letters and do follow exactly.
For MQ clients, please use ibmwebspheremq'userid' without the quotes.
i.e.
# gsk7cmd -certreq -create -db key.kdb -pw
3) Sent to CA to sign it.
4) Add the certificate signed by CA to MQ6.
# gsk7cmd -cert -receive -file
[ Option -add --> add a CA cert so that the signer is trusted]
[ Option -receive --> receive a cert signed by a CA]
# gsk7cmd -cert -receive -file SSL.cert -db key.kdb -pw
4a) Display the certificate. Check that the Subject and Issuer is different.
# gsk7cmd -cert -list -db
# gsk7cmd -cert -details -db
i.e.
# gsk7cmd -cert -details -db key.kdb -pw
5a) Alter MQ6 key location to /var/mqm/qmgrs/
# runmqsc
# ALTER QMGR SSLKEYR ('
i.e.
# ALTER QMGR SSLKEYR ('/var/mqm/qmgrs/
5b) Refresh the security setting in MQ server.
# refresh security type(ssl)
6) configure MQ6 channels that needs SSL.
# runmqsc
# alter chl('
# alter chl('
i.e.
# runmqsc
# alter chl('
# alter chl('
7) Restart Channel for the changes to take effect.
# stop chl('
# start chl('
i.e.
# stop chl('
# start chl('
8) Done.
Tip:
In order for the gsk7cmd to run properly, you will need to set the environment # export JAVA_HOME=/opt/mqm/ssl/ # export PATH=$PATH:/bin:/usr/bin
To verify the certificate,
[Cert that you added in] gsk7cmd -cert -list personal -db key.kdb -pw
[All Cert in the DB] gsk7cmd -cert -list -db key.kdb -pw
[To show cert details] gsk7cmd -cert -details -db key.kdb -pw
[Extract cert from DB] gsk7cmd -cert -extract -db key.kdb -pw
[To check cert validity] gsk7cmd -cert -list all -expiry 720 -db key.kdb -pw
To import certificate,
[Import] gsk7cmd -cert -import -file
[Import with label change] gsk7cmd -cert -import -file
To Export certificate,
[Export to file] gsk7cmd -cert -export -db key.kdb -pw
To delete certificate,
What are the processes for MQ 6
1. RUNMQLSR - MQ TCP listener (multi-threaded)
2. AMQCLMAA - MQ TCP listener (single-threaded)
3. AMQRMPPA - Channel process pooling job
4. RUNMQCHI - MQ channel initiator
5. AMQCRSTA - MQ receiving MCA jobs
6. RUNMQCHL - MQ sending MCA jobs
7. AMQCRS6B - LU62 receiver channel
8. AMQPCSEA - MQ command server
9. RUNMQTRM - Application trigger monitor
10. RUNMQDLQ - Dead letter queue handler
11. AMQFCXBA - MQ Broker Worker Job
12. RUNMQBRK - MQ Broker Control Job
13. AMQZMUC0 ('0' is a zero) - MQ Utility Manager
14. AMQZMUR0 ('0' is a zero) - MQ Utility Manager
15. AMQZMGR0 ('0' is a zero) - MQ Process Controller
16. AMQRRMFA - MQ cluster repository manager
17. AMQZDMAA - MQ deferred message manager
18. AMQALMPX - MQ Log Manager
19. AMQZFUMA - MQ Object Authority Manager
20. AMQZLAS0 ('0' is a zero) - MQ LQM agents
21. AMQZLAA0 ('0' is a zero) - MQ LQM agents
22. AMQZXMA0 ('0' is a zero) - MQ Execution Controller
Problem
Q1. What is process amqzlaa0?
Q2. Why does it take so much cpu time?
Solution
A1. The 'amqzlaa0' process is the WebSphere® MQ agent.
A2. Agent processes act as buffers between the QMGR and applications. This is where most of the WebSphere® MQ work gets done.
Additional Information
The 'amqzlaa0' process is the agent process spawned by the execution controller ('amqzxma0') on behalf of the application. These agent processes are the buffer between the QMGR and applications, and it is where most of the WebSphere® MQ work gets done. Expected to see heavy CPU and memory utilization for amqzlaa0 on a busy box.
Each agent thread handles a request for one connection and these threads can be used to service multiple applications. A new agent is spawned when no threads are available for a new connection request.
Selective Display in MQ
There are times where we need to quickly display all the queue depth, trying to look for queues that have more than X messages. Note that this is applicable for MQ 6 and newer.
We used this command:
dis q(*) curdepth
Result is a very long list of output with much of it unwanted.
In MQ6, the 'WHERE' parameter in introduced. The same example, say X is 1.
dis q(*) where (curdepth gt 1)
1 : dis q(*) where (curdepth gt 1)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.AUTH.DATA.QUEUE) TYPE(QLOCAL)
CURDEPTH(70)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.CHANNEL.SYNCQ) TYPE(QLOCAL)
CURDEPTH(4)
This time, the result returns only those of more than 1 message in the queue.
If you wish to find out which channels are having problems, can try something like this
dis chs(*) where (status ne running)
Say if we want to trace messages mysteriously disappearing from a particular queue but we don't know which application is reading from it, we can try this..
dis conn(*) where (appltype eq USER) pid connopts appltag userid channel
Here, we listed all connections by the current Queue Manager where application type is USER. This excludes all system processes and objects. Also only display the PID, MQ connection option, name of binary, user ID and perhaps the channel that the application is connecting over.
Operators allowed for boolean comparison is as follows. Note that only simple boolean allowed. No compound usage yet.
operator := [ LT | GT | EQ | NE | LE | GE | CT | EX | LK | NL | CTG | EXG ]
Have fun.
How to configure UNIX IPC resources for Websphere MQ
Found this quite a while back.
Try to share this during my free time.
This is a good tool that will help to tune the system for MQ.
Has tried it for MQ 5.3, 6 and even 7 plus Solaris 8, 9 and 10.
There is a attachment which you need to download and try.
Reference: IBM MQ Link
Obtain yesterday's date using perl
On shell scripting,
YDATE=`date '+%y:%m:%d' | awk -F":" '{printf"20%2d%2d%2d\n",$1,$2,($3-1)}' | sed 's/ /0/g'`
YDATE=`$(perl -e '@y=localtime(time()-86400);printf "%04d%02d%02d",$y[5]+1900,$y[4]+1,$y[3];')`
On oracle cmd,
to_char(sysdate-1,'DDMMYY')
Alternative to Task Manager in Windows
As a Unix / Linux use for some time. i'm still used to command line.
i.e. We use the following to terminate processes in Unix and Linux.
# kill -9
Here's an alternative to task manager in windows. Lets look at sample commands.
C:\Documents and Settings\myname>tasklist
Image Name PID Session Name Session# Mem Usage
========================= ====== ================ ======== ============
System Idle Process 0 Console 0 16 K
System 4 Console 0 44 K
smss.exe 840 Console 0 48 K
csrss.exe 888 Console 0 4,332 K
winlogon.exe 924 Console 0 916 K
services.exe 968 Console 0 3,716 K
lsass.exe 980 Console 0 4,128 K
ati2evxx.exe 1164 Console 0 612 K
svchost.exe 1180 Console 0 2,740 K
svchost.exe 1272 Console 0 1,972 K
MsMpEng.exe 1416 Console 0 10,676 K
svchost.exe 1456 Console 0 22,128 K
svchost.exe 1616 Console 0 888 K
svchost.exe 1712 Console 0 2,032 K
ati2evxx.exe 1852 Console 0 920 K
spoolsv.exe 1948 Console 0 1,776 K
AppleMobileDeviceService. 444 Console 0 536 K
mDNSResponder.exe 484 Console 0 1,328 K
cvpnd.exe 604 Console 0 828 K
FrameworkService.exe 744 Console 0 8,236 K
mcshield.exe 872 Console 0 29,440 K
vstskmgr.exe 1056 Console 0 352 K
naPrdMgr.exe 1292 Console 0 888 K
cygrunsrv.exe 1332 Console 0 272 K
Wuser32.exe 1584 Console 0 416 K
CcmExec.exe 1660 Console 0 10,648 K
sshd.exe 1780 Console 0 64 K
wmiprvse.exe 188 Console 0 2,100 K
wmiprvse.exe 656 Console 0 3,292 K
explorer.exe 3724 Console 0 19,540 K
shstat.exe 2100 Console 0 536 K
tbmon.exe 2104 Console 0 340 K
TaskSwitch.exe 2152 Console 0 2,028 K
FAXCTRL.exe 2172 Console 0 432 K
soundman.exe 2212 Console 0 668 K
MSASCui.exe 2300 Console 0 3,336 K
UdaterUI.exe 2216 Console 0 1,756 K
jusched.exe 2364 Console 0 64 K
iTunesHelper.exe 2488 Console 0 1,236 K
Mctray.exe 2532 Console 0 740 K
ctfmon.exe 2576 Console 0 696 K
iPodService.exe 3140 Console 0 1,860 K
jucheck.exe 3636 Console 0 328 K
svchost.exe 2840 Console 0 288 K
firefox.exe 684 Console 0 110,700 K
notepad.exe 3464 Console 0 776 K
Putty.exe 3660 Console 0 6,472 K
scan32.exe 2892 Console 0 169,128 K
TSVNCache.exe 1192 Console 0 1,528 K
wisptis.exe 3968 Console 0 4,312 K
iTunes.exe 672 Console 0 75,064 K
OUTLOOK.EXE 2636 Console 0 15,772 K
Putty.exe 2284 Console 0 4,464 K
taskmgr.exe 3912 Console 0 5,328 K
cmd.exe 3820 Console 0 2,820 K
tasklist.exe 4072 Console 0 4,572 K
wmiprvse.exe 2748 Console 0 5,784 K
C:\Documents and Settings\myname>taskkill /im itunes.exe /t /f
SUCCESS: The process with PID 672 child of PID 684 has been terminated.
Easy does it.
Wednesday, May 13, 2009
Hongkong Trip (Day 6)
Well rested and woke up only at 9am..
Since we don't have much time left to our flight at around 4pm. took a stroll at around yau ma tei area. Here, there are leather import/export shops, kitchen stuff shops, wet market, a small garden for the folks to do their morning taiji or leisure chit-chats.
Bought some stuffs at heng xiang shop before going for a last desert at a desert stall in the back alley. Found another gem. The desert is well prepared. i had a 'san za almond' desert which is a little sourly and almondly tinted soup.
The photo shown below is 'tang yuan' that is very special. The sesame is wrapped with sago! Be cautious that one don't scorch your lips if you are not careful.. :)
Another nice desert is the 'chuang pi nai' with red bean.. very smooth and the red bean complements the milky taste. Though to milky for my liking but i think this is a cool desert.
lastly, this spring roll is the last to arrive. It is a few variety of mushrooms wrapped in spring roll skin and deep fried to a lovely golden colour. The rolls looked like it was prepared when ordered.
When food is finished, bill is settled, its to the airport...
Cathay Pacific airline's pre check-in service is a good way for people to self-service and we have 1 chance to choose our own seats. i think this is really a neat offer. However, opinion of the actual flight experience is somewhat lacking.
The cabin is stuffy when we board the plane. suspect that the plane was detoxed and 'aired' before we board the plane. When we asked, the stewardess explained that the air conditioned is only turned on when the captain turns on the engine. Weird reason. i don't remember encountering this on SIA, China air, Quantas or even BA. Wonder if this is anything to do with the dreaded swine flu? Throughout the flight, it is really warm. Exactly the same as when we flew to hongkong.
So there, only managed to enjoy good food. Surprisingly, the lao po bing and other local produce that are not branded tasted better than the branded ones like 'heng xiang' and 'lao bing jia'. The char siew, roasted duck/chicken rice is simply heaven. Many a time, we see our chicken rice served in Singapore where the chicken is 'flattened' or the char siew is not prepared properly / coloured naturally. This is really good.
The wantoon mee is also excellent. 2 prawns wrapped by the wanton skin uses a small dub of pork to 'glue' everything together. The noodle is just nice, and finer than the ones in Singapore. 'Q' is the word. All for the price of between HK$20 in the less touristy places to HK$45 for the more expensive ones.
Bought 1 shirt, 5 paris of socks, 3 CDs and some local produce... still think Hongkong is a good shopping haven? Try convincing me.
Hongkong Trip (Day 5)
Today, its time to explore the lantau island.
Plan is go lantau visitor centre, tai O fishing village and lastly citygate.
Took the train from Jordan station once again. This time to lai king station and changing the MTR line to Tsing yi station. walked out and looked for the bus terminal. The bus captain is really nice. keep asking us to take a seat at the bus station since its not time for the bus to start service yet.
maybe we really look like tourists, haha... 2 act professional cameramen and 1 uncle videoman.. the bus fare has been increased to HK$6.50 since 1st may contary to some of the blogs where the bloggers had the chance to pay only HK$6.
The simply furnished visitor centre show-cased the construction of the Tsing ma and Kap Shui mun bridge. Found that actually this is the 'gift' that the british built before returning hongkong to china. haha... what a gift, wondering who actually paid for the construction. logically should be from hongkong's coffer? don't you think so?
Originally wanted to find a way to get to lantau island Tai O fishing village from Tsing yi island. Flagged a red cab who keep asking us to board as it is 'illegal' for him to stop. asked him about tai O village, and he refused to answer but keep pressing us to board. Got smoked by him, board the cab but then he said there is no way. can only reach there by boat. WHAT?! no way? my research online and from lonely planet for what? never mind, told him to bring us back to Tsing yi station. The trip luckily took HK$28.50 which is tiny bit more expensive than if we took the bus back to Tsing yi station.
Had a lunch at mos burger... not bad... took the chance to walk walk at the shopping mall at Tsing yi station. noticed something? i have not mentioned any CD shop along the way? finally found one here. Wonder how the hongkongers survived without CD shops or that the CD shops are hidden? haha... anyway bought some cantonese CDs and some very old tracks that are not found in singapore. Even say the complete recording for Beethoven. sigh... didn't want to lug the box back so didn't buy it.
now even my family start to wonder if Tai O can only be reached by boat. from the lonely planet, Tai O can be reach via bus 11. Does bus 11 mean to 'walk'?
Mustering some adventure spirit, took the whole family to Tung Chung station and guess what? found bus 11 at the bus terminal that can bring us to Tai O!! The fare is HK$$11.80. Be warned that the trip takes exactly 55min. really worth every cent of the bus fare. Take a little nap and we reached the quiet place beside the coast.
The place looks like it is on its way of decline though one can see that the place should be bursting with people and energy previously. There hill and water, really photo perfect place... here's one.
Since this is a fishing village, definitely there are seafood around. see the photo below? the sharkfin is hugh... really tempting.. the prices of the scallops and fish lung are much lower than what you see in the city and shopping area and the quality looks better... mum's so happy... haha...
Strolled around the little village, there are 2 kindergarten, one run by the Buddist monastery and the other is run by methodist. Interestingly, there are just seperated by one street. wonder if there have enough kids around.
Had some tou hua and sesame desert at ah po shop. its HK$7 for the tou hua and HK$8 for sesame desert.
The desert is well prepared. here's a photo of yin and yang.. :P
after having a little foot rest, we took another 55min back to Tung Chung. Now to Citygate mall. Here, there are many factory outlet where the items are the yester-season ones. If you think the items are going to be cheaper, i think you will be disappointed. i bought a geox shoe in singapore at SGD$130 but price in here is SGD$170. Many of the apparels are not worth the $$ in my opinion. Some people may say that i cant afford, therefore i complain. well, for those who know me, you know what i go after. Finally saw a shirt that look nice and fit me. More over, the price is right. pay straight away.. :)
Tired of shopping without much war trophies, we headed back to jordan for wanton mee. well, this is one big surprise. The noodle is great. really savour the good meal.
After that back to hotel for the electronic check-in of cathay pacific and read up of the recent news.
Hongkong Trip (Day 4)
now... its day 4!
after having some lao po bing and other goodies as breakfast, we head off to jordan station, taking the train to admiralty station. exiting from the station, we bought the tickets at HK$208 each and then took the citibus 629 to ocean park. Bus fare is HK$10.60.
Along the bus journey, we passed by Aberdeen bay, the scenery is really nice.
As it is sunday, there are many other people on the bus as well. i noticed that hongkongers employ a lot of filipinos as helpers, one can see them all over the place today perhaps since its their off day. we reached ocean park in around 15mins.
As we enter the park, grabbed a map of the park, and started to venture around... so many escalator, wonder why the government choose this hilly place to build this park? its either stairs or escalator.. Think in time to come, the park will lose more business as more population turn grey..
Along the way up the hilly park, saw the park keepers feeding the baby sea lions. i suspect the keepers are using this as a chance to train the sea lions to listen to instructions. see the photo below, the wand with the green head on the lady's left is the thing that sea lions would watch out and follow. when the sea lions follow the wand obediently, he/she will be handsomely rewarded with a big fish.. so yummy that another sea lion is watching jealously.. lol.
ho hoo... dolphin show at 11.30am.. and ... we are hungry. so, we ate char siew / roast duck rice at HK$45. though pricey, i think its well worth it. the char is thick and nicely prepared. the rice grain is well defined, neither the mushy type nor the too dry type. i almost took it for taiwanese rice.
After clearing off the lovely food, off we go to the dolphin show, the show is quite nicely done but as compared to the gold coast sea world, i think there's way too simple. Here's a shot of the dolphin showing off its "high jump"..
After the show, we took the ocean park tower to have a good view of the whole park. Quite nice, would have queued again if not for the 20min long queue.
Guess what. There is the jerllyfish gallery! its a fascinating sight to see the jelly thing float around and coupled with the lightings, the image is real cool.
Noticed that i have 'borrowed' a number of shots from my brother? He's holding to a newer/better camera. The sensor is more sensitive and accurate.. think its time to retire the old D70s. anyone interested?
Took cable car to the lower section of the park, again, happily snapping photos of the surrounding. Out of the cable car, surprised to see a panda gallery, a very cool (as in the temperature) environment for the precious gigantic panda. The pandas are the gift from china when hongkong was reunited with the mainland. quite envy of the pandas, controlled temperature, controlled humidity and good food, life's good --> LG. :)
Just beside the panda gallery, another nice gallery.. the goldfishes! there are many different types of goldfishes, and the gallery even bring us through the 'development' of the goldfishes.
what's left in the park are for kids, so being the big kids as we are, we left the park for more shopping in the causeway bay area. Took the bus service 65 at HK$6 which take only about 10mins. very near indeed.
Went Sogo, time square, had an eye opener at the road side wet market. whenever the market goers approach the stall holders, the prawns and fishes are then brought out and displayed. hence, the prawns are still flipping and the fishes are still puffing! most of the sea food are alive and not dead like in Singapore. Had a egg tart. just out of the oven and cheap too. HK$2.50 for 1.
lastly we combed the shops along yee wor street. shopping result - still nothing. in the end, had dinner at the Mac and went back hotel to surf net. its expensive in eaton hotel man... HK$3 per min. but luckily, there is a ceiling limit of HK$130 for every 24 hours. so still not that bad... you just need to surf more than 1 hour and you will hit the limit already. This is so different from macau in golden dragon where its free and the staff even delivered the RJ45 and power adaptor to our room! now this is customer service.
Hongkong Trip (Day 3)
Day 3. Another city tour but in macau.
Visited the macau tower.. Didn't want to pay $$ to go up the tower just to see city view so went around to take some photos instead.
Next, we went to a ma temple for a visit. i normally don't go temple so this time round, no choice so have to find something to do, hee hee... went to the back alley for this.... Portuguese egg tart!!
Next, got a transfer to fisherman's wharf for a buffet lunch before going to the ruins of st paul's cathedral.. here's an artistic shot... :)
along the way, dropped off at various local produce shops but didn't get anything from macau since i don't like their almond biscuit which is not as nice as the ones i like in KL. Actually think that macau is a been there once will do kind of destination. No offense to the local folks but the place really has got nothing much sight seeing place to offer.
Head back to macau ferry terminal and took a ferry back to hongkong. noticed that we can actually board at earlier timing than our ticketed time if the ferry is not full.. Good. now i have 1 more hour to sight see in hongkong... :)
Went back to mongkok for meat ball noodles at Lok Yuen Ball King... just exit from Mongkok station exit D3, along argyle street, once reach fa yuen street, turn right and walk down a little more, you will see the big big sign board... not bad... each bowl is about HK$30 odd dollars... quite filling too. tried the vegetable honey tea which turns out actually to be "xi yang cai" soup with some rock sugar of sort to make it taste like honey.. haha.... its nice..
combed through fa yuen street, langham place, sai yueng choi south, hollywood plaza before calling it quits. cant find anything cheap. the sports apparals seems to be about the same price if not more expensive.. if you are like me who seldom spent too much... there's practically not much... at the night streets, one can bargain but getting the "don't waste my time if you are not interested" in cantonese is really laughable on the "customer services" of these stalls.. Got a pair of cute cuff link over here and had a "xu liu shan" mango pomelo desert before heading back to hotel for a good night slumber.
Hongkong Trip (Day 2)
Day 2.
Today's a short day with a city tour in hongkong with some roaming about in macau..
1st we went to one of the exhibition hall of hongkong. saw this big flower which china gave to hongkong signifying the hope that hongkong always 'blooms'.
Finally after one stop, the guide brought us for breakfast. Had a good breakfast at Hoi Tin Harbour Restaurant. Had a experience that the hongkongers actually can get up so early to have dim sum, slowly read their newspaper or sip chinese tea. If no pre-booking was done, i bet that you will be queuing for some time before getting a table.
once we had our fills, we head up to Victoria peak mid point for a good photogenic view of the hongkong island. the view is a little misty here... maybe its the air pollution?? haha...
Visited this temple with the "qian sui men" gate. i wasn't quite paying attention to the guide so not sure where is this... i think this is at repulse bay..
here's the 'result' of my "not paying attention" roaming... haha...
next, we headed over to the harbour and had a sampan ride to see the boat people, who practically eat, sleep, play and live on the boat. One would not be able to wonder how they live on their boat and have electricity for their TV, air-conditioners and the likes. The guide explained that many a times, the electricity supply is 'tapped' from any source they can find. when inspectors comes around, they would cut their tapping lines to avoid being caught... talking about free electricity.. :)
Time flies, we had lunch "xin fu chao zhou jiu lou"... then a open-top bus tour around hongkong island before dropping off at hongkong ferry terminal to go macau...
The ferry ride is about 1 hour. we made use of it for a good nap on board the ferry. not bad, much smoother and comfy than the penguin we take to tekong.
After checking into golden dragon hotel and dropping off the baggages, took a cab to venatian macau for a look. The sights are beautiful, a very close resemblence of the real venice though i feel that if the designers can make the paintings a little older, it will really look like the real venice. This replica is too "clean"...
a little more roaming around, time for a good rest... :P
Hongkong Trip (Day 1)
Had a memorable trip to Hongkong this week.
Though it was a good experience going sight-seeing, i think i would think thrice if you invite me back to Hongkong again.
Here goes my trip..
Checked in at cathay pacific counter at T1 in the morning and flew off almost noon time. By the time we reached hongkong, it was already about 3 hours and 25 min later.
Had a transfer to eaton hotel. Can say that the ambience is not bad at the hotel but don't quite get it why do i have to place a deposit at the hotel when i have already paid for the hotel rooms?
Had a short rest before heading out for the 1st adventure in hongkong city... time 5.30pm.. think family is hungry already, so we got ourselves the octopus card at HK$150 each, HK$100 for usage and HK$50 for refundable deposit. caught the train and alighted 2 stations later at mongkok. Guess what we tried? the modern toilet!
Location:
240-244 Portland street,
Room 3B Mong Kok MPM
Just opposite Langham place or you can exit Mong kok station exit c3.
The food is not bad though i get a bit bored with the background music getting repeated every 3 minutes. its japanese lyrics with some flushing of the toilet. haha... why didn't the composer add in the shitting sounds? more disgusting fun isn't it? :P
Guess the damage to our wallets? around HK$260 for a set meal each plus one desert (see above photo). The desert is HUGH even if you have 4 stomaches.. you have been warned.. :) oh yes, there was a 10% for using DBS credit cards.
After dinner, we took a train down to Avenue of stars at Tsim Sha Tsui for the laser show of "symphony of lights". Took us some time to get there. Had to make a detour when we wanted to cut across one hotel to reach there faster but there isn't any path from the hotel. reached at 8.10pm. sigh... the sight is lovely with all the laser lights shining with the rhythm of the broadcasted music. the show ended at 8.15pm... what a waste to be late! anyway, we spent the rest of the evening here, taking night shots with my brother... here's a few..
After that its back to hotel for a good rest..
Thursday, August 14, 2008
Link based IPMP vs probe based IPMP in solaris 10
From the sunsolve doc http://sunsolve.sun.com/search/document.do?assetkey=1-9-86869-1 , there are 3 modes of IPMP that we can configure,
Probe based IPMP - active standby setup
Probe based IPMP - active active setup
Linke based IPMP - active standby setup
The only difference on Probe based IPMP active-active' setup versus active-standby's setup is the word "deprecated" in the second configuration file. When you add in the "deprecated" tag, the network traffic would actually NOT go through the physical IP. When you snoop on the interface the traffic will go out on your virtual IPs.
Link-based IPMP
For link-based failure detection, only the link between local interface and the link partner is checked on hardware layer. Neither IP layer nor any further network path will be monitored.
No test addresses are required for link-based failure detection. So the pro here is that you save on the number of IP. But then if you are on your own private network, are you sure you have some many IPs that you would ran out of it? Most likely the reason is the ease of IP management.
Probe-based IPMP
Probe-based failure detection is performed on each interface in the IPMP group that has a test address. Using this test address, ICMP probe messages go out over this interface to one or more target systems on the same IP link.
The in.mpathd daemon determines which target systems to probe dynamically. The whole network path up to the gateway (router) is monitored on IP layer. With all interfaces in the IPMP group connected via redundant network paths (switches etc.), you get full redundancy.
On the other hand the default router can be a single point of failure, resulting in 'All Interfaces in group have failed'.
Conclusion
Meaning that probe based IPMP monitors the path up to the gateway while link based IPMP monitors only up to the next physical link. Nothing more nothing less.
Link based IPMP cant 'see' what's after this physical link.
I still prefer probe based IPMP as i have more ease when troubleshooting to determine whether i have connection all the way to the destination. Using link based IPMP means that i would have to get the network guys to check for me if the connection is down.
Note: netstat -k seem to be dropped in solaris 10.
Link based IPMP on Solaris 10
Setting up Link based IPMP in solaris 10 is much more easier than probe based IPMP.
Lets see what NIC i have in my server..
root ~>#dladm show-dev
bge0 link: up speed: 1000 Mbps duplex: full
bge1 link: up speed: 1000 Mbps duplex: full
bge2 link: unknown speed: 0 Mbps duplex: unknown
bge3 link: up speed: 100 Mbps duplex: full
So i have 3 NIC connected, lets use bge0 and bge1 for our link based IPMP. Just use the following configuration.
root ~># more /etc/hostname.bge*
::::::::::::::
/etc/hostname.bge0
::::::::::::::
myserver netmask + broadcast + group production up
::::::::::::::
/etc/hostname.bge1
::::::::::::::
group production up
Remember to put the IPs in the /etc/hosts, netmask in /etc/defaultrouter.
Verify that IPMP daemon is running.
root ~>#pgrep -lf mpathd
165 /usr/lib/inet/in.mpathd -a
Another indication that you are using link based IPMP instead of probe based IPMP is the following message appearing in your console or /var/adm/messages.
Aug 14 10:41:44 in.mpathd[155]: No test address configured on interface bge1; disabling probe-based failure detection on it
Aug 14 10:41:44 in.mpathd[155]: No test address configured on interface bge0; disabling probe-based failure
detection on it
Now, we are ready to do some fail over test.
# if_mpadm -d bge0
root@png2gw2:~>#ifconfig -a
bge0: flags=89000842
inet 0.0.0.0 netmask 0
groupname production
ether 0:14:4f:91:d:5c
bge1: flags=1000843
inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
groupname production
ether 0:14:4f:91:d:5d
bge1:1: flags=1000843 mtu 1500 index 3
inet 10.55.9.192 netmask ffffff00 broadcast 10.55.9.255
Noticed that the IP in bge0 has been transfered into bge1:1. You may also notice the following will appear in your console or /var/adm/messages.
Aug 14 10:05:10 myserver in.mpathd[165]: [ID 832587 daemon.error] Successfully failed over from NIC bge0 to NIC bge1
So we are quite done. Lets recover and restore the IP
root ~>#if_mpadm -r bge0
In /var/adm/message,
Aug 14 10:05:10 myserver in.mpathd[165]: [ID 832587 daemon.error] Successfully failed over from NIC bge0 to NIC bge1
Aug 14 10:07:26 myserver in.mpathd[165]: [ID 620804 daemon.error] Successfully failed back to NIC bge0
We have restored the NIC.
root ~>#ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
bge0: flags=1000843 mtu 1500 index 2
inet 10.55.9.192 netmask ffffff00 broadcast 10.55.9.255
groupname production
ether 0:14:4f:91:d:5c
bge1: flags=1000843 mtu 1500 index 3
inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
groupname production
ether 0:14:4f:91:d:5d
While doing this test, i also noticed that when the failover was done, bge1 is still 0.0.0.0 and bge0's IP was plumbed to bge1:1.
From some research and experiment, i found out bge1 can be acutally configured with its own IP, such that it can still provide service, thus allowing 1 more NIC to work.
When the failover happens, both IP will serve business as usual.Here's the test.
bge0 and bge1 has IP plumbed on them. let do a Telnet to 10.55.9.192 (bge0)
myclient -> myserver TCP D=22 S=57645 Syn Seq=2664010663 Len=0 Win=49640 Options=
Also do a Telnet to 10.55.9.198 (bge1)
myclient -> 10.55.9.198 TCP D=22 S=57656 Syn Seq=2669824191 Len=0 Win=49640 Options=
10.55.9.198 -> myclient TCP D=57656 S=22 Syn Ack=2669824192 Seq=478613400 Len=0 Win=49640 Options=
myclient -> 10.55.9.198 TCP D=22 S=57656 Ack=478613401 Seq=2669824192 Len=0 Win=49640
10.55.9.198 -> myclient TCP D=57656 S=22 Push Ack=2669824192 Seq=478613401 Len=20 Win=49640
myclient -> 10.55.9.198 TCP D=22 S=57656 Ack=478613421 Seq=2669824192 Len=0 Win=49640
Because I did not log in, /var/adm/message 'complain'
Aug 14 10:16:27 myserver sshd[24576]: [ID 800047 auth.info] Did not receive identification string from 10.10.140.36
Aug 14 10:16:40 myserver sshd[24579]: [ID 800047 auth.info] Did not receive identification string from 10.10.140.36
Lets fail Bge0 now, monitor the /var/adm/message and snoop output. Acutally all traffic is now going on bge1:1.
Aug 14 10:19:38 myserverin.mpathd[165]: [ID 832587 daemon.error] Successfully failed over from NIC bge0 to NIC bge1
myclient -> myserver TCP D=22 S=57682 Syn Seq=2724219601 Len=0 Win=49640 Options=
myserver -> myclient TCP D=57682 S=22 Syn Ack=2724219602 Seq=2859863037 Len=0 Win=49640 Options=
Traffic on 10.55.9.198 (bge1) is unaffected.
myclient -> 10.55.9.198 TCP D=22 S=57685 Syn Seq=2740048358 Len=0 Win=49640 Options=
10.55.9.198 -> myclient TCP D=57685 S=22 Syn Ack=2740048359 Seq=1234692052 Len=0 Win=49640 Options=
myclient -> 10.55.9.198 TCP D=22 S=57685 Ack=1234692053 Seq=2740048359 Len=0 Win=49640
10.55.9.198 -> myserver TCP D=57685 S=22 Push Ack=2740048359 Seq=1234692053 Len=20 Win=49640
myclient -> 10.55.9.198 TCP D=22 S=57685 Ack=1234692073 Seq=2740048359 Len=0 Win=49640
We restore the NIC.
Aug 14 10:35:08 myserver in.mpathd[165]: [ID 620804 daemon.error] Successfully failed back to NIC bge0
Some of my references are:
http://sunsolve.sun.com/search/document.do?assetkey=1-61-211105-1
http://raulsg.wikispaces.com/ipmp-link-based
http://os.miamano.eu/node/25
Wednesday, July 16, 2008
Check Disk Space in VxVM (Solaris)
Was trying to find out how much disk space i have left on a system as the partition was nearing max capacity..
root # df -h /opt/myapp
Filesystem size used avail capacity Mounted on
/dev/vx/dsk/mydg/myapp
961M 760M 201M 79% /opt/myapp
Tried this to get the free space in VxVM.. it looks pretty intimidating right? not good for the eyes. Here the "LENGTH" attribute shows the balance free space in 512Kb blocks.
root # vxdg -g mydg free
DISK DEVICE TAG OFFSET LENGTH FLAGS
disk1_1 HDS_6 HDS_6 4195200 12574080 -
disk1_2 HDS1_4 HDS_4 2098560 14670720 -
disk2_1 HDS_6 HDS_6 4195200 12574080 -
disk2_2 HDS0_4 HDS_4 2098560 14670720 -
so i have roughly 12574080 * 512 / 1024 = 6Gb free and 2Gb used in disk1_1.
For each individual disk, the balance free disk space is
# vxassist maxsize disk1_1
Maximum volume size: 12572672 (6139Mb)
etc...
so this pretty match up with the one reported by vxdg.
Therefore i only have 13Gb left in total, taking into consideration that i have a RAID 1.
This one only show the total space for the whole disk group. Again, here the figure matches.
root # vxassist -g myapp maxsize
Maximum volume size: 54489088 (26606Mb)
Something interesting. found from http://www.hyborian.demon.co.uk/notes/vx_cli.html#disksp that vxprint can also display the disk space.
root # vxprint -g myapp -dF "%publen" awk 'BEGIN {s = 0} {s += $1} END {print s/2097152, "GB"}'
31.9849 GB
And the total amount of diskspace in this system, i have...
root # vxprint -AQqdF "%publen" awk 'BEGIN {s = 0} {s += $1} END {print s/2097152, "GB"}'
99.8143 GB
Wow! great. the output from vxprint and vxassist disagree with each other. i think i would prefer to trust vxdg or vxassist since this is really the true size of SAN disk allocated.
Now to see when i can 'grow' the volume... :)
Tuesday, June 03, 2008
How to resolve MQ Channel Sequence Mismatch Error (AMQ9526)
This error would like occur when the local and remote queue managers do not agree on the next message sequence number. For example, when channels goes down or restarted due to network or other issues.
You will see the following error in the Queue manager error log.
AMQ9526 Message sequence number error for channel
So, how to correct this problem??
1) Do a display channel status
DIS CHS(XXXXXXX)
for the sender channel
2. If the channel is still running,
STOP CHANNEL(XXXXXXX) MODE(FORCE).
This will stop transmission of the current batch and will likely result in message being in-doubt.
From my experience so far, i would only issue
stop chl(XXX)
I have not encountered the need to use FORCE yet. Maybe use FORCE when you cant stop the channel the first time round.
3. Lets clear up any in-doubt messages
RESOLVE CHANNEL (XXXXXXX) ACTION(BACKOUT).
This requests channels to commit or back out in-doubt messages. This command can be used only for sender (SDR), server (SVR), and cluster-sender (CLUSSDR) channels (including those that have been defined automatically). The messages are backed out, that is, they are restored to the transmission queue.
So far, i have no need to do step 3.
** IMPORTANT **
From researching the internet, in 99.9% of cases you never use the facility and it's actually dangerous to do so. In-doubt channel problems are usually resolved automatically.
Under certain unusual conditions, the channel can't resolve the situation itself. For this situtation the resolve channel command has been provided so the MQ administrator, using facilities unavailable to the MCAs, can determine what to do to resolve the channel and instruct the system accordingly.
** IMPORTANT **
Do not use RESOLVE CHANNEL (XXXXXXX) ACTION(COMMIT) without considering that the messages are committed, that is, they are deleted from the transmission queue
4. Reset the sequence number
RESET CHANNEL(XXXXXXXX) SEQNUM(1).
This resets the message sequence number for a MQ channel with an optionally specified sequence number to be used the next time the channel is started.
As the sequence number is set by the sender channel so there is no need to reset the receiver.
The sequence number of the last committed message or LUWID is recorded at the receiving end. This is used not only at the sending end but also during re-sequencing, on startup and restarts to ensure that both ends of the link agree on which message have been sent.
5. ALmost there. Start up the channel.
START CHANNEL(XXXXXXX)
6. Done.
Additional information:
Each persistent message that is sent using message sequencing is tagged with an individual sequence number. These are incremented by 1 for each message sent, first on the sending end then on the receiving end. These numbers must match for sequential delivery to work correctly. So, if a message is sent with sequence number of 412 then the receiver side needs to be looking for message number 412.
more references from my favourite places -