Skip to content


Solaris 10 + IPMP + Oracle RAC

I recently installed a 2-node RAC cluster using the following configuration:

Operating System: Solaris 10 (SPARC-64)
Oracle Clusterware: 11.1.0.6
Oracle ASM: 11.1.0.6
Oracle RDBMS: 10.2.0.3

Because the servers had 4 network interface cards, I asked the system administrators to configure IPMP on the Virtual IP and Private Interconnect interfaces.

The Clusterware, ASM, and RDBMS installations went as planned. However, when we tried restarting the ASM instance, it would take several minutes before coming up. While it started, I ran a ptree on the racgimon process and found that it was hanging on the “sh -c /usr/sbin/arp -a | /usr/xpg4/bin/grep SP” command. It took awhile to sort out, but I was finally able to put together enough blog posts and Metalink notes to figure out what needed to be done.

  1. Collect the hostname, VIP, and private interconnect aliases and IP addresses for each RAC node from /etc/hosts.
  2. Collect network interface information on each node, identifying which interfaces are part of each IPMP group.
    ifconfig -a
  3. Identify which interfaces nodeapps is using on each node.
    srvctl config nodeapps -n <hostname>
  4. Update the nodeapps interfaces as necessary.
    srvctl modify nodeapps -n <hostname> -A <ip_ddress>/<subnet_mask>/<ipmp_interface1>\|<ipmp_interface2>
  5. Identify the OCR private interface(s).
    oifcfg getif
  6. Delete the OCR private interface(s).
    oifcfg delif -global <if_name>
  7. Set the CLUSTER_INTERCONNECTS parameter in each ASM and database instance pfile/spile.
    CLUSTER_INTERCONNECTS='ip_address'
    or
    alter system set cluster_interconnects='ip_address' scope=spfile sid='SID1';
  8. Restart all services on each node.
  9. Verify that each database and ASM instance is using the appropriate Private Interconnect.
    select * from gv$cluster_interconnects;

The ASM startup will now take a fraction of the time it was taking before, and the correct interconnect IP address will be used.

References
Metalink Note 283107.1 – Configuring Solaris IP Multipathing (IPMP) for the Oracle 10g VIP
Metalink Note 368464.1 – How to Setup IPMP as Cluster Interconnect

Posted in Database, Oracle.

Tagged with , , , , , , .


Amarok Variable Bit Rate (VBR) Track Time

I just recently installed Amarok on my Ubuntu desktop at home. It has been years since I have used anything other than XMMS to play my mp3 collection. Let me tell you…Amarok is probably the best mp3 player I have used including anything I have used on Windows. (I do not have a Mac, so I can’t vouch for any music players beyond iTunes.)

One of the issues I had after installing is that my variable bit rate (VBR) mp3 track lengths were all wrong. After reading a few HOWTO’s and forum posts, I collected enough information to fix the issue by writing the track length in the mp3 track tag.

  1. Download and install vbrfix.
    sudo apt-get install vbrfix
  2. Run vbrfix against all your mp3 files.
    find /myth/music -type f -name "*.mp3" -exec vbrfix {} {} \;
  3. Start Amarok.
  4. Rescan your music collection (assuming the songs had been added to the library).
    Tools > Rescan Collection
  5. Restart Amarok.
  6. The track times should be accurate.

I am still working out how to control my Alsa PCM channel via Amarok and LIRC. If I have time to find a solution, I will try to post it.

Posted in Linux, Music.

Tagged with , , , , , , .


National Debt

I have been concerned about the national debt since I was in high school. Seeing how the debt has increased astronomically since President Bush has been in power, I started pondering which presidential candidate will most likely be the most fiscally responsible. They all appear to want to give “tax refunds” to the American people. This sounds great if you are in the lower to middle class. You get a couple hundred dollars to buy some things you need…or often do not need. In the end, the corporations and upper class end up with the money, because it is spent at stores. Theoretically, this money is then reinvested in the economy rather than saved away by the richest 1%.

I remember the days in the late 90′s when the budget had a surplus. If we had stuck to our guns and paid down the debt, the economy would have become more stable over time. However, since Mr. Bush has been in office, that has not been the case. His policy seems to be spending as much as possible without considering the long-term consequences. As of today, the national debt is $9.2 TRILLION! It was half of that before he went into office, and the budget surplus would have paid off all the payable debt by now. We all know that certain world events have transpired since Clinton left office. However, that is no excuse for what the government is doing. The uncontrolled spending must be stopped, and we must start paying off the national debt.

Interestingly enough, we can actually pay the debt by mailing payments to the following address. I hope this is not a government scam to funnel contributions into defense funds, but I think it is the best way to know where your money is going. Otherwise, it goes into a giant pot for the politicians to spend as they please.

How do you make a contribution to reduce the debt?

Make your check payable to the Bureau of the Public Debt, and in the memo section, notate that it is a Gift to reduce the Debt Held by the Public. Mail your check to:

Attn Dept G
Bureau Of the Public Debt
P. O. Box 2188
Parkersburg, WV 26106-2188

Reference: TreasuryDirect

Posted in Economics.

Tagged with , .


Spinning Forms Processes

Do you happen to have f60webmx processes that run for days or hours on end, consuming up to 100% of your forms tier CPUs? I do, and I decided to do something about it.

The following script will kill forms processes that hog the CPU past a defined time limit. I have set the process time threshold at 4 hours, and it has been running in a production environment for ~8 months. No users have complained so far, but I recently updated the script to capture the user, responsibility, and form information if available. I plan on calling some of the users to see if their forms sessions were valid or not. Use the script at your own risk, and if you improve upon it, please forward me the code or a link to it, so that we can all benefit from the update.

#!/bin/ksh
#
# Script used to kill forms processes running 4 hours or more.
#
# Usage: kill_runaway_forms.sh
#
######################################################
#
# History: Created 2007-05-09 by Shad
# Update 2007-12-14 by Shad - Added SQL to get form info.
#
######################################################

PROCESS="f60webmx webfile" # Process name to check
HOSTNAME=`hostname`
NOTIFY="you@email.com"

if [ -z $TWO_TASK ]
then
echo "Exiting. TWO_TASK is not set."
exit
fi

ps -ef -o pid,time,args | \
grep -v grep | \
grep "$PROCESS" | \
awk '$2 ~ /[0-9]-[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/ || $2 ~ /[0-9][4-9]:[0-9][0-9]:[0-9][0-9]/' | \
while read LINE
do

PROCESS_ID=`echo $LINE | awk '{print $1}'`
PROCESS_TIME=`echo $LINE | awk '{print $2}'`
PROCESS_NAME=`echo $LINE | awk '{print $3}'`
echo "PROCESS_ID: $PROCESS_ID"
echo "PROCESS_TIME: $PROCESS_TIME"
echo "PROCESS_NAME: $PROCESS_NAME"

mailx -s "Killed $PROCESS_NAME $PROCESS_ID on $HOSTNAME" $NOTIFY < `echo " "`
`echo "============================"`
`echo "= Process Killed ="`
`echo "============================"`
`echo " Hostname: $HOSTNAME"`
`echo " Username: $LOGNAME"`
`echo " Process ID: $PROCESS_ID"`
`echo "Process Name: $PROCESS_NAME"`
`echo "Process Time: $PROCESS_TIME"`
`echo " "`
`echo " "`
`sqlplus -s query/query@$TWO_TASK << EOSQL
set line 200
set feedback off
column module format a20
column action format a40
column user_name format a10
column responsibility_name format a32
column user_form_name format a40
select s.module
, s.action
, f.user_name
, f.responsibility_name
, f.user_form_name
from v\\$session s
, fnd_form_sessions_v f
where s.machine = '$HOSTNAME'
and s.osuser = '$LOGNAME'
and s.process = '$PROCESS_ID'
and s.sid = f.sid(+)
and s.serial# = f.serial#(+);
exit
EOSQL`
EOF
kill -9 $PROCESS_ID
done

exit 0

Posted in Applications, Oracle.


Linux + Oracle Apps + Sun JRE Plugin

I recently upgraded my production instance to 11i.ATG_PF.H RUP 5 and replaced JInitiator with the Sun JRE Plugin. To be able to use Linux with the application’s applets, just perform the following steps:

  1. Install Mozilla Firefox if you don’t already have it.
  2. Download the supported JRE. In my case, it is 1.5.0_12. Because Oracle cannot keep up with new technology, I had to dig around in the Sun Java Archive to find it.
  3. Copy the JRE bin file to where you want it installed. I copied mine to /opt.
  4. Make the bin file executable:
    sudo chmod 744 jre-1_5_0_12-linux-i586.bin
  5. Install the bin file:
    sudo jre-1_5_0_12-linux-i586.bin
  6. Create a symlink to the JRE plugin:
    sudo ln -s /opt/jre1.5.0_12/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/firefox/plugins
    UPDATE: For Firefox 3:
    sudo ln -s /opt/jre1.5.0_12/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/firefox-addons/plugins
  7. Startup Firefox, and give it a whirl.

Posted in Applications, Linux, Oracle.

Tagged with , , , , , , .




Blog WebMastered by All in One Webmaster.