<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bashton Blog</title>
	<atom:link href="http://blog.bashton.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.bashton.com</link>
	<description>Bashton Ltd</description>
	<lastBuildDate>Tue, 13 Apr 2010 05:30:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Using a Dell S300 RAID card under Linux</title>
		<link>http://blog.bashton.com/2010/using-a-dell-s300-raid-card-under-linux/</link>
		<comments>http://blog.bashton.com/2010/using-a-dell-s300-raid-card-under-linux/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 17:44:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[fakeraid]]></category>
		<category><![CDATA[raid]]></category>
		<category><![CDATA[rhel]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=541</guid>
		<description><![CDATA[For anyone else googling trying to find the answer to this, as I was today, I refer you to the following Red Hat article:
Do the S100 and S300 Software RAID controllers in my Dell PowerEdge Server work with Red Hat Enterprise Linux?
To paraphrase, the solution is to take the RAID card out the server and [...]]]></description>
			<content:encoded><![CDATA[<p>For anyone else googling trying to find the answer to this, as I was today, I refer you to the following Red Hat article:</p>
<p><a href="http://kbase.redhat.com/faq/docs/DOC-19840">Do the S100 and S300 Software RAID controllers in my Dell PowerEdge Server work with Red Hat Enterprise Linux?</a></p>
<p>To paraphrase, the solution is to take the RAID card out the server and throw it in the bin.  The S300 isn&#8217;t a real RAID card, it&#8217;s a <a href="http://en.wikipedia.org/wiki/RAID">fakeraid</a>.  You&#8217;re better off just using Linux software RAID.</p>
<p>Unfortunately, the cabling in the server doesn&#8217;t allow for connecting to the on-board SATA ports, or rather for powering them.  Speaking to Dell support, they initially suggested that just disabling the card in the BIOS would be sufficient; they later admitted it isn&#8217;t, and offered to send out suitable cables.</p>
<p>I seem to remember Dell making a big deal of their entire server line offering full Linux support some time ago, so I&#8217;m surprised to see them making this retrograde step &#8211; particularly as Linux represents a large percentage of the server market.  In Dell&#8217;s defence they do make it reasonably clear that the S300 card isn&#8217;t supported under Linux at the ordering stage.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2010/using-a-dell-s300-raid-card-under-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>So where&#8217;s RHEL 6?</title>
		<link>http://blog.bashton.com/2010/so-wheres-rhel-6/</link>
		<comments>http://blog.bashton.com/2010/so-wheres-rhel-6/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 12:33:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[red hat]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[rhel]]></category>
		<category><![CDATA[rhel release]]></category>
		<category><![CDATA[rhel6]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=491</guid>
		<description><![CDATA[As I keep getting asked by customers when they can expect Red Hat Enterprise Linux 6, I thought it was worthwhile to make a post on the subject.  This is a reasonably long post, but the simple answer to the question is that I don&#8217;t know, but my educated guess would be Q4 2010, [...]]]></description>
			<content:encoded><![CDATA[<p>As I keep getting asked by customers when they can expect Red Hat Enterprise Linux 6, I thought it was worthwhile to make a post on the subject.  This is a reasonably long post, but the simple answer to the question is that I don&#8217;t know, but my educated guess would be Q4 2010, and that we&#8217;ll have a firm(er) date by the end of June.  Please note that I&#8217;m not a Red Hat employee, although my company is a Red Hat partner, and that nothing in this post is official in any way, shape or form.</p>
<p>Red Hat Enterprise releases have been traditionally 18-24 months apart, and on that basis one might have expected RHEL6 to have been released sometime between October 2008 and March 2009, as RHEL5 was released in March of 2007.  So what&#8217;s taking Red Hat so long, and when can we expect RHEL6?</p>
<p>There are a number of reasons for the delay, but the biggest is related to the <a href="http://fedoraproject.org/">Fedora Project</a>, who create Fedora, on which Red Hat Enterprise is based.<br />
For Fedora releases up to version 6, on which RHEL5 was based, the Fedora Project was run very much as an in-house Red Hat project, with contributions from the wider Open Source community.  Post FC6, the Fedora Project was much more run by the Open Source community, with Red Hat contributors.  This seems to have led to a shift in focus from fixing bugs to implementing new features.  This isn&#8217;t necessarily a bad thing &#8211; Fedora exists to be the &#8216;bleeding edge&#8217; of development, pushing at the boundaries in a way Red Hat are obviously unable to do with an enterprise focussed  product like RHEL.  Unfortunately, Fedora 9, on which RHEL6 was to be based, released with a large number of critical bugs and stability issues.  Red Hat made the decision that they therefore couldn&#8217;t base RHEL6 on this release, and instead poured man-power into the Fedora Project, fixing bugs and generally improving stability as much as possible.</p>
<p>The evidence is that RHEL6 will now be based on Fedora 12, which was released in November of last year.  The was a gap of just under a year between Fedora 6 and RHEL5, so this would point to a release in Autumn of this year.</p>
<p>The other issue that has caused delays to RHEL is that of virtualisation.  RHEL4/RHEL5 utilised the Xen hypervisor for their virtualisation.  In September 2008 Red Hat purchased Qumranet, whose staff included the leaders of the KVM project, an alternate virtualisation technology.  KVM is very much seen as the future for Linux virtualisation, and Red Hat immediately made it clear that this was the direction they would be pursuing.  RHEL 5.4 included KVM as a &#8216;technology preview&#8217;, so clearly much progress has been made integrating it into the main Red Hat release.  It&#8217;s therefore likely that this is no longer holding up RHEL6.</p>
<p>I expect the final release date for RHEL6 to be announced at the Red Hat summit at the end of June.  There have been some suggestions that RHEL6 itself will be released at the summit.  Unless Red Hat release a beta within the next couple of weeks, I&#8217;d say this looks distinctly unlikely.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2010/so-wheres-rhel-6/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Book Review: Cacti 0.8 Network Monitoring</title>
		<link>http://blog.bashton.com/2010/book-review-cacti-0-8-network-monitoring/</link>
		<comments>http://blog.bashton.com/2010/book-review-cacti-0-8-network-monitoring/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 15:41:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[cacti]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=361</guid>
		<description><![CDATA[Disclaimer: I was provided with a review copy of this book free of charge by the publisher.  Please rest assured that I haven&#8217;t let this colour my judgement.
If you&#8217;re looking for a book to help you configure the excellent systems monitoring software Cacti, then Cacti 0.8 Network Monitoring is, at least as far as [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Disclaimer: I was provided with a review copy of this book free of charge by the publisher.</strong>  Please rest assured that I haven&#8217;t let this colour my judgement.</p>
<p>If you&#8217;re looking for a book to help you configure the excellent systems monitoring software <a href="http://www.cacti.net/">Cacti</a>, then <a href="http://www.amazon.co.uk/gp/product/1847195962?ie=UTF8&#038;tag=bashtonblog-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=1847195962">Cacti 0.8 Network Monitoring</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=bashtonblog-21&#038;l=as2&#038;o=2&#038;a=1847195962" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> is, at least as far as my brief searches on Amazon could reveal, your only choice.  At just 116 pages it&#8217;s a relatively slender tome, but is it worth the purchase?</p>
<p>The book starts off reasonably &#8211; it gives a clear guide to installing Cacti on a Debian system, and also installing Cacti from source.  With any book of this nature there&#8217;s always the problem that there are so many different forms of Linux/Unix on which the application can be run &#8211; Cacti supports Linux, BSD, MacOS, Solaris &#8211; that you could fill a whole book just detailing the differing installation steps.</p>
<p>The next few chapters, in fact the bulk of the book, concerns the basic configuration of Cacti &#8211; adding devices to be monitored, arranging the graphs and user management.  Again, the explanations here are competent if not exceptional.<br />
I think it would have been beneficial if the book had contained at least some basic details on how to enable SNMP on some common devices that are likely to be monitored &#8211; perhaps a couple of lines of Cisco config, some details on installing and configuring net-snmpd possibly.  Unfortunately the book covers none of this.</p>
<p>For the more advanced user, the book has a reasonable high-level overview of the SNMP protocol, but is rather short on the details of writing your own Cacti plugins.  The topic is covered, but includes little more information than the help text displayed on screen within Cacti itself.  For me, this was the biggest disappointment with the book.</p>
<p>Overall, the book is a reasonable purchase for those unfamiliar with Cacti, particularly given the lack of alternatives.  Those hoping to find a guide to more advanced topics will be disappointed however, with more comprehensive information available in the Cacti documentation on-line.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2010/book-review-cacti-0-8-network-monitoring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Tip: Check SSL Certificate life in Nagios</title>
		<link>http://blog.bashton.com/2010/quick-tip-check-ssl-certificate-life-in-nagios/</link>
		<comments>http://blog.bashton.com/2010/quick-tip-check-ssl-certificate-life-in-nagios/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 10:41:27 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=321</guid>
		<description><![CDATA[If you&#8217;ve already got Nagios monitoring your SSL-enabled web server, then it&#8217;s very easy to make it also warn you when your SSL certificate is soon to expire.
Simple change your check_https command definition (in the file /etc/nagios-plugins/config/http.cfg on Debian/Ubuntu) to the following:
define command{
        command_name    check_https
 [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve already got <a href="http://www.nagios.org/">Nagios</a> monitoring your SSL-enabled web server, then it&#8217;s very easy to make it also warn you when your SSL certificate is soon to expire.</p>
<p>Simple change your check_https command definition (in the file <em>/etc/nagios-plugins/config/http.cfg</em> on Debian/Ubuntu) to the following:</p>
<p><code>define command{<br />
        command_name    check_https<br />
        command_line    /usr/lib/nagios/plugins/check_http --ssl -C 14 -H '$HOSTADDRESS$' -I '$HOSTADDRESS$'<br />
        }</code></p>
<p>The &#8216;14&#8242; in the command line is the number of days prior to expiry Nagios should warn you to renew the certificate &#8211; change as appropriate.<br />
Now Nagios will produce a warning when your SSL certificate is close to renewal time, and show status CRITICAL if you let it expire anyway.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2010/quick-tip-check-ssl-certificate-life-in-nagios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Varnish Cache Statistics via Cacti</title>
		<link>http://blog.bashton.com/2009/varnish-cache-statistics-via-cacti/</link>
		<comments>http://blog.bashton.com/2009/varnish-cache-statistics-via-cacti/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 09:24:59 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=271</guid>
		<description><![CDATA[We&#8217;ve been using Varnish cache for some time, and I&#8217;ve been massively impressed by both its performance and flexibility.  As part of a solution to help scale websites it&#8217;s unbeatable, especially with its support for ESI.
Anyway, we wanted to integrate monitoring of Varnish into the existing Cacti setup we have, and so I wrote a [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been using <a href="http://varnish-cache.org/">Varnish cache</a> for some time, and I&#8217;ve been massively impressed by both its performance and flexibility.  As part of a solution to help scale websites it&#8217;s unbeatable, especially with its support for ESI.</p>
<p>Anyway, we wanted to integrate monitoring of Varnish into the existing Cacti setup we have, and so I wrote a little plugin to do this.  It&#8217;s loosely based on the code posted <a href="http://forums.cacti.net/viewtopic.php?t=31260">here</a> but it&#8217;s more &#8216;inspired by&#8217; rather than based upon.</p>
<p><img class="aligncenter size-full wp-image-272" title="Example cacti-varnish graph" src="http://blog.bashton.com/wp-content/uploads/2009/10/graph_example.png" alt="Example cacti-varnish graph" width="603" height="232" /></p>
<p>It produces just one graph (above), which shows the number of requests/second, hits/second and misses/second.</p>
<p>Installation is pretty straightforward:</p>
<ul>
<li>Make the Varnish management daemon available to your Cacti machine (Make sure you lock down appropriately with iptables or similar, because there is no authentication for this interface)</li>
<li>Copy get_varnish_stats.py to your cacti scripts directory (/usr/share/cacti/site/scripts in Debian/Ubuntu)</li>
<li>Import the XML template via the Cacti interface</li>
</ul>
<p>You can download the plugin <a href="http://bashton.com/downloads/cacti-varnish-0.1.tar.gz">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2009/varnish-cache-statistics-via-cacti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Tornado shows the future of Web Servers, but not for the reason you might think</title>
		<link>http://blog.bashton.com/2009/why-tornado-shows-the-future-of-web-servers-but-not-for-the-reason-you-might-think/</link>
		<comments>http://blog.bashton.com/2009/why-tornado-shows-the-future-of-web-servers-but-not-for-the-reason-you-might-think/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 10:48:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Speculation]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[tornado]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=252</guid>
		<description><![CDATA[There&#8217;s been a lot of discussion around the release of Tornado, the web server that powers FriendFeed, which was recently Open Sourced.
Most of this discussion revolves around the technical merits of Tornado; whether other platforms are quicker, or whether it&#8217;s too limited.  Whilst interesting, I think that many of these discussions are rather missing the [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s been a lot of discussion around the release of <a href="http://www.tornadoweb.org/">Tornado</a>, the web server that powers FriendFeed, which was recently Open Sourced.</p>
<p>Most of this discussion revolves around the technical merits of Tornado; whether other platforms are quicker, or whether it&#8217;s too limited.  Whilst interesting, I think that many of these discussions are rather missing the point.</p>
<p>What I find interesting about FriendFeed is that it was built primarily because of the requirements of the way the FriendFeed site works.  To give an overview without getting too much into the technical details, the difference is in the way real-time data is updated.<br />
The way pretty much every other website works with regards to updating data is to poll for updates at regular intervals.  FriendFeed works differently; they create a connection to the server, and sit there waiting for an update.  When an update does happen, it displays immediately, because there&#8217;s no need to wait for a polling update to run.<br />
A website that works like this, with every user having a connection open waiting for an update, isn&#8217;t feasible to create when using a mainstream web server (Apache, Nginx, IIS), because they are designed with the older &#8216;open a connection, send the data, close the connection&#8217; way of working in mind.</p>
<p>I expect that as desktop software dies out and everything moves to a web-based &#8217;software-as-a-service&#8217; approach it will become increasingly common that parts of the site will run on custom-written software.  The days of the dominance of Apache are over, not because another better webserver daemon has come along, but because with increasingly complex webapps one size no longer fits all.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2009/why-tornado-shows-the-future-of-web-servers-but-not-for-the-reason-you-might-think/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSH via another host</title>
		<link>http://blog.bashton.com/2009/ssh-via-another-host/</link>
		<comments>http://blog.bashton.com/2009/ssh-via-another-host/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 08:07:34 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[netcat]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/2009/ssh-via-another-host/</guid>
		<description><![CDATA[Many networks have hosts which aren&#8217;t directly accessible via SSH, but have to be connected to via another host.  This can be a pain, especially when one wishes to use scp or sftp.
For a while now I&#8217;ve been using the following in my SSH .config file to allow me to SSH &#8216;directly&#8217; to such hosts:

Host [...]]]></description>
			<content:encoded><![CDATA[<p>Many networks have hosts which aren&#8217;t directly accessible via SSH, but have to be connected to via another host.  This can be a pain, especially when one wishes to use scp or sftp.</p>
<p>For a while now I&#8217;ve been using the following in my SSH .config file to allow me to SSH &#8216;directly&#8217; to such hosts:</p>
<pre>
Host ultimate-destination-name
  ProxyCommand ssh -q intermediary-host nc %h %p $*
  HostName ultimate-destination-host</pre>
<p>Where &#8216;ultimate-destination-name&#8217; is the friendly name for the remote host &#8211; this probably shouldn&#8217;t be a hostname to avoid confusion, &#8216;intermediary-host&#8217; is the Internet-accessible host to connect via, and &#8216;ultimate-destination-host&#8217; is the local hostname/IP for the destination machine, ie what you&#8217;d type after ssh once logged into the intermediary host.<br />
You&#8217;ll need netcat installed on the intermediary host for this to work.</p>
<p>Apart from the obvious advantage of being able to just type &#8217;ssh foo&#8217; to get straight to host foo, this method also allows you to use your local ssh keys without any sort of trust arrangement.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2009/ssh-via-another-host/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Great HTTPS Primer</title>
		<link>http://blog.bashton.com/2009/great-https-primer/</link>
		<comments>http://blog.bashton.com/2009/great-https-primer/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 14:03:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[tls]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/2009/great-https-primer/</guid>
		<description><![CDATA[There&#8217;s a superb post over at the Moserware blog entitled &#8216;The First Few Milliseconds of an HTTPS Connection&#8216;.  I&#8217;d definitely recommend it to anyone even vaguely interested in what keeps everyones confidential data secure.
]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a superb post over at the Moserware blog entitled &#8216;<a href="http://www.moserware.com/2009/06/first-few-milliseconds-of-https.html">The First Few Milliseconds of an HTTPS Connection</a>&#8216;.  I&#8217;d definitely recommend it to anyone even vaguely interested in what keeps everyones confidential data secure.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2009/great-https-primer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Want to cut your IT budget without cutting services? Switch to Linux</title>
		<link>http://blog.bashton.com/2009/want-to-cut-your-it-budget-without-cutting-services-switch-to-linux/</link>
		<comments>http://blog.bashton.com/2009/want-to-cut-your-it-budget-without-cutting-services-switch-to-linux/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 16:56:07 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[gendarmerie]]></category>
		<category><![CDATA[recession]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/2009/want-to-cut-your-it-budget-without-cutting-services-switch-to-linux/</guid>
		<description><![CDATA[For obvious reasons everyone is looking to make cost savings at the moment, and for inspiration you can look to the French Gendarmerie, who have saved millions of Euros as part of a transition to Linux.
 &#8220;A report published by the European Commission&#8217;s Open Source Observatory provides some details from a recent presentation given by Gendarmerie [...]]]></description>
			<content:encoded><![CDATA[<p>For obvious reasons everyone is looking to make cost savings at the moment, and for inspiration you can look to the French Gendarmerie, who have saved millions of Euros as part of a transition to Linux.</p>
<p><em> </em><em>&#8220;A report published by the European Commission&#8217;s Open Source Observatory provides some details from a recent presentation given by Gendarmerie Lieutenant-Colonel Xavier Guimard, who says that the Gendarmerie has been able to reduced its annual IT budget by 70 percent without having to reduce its capabilities.&#8221;</em></p>
<p><a href="http://arstechnica.com/open-source/news/2009/03/french-police-saves-millions-of-euros-by-adopting-ubuntu.ars">Read the full story over at Ars Technica</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2009/want-to-cut-your-it-budget-without-cutting-services-switch-to-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging Java application Problems</title>
		<link>http://blog.bashton.com/2009/debugging-java-application-problems/</link>
		<comments>http://blog.bashton.com/2009/debugging-java-application-problems/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 16:11:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[jvm]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/2009/debugging-java-application-problems/</guid>
		<description><![CDATA[After spending far too much time investigating a particularly thorny problem with a Java app, here&#8217;s a brief guide for anyone else stuck in the same predicament.
First, find some general information on the environment:

Show the JVM system properties
jinfo [pid]
Show heap space usage
jmap -heap [pid]
Show object memory usage
jmap -histo [pid]
Next, find out some more specifics about [...]]]></description>
			<content:encoded><![CDATA[<p>After spending far too much time investigating a particularly thorny problem with a Java app, here&#8217;s a brief guide for anyone else stuck in the same predicament.</p>
<p>First, find some general information on the environment:</p>
<p><strong><br />
Show the JVM system properties</strong></p>
<pre>jinfo [pid]</pre>
<p><strong>Show heap space usage</strong></p>
<pre>jmap -heap [pid]</pre>
<p><strong>Show object memory usage</strong></p>
<pre>jmap -histo [pid]</pre>
<p>Next, find out some more specifics about what the app is actually doing:</p>
<p><strong>Take a thread dump</strong></p>
<pre>pkill -3 java; sleep 5; pkill -3 java</pre>
<p>We do the kill -3 twice to show if threads are stuck in a particular state &#8211; add more as required.  The thread dump is written to stdout for the java process.  This will be catalina.out for a Tomcat app, elsewhere for others, check the init script for clues.</p>
<p><strong>Take a stack trace</strong></p>
<pre>jstack [pid]</pre>
<p>For apps using JNI you can take a mixed-mode trace by doing</p>
<pre>jstack -m [pid]</pre>
<p>and piping the output through c++filt.  On Solaris, c++filt can be obtained as part of <a href="http://developers.sun.com/sunstudio/downloads/express/">Sun Studio Express</a></p>
<p>Hopefully by this point you should have enough data to at least give you some clues as to where the problems are occuring.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2009/debugging-java-application-problems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
