Friday Oct 30, 2009

OpenSSO: New Article Published on SDN!

Parts IV and V of the Troubleshooting OpenSSO with Firefox Add-Ons were published this afternoon.  Take a look at the detailed HTTP traffic that is sent between the browser and OpenSSO during a typical SAML exchange using the Fedlet.  Understanding how to use Firefox Add-Ons to decipher the HTTP requests and responses will greatly help in your deployment of OpenSSO as you discover the details of how this technology works.

Troubleshooting OpenSSO with Firefox Add-Ons: Part 4, Service Provider Initiated Fedlet Single Sign-On

Troubleshooting OpenSSO with Firefox Add-Ons: Part 5, Identity Provider Initiated Fedlet Single Sign-On

I want to give Rick Palkovic a big shout out for helping get this published.  Thanks Rick!

Tuesday Mar 03, 2009

UFS Data Recovery with UFS Explorer

I am overjoyed this evening!  I was able to successfully rescue about 200 GB of data off of a hard drive that I couldn't mount.

Originally, I thought I did a pretty good job of managing my data when I created a RAID-1 volume using the Solaris Volume Manager.  I had two identical drives in the system.  Each drive was 300 GB and had a mirror configured so that I could sustain a single drive failure without losing the data.

I awoke one morning to find that the mother board in the system had failed.  This posed a problem because it was an older mother board and finding an exact replacement was not possible.  I assume that the data was OK at this point.  I started to think about the cost of buying a new system, and I thought I could save some money by using another machine that I already had.  This turned out to be a very bad idea.

I had an old Ultra 10 handy.  These machines have an IDE interface, so I thought I could simply install the drives and read the data.  Unfortunately, the BIOS in these machines is too old to recognize the large 300 GB drive.  I seems as though it rewrote the partition table when it booted, because it was only able to see about 60 GB of data (maybe more or less, it's been a while).  Anyway, I couldn't mount the file system at all.  In addition, I failed to take note that the original machine was an AMD x86 machine, while the Ultra 10 is a SPARC machine.  I don't know if that ultimately mattered.  My suspicion is that the age to the Ultra 10 is what doomed my drive.

I tried repeated attempts to manually restore the drive by guessing the drive geometry.  I didn't have it written down anywhere and so I was just going on geometry numbers posted on the drive manufacturer's web site.  All attempts were unsuccessful.  I even tried using some partitioning tools like Ranish Partition Manager, Partition Magic, etc.  None of these were able to find the data on the drive.

I had given up on restoring the data.  Then I found a piece of software called UFS Explorer.  It has a free trial download that you can use to browse your drive.  You can download files up to 64 KB for free.  Then you can register for the full version.  This software was really easy to use.  I just plugged in the drive and let it scan the contents.  It took about 3.5 hrs to scan the disk, but it has found all of my data!

The really nice part is that I just placed the drive into a hard drive enclosure and connected it to a laptop using a USB port.  This was much easier than finding desktop PC and installing the drive internally.  I was skeptical at first; thinking that the USB interface would provide too much of an abstraction from the underlying IDE interface.  UFS Explorer handled it with ease. 

I highly recommend this product for anyone that has data on a UFS drive.  Now I can breathe a sigh of relief.

Lessons Learned:

  1. RAID-1 is not a replacement for traditional backups.  Data still needs to be backed up in case of a hardware failure in the system.  This could have been much worse for me if the hardware failure had somehow corrupted my data.
  2. Backup regularly.
  3. Don't place a large IDE drive into an older Ultra 10.  I am not 100% positive, but I am pretty sure that this is what messed up the partition table and caused the drive to become unreadable.
  4. My new server still uses Solaris Volume Manager and RAID-1.  I have now added Bacula software and an external USB drive so that I can manage backups on a regular schedule.


My server now runs the ZFS file system.  I am using ZFS to create the redundant disk array.  Then I have a cron job that runs a nightly ZFS snapshot to serve as my daily incremental backup strategy.  Once per week I have another script that makes a full backup to an external USB drive.  This seems easier than the bacula solution and requires no additional software. 

Monday Mar 02, 2009


Using Twitter to notify me when my backup jobs have completed.

[Read More]

Java Code for Reading Standard Input

This weekend I needed to write a Java application that can read data from Standard Input.  The application runs as a command line application.  I searched the web for some examples of reading data from Standard Input, but I found the easiest way of doing this was to use the Apache Commons IO Library.  This library simplifies the task of reading data from an input stream and converting that data to a String.  This is exactly what I needed to make my life a little easier.  Here is a simple block of code that does the input and conversion:

String body = null; 
// Read the input from stdin
InputStream in =;
try {
    body = IOUtils.toString(; 
} catch (IOException ioe) {
    System.err.println("IO error trying to read message!");
} finally {

That's about as simple as it gets.  Now I can use this program to process data presented as Standard Input on the command line.  For example:

java -cp MyStdInReader.Main < somefile.txt


Saturday Dec 29, 2007

Configuring an Ultra 60 to use a Flat Panel Wide Screen Display

I recently decided to upgrade my display from an old 21" Sun CRT monitor to a new flat panel wide screen display. I found out that the Ultra 60 Creator graphics adapter was unable to detect the graphics modes that are supported by the new monitor. The monitor simply displayed "Signal not Supported". I figured that I needed to experiment with various graphics settings to find one that worked. Finding the information on how to do that was more challenging than I thought it would be. After some digging, I found out that "ffbconfig" is the tool that configures the Creator card. I had a remote ssh session to the server and ran the command while I watched the output on the console. Using some trial and error, I was able to find a setting that my monitor would accept. You can run "man ffbconfig" on the command line to see a list of the settings that the Creator is capable of setting:

960x680x112s (stereo)
960x680x108s (stereo)
640x480x60i (interlaced)
768x575x50i (interlaced)
1440x900x76 (hi-res)
1600x1000x66 (hi-res)
1600x1000x76i (hi-res)
1600x1280x76 (hi-res)
1920x1080x72 (hi-res)
1920x1200x70 (hi-res)

After some experimenting, I found that 1024x768x60 works on one machine that I have. Another seems to prefer 1152x900x66. I don't know why the two machines seems to work with different resolutions, but at least I have them working now.

Thursday Mar 01, 2007

Portal Server 7.1 Released: JES 5

Portal Server 7.1 Released[Read More]

Friday Nov 03, 2006

Portal 7: New Article on SDN!

Announcing a new article on SDN titled "Administering Portals with Scripts"[Read More]

Wednesday Sep 06, 2006

Portal 7 SRA: Move SRA Server into DMZ

There are times when the Sun Portal Server and the Sun Secure Remote Access Server are configured together on the same network. Later, the SRA server is placed in the DMZ. There are some easy steps that are required to make the SRA server available after it's moved into the DMZ.[Read More]

Thursday Aug 31, 2006

Portal: Setting the JVM Proxy settings in Sun Application Server 8.1

See how to set the JVM Proxy settings in SJS Application Server 8.1 to enable external content access with URL Scraper and XML Provider.[Read More]

Wednesday Aug 30, 2006

Portal 7: Creating a new portal based on one of the samples

One of the first steps in a typical Portal 7 deployment involves creating a new portal based on one of the portal samples that is shipped with the product. There are three portals that come with Portal Server 7. This article lists the steps necessary to create a new portal based on the Enterprise Sample Portal.[Read More]



« April 2014