Thursday Aug 05, 2010

The Windows Question

I've recently received a request for DirTracer and Pkgapp on Windows. Photo © Lee Trujillo

I wrote these applications specifically for Unix based operating systems and will continue to release them on the Unix platforms supported by the product.  Windows has always been an exception to this.

While yes, Sun / Oracle releases versions of its Directory Server (DS) software on these supported platforms, DirTracer and Pkgapp are "not" part of the Software package and as a result, not supported by the normal Sun / Oracle support model.  Support for these is left up to one person; Me, their creator.

This said, Windows does not have the same types of facilities for troubleshooting the DS process as most Unix's do.

Examples; the following utilities can be invoked on a per process basis on a Unix platform:

  • pstack
  • prstat
  • pargs
  • pmap
  • pldd
  • gcore
  • iostats
  • vmstats
  • mpstats

Analysis of a DS process goes well beyond copying a set of config files and access logs.  Windows platforms do not provide equivalent utilities and system based commands.

I also created the DirTracer & Pkgapp code to be fairly portable by using scripting. At one point I toyed with PERL but I cannot guarantee PERL would be installed on all systems so I went for the least common denominator available; unix shell. Yes yes, I know there is Windows PowerShell but it was only released in circa 2008 and two years still only at version 1.0 according to their own FAQ.  In fact, on Microsoft's own Shell Repository I only see six results for Process Monitoring scripts using PowerShell; the majority of users still preferring VBscript. Regardless, even if I could port DirTracer and Pkgapp over to PowerShell I would face the same issues as if I had created these using PERL; the availability of PowerShell installed on the Windows server.

I also thought of using Cygwin's Terminal which is essentially a unix port to run inside an emulator. This would be a perfect way to port my applications, but I face the same hurdles as I do with PERL and PowerShell - Availability.  Lets face it, Windows Administrators do not take it kindly when anyone asks them to install "anything" on their systems in order to troubleshoot problems.

The Stats:

Lets look at the facts. Being in the Support Organization of Oracle I am not informed on the number of customers downloading DSEE for Windows.  I do however have access to the numbers of Service Requests for this Operating System.

  • In the Calendar Q1 of this year less than 2% of the Directory Server cases were identified as for Windows versions of the product.

While I do not know if more of the cases received were actually using Windows, I can honestly say at my level (tier 3) I rarely receive an escalation that is Windows related.  Most DSEE related issues we get stem from Cacao, Windows Services and ISW to ADS synchronization problems. These type of problems are never addressed by DirTracer on any platform.  With such low number of issues coming in for DS related issues, the priority is to keep working on the Unix platform versions of DirTracer and Pkgapp.


Lee T.

Thursday May 08, 2008

All Unix's are not created equal

I just thought about the Dirtracer parameters I had recently Blogged about and realized I forgot to mention a basic fundamental of Unix...that being that All Unix's are not create equal.  Simply stated all Unix Flavors do not have the command sets.

Working for Sun I normally prefer Solaris but as a Directory Engineer and Author of Dirtracer I need to understand and support the Directory and Dirtracer on the platforms the Directory Server is supported on; Windows is an exception.

When I created Stracer (Dirtracers predecessor) I wrote it only for Solaris.  Solaris includes many commands that other Unix flavors don't and vice versa.  Such commands include gcore, pstack, prstat and all proctool related commands.

How are they used?

  • Gcore is a way to instantly drop a binary file that is equivalent to a process Core file; i.e. a Solaris Crash Dump.
  • Pstack is a text based dump of the processes threads and the functions each thread was using when the pstack was taken.
  • Prstat shows output of each threads size, run state and cpu% used.

All these commands are extremely useful when debugging memory leaks, high cpu issues or bottlenecks with operations.  It is also a fundamental part of the Main (data gathering) Loop in Dirtracer.

Enough about Solaris for now.

The point of this blog was I thought I would mention not all of my posts are Solaris specific but some parameter sets used by Dirtracer may not apply to other flavors like Linux and HP-UX.

Linux and HP-UX have OpenSource ports of some of the above mentioned commands but they are untested (from me) and they would have to be installed on their respective OS's by the Customer/Admin so I cannot rely on them.  

Dirtracer has the basic same code whether it is used on Solaris, Linux or HP-UX but if these commands are not found they are ignored.  As a result, the Customer nor Sun Support cannot benefit from the availability of this data if it were available.


A Tech Blog about the Sun Java Systems Dirtracer Toolkit. Dirtracer and this blog written and maintained by Lee Trujillo an Oracle Senior Principal Support Engineer.


« June 2016