<?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>Intuitive Engineering</title>
	<atom:link href="http://dougmunsinger.com/feed" rel="self" type="application/rss+xml" />
	<link>http://dougmunsinger.com</link>
	<description>Doug Munsinger</description>
	<lastBuildDate>Fri, 18 May 2012 00:55:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>SED (stream editor)</title>
		<link>http://dougmunsinger.com/posts/sed-stream-editor.html</link>
		<comments>http://dougmunsinger.com/posts/sed-stream-editor.html#comments</comments>
		<pubDate>Wed, 16 May 2012 11:14:15 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[apache2]]></category>
		<category><![CDATA[func]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[sed]]></category>

		<guid isPermaLink="false">http://dougmunsinger.com/?p=1182</guid>
		<description><![CDATA[&#160; SED is the coolest UNIX command ever. In the class I had at WPI that covered SED the professor had no idea how powerful and useful this command can become. I need&#8230; <a class="read-more" href="http://dougmunsinger.com/posts/sed-stream-editor.html">Read More <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://dougmunsinger.com/wp-content/uploads/2012/05/sed_awk_book.jpg" rel="shadowbox[sbpost-1182];player=img;" title="SED"><img src="http://dougmunsinger.com/wp-content/uploads/2012/05/sed_awk_book-150x150.jpg" alt="sed awk book 150x150 SED (stream editor)" title="SED"/.< /></p>
<p>&nbsp;</p>
<p>SED is the coolest UNIX command ever. In the class I had at WPI that covered SED the professor had no idea how powerful and useful this command can become. </p>
<p>I need to add an exception to apache.conf files that allows checking a status jsp directly through port 80. In the config files for these applications there is a re-write command that pushes all traffic through https. </p>
<p>It looks like:</p>
<pre class="wp-code-highlight prettyprint">
    #Force all traffic through secure http
    RewriteCond %{HTTP:SSLClientCipher} !^..*$
    RewriteCond %{HTTP_HOST} !^localhost* [NC]
    RewriteCond %{REQUEST_URI} !/fw3?\.jsp
    RewriteCond %{REQUEST_URI} !/d\.jsp
    RewriteCond %{REQUEST_URI} !^/support/Data\.jsp
    RewriteCond %{REQUEST_URI} !^.*(\r|\n|%0A|%0D).* [NC]
    RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,NE,R,L]
</pre>
<p>What I want is:</p>
<pre class="wp-code-highlight prettyprint">
    #Force all traffic through secure http
    RewriteCond %{REQUEST_URI} !^/jmx/app_status.jsp
    RewriteCond %{HTTP:SSLClientCipher} !^..*$
    RewriteCond %{HTTP_HOST} !^localhost* [NC]
    RewriteCond %{REQUEST_URI} !/fw3?\.jsp
    RewriteCond %{REQUEST_URI} !/d\.jsp
    RewriteCond %{REQUEST_URI} !^/support/Data\.jsp
    RewriteCond %{REQUEST_URI} !^.*(\r|\n|%0A|%0D).* [NC]
    RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,NE,R,L]
</pre>
<p>This is being changed in the build &#8211; each application carries it&#39;s own apache.conf file within the RPM &#8211; better to do this in puppet, but that has not been pulled out yet. That deployment of the rpm and config file will ultimately put the change out as releases move forward.</p>
<p>But meanwhile I need this change out to 73 servers and 42 applications now. Within the next hour actually. </p>
<p>I worked through the SED command on a single box, and then tried it on that same box and then another box before running through func &#8211; the flip side of sed is that you can very quickly mess up a file completely.</p>
<p>This command takes a backup. Running it twice would be bad. You would need to add checking for the line &quot;RewriteCond %{REQUEST_URI} !^/jmx/app_status.jsp&quot; already present if that was a risk, and not run the sed command if already present.</p>
<pre class="wp-code-highlight prettyprint">

[root@p1-qaut1 ~]# func p1-vm167* call command run ' for i in /etc/httpd/conf/ConstantContact*; do cp ${i} ${i}.bak; sed &quot;s/#Force all traffic through secure http/#Force all traffic through secure http\n    RewriteCond \%\{REQUEST_URI\} \!\^\/jmx\/app_status.jsp/&quot; &lt; ${i} &gt; ${i}.2; mv ${i}.2 ${i}; done'
('p1-vm167.ad.prodcc.net', [0, '', ''])
</pre>
<p>Okay, I had to do it &#8211; here&#8217;s the bulletproof version (running more than once creates no effect).</p>
<pre class="wp-code-highlight prettyprint">

for i in ConstantContact*.conf; do if [[ `egrep &quot;RewriteCond \%\{REQUEST_URI\} \!\^\/jmx\/app_status.jsp&quot; ${i}` ]]; then echo $i &gt; /dev/null; else cp ${i} ${i}.bak; sed &quot;s/#Force all traffic through secure http/#Force all traffic through secure http\n    RewriteCond \%\{REQUEST_URI\} \!\^\/jmx\/app_status.jsp/&quot; &lt; ${i} &gt; ${i}.2; mv ${i}.2 ${i}; fi; done
</pre>
<p>and in func&#8230;</p>
<pre class="wp-code-highlight prettyprint">

[root@p1-qaut1 ~]# func p1-vm167* call command run 'for i in /etc/httpd/conf/ConstantContact*.conf; do if [[ `egrep &quot;RewriteCond \%\{REQUEST_URI\} \!\^\/jmx\/app_status.jsp&quot; ${i}` ]]; then echo $i &gt; /dev/null; else cp ${i} ${i}.bak; sed &quot;s/#Force all traffic through secure http/#Force all traffic through secure http\n    RewriteCond \%\{REQUEST_URI\} \!\^\/jmx\/app_status.jsp/&quot; &lt; ${i} &gt; ${i}.2; mv ${i}.2 ${i}; fi; done'
('p1-vm167.ad.prodcc.net', [0, '', ''])
[root@p1-qaut1 ~]# 
</pre>
<p>Good luck.  TEST CAREFULLY before running anything like this against servers.  You can do great harm.</p>
<p>&nbsp;</p>
<p>&mdash; doug</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://dougmunsinger.com/posts/sed-stream-editor.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A/B Testing &#8211; of course&#8230;</title>
		<link>http://dougmunsinger.com/posts/ab-testing-of-course.html</link>
		<comments>http://dougmunsinger.com/posts/ab-testing-of-course.html#comments</comments>
		<pubDate>Wed, 09 May 2012 16:29:25 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[future]]></category>
		<category><![CDATA[future thinking]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[web optimizer]]></category>

		<guid isPermaLink="false">http://dougmunsinger.com/?p=1121</guid>
		<description><![CDATA[I skimmed a Wired.com article, and then stopped. I read it more closely. The article was A/B Test: Inside the Technology That&#8217;s Changing the Rules of Business. &#160; &#160; &#160; &#160; &#160; &#160;&#8230; <a class="read-more" href="http://dougmunsinger.com/posts/ab-testing-of-course.html">Read More <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-size:12px;">I skimmed a Wired.com article, and then stopped.</span></p>
<p><span style="font-size:12px;">I read it more closely. The article was <a target="_blank" href="http://www.wired.com/epicenter/2012/04/ff_abtesting/all/1" title="A/B Test">A/B Test: Inside the Technology That&rsquo;s Changing the Rules of Business</a>.</span></p>
<p>&nbsp;</p>
<p><span style="font-size:12px;"><a href="http://dougmunsinger.com/wp-content/uploads/2012/05/abtesting.jpg" rel="shadowbox[sbpost-1121];player=img;"><img alt="abtesting 150x150 A/B Testing   of course..." class="alignleft size-thumbnail wp-image-1122" height="150" src="http://dougmunsinger.com/wp-content/uploads/2012/05/abtesting-150x150.jpg" title="A/B Testing" width="150" /></a></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-size:12px;">Mentioned in the article was Google Web Optimizer. I found</span></p>
<p>&nbsp;</p>
<p><span style="font-size:12px;"><a href="http://dougmunsinger.com/wp-content/uploads/2012/05/testing.png" rel="shadowbox[sbpost-1121];player=img;"><img alt="testing 150x150 A/B Testing   of course..." class="alignleft size-thumbnail wp-image-1123" height="150" src="http://dougmunsinger.com/wp-content/uploads/2012/05/testing-150x150.png" title="Always Be Testing: The Complete Guide to Google Website Optimizer" width="150" /></a></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-size:12px;">The ideas are:</span></p>
<p>&nbsp;</p>
<p><em><span style="font-size:12px;"><span style="font-size:14px;">Choose everything.</span></span></em></p>
<p style="margin-left: 40px; "><span style="font-size:12px;">Don&#39;t make a decision &#8211; take every idea (or at least two of &#39;em) and test </span></p>
<p style="margin-left: 40px; "><span style="font-size:12px;">and&nbsp;</span>see which creates the effect you are trying to achieve -</p>
<p style="margin-left: 40px; "><span style="font-size:12px;">in the case of websites this is traffic patterns, clicking, purchases&#8230;</span></p>
<p><span style="font-size:12px;"><em><span style="font-size:14px;">Data makes the call.</span></em></span></p>
<p style="margin-left: 40px; ">Not &quot;HiPPO&quot;, not&nbsp;<span style="font-size:12px;"><span style="color: rgb(51, 51, 51); line-height: 20px; text-align: left; ">&rdquo;highest-paid person&rsquo;s opinion.&rdquo;&nbsp; &nbsp;Rather, let actual measurable results make the decision.</span></span></p>
<p><span style="font-size:12px;"><em><span style="font-size:14px;">The risk is making only tiny improvements.</span></em></span></p>
<p style="margin-left: 40px; ">The success of this model can reinforce making only incremental changes -</p>
<p style="margin-left: 40px; ">and failing to make big changes when they are needed. &nbsp;</p>
<p style="margin-left: 40px; ">The model can apply to bigger changes, larger chunks of code, but that tendency to narrow focus has to be</p>
<p style="margin-left: 40px; ">taken into account. &nbsp;It is so easy, and so effective to make those incremental changes,</p>
<p style="margin-left: 40px; ">the bigger changes needed over time can get lost&#8230;</p>
<p><span style="font-size:14px;"><em>Data can make the very idea of lessons obsolete.</em></span></p>
<p style="margin-left: 40px; "><span style="font-size:12px;">You can get the right results without knowing what the lesson there was &#8211; the testing and measuring have become real time. &nbsp;</span></p>
<p>&nbsp;</p>
<p>This has huge implications for not just web design, but in where real world concrete physical design goes.</p>
<p>Prototype on your 3D printer, including the electrical internals, and see which product succeeds,</p>
<p>then push marketing and development behind that to move it further toward ideas that do well. &nbsp;</p>
<p>Again, you would have to watch for a narrowing of genius and those products that are&nbsp;</p>
<p>not incremental changes in existing structure would have to have a route beyond the</p>
<p>tight narrow framework that could come about.</p>
<p>This also affects hiring &#8211; find and hire people who are creative rather than have a specific expertise,</p>
<p>and that also makes sense looking over my experiences both hiring and being hired. &nbsp;</p>
<p>The jobs that work well are not necessarily the specific job I was hired for -</p>
<p>it is the job the challenges evolved into&#8230;</p>
<p>&nbsp;</p>
<p>&mdash; doug</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://dougmunsinger.com/posts/ab-testing-of-course.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>test facebook to wordpress app integration&#8230;</title>
		<link>http://dougmunsinger.com/posts/test-facebook-to-wordpress-app-integration.html</link>
		<comments>http://dougmunsinger.com/posts/test-facebook-to-wordpress-app-integration.html#comments</comments>
		<pubDate>Fri, 04 May 2012 18:10:02 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://dougmunsinger.com/?p=1038</guid>
		<description><![CDATA[testing &#8220;add link to facebook&#8221; plugin&#8230; Aha! It worked. I used to use &#8220;Crosspress&#8221; but it is no longer being developed. This one seems the most secure, simplest and most supportable going forward&#8230;&#8230; <a class="read-more" href="http://dougmunsinger.com/posts/test-facebook-to-wordpress-app-integration.html">Read More <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>testing &#8220;add link to facebook&#8221; plugin&#8230;</p>
<p>Aha!<br />
It worked.  </p>
<p>I used to use &#8220;Crosspress&#8221; but it is no longer being developed.<br />
This one seems the most secure, simplest and most supportable going forward&#8230;</p>
<p><a target="_blank" href="http://wordpress.org/extend/plugins/add-link-to-facebook/screenshots/">Add Link to Facebook</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dougmunsinger.com/posts/test-facebook-to-wordpress-app-integration.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>a dreamhost review</title>
		<link>http://dougmunsinger.com/posts/a-dreamhost-review.html</link>
		<comments>http://dougmunsinger.com/posts/a-dreamhost-review.html#comments</comments>
		<pubDate>Thu, 03 May 2012 11:00:36 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[apache2]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Dreamhost]]></category>
		<category><![CDATA[hosting]]></category>

		<guid isPermaLink="false">http://dougmunsinger.com/?p=1028</guid>
		<description><![CDATA[Four stars&#8230; Mostly good. Glitches are few and they are far between. They are better by far than Hostgator. Hostgator squats on the https side of your domain, advertising on it. If you&#8230; <a class="read-more" href="http://dougmunsinger.com/posts/a-dreamhost-review.html">Read More <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Four stars&#8230;</p>
<p>Mostly good.  Glitches are few and they are far between.  </p>
<p>They are better by far than Hostgator.  Hostgator squats on the https side of your domain, advertising on it.  If you want that side of your domain clean, you have to pay them to stop by setting up https.  Dreamhost does not, the access to https fails as it should.  </p>
<p>The support is adequate.  But.  To communicate with support you open a ticket.  To reply to that ticket you open another ticket within the web interface &#8211; there&#8217;s no provision to replay within a ticket, to update, or  to escalate in any way.  They usually respond within 3 hours, but I&#8217;ve seen a response take 17 hours.  </p>
<p>The ticketing system is sometimes sending out an email acknowledgement and sometimes not.  I think you can replay to the email and maybe get it included in the original ticket but I haven&#8217;t actually tested that.  </p>
<p>I&#8217;ve been with them four years.  I&#8217;m not intending to move somewhere else as yet.  </p>
<p>I spent seven hours yesterday down because I deleted a unique IP address I didn&#8217;t need and had accidentally set up through the web interface domain management section, and that I thought I had already deleted. The DNS for the removed IP address persisted&#8230; And persisted&#8230; And persisted&#8230;  </p>
<p>I checked locally on the server on which I was hosting.</p>
<pre class="wp-code-highlight prettyprint">

[dsm@muffy dougmunsinger.com] $ nslookup dougmunsinger.com
Server:	 66.33.216.208
Address:	66.33.216.208#53

Non-authoritative answer:
Name:	dougmunsinger.com
Address: 67.205.50.249

[dsm@muffy dougmunsinger.com] $ nslookup 67.205.50.249
Server:	 66.33.216.208
Address:	66.33.216.208#53

Non-authoritative answer:
249.50.205.67.in-addr.arpa	name = dougmunsinger.com.

The specific and individual IP is still in place. Also - this is on the dreamhost server schultz, so propagation of the DNS change is not an issue.

Contrast this with a non-specific ip result:

[dsm@muffy dougmunsinger.com] $ nslookup myappportfolio.com
Server:	 66.33.216.208
Address:	66.33.216.208#53

Non-authoritative answer:
Name:	myappportfolio.com
Address: 69.163.143.189

[dsm@muffy dougmunsinger.com] $ nslookup 69.163.143.189
Server:	 66.33.216.208
Address:	66.33.216.208#53

Non-authoritative answer:
189.143.163.69.in-addr.arpa	name = apache2-yelp.schultz.dreamhost.com.
</pre>
<p>Eventually the site came back, about 7 PM that evening.  I received a reply this morning at 6:17 AM, saying all looked to be good and the caching DNS looks to have cleared.  </p>
<p>Like I said, mostly good.  </p>
<p>&mdash;doug</p>
]]></content:encoded>
			<wfw:commentRss>http://dougmunsinger.com/posts/a-dreamhost-review.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Func: Fedora Unified Network Controller</title>
		<link>http://dougmunsinger.com/posts/func-fedora-unified-network-controller.html</link>
		<comments>http://dougmunsinger.com/posts/func-fedora-unified-network-controller.html#comments</comments>
		<pubDate>Wed, 02 May 2012 16:18:29 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[command line]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Red Hat]]></category>
		<category><![CDATA[func]]></category>

		<guid isPermaLink="false">http://dougmunsinger.com/?p=1024</guid>
		<description><![CDATA[This is a replacement for remote command execution on servers via ssh.   It has some serious security advantages &#8211; it is never a shell, for example.  In managing five environments and over&#8230; <a class="read-more" href="http://dougmunsinger.com/posts/func-fedora-unified-network-controller.html">Read More <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is a replacement for remote command execution on servers via ssh.   It has some serious security advantages &#8211; it is never a shell, for example.  In managing five environments and over 1400 servers and 92 applications, tools are key.</p>
<p>The install and configuration is at <a target="_blank" href="https://fedorahosted.org/func/">https://fedorahosted.org/func</a>.  </p>
<p>Once installed, you can verify that you have connectivity with </p>
<pre class="wp-code-highlight prettyprint">

[root@p1-util05 ~] # func p1-i53[0-5]* ping
[ ok ... ] p1-i535.ad.prodcc.net
[ ok ... ] p1-i534.ad.prodcc.net
[ ok ... ] p1-i531.ad.prodcc.net
[ ok ... ] p1-i532.ad.prodcc.net
[ ok ... ] p1-i530.ad.prodcc.net
[ ok ... ] p1-i533.ad.prodcc.net
[root@p1-util05 ~] # 
</pre>
<p>and check app status with something like</p>
<pre class="wp-code-highlight prettyprint">

[root@p1-util05 ~] # func p1-i53[0-5]* call command run 'for i in `ls /etc/init.d | grep jboss-`; do /sbin/service $i status; done'
('p1-i534.ad.prodcc.net', [0, 'landingapp is running\n\n', ''])
('p1-i531.ad.prodcc.net', [0, 'landingapp is running\n\n', ''])
('p1-i532.ad.prodcc.net', [0, 'landingapp is running\n\n', ''])
('p1-i530.ad.prodcc.net', [0, 'landingapp is running\n\n', ''])
('p1-i535.ad.prodcc.net', [0, 'landingapp is running\n\n', ''])
('p1-i533.ad.prodcc.net', [0, 'landingapp is running\n\n', ''])
[root@p1-util05 ~] # 
</pre>
<p>and deploy with puppet using something like</p>
<pre class="wp-code-highlight prettyprint">

[root@sc-util5 ~]# func sca1-jbwebsite* ping
[ ok ... ] sc-website1001.ad.prodcc.net
[ ok ... ] sc-website1002.ad.prodcc.net
[ ok ... ] sc-website1000.ad.prodcc.net
[ ok ... ] sc-website1003.ad.prodcc.net
[root@sc-util5 ~]# func sc-website* call command run '/usr/sbin/puppetd --server=sca1-puppet1.ad.prodcc.net --onetime --no-daemonize --no-usecacheonfailure --ignorecache --no-noop'
('sc-website1002.ad.prodcc.net', [0, '', ''])
('sc-website1001.ad.prodcc.net', [0, '', ''])
('sc-website1000.ad.prodcc.net', [0, '', ''])
('sc-website1003.ad.prodcc.net', [0, '', ''])
[root@sc-util5 ~]#
</pre>
<p>&#8220;0&#8243; means success&#8230;  &#8220;1&#8243; means there was an error.</p>
<p>Without this kind of blanket ad hoc command line tool, managing repetitive tasks can quickly become very difficult and time consuming&#8230;</p>
<p>&mdash; doug</p>
]]></content:encoded>
			<wfw:commentRss>http://dougmunsinger.com/posts/func-fedora-unified-network-controller.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FUNC:  which apps redirect from port 80 to 443?</title>
		<link>http://dougmunsinger.com/posts/func-which-apps-redirect-from-port-80-to-443.html</link>
		<comments>http://dougmunsinger.com/posts/func-which-apps-redirect-from-port-80-to-443.html#comments</comments>
		<pubDate>Sat, 17 Mar 2012 14:25:00 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[apache2]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[func]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[system administration]]></category>

		<guid isPermaLink="false">http://dougmunsinger.com/?p=1030</guid>
		<description><![CDATA[I am migrating the load balancer pools from one F5 load balancer to another. Along with that move is a change to the monitor used to control automated load balancer status &#8211; when&#8230; <a class="read-more" href="http://dougmunsinger.com/posts/func-which-apps-redirect-from-port-80-to-443.html">Read More <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I am migrating the load balancer pools from one F5 load balancer to another.<br />
Along with that move is a change to the monitor used to control automated load balancer status &#8211;<br />
when the app is stopped we have a sequence in the stop function which drains and then offlines the<br />
application in the load balancer, allowing for a graceful removal of the app from the pool.<br />
On start, the app remains offline, and an online argument changes the pool status to &#8220;enabled&#8221;<br />
bringing the app into the pool after verifying that it is accessible and active.  </p>
<p>The first step in this was to find which apps are redirecting from port 80 to port 443,  This will<br />
allow us to migrate the nodes as port 443 in the load balancer where they are actually running on port 443.<br />
In the original F5 they could be installed as port 80 nodes, and because of the redirect in most<br />
cases everything would work.  But there is an extra hop. We also have a new monitoring check which uses<br />
http or https to directly verify load balancer pool status.  The F5 won&#8217;t follow a redirect in the monitor.<br />
Where before it was arbitrary which port the node could be installed in, now it will not be. </p>
<p>The configuration to accomplish the redirect is:</p>
<pre class="wp-code-highlight prettyprint">

    #Force all traffic through secure http
    RewriteCond %{HTTP:SSLClientCipher} !^..*$
    RewriteCond %{HTTP_HOST} !^localhost* [NC]
    RewriteCond %{REQUEST_URI} !/fwtf2?\.jsp
    RewriteCond %{REQUEST_URI} !/d\.jsp
    RewriteCond %{REQUEST_URI} !^/support/supportData\.jsp
    RewriteCond %{REQUEST_URI} !^.*(\r|\n|%0A|%0D).* [NC]
    RewriteCond %{REQUEST_URI} !^/distui/bootstrap/.*
    RewriteCond %{REQUEST_URI} !^/healthcheck$
    RewriteCond %{REQUEST_URI} !^/lb_status$
    RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,NE,R,L]
</pre>
<p>We could approach this by exempting lb_status from the redirect, thus making the check<br />
itself accessible over http.  But that&#8217;s not what we want right now.  </p>
<p>What I need right now is a list of the hosts that have this rewrite rule in place,<br />
and are running on port 443.</p>
<p>The string I used is</p>
<pre class="wp-code-highlight prettyprint">
 RewriteRule ^(.*) https://
</pre>
<p>I ran func to get a list of hosts set up as jboss and as minions for the environment using:</p>
<pre class="wp-code-highlight prettyprint">
func p1-vml1jb* ping
</pre>
<p>I created the list, sorted it, removed any &#8220;[FAILED]&#8221; hosts after verifying they should fail.<br />
An application no longer used, or a server not actually in use right now.</p>
<p>To cycle through the list and pull out the information needed I ran:</p>
<pre class="wp-code-highlight prettyprint">
[root@p1-qau01 ~]# for i in `cat list_sort`
do
  if [[ `func ${i}* call command run 'egrep &quot; RewriteRule \^\(\.\*\) https:\/\/&quot; /etc/httpd/conf/*' | egrep &quot;\[0,&quot;` ]]; then
    echo &quot;&quot;
    echo $i
    echo _________________________________________________
    func ${i}* call command run 'egrep &quot; RewriteRule \^\(\.\*\) https:\/\/&quot; /etc/httpd/conf/*'
  fi
done

p1-vml1jb108.cc.net
_________________________________________________
('p1-vml1jb108.cc.net',
 [0,
  '/etc/httpd/conf/CtCtRepConsole.conf:    RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [NC,R,L]\n',
  ''])

p1-vml1jb109.cc.net
_________________________________________________
('p1-vml1jb109.cc.net',
 [0,
  '/etc/httpd/conf/CtCtRepConsole.conf:    RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [NC,R,L]\n',
  ''])

p1-vml1jb110.cc.net
_________________________________________________
('p1-vml1jb110.cc.net',
 [0,
  '/etc/httpd/conf/CtCtsvc.conf:    RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,NE,R,L]\n/etc/httpd/conf/CtCtCust.conf:    RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [NC,R,L]\n/etc/httpd/conf/CtCtPart.conf:    RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [NC,R,L]\n',
  ''])
</pre>
<p>What this does is check if the content of the string exists, then if it does (a &#8220;0&#8243; result from the func command) then re-execute it getting not just the end code but the full result and print it to the screen in a readable format.</p>
<p>Once this completed I had a list of all of the apps using this redirect.  The names of the config files correspond to the application, making this relatively easy to create a list from these results.</p>
<p>&mdash; doug</p>
]]></content:encoded>
			<wfw:commentRss>http://dougmunsinger.com/posts/func-which-apps-redirect-from-port-80-to-443.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>adding HP jetdirect printer to windows XP</title>
		<link>http://dougmunsinger.com/posts/adding-hp-jetdirect-printer-to-windows-xp.html</link>
		<comments>http://dougmunsinger.com/posts/adding-hp-jetdirect-printer-to-windows-xp.html#comments</comments>
		<pubDate>Sat, 10 Mar 2012 13:44:45 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[printers]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://dougmunsinger.com/?p=1007</guid>
		<description><![CDATA[About every three to six months IT moves printers, upgrades printer and otherwise makes printer changes necessary. Most of our printers are HP with jetdirect cards (port 9100). There is a printer server.&#8230; <a class="read-more" href="http://dougmunsinger.com/posts/adding-hp-jetdirect-printer-to-windows-xp.html">Read More <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>About every three to six months IT moves printers, upgrades printer and otherwise makes printer changes necessary.</p>
<p>Most of our printers are HP with jetdirect cards (port 9100). There is a printer server. In UNIX this means translating windows shared printers, naming conventions and security features, through a rather cryptic graphic interface. Doable once in a long while, not worth it every three months&#8230;</p>
<p>I tend to connect directly to the printer&#8217;s IP address at 9100 and let jetdirect sort out queues and print management.</p>
<p>This also works on windows XP laptops. What you are doing is configuring a local printer, connected to a TCP/IP port.</p>
<p>To do this , open Control Panel -&gt; Printers and Faxes. Right-click and select &#8220;Add Printer&#8221;. Click &#8220;Next&#8221;.   Select &#8220;Local printer&#8221; .</p>
<p>&nbsp;</p>
<p><a href="http://dougmunsinger.com/wp-content/uploads/2012/04/printer_01.jpg" rel="shadowbox[sbpost-1007];player=img;"><img class="aligncenter size-full wp-image-1010" title="install local printer with tcp/ip port" src="http://dougmunsinger.com/wp-content/uploads/2012/04/printer_01.jpg" alt="printer 01 adding HP jetdirect printer to windows XP" width="503" height="392" /></a></p>
<p>&nbsp;</p>
<p>From this click &#8220;Next&#8221;</p>
<p>Then select &#8220;Create a new port&#8221; and from the drop down menu, type of port is &#8220;Standard TCP/IP Port&#8221;.</p>
<p>&nbsp;</p>
<p><a href="http://dougmunsinger.com/wp-content/uploads/2012/04/printer_02.jpg" rel="shadowbox[sbpost-1007];player=img;"><img class="aligncenter size-full wp-image-1011" title="select tcp/ip port" src="http://dougmunsinger.com/wp-content/uploads/2012/04/printer_02.jpg" alt="printer 02 adding HP jetdirect printer to windows XP" width="503" height="392" /></a></p>
<p>&nbsp;</p>
<p>You will hit the opening screen for the &#8220;Add Standard TCP/IP Port Wizard&#8221;.  Click &#8220;Next&#8221; and then enter the IP address for the printer.  You can use the DNS name, I tend not to, I ususally use an IP address.   How do you find the IP address?  Most modern HP printers have a menu on the printer that allows you to go to &#8220;Information&#8221; -&gt; &#8220;Print Configuration&#8221;.  The IP address will be in that configuration.</p>
<p>&nbsp;</p>
<p><a href="http://dougmunsinger.com/wp-content/uploads/2012/04/printer_03.jpg" rel="shadowbox[sbpost-1007];player=img;"><img class="aligncenter size-full wp-image-1009" title="enter ip address for the printer" src="http://dougmunsinger.com/wp-content/uploads/2012/04/printer_03.jpg" alt="printer 03 adding HP jetdirect printer to windows XP" width="503" height="392" /></a></p>
<p>&nbsp;</p>
<p>Click &#8220;Next&#8221;.. This step seems to take a few minutes.  Once it returns you get back a message that the detected device type cannot be determined.  Drop down and select &#8220;Hewlett Packard Jet Direct&#8221; and then click next&#8230;</p>
<p>&nbsp;</p>
<p><a href="http://dougmunsinger.com/wp-content/uploads/2012/04/printer_04.jpg" rel="shadowbox[sbpost-1007];player=img;"><img class="aligncenter size-full wp-image-1012" title="select jetdirect " src="http://dougmunsinger.com/wp-content/uploads/2012/04/printer_04.jpg" alt="printer 04 adding HP jetdirect printer to windows XP" width="503" height="392" /></a></p>
<p>&nbsp;</p>
<p>Select &#8220;Next&#8221;.  From here the installation is basically the same as every other printer &#8211; Select manufacturer &#8220;HP&#8221; and then scroll to the closest match driver for your printer. I&#8217;ve had good luck using an HP Color Laserject 4500 driver for an HP4525 printer for example.</p>
]]></content:encoded>
			<wfw:commentRss>http://dougmunsinger.com/posts/adding-hp-jetdirect-printer-to-windows-xp.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>windows printers and print jobs refuse to delete</title>
		<link>http://dougmunsinger.com/posts/windows-printers-and-print-jobs-refuse-to-delete.html</link>
		<comments>http://dougmunsinger.com/posts/windows-printers-and-print-jobs-refuse-to-delete.html#comments</comments>
		<pubDate>Mon, 05 Mar 2012 13:23:39 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[printers]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://dougmunsinger.com/?p=1003</guid>
		<description><![CDATA[Occasionally I&#8217;ll run into a situation where I have to adjust the printers on a laptop. Delete one, add a new and changed one, basically bring the printer configuration up to date with&#8230; <a class="read-more" href="http://dougmunsinger.com/posts/windows-printers-and-print-jobs-refuse-to-delete.html">Read More <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Occasionally I&#8217;ll run into a situation where I have to adjust the printers on a laptop. Delete one, add a new and changed one, basically bring the printer configuration up to date with what is currently present on the network.</p>
<p>Today I brought in my netbook, and I needed to print a few pages of a puppet cookbook. I kicked off the print job, and then realized that the printer configured no longer existed.</p>
<p>I deleted the print job, and went to the printers and faxes folder to see if I could leave the printer, configure a new IP address, and change the driver to the replacement printer. A very simple operation in UNIX, you can edit a file or go through a graphic interface to do it &#8211; transparent, nothing hidden from the administrator or even from the user. Windows refused first to delete the print job and then to adjust or change the printer, or delete any other obsolete printers.</p>
<p>Windows can&#8217;t do anything to change printers if the Print Spooler service has a print job ready to print and can&#8217;t print or delete that job.</p>
<p>The resolution was to first stop the Print Spooler service &#8211; go to Start, then Run and type in services.msc. Scroll down to the Print Spooler service, right-click on it and choose Stop</p>
<div id="attachment_1004" class="wp-caption alignnone" style="width: 599px"><a href="http://dougmunsinger.com/wp-content/uploads/2012/04/2012-04-30-1335793017_589x207_scrot.png" rel="shadowbox[sbpost-1003];player=img;"><img class="size-full wp-image-1004" title="print spooler service - stop service" src="http://dougmunsinger.com/wp-content/uploads/2012/04/2012-04-30-1335793017_589x207_scrot.png" alt="2012 04 30 1335793017 589x207 scrot windows printers and print jobs refuse to delete" width="589" height="207" /></a><p class="wp-caption-text">print spooler service - stop service</p></div>
<p>Don&#8217;t close the service window yet. Go into C:\WINDOWS\system32\spool\PRINTERS, and delete any files in this directory.</p>
<p>Go back to the services pane, restart the Print Spooler service (right-click and choose start).</p>
<p>Now your print job is deleted, you have the print spooler service running, you can delete printer, then add the correct printer.</p>
<p>—doug</p>
]]></content:encoded>
			<wfw:commentRss>http://dougmunsinger.com/posts/windows-printers-and-print-jobs-refuse-to-delete.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mapping the memory within a java process</title>
		<link>http://dougmunsinger.com/posts/mapping-the-memory-within-a-java-process.html</link>
		<comments>http://dougmunsinger.com/posts/mapping-the-memory-within-a-java-process.html#comments</comments>
		<pubDate>Fri, 02 Mar 2012 18:46:53 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[jboss]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[system administration]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[memory]]></category>

		<guid isPermaLink="false">http://dougmunsinger.com/?p=998</guid>
		<description><![CDATA[At the system level, you can look at not just how much memory a process is using, but where it is using the memory, in detail. Use pmap&#8230; First find the process id:&#8230; <a class="read-more" href="http://dougmunsinger.com/posts/mapping-the-memory-within-a-java-process.html">Read More <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>At the system level, you can look at not just how much memory a process is using, but where it is using the memory, in detail.  Use pmap&#8230;</p>
<p>First find the process id:</p>
<pre class="wp-code-highlight prettyprint">
[root@p2-jbtest ~]# ps -ef | grep java

bbod     11987 11929  0 Feb29 ?        00:04:03 /opt/jdk/bin/java
-Dprogram.name=run.sh -server -Xms2048m -Xmx2048m -XX:MaxPermSize=256m
-Dcom.test.sso.cookiedomain=s1.test.com -Dtangosol.coherence.mode=prod
-XX:+DisableExplicitGC -XX:+PrintGCDetails -XX:NewRatio=3
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/opt/etc/heap -Dsun.rmi.dgc.client.gcInterval=1800000
-Dsun.rmi.dgc.server.gcInterval=1800000
-Dtangosol.coherence.log.level=2 -Dtangosol.coherence.management=all
-Dtangosol.coherence.management.remote=true
-Dtangosol.coherence.management.readonly=true -verbose:gc
-Xloggc:/opt/logs/gc.log.ui.201202291332 -XX:+PrintGCDateStamps
-XX:+PrintGCDetails -Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE=false
-Djava.net.preferIPv4Stack=true
-Djava.endorsed.dirs=/opt/jboss/lib/endorsed -classpath
/opt/jboss/bin/run.jar:/opt/jdk/lib/tools.jar org.jboss.Main
-c ui -P /opt/jboss/server/ui/lib/db.properties -Djboss.server.log.dir=/opt/cc/logs
-b ui.p2-jbtest.bsd.prodcc.net
-Djboss.bind.address=ui.p2-jbtest.bsd.prodcc.net
-Djboss.svr.name=p2-jbtest.bsd.prodcc.net
-Djboss.env=p2-bsd -Djboss.app=ui
</pre>
<p>The run pmap as follows against that process ID:</p>
<pre class="wp-code-highlight prettyprint">
[root@p2-jbtest ~]# pmap -x 11987
11987:   /opt/jdk/bin/java -Dprogram.name=run.sh -server -Xms2048m -Xmx2048m -XX:MaxPermSize=256m
-Dcom.roving.sso.cookiedomain=s1.constantcontact.com -Dtangosol.coherence.mode=prod -XX:+DisableExplicitGC
-XX:+PrintGCDetails -XX:NewRatio=3 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/cc/etc/ui/heap
-Dsun.rmi.dgc.client.gcInterval=1800000 -Dsun.rmi.dgc.server.gcInterval=1800000 -Dtangosol.coherence.log.level=2
-Dtangosol.coherence.management=all -Dtangosol.coherence.management.remote=true -Dtangosol.coheren
Address           Kbytes     RSS   Dirty Mode   Mapping
0000000040000000      36      36       0 r-x--  java
0000000040108000       8       8       8 rwx--  java
000000004010a000       4       0       0 -----    [ anon ]
000000004010b000    1024      12      12 rwx--    [ anon ]
000000004020b000      12       0       0 -----    [ anon ]
000000004020e000    1016      36      36 rwx--    [ anon ]
00000000403c6000      12       0       0 -----    [ anon ]
00000000403c9000    1016      32      32 rwx--    [ anon ]
0000000040505000      12       0       0 -----    [ anon ]
0000000040508000    1016      44      44 rwx--    [ anon ]
0000000040634000      12       0       0 -----    [ anon ]
0000000040637000    1016     104     104 rwx--    [ anon ]
0000000040735000      12       0       0 -----    [ anon ]
0000000040738000    1016      36      36 rwx--    [ anon ]
0000000040836000      12       0       0 -----    [ anon ]
0000000040839000    1016      32      32 rwx--    [ anon ]
0000000040937000      12       0       0 -----    [ anon ]
000000004093a000    1016      44      44 rwx--    [ anon ]
0000000040a38000      12       0       0 -----    [ anon ]
0000000040a3b000    1016      32      32 rwx--    [ anon ]
0000000040c34000       4       0       0 -----    [ anon ]
0000000040c35000    1024      12      12 rwx--    [ anon ]
0000000040d35000       4       0       0 -----    [ anon ]
0000000040d36000    1024      12      12 rwx--    [ anon ]
0000000040e68000      12       0       0 -----    [ anon ]
0000000040e6b000    1016      32      32 rwx--    [ anon ]
0000000040f76000      12       0       0 -----    [ anon ]
0000000040f79000    1016      32      32 rwx--    [ anon ]
000000004107a000       4       0       0 -----    [ anon ]
000000004107b000    1024      12      12 rwx--    [ anon ]
000000004127a000      12       0       0 -----    [ anon ]
000000004127d000    1016      52      52 rwx--    [ anon ]
000000004137b000      12       0       0 -----    [ anon ]
000000004137e000    1016      36      36 rwx--    [ anon ]
00000000414a7000      12       0       0 -----    [ anon ]
00000000414aa000    1016       8       8 rwx--    [ anon ]
00000000415a8000      12       0       0 -----    [ anon ]
00000000415ab000    1016      44      44 rwx--    [ anon ]
00000000416c5000      12       0       0 -----    [ anon ]
00000000416c8000    1016      56      56 rwx--    [ anon ]
00000000417c6000      12       0       0 -----    [ anon ]
00000000417c9000    1016      36      36 rwx--    [ anon ]
000000004190b000      12       0       0 -----    [ anon ]
000000004190e000    1016      32      32 rwx--    [ anon ]
0000000041a70000      12       0       0 -----    [ anon ]
0000000041a73000    1016      36      36 rwx--    [ anon ]
0000000041b75000       4       0       0 -----    [ anon ]
0000000041b76000    1024      12      12 rwx--    [ anon ]
0000000041c76000       4       0       0 -----    [ anon ]
0000000041c77000    1024      12      12 rwx--    [ anon ]
0000000041d77000       4       0       0 -----    [ anon ]
0000000041d78000    1024      12      12 rwx--    [ anon ]
0000000041e78000       4       0       0 -----    [ anon ]
0000000041e79000    1024      12      12 rwx--    [ anon ]
0000000041f79000       4       0       0 -----    [ anon ]
0000000041f7a000    1024      12      12 rwx--    [ anon ]
000000004207a000       4       0       0 -----    [ anon ]
000000004207b000    1024      12      12 rwx--    [ anon ]
000000004217b000       4       0       0 -----    [ anon ]
000000004217c000    1024      12      12 rwx--    [ anon ]
000000004227c000       4       0       0 -----    [ anon ]
000000004227d000    1024      12      12 rwx--    [ anon ]
000000004237d000       4       0       0 -----    [ anon ]
000000004237e000    1024      12      12 rwx--    [ anon ]
000000004247e000       4       0       0 -----    [ anon ]
000000004247f000    1024      12      12 rwx--    [ anon ]
000000004257f000      12       0       0 -----    [ anon ]
0000000042582000    1016      52      52 rwx--    [ anon ]
0000000042680000      12       0       0 -----    [ anon ]
0000000042683000    1016      48      48 rwx--    [ anon ]
0000000042781000      12       0       0 -----    [ anon ]
0000000042784000    1016       8       8 rwx--    [ anon ]
0000000042882000       4       0       0 -----    [ anon ]
0000000042883000    1024       8       8 rwx--    [ anon ]
0000000042983000      12       0       0 -----    [ anon ]
0000000042986000    1016      92      92 rwx--    [ anon ]
0000000042a84000      12       0       0 -----    [ anon ]
0000000042a87000    1016      32      32 rwx--    [ anon ]
0000000042b85000      12       0       0 -----    [ anon ]
0000000042b88000    1016      36      36 rwx--    [ anon ]
0000000042c86000      12       0       0 -----    [ anon ]
0000000042c89000    1016      36      36 rwx--    [ anon ]
0000000042d87000      12       0       0 -----    [ anon ]
0000000042d8a000    1016      44      44 rwx--    [ anon ]
0000000042e88000      12       0       0 -----    [ anon ]
0000000042e8b000    1016      36      36 rwx--    [ anon ]
0000000042f89000      12       0       0 -----    [ anon ]
0000000042f8c000    1016      68      68 rwx--    [ anon ]
000000004308a000      12       0       0 -----    [ anon ]
000000004308d000    1016      32      32 rwx--    [ anon ]
000000004318b000      12       0       0 -----    [ anon ]
000000004318e000    1016      60      60 rwx--    [ anon ]
000000004328c000      12       0       0 -----    [ anon ]
000000004328f000    1016      36      36 rwx--    [ anon ]
000000004338d000      12       0       0 -----    [ anon ]
0000000043390000    1016      32      32 rwx--    [ anon ]
000000004348e000      12       0       0 -----    [ anon ]
0000000043491000    1016      60      60 rwx--    [ anon ]
000000004358f000      12       0       0 -----    [ anon ]
0000000043592000    1016      36      36 rwx--    [ anon ]
0000000043690000      12       0       0 -----    [ anon ]
0000000043693000    1016      36      36 rwx--    [ anon ]
0000000043791000      12       0       0 -----    [ anon ]
0000000043794000    1016      44      44 rwx--    [ anon ]
0000000043892000      12       0       0 -----    [ anon ]
0000000043895000    1016      36      36 rwx--    [ anon ]
0000000043993000      12       0       0 -----    [ anon ]
0000000043996000    1016      36      36 rwx--    [ anon ]
0000000043a94000      12       0       0 -----    [ anon ]
0000000043a97000    1016      48      48 rwx--    [ anon ]
0000000043b95000      12       0       0 -----    [ anon ]
0000000043b98000    1016      40      40 rwx--    [ anon ]
0000000043c96000      12       0       0 -----    [ anon ]
0000000043c99000    1016      52      52 rwx--    [ anon ]
0000000043d97000      12       0       0 -----    [ anon ]
0000000043d9a000    1016      32      32 rwx--    [ anon ]
0000000043e98000      12       0       0 -----    [ anon ]
0000000043e9b000    1016      36      36 rwx--    [ anon ]
0000000043f99000      12       0       0 -----    [ anon ]
0000000043f9c000    1016      36      36 rwx--    [ anon ]
000000004409a000      12       0       0 -----    [ anon ]
000000004409d000    1016      36      36 rwx--    [ anon ]
000000004419b000      12       0       0 -----    [ anon ]
000000004419e000    1016      96      96 rwx--    [ anon ]
000000004429c000      12       0       0 -----    [ anon ]
000000004429f000    1016      36      36 rwx--    [ anon ]
000000004439d000      12       0       0 -----    [ anon ]
00000000443a0000    1016      44      44 rwx--    [ anon ]
000000004449e000      12       0       0 -----    [ anon ]
00000000444a1000    1016      76      76 rwx--    [ anon ]
000000004459f000      12       0       0 -----    [ anon ]
00000000445a2000    1016      52      52 rwx--    [ anon ]
00000000446a0000      12       0       0 -----    [ anon ]
00000000446a3000    1016      56      56 rwx--    [ anon ]
00000000447a1000      12       0       0 -----    [ anon ]
00000000447a4000    1016      48      48 rwx--    [ anon ]
00000000448a2000      12       0       0 -----    [ anon ]
00000000448a5000    1016      56      56 rwx--    [ anon ]
00000000449a3000      12       0       0 -----    [ anon ]
00000000449a6000    1016      48      48 rwx--    [ anon ]
0000000044aa4000      12       0       0 -----    [ anon ]
0000000044aa7000    1016      36      36 rwx--    [ anon ]
0000000044ba5000      12       0       0 -----    [ anon ]
0000000044ba8000    1016      36      36 rwx--    [ anon ]
0000000044ca6000      12       0       0 -----    [ anon ]
0000000044ca9000    1016      44      44 rwx--    [ anon ]
0000000044da7000      12       0       0 -----    [ anon ]
0000000044daa000    1016      76      76 rwx--    [ anon ]
0000000044ea8000      12       0       0 -----    [ anon ]
0000000044eab000    1016      52      52 rwx--    [ anon ]
0000000044fa9000      12       0       0 -----    [ anon ]
0000000044fac000    1016      56      56 rwx--    [ anon ]
00000000450aa000      12       0       0 -----    [ anon ]
00000000450ad000    1016      40      40 rwx--    [ anon ]
00000000451ab000      12       0       0 -----    [ anon ]
00000000451ae000    1016      44      44 rwx--    [ anon ]
00000000452ac000      12       0       0 -----    [ anon ]
00000000452af000    1016      36      36 rwx--    [ anon ]
00000000453ad000      12       0       0 -----    [ anon ]
00000000453b0000    1016      32      32 rwx--    [ anon ]
00000000454ae000      12       0       0 -----    [ anon ]
00000000454b1000    1016      36      36 rwx--    [ anon ]
00000000455af000      12       0       0 -----    [ anon ]
00000000455b2000    1016      36      36 rwx--    [ anon ]
00000000456b0000      12       0       0 -----    [ anon ]
00000000456b3000    1016     116     116 rwx--    [ anon ]
00000000457b1000      12       0       0 -----    [ anon ]
00000000457b4000    1016     116     116 rwx--    [ anon ]
00000000458b2000      12       0       0 -----    [ anon ]
00000000458b5000    1016      32      32 rwx--    [ anon ]
00000000459b3000      12       0       0 -----    [ anon ]
00000000459b6000    1016      60      60 rwx--    [ anon ]
0000000045ab4000      12       0       0 -----    [ anon ]
0000000045ab7000    1016      48      48 rwx--    [ anon ]
0000000045bb5000      12       0       0 -----    [ anon ]
0000000045bb8000    1016      44      44 rwx--    [ anon ]
0000000045cb6000      12       0       0 -----    [ anon ]
0000000045cb9000    1016      44      44 rwx--    [ anon ]
00000000461df000  673112  660568  660568 rwx--    [ anon ]
0000000770000000  159104  159072  159072 rwx--    [ anon ]
0000000779b60000  103040       0       0 rwx--    [ anon ]
0000000780000000 2097152  989472  989472 rwx--    [ anon ]
0000003471400000     112     104       0 r-x--  ld-2.5.so
000000347161b000       4       4       4 r-x--  ld-2.5.so
000000347161c000       4       4       4 rwx--  ld-2.5.so
0000003471800000    1336     556       0 r-x--  libc-2.5.so
000000347194e000    2048       0       0 -----  libc-2.5.so
0000003471b4e000      16      16       8 r-x--  libc-2.5.so
0000003471b52000       4       4       4 rwx--  libc-2.5.so
0000003471b53000      20      20      20 rwx--    [ anon ]
0000003471c00000       8       8       0 r-x--  libdl-2.5.so
0000003471c02000    2048       0       0 -----  libdl-2.5.so
0000003471e02000       4       4       4 r-x--  libdl-2.5.so
0000003471e03000       4       4       4 rwx--  libdl-2.5.so
0000003472000000      88      64       0 r-x--  libpthread-2.5.so
0000003472016000    2044       0       0 -----  libpthread-2.5.so
0000003472215000       4       4       4 r-x--  libpthread-2.5.so
0000003472216000       4       4       4 rwx--  libpthread-2.5.so
0000003472217000      16       4       4 rwx--    [ anon ]
0000003472400000     520      20       0 r-x--  libm-2.5.so
0000003472482000    2044       0       0 -----  libm-2.5.so
0000003472681000       4       4       4 r-x--  libm-2.5.so
0000003472682000       4       4       4 rwx--  libm-2.5.so
0000003473400000      28      20       0 r-x--  librt-2.5.so
0000003473407000    2048       0       0 -----  librt-2.5.so
0000003473607000       4       4       4 r-x--  librt-2.5.so
0000003473608000       4       4       4 rwx--  librt-2.5.so
0000003473800000      84      24       0 r-x--  libnsl-2.5.so
0000003473815000    2044       0       0 -----  libnsl-2.5.so
0000003473a14000       4       4       4 r-x--  libnsl-2.5.so
0000003473a15000       4       4       4 rwx--  libnsl-2.5.so
0000003473a16000       8       0       0 rwx--    [ anon ]
0000003473c00000      68      52       0 r-x--  libresolv-2.5.so
0000003473c11000    2048       0       0 -----  libresolv-2.5.so
0000003473e11000       4       4       4 r-x--  libresolv-2.5.so
0000003473e12000       4       4       4 rwx--  libresolv-2.5.so
0000003473e13000       8       4       0 rwx--    [ anon ]
00002aaaaaaab000       8       8       0 r-xs-  run.jar
00002aaaaaaad000       4       4       0 r-xs-  getopt.jar
00002aaaaaab8000      52      52       0 r-x--  libverify.so
00002aaaaaac5000    1020       0       0 -----  libverify.so
00002aaaaabc4000      12      12      12 rwx--  libverify.so
00002aaaaabc7000     164     148       0 r-x--  libjava.so
00002aaaaabf0000    1020       0       0 -----  libjava.so
00002aaaaacef000      28      20      20 rwx--  libjava.so
00002aaaaacf6000       4       4       0 r-x--    [ anon ]
00002aaaaacf7000       4       4       4 rwx--    [ anon ]
00002aaaaacf8000      28      28       0 r-x--  libhpi.so
00002aaaaacff000    1028       0       0 -----  libhpi.so
00002aaaaae00000       8       8       8 rwx--  libhpi.so
00002aaaaae02000       4       0       0 rwx--    [ anon ]
00002aaaaae03000      32      32      16 rwxs-  11987
00002aaaaae0f000      40      28       0 r-x--  libnss_files-2.5.so
00002aaaaae19000    2044       0       0 -----  libnss_files-2.5.so
00002aaaab018000       4       4       4 r-x--  libnss_files-2.5.so
00002aaaab019000       4       4       4 rwx--  libnss_files-2.5.so
00002aaaab01a000      56      48       0 r-x--  libzip.so
00002aaaab028000    1032       0       0 -----  libzip.so
00002aaaab12a000      12      12      12 rwx--  libzip.so
00002aaaab12d000   14340   14160   14160 rwx--    [ anon ]
00002aaaabf2e000   34816       0       0 rwx--    [ anon ]
00002aaaae12e000     224     224     224 rwx--    [ anon ]
00002aaaae166000     544       0       0 rwx--    [ anon ]
00002aaaae1ee000     312     312     312 rwx--    [ anon ]
00002aaaae23c000     200       0       0 rwx--    [ anon ]
00002aaaae26e000    7484    7484    7484 rwx--    [ anon ]
00002aaaae9bd000     200       0       0 rwx--    [ anon ]
00002aaaae9ef000     160     160     160 rwx--    [ anon ]
00002aaaaea17000      76      76       0 r-xs-  xalan.jar
00002aaaaea2a000       8       8       0 r-xs-  activation.jar
00002aaaaea2c000      12      12       0 r-xs-  jaxb-api.jar
00002aaaaea2f000       8       8       0 r-xs-  jbossws-native-jaxws-ext.jar
00002aaaaea31000       8       8       0 r-xs-  jbossws-native-jaxrpc.jar
00002aaaaea33000       8       8       0 r-xs-  stax-api.jar
00002aaaaea35000      92      92       0 r-xs-  xercesImpl.jar
00002aaaaea4c000      16      16       0 r-xs-  serializer.jar
00002aaaaea50000       8       8       0 r-xs-  jbossws-native-jaxws.jar
00002aaaaea52000       8       8       0 r-xs-  jbossws-native-saaj.jar
00002aaaaea54000       8       8       0 r-xs-  resolver.jar
00002aaaaea56000    1632    1632       0 r-xs-  rt.jar
00002aaaaebee000   14600    2656    2656 rwx--    [ anon ]
00002aaaafa30000   55108      44       0 r-x--  locale-archive
00002aaab3001000     380     380       0 r-xs-  tools.jar
00002aaab3060000      28      28       0 r-xs-  concurrent.jar
00002aaab3067000      16      16       0 r-xs-  log4j-boot.jar
00002aaab306b000       8       4       0 r-xs-  jboss-logging-spi.jar
00002aaab306d000       8       8       0 r-xs-  jboss-logging-log4j.jar
00002aaab306f000      12      12       0 r-xs-  jboss-logging-jdk.jar
00002aaab3072000      44      44       0 r-xs-  jboss-common-core.jar
00002aaab307d000      40      40       0 r-xs-  jboss-xml-binding.jar
00002aaab3087000       8       8       0 r-xs-  jboss-bootstrap.jar
00002aaab3089000      36      36       0 r-xs-  javassist.jar
00002aaab3092000      20      20       0 r-xs-  jboss-reflect.jar
00002aaab3097000      20      20       0 r-xs-  jboss-mdr.jar
00002aaab309c000      12      12       0 r-xs-  jboss-dependency.jar
00002aaab309f000      60      60       0 r-xs-  jboss-kernel.jar
00002aaab30ae000      12      12       0 r-xs-  jboss-metatype.jar
00002aaab30b1000      16      16       0 r-xs-  jboss-managed.jar
00002aaab30b5000      24      24       0 r-xs-  jboss-vfs.jar
00002aaab30bb000       4       4       0 r-xs-  jboss-classloading-spi.jar
00002aaab30bc000      16      16       0 r-xs-  jboss-classloader.jar
00002aaab30c0000      12      12       0 r-xs-  jboss-classloading.jar
00002aaab30c3000       8       8       0 r-xs-  jboss-classloading-vfs.jar
00002aaab30c5000      88      88       0 r-xs-  jboss-aop.jar
00002aaab30db000      20      20       0 r-xs-  jboss-aop-mc-int.jar
00002aaab30e0000      32      32       0 r-xs-  trove.jar
00002aaab30e8000      76      72       0 r-x--  libnet.so
00002aaab30fb000    1028       0       0 -----  libnet.so
00002aaab31fc000      12      12      12 rwx--  libnet.so
00002aaab31ff000    3072      16      16 rwx--    [ anon ]
00002aaab3511000      24      24       0 r-x--  libmanagement.so
00002aaab3517000    1020       0       0 -----  libmanagement.so
00002aaab3616000       8       8       8 rwx--  libmanagement.so
00002aaab3646000      12      12       0 r-xs-  jce.jar
00002aaab3649000      28      28       0 r-xs-  jsse.jar
00002aaab3650000      12      12       0 r-xs-  jce.jar
00002aaab3653000      16      16       0 r-x--  libnss_dns-2.5.so
00002aaab3657000    2044       0       0 -----  libnss_dns-2.5.so
00002aaab3856000       4       4       4 r-x--  libnss_dns-2.5.so
00002aaab3857000       4       4       4 rwx--  libnss_dns-2.5.so
00002aaab3867000       4       4       4 rwx--    [ anon ]
00002aaab3868000      16      16       0 r-xs-  sunpkcs11.jar
00002aaab3879000      12      12       0 r-xs-  sunjce_provider.jar
00002aaab3957000      32      32       0 r-xs-  resources.jar
00002aaab3979000     328     328       0 r-xs-  coherence.jar
00002aaab39d0000      56      56       0 r-xs-  charsets.jar
00002aaab39de000      56      56       0 r-xs-  charsets.jar
00002aaab3b79000     328     328       0 r-xs-  coherence.jar
00002aaab4000000   65524   54276   54276 rwx--    [ anon ]
00002aaab7ffd000      12       0       0 -----    [ anon ]
00002aaab8000000   65536   65516   65516 rwx--    [ anon ]
00002aaabc1e6000      28      28       0 r-x--  libnio.so
00002aaabc1ed000    1020       0       0 -----  libnio.so
00002aaabc2ec000       8       8       8 rwx--  libnio.so
00002aaabc47a000     584     184       0 r-x--  libawt.so
00002aaabc50c000    1020       0       0 -----  libawt.so
00002aaabc60b000     100      56      56 rwx--  libawt.so
00002aaabc624000     148       8       8 rwx--    [ anon ]
00002aaabc681000       4       4       0 r-x--  librmi.so
00002aaabc682000    1020       0       0 -----  librmi.so
00002aaabc781000       4       4       4 rwx--  librmi.so
00002aaabc782000      20      16       0 r-x--  libmawt.so
00002aaabc787000    1020       0       0 -----  libmawt.so
00002aaabc886000       8       8       8 rwx--  libmawt.so
00002aaac0000000   65520   65520   65520 rwx--    [ anon ]
00002aaac3ffc000      16       0       0 -----    [ anon ]
00002aaac4000000   65524   50896   50896 rwx--    [ anon ]
00002aaac7ffd000      12       0       0 -----    [ anon ]
00002aaac8000000   65508   65476   65476 rwx--    [ anon ]
00002aaacbff9000      28       0       0 -----    [ anon ]
00002aaacc000000   65536   65512   65512 rwx--    [ anon ]
00002aaad0000000   65528   65504   65504 rwx--    [ anon ]
00002aaad3ffe000       8       0       0 -----    [ anon ]
00002aaad4000000   65508   65488   65488 rwx--    [ anon ]
00002aaad7ff9000      28       0       0 -----    [ anon ]
00002aaad8000000   65528   65528   65528 rwx--    [ anon ]
00002aaadbffe000       8       0       0 -----    [ anon ]
00002aaadc000000   65520   65492   65492 rwx--    [ anon ]
00002aaadfffc000      16       0       0 -----    [ anon ]
00002aaae0000000   65528   65500   65500 rwx--    [ anon ]
00002aaae3ffe000       8       0       0 -----    [ anon ]
00002aaae8000000   65520   65484   65484 rwx--    [ anon ]
00002aaaebffc000      16       0       0 -----    [ anon ]
00002aaaec000000   64092   64036   64036 rwx--    [ anon ]
00002aaaefe97000    1444       0       0 -----    [ anon ]
00002aaaf0000000   14944    9344    9344 rwx--    [ anon ]
00002aaaf0e98000   50592       0       0 -----    [ anon ]
00002b7717d75000       8       8       8 rwx--    [ anon ]
00002b7717d83000      28      16       0 r-x--  libjli.so
00002b7717d8a000    1028       0       0 -----  libjli.so
00002b7717e8b000       8       8       8 rwx--  libjli.so
00002b7717e8d000      12      12      12 rwx--    [ anon ]
00002b7717e90000    8440    6392       0 r-x--  libjvm.so
00002b77186ce000    1020       0       0 -----  libjvm.so
00002b77187cd000    1616     564     564 rwx--  libjvm.so
00002b7718961000     228     156     156 rwx--    [ anon ]
00007fffce650000      84      44      44 rwx--    [ stack ]
00007fffce6aa000      16       4       0 r-x--    [ anon ]
ffffffffff600000    8192       0       0 -----    [ anon ]
----------------  ------  ------  ------
total kB         4228376 2684036 2672320
[root@p2-jbtest ~]#
</pre>
<p>And you have in detail WHERE that memory is being allocated.</p>
<p>&mdash;doug</p>
]]></content:encoded>
			<wfw:commentRss>http://dougmunsinger.com/posts/mapping-the-memory-within-a-java-process.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>recreating a xen VM that has died</title>
		<link>http://dougmunsinger.com/posts/recreating-a-xen-vm-that-has-died.html</link>
		<comments>http://dougmunsinger.com/posts/recreating-a-xen-vm-that-has-died.html#comments</comments>
		<pubDate>Fri, 10 Feb 2012 12:22:30 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[VMs]]></category>
		<category><![CDATA[xen]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://dougmunsinger.com/?p=992</guid>
		<description><![CDATA[This is the process I use to re-create a VM that has hung or otherwise become unresponsive. 1. Find which xen server the VM (e.g., p2-test) is on: in the svn checkout for&#8230; <a class="read-more" href="http://dougmunsinger.com/posts/recreating-a-xen-vm-that-has-died.html">Read More <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is the process I use to re-create a VM that has hung or otherwise become unresponsive.</p>
<p>1. Find which xen server the VM (e.g., p2-test) is on:</p>
<p>in the svn checkout for puppet configurations (you have puppetized all of your servers, including xen. right?), go to<br />
the location for the configuration of your xen servers, and search for the VM:</p>
<pre class="wp-code-highlight prettyprint">
$ cd ~/svn/puppet/trunk/modules/site/base/manifests/p2/xenserver
$ find . -exec grep -H p2-test {} \;
./f2/p2-xen101.pp:  xen::xenguests{ 'p2-test':
</pre>
<p>2. ssh to p2-xen101.</p>
<p>3. Become root:</p>
<pre class="wp-code-highlight prettyprint">
$ sudo su -
&lt;/pre/&gt;

4 Very important, cd to /etc/xen/auto

&lt;pre&gt;
# cd /etc/xen/auto
</pre>
<p>5. Optional: to see what Vms are running:</p>
<pre class="wp-code-highlight prettyprint">
# xm list
</pre>
<p>6. Optional: to connect to the Vms console to see what went wrong (ctrl-] to get out of the console):</p>
<pre class="wp-code-highlight prettyprint">
# xm console p2-test
</pre>
<p>7. Destroy the VM, if it&#8217;s running:</p>
<pre class="wp-code-highlight prettyprint">
# xm destroy p2-test
</pre>
<p>8. Boot up the VM:</p>
<pre class="wp-code-highlight prettyprint">
# xm create p2-test
</pre>
]]></content:encoded>
			<wfw:commentRss>http://dougmunsinger.com/posts/recreating-a-xen-vm-that-has-died.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

