<?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>Tork Wrench &#187; howto</title>
	<atom:link href="http://www.torkwrench.com/category/howto/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.torkwrench.com</link>
	<description>Things I learnt today, working on IBM Lotus Web Content Management.</description>
	<lastBuildDate>Wed, 04 Jan 2012 22:33:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Getting the IBM Bootable Media Creator (BoMC) to run on Ubuntu 10.04</title>
		<link>http://www.torkwrench.com/2011/12/30/getting-the-ibm-bootable-media-creator-bomc-to-run-on-ubuntu-10-04/</link>
		<comments>http://www.torkwrench.com/2011/12/30/getting-the-ibm-bootable-media-creator-bomc-to-run-on-ubuntu-10-04/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 23:11:26 +0000</pubDate>
		<dc:creator>Graham</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://www.torkwrench.com/?p=372</guid>
		<description><![CDATA[How to get the IBM Bootable Media Creator (BoMC) to run on Ubuntu <a href="http://www.torkwrench.com/2011/12/30/getting-the-ibm-bootable-media-creator-bomc-to-run-on-ubuntu-10-04/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>IBM Bootable Media Creator (BoMC) is a  nifty tool that will create a customized boot iso for installing drivers and firmware on your System x machines. You tell BoMC what hardware you are running and it  goes out and downloads all the latest firmware, and then it wraps it up in an iso that you can boot from to update the hardware.</p>
<p>If you&#8217;d like to create your BoMC iso using Ubuntu , you might&#8217;ve noticed that BoMC doesn&#8217;t support it.</p>
<p>I&#8217;m on 10.04 and found that using the RHEL5 binary worked. At the time of writing, the name of the file is ibm_utl_bomc_3.00_rhel5_i386.bin . I tried the RHEL6 one first and it complained about a missing libssl library (libssl.so.10) so I would guess if you are on a newer version of Ubuntu, you should use this one instead.</p>
<p>You might see this error when executing it, and it will cause the downloads to fail</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Can't find OS info file!</div></div>
<p>Simply execute this to create an Redhat release file at /etc/redhat-release , and this will make BoMC work.</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sudo echo &quot;Red Hat Enterprise Linux Server release 5.0 (Santiago)&quot; &gt; /etc/redhat-release</div></div>
<p>Then simply execute it like this, put in your machine details, and out comes the iso:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sudo ./ibm_utl_bomc_3.00_rhel5_i386.bin</div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.torkwrench.com/2011/12/30/getting-the-ibm-bootable-media-creator-bomc-to-run-on-ubuntu-10-04/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Uninstall Process Server, keep Portal Server</title>
		<link>http://www.torkwrench.com/2011/05/06/uninstall-process-server-keep-portal-server/</link>
		<comments>http://www.torkwrench.com/2011/05/06/uninstall-process-server-keep-portal-server/#comments</comments>
		<pubDate>Fri, 06 May 2011 04:28:26 +0000</pubDate>
		<dc:creator>Graham</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[WebSphere Application Server]]></category>
		<category><![CDATA[WebSphere Portal]]></category>
		<category><![CDATA[WebSphere Process Server]]></category>

		<guid isPermaLink="false">http://www.torkwrench.com/?p=316</guid>
		<description><![CDATA[How to uninstall WebSphere Process Server 6.0 from your WebSphere Portal 6.0 environment. <a href="http://www.torkwrench.com/2011/05/06/uninstall-process-server-keep-portal-server/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Wow, slow 2011 on the blog so far. Time to get back into it.</p>
<p>I was asked by a customer how to uninstall Process Server, while keeping your Portal Server intact. I couldn&#8217;t find any documentation or steps to do this, so I figured it out for them.<br />
&#8220;Your mileage may vary&#8221; &#8211; give this a try on a test box first, before you try on a production box. I didn&#8217;t test clusters either, although I don&#8217;t see how they would present a problem. </p>
<p>These steps are valid for 6.0 . </p>
<p>Unfortunately, the Process Server uninstaller doesn&#8217;t do a great job of cleaning up after itself, so we need to go around after it and clean up the mess.</p>
<p>1. Why not confirm you have Process Server installed first? Try:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">AppServer/bin/versionInfo.sh</div></div>
<p>If you get back something with this in it:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Installed Product<br />
---------------------------------------------------<br />
Name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IBM WebSphere Process Server<br />
Version &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;6.0.2.5<br />
ID &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BPC<br />
Build Level &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;o0843.03<br />
Build Date &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 10/31/08</div></div>
<p>Bingo! You have Process server. </p>
<p>2.  Run the config task bpe-unconfig . This config task will uninstall Process Server related components from your Portal Server (like the Task Container Enterprise Apps) .</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">WPSconfig.sh bpe-unconfig</div></div>
<p>3. </p>
<p>Stop all AppServer processes and then run the Process server uninstaller, which you will find at :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">AppServer/_uninstwbi/uninstall</div></div>
<p>Take care to make sure this box below is <strong>unticked</strong>, so your whole AppServer isn&#8217;t uninstalled.</p>
<p><a href="http://www.torkwrench.com/wp-content/uploads/2011/05/process-server.png"><img src="http://www.torkwrench.com/wp-content/uploads/2011/05/process-server.png" alt="" title="process-server" width="640" height="418" class="aligncenter size-full wp-image-319" /></a></p>
<p>4. After the uninstaller is completed, delete the following jars in AppServer/lib . They are Process Server jars, and the Portal Server (or server1) will not start until you do this. As you can see there are tons of them. I got the list from seeing what was on the Process Server install iso. This list worked for me in my testing (which consisted of starting Portal and the Admin Console and making sure the UI still worked), but I can&#8217;t vouch for any custom code that you are running. As always, try this out in a test environment first, and take a backup before messing around with AppServer/lib . This seems to be a superset of what was installed on my system too &#8211; so don&#8217;t be alarmed if some of the jars in this list are <strong>not</strong> present on your system.</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$WAS_HOME/lib/ArtifactLoaderImpl.jar<br />
$WAS_HOME/lib/ArtifactLoader.jar<br />
$WAS_HOME/lib/ArtifactResolver.jar<br />
$WAS_HOME/lib/ast-ejbrdbmapping.jar<br />
$WAS_HOME/lib/ast-ejbwsext.jar<br />
$WAS_HOME/lib/ast-j2eewsext.jar<br />
$WAS_HOME/lib/ast-sqlmodel.jar<br />
$WAS_HOME/lib/ast-wrdj2ee.jar<br />
$WAS_HOME/lib/bpcdma.jar<br />
$WAS_HOME/lib/bpcinterop.jar<br />
$WAS_HOME/lib/bpcupgrade.jar<br />
$WAS_HOME/lib/bpc-validation.jar<br />
$WAS_HOME/lib/bpeappinstall.jar<br />
$WAS_HOME/lib/bpecommon.jar<br />
$WAS_HOME/lib/bpecore.jar<br />
$WAS_HOME/lib/bpedeployment.jar<br />
$WAS_HOME/lib/bpegenerator.jar<br />
$WAS_HOME/lib/bpeheaders.jar<br />
$WAS_HOME/lib/bpe.jar<br />
$WAS_HOME/lib/bpel.jar<br />
$WAS_HOME/lib/bpelpp.jar<br />
$WAS_HOME/lib/bpelservices.jar<br />
$WAS_HOME/lib/bpelterms.jar<br />
$WAS_HOME/lib/bpertfw.jar<br />
$WAS_HOME/lib/bpevalidation.jar<br />
$WAS_HOME/lib/brbClient.jar<br />
$WAS_HOME/lib/brbRuleMgmtApp.jar<br />
$WAS_HOME/lib/brbServer.jar<br />
$WAS_HOME/lib/brcore.jar<br />
$WAS_HOME/lib/brulescore.jar<br />
$WAS_HOME/lib/brulescore_nl1.jar<br />
$WAS_HOME/lib/brulescore_nl2.jar<br />
$WAS_HOME/lib/brules.jar<br />
$WAS_HOME/lib/brules-model.jar<br />
$WAS_HOME/lib/brules-scdl.jar<br />
$WAS_HOME/lib/brules-scdl-validation.jar<br />
$WAS_HOME/lib/brules-scdl-validation_nl1.jar<br />
$WAS_HOME/lib/brules-scdl-validation_nl2.jar<br />
$WAS_HOME/lib/brules-validation.jar<br />
$WAS_HOME/lib/brules-validation_nl1.jar<br />
$WAS_HOME/lib/brules-validation_nl2.jar<br />
$WAS_HOME/lib/bsm-runtime.jar<br />
$WAS_HOME/lib/cbcore.jar<br />
$WAS_HOME/lib/cem.jar<br />
$WAS_HOME/lib/cemsop.jar<br />
$WAS_HOME/lib/cmmImpl.jar<br />
$WAS_HOME/lib/cmm.jar<br />
$WAS_HOME/lib/commondbinstall.jar<br />
$WAS_HOME/lib/commonj.connector.jar<br />
$WAS_HOME/lib/commons-jxpath.jar<br />
$WAS_HOME/lib/compensate_blob4k_ejb.jar<br />
$WAS_HOME/lib/compensate_ejb.jar<br />
$WAS_HOME/lib/compensate.jar<br />
$WAS_HOME/lib/compensate_oracle9i_oci_ejb.jar<br />
$WAS_HOME/lib/compensation.jar<br />
$WAS_HOME/lib/core-validation.jar<br />
$WAS_HOME/lib/corona-ejbplugin.jar<br />
$WAS_HOME/lib/corona-emfworkbenchedit.jar<br />
$WAS_HOME/lib/corona-emfworkbench.jar<br />
$WAS_HOME/lib/corona-j2eeplugin.jar<br />
$WAS_HOME/lib/corona-wsdl.jar<br />
$WAS_HOME/lib/correlationsphere.jar<br />
$WAS_HOME/lib/ctcbpeluiex.jar<br />
$WAS_HOME/lib/ctcformatmodel.jar<br />
$WAS_HOME/lib/ctcj2ee.jar<br />
$WAS_HOME/lib/ctc-wsdl.jar<br />
$WAS_HOME/lib/ctcwsdl.jar<br />
$WAS_HOME/lib/customization.jar<br />
$WAS_HOME/lib/customization-model.jar<br />
$WAS_HOME/lib/dmaemf.jar<br />
$WAS_HOME/lib/eclipse-ecore.resources.jar<br />
$WAS_HOME/lib/eclipse-jdtcore.jar<br />
$WAS_HOME/lib/eclipse-mapping.jar<br />
$WAS_HOME/lib/eclipse-osgi.jar<br />
$WAS_HOME/lib/eclipse-resources.jar<br />
$WAS_HOME/lib/eclipse-runtime.jar<br />
$WAS_HOME/lib/eflow2.jar<br />
$WAS_HOME/lib/extensionmodel.jar<br />
$WAS_HOME/lib/fdl2bpelcore.jar<br />
$WAS_HOME/lib/htmlshellwbi.jar<br />
$WAS_HOME/lib/idgenerator.jar<br />
$WAS_HOME/lib/ilm_impl.jar<br />
$WAS_HOME/lib/ilm.jar<br />
$WAS_HOME/lib/installbrmgr.jar<br />
$WAS_HOME/lib/mediation_model.jar<br />
$WAS_HOME/lib/mfc_model.jar<br />
$WAS_HOME/lib/migration-wbi-CommonMigrationInterface.jar<br />
$WAS_HOME/lib/migration-wbi-ics-heritageapi.jar<br />
$WAS_HOME/lib/migration-wbi-ics.jar<br />
$WAS_HOME/lib/mockobjects-alt-jdk1.3-0.09.jar<br />
$WAS_HOME/lib/mockobjects-alt-jdk1.3-j2ee1.2-0.09.jar<br />
$WAS_HOME/lib/mockobjects-core-0.09.jar<br />
$WAS_HOME/lib/mockobjects-jdk1.3-0.09.jar<br />
$WAS_HOME/lib/mockobjects-jdk1.3-j2ee1.2-0.09.jar<br />
$WAS_HOME/lib/modelutils.jar<br />
$WAS_HOME/lib/processbinding.jar<br />
$WAS_HOME/lib/recoveryAdmin.jar<br />
$WAS_HOME/lib/recoveryMBean.jar<br />
$WAS_HOME/lib/relcodegen.jar<br />
$WAS_HOME/lib/resolverutils.jar<br />
$WAS_HOME/lib/rsadaptercci-wbi.jar<br />
$WAS_HOME/lib/rsaexternal-wbi.jar<br />
$WAS_HOME/lib/sca-async.jar<br />
$WAS_HOME/lib/sca-common.jar<br />
$WAS_HOME/lib/sca-container.jar<br />
$WAS_HOME/lib/sca-deploy.jar<br />
$WAS_HOME/lib/sca-ejb.jar<br />
$WAS_HOME/lib/sca-j2c.jar<br />
$WAS_HOME/lib/sca.jar<br />
$WAS_HOME/lib/sca-java.jar<br />
$WAS_HOME/lib/sca-jms.jar<br />
$WAS_HOME/lib/sca-managed.jar<br />
$WAS_HOME/lib/sca-style.jar<br />
$WAS_HOME/lib/sca-webservice.jar<br />
$WAS_HOME/lib/scdl-ae.jar<br />
$WAS_HOME/lib/scdl-eis.jar<br />
$WAS_HOME/lib/scdl-ejb.jar<br />
$WAS_HOME/lib/scdl-infoserver.jar<br />
$WAS_HOME/lib/scdl.jar<br />
$WAS_HOME/lib/scdl-java.jar<br />
$WAS_HOME/lib/scdl-mediation.jar<br />
$WAS_HOME/lib/scdl-mfc.jar<br />
$WAS_HOME/lib/scdl-moduletype.jar<br />
$WAS_HOME/lib/scdl-process.jar<br />
$WAS_HOME/lib/scdl-task.jar<br />
$WAS_HOME/lib/scdl-webservice.jar<br />
$WAS_HOME/lib/scdl-wsdl.jar<br />
$WAS_HOME/lib/selector.jar<br />
$WAS_HOME/lib/selector-model.jar<br />
$WAS_HOME/lib/selector-scdl.jar<br />
$WAS_HOME/lib/selector-scdl-validation.jar<br />
$WAS_HOME/lib/selector-scdl-validation_nl1.jar<br />
$WAS_HOME/lib/selector-scdl-validation_nl2.jar<br />
$WAS_HOME/lib/selector-validation.jar<br />
$WAS_HOME/lib/selector-validation_nl1.jar<br />
$WAS_HOME/lib/selector-validation_nl2.jar<br />
$WAS_HOME/lib/sibx.admin.commands.jar<br />
$WAS_HOME/lib/sibx.aspects.jar<br />
$WAS_HOME/lib/sibx.common.jar<br />
$WAS_HOME/lib/sibx.context.jar<br />
$WAS_HOME/lib/sibx.eets.debug.jar<br />
$WAS_HOME/lib/sibx.mediation.eets.jar<br />
$WAS_HOME/lib/sibx.mediation.engine.jar<br />
$WAS_HOME/lib/sibx.mediation.flowaction.impl.jar<br />
$WAS_HOME/lib/sibx.mediation.flowaction.jar<br />
$WAS_HOME/lib/sibx.mediation.model.jar<br />
$WAS_HOME/lib/sibx.mediation.primitives.jar<br />
$WAS_HOME/lib/sibx-metadata.jar<br />
$WAS_HOME/lib/sibx-profiles.jar<br />
$WAS_HOME/lib/sibx.scax.runtime.jar<br />
$WAS_HOME/lib/sibx-extensionchecker.jar<br />
$WAS_HOME/lib/sibx.admin.commands.wsrr.jar<br />
$WAS_HOME/lib/sibx.admin.runtime.impl.jar<br />
$WAS_HOME/lib/sibx.wccm.config.wsrrresources.jar<br />
$WAS_HOME/lib/sibx.wsrr.proxy.jar<br />
$WAS_HOME/lib/sibx.admin.runtime.jar<br />
$WAS_HOME/lib/sibx.admin.runtime.wsrr.jar<br />
$WAS_HOME/lib/sibx.wccm.config.sibxscaresources.jar<br />
$WAS_HOME/lib/smaputils.jar<br />
$WAS_HOME/lib/smobo.jar<br />
$WAS_HOME/lib/srm_impl.jar<br />
$WAS_HOME/lib/srm.jar<br />
$WAS_HOME/lib/staffsupport.jar<br />
$WAS_HOME/lib/taskapi.jar<br />
$WAS_HOME/lib/taskappinstall.jar<br />
$WAS_HOME/lib/taskcemsop.jar<br />
$WAS_HOME/lib/taskdeployer.jar<br />
$WAS_HOME/lib/taskgenerator.jar<br />
$WAS_HOME/lib/task.jar<br />
$WAS_HOME/lib/taskldap.jar<br />
$WAS_HOME/lib/taskmbean.jar<br />
$WAS_HOME/lib/taskscdlvalidation.jar<br />
$WAS_HOME/lib/tasksystem.jar<br />
$WAS_HOME/lib/taskuserregistry.jar<br />
$WAS_HOME/lib/taskvalidation.jar<br />
$WAS_HOME/lib/tel.jar<br />
$WAS_HOME/lib/vfdcore.jar<br />
$WAS_HOME/lib/WBIAdapterBGRuntime.jar<br />
$WAS_HOME/lib/WBIAdapterRuntime.jar<br />
$WAS_HOME/lib/wbia.jar<br />
$WAS_HOME/lib/wbiBOmigration.jar<br />
$WAS_HOME/lib/wbiBOS.jar<br />
$WAS_HOME/lib/wbiBOValidator.jar<br />
$WAS_HOME/lib/wbiCore.jar<br />
$WAS_HOME/lib/wbicoreupgrade.jar<br />
$WAS_HOME/lib/wbiinstall.jar<br />
$WAS_HOME/lib/wbiMapService.jar<br />
$WAS_HOME/lib/WBIMCBEBuilder.jar<br />
$WAS_HOME/lib/wbi-mediation-core.jar<br />
$WAS_HOME/lib/wbiMonitorCore.jar<br />
$WAS_HOME/lib/wbiMonitorPolicy.jar<br />
$WAS_HOME/lib/wbiPS.jar<br />
$WAS_HOME/lib/wbiRelMgr.jar<br />
$WAS_HOME/lib/wbiRS.jar<br />
$WAS_HOME/lib/wbischedulercommon.jar<br />
$WAS_HOME/lib/wbisession.jar<br />
$WAS_HOME/lib/wbisessionPolicy.jar<br />
$WAS_HOME/lib/wbiupgrade.jar<br />
$WAS_HOME/lib/wbiutil.jar<br />
$WAS_HOME/lib/wbi-validation.jar<br />
$WAS_HOME/lib/wccm_services_bpc.jar<br />
$WAS_HOME/lib/wccm_services_core.jar<br />
$WAS_HOME/lib/wccm_services_wbi.jar<br />
$WAS_HOME/lib/wcdl.jar<br />
$WAS_HOME/lib/wcdl-process.jar<br />
$WAS_HOME/lib/wcdl-service.jar<br />
$WAS_HOME/lib/wcdl-wsif.jar<br />
$WAS_HOME/lib/wpcr.jar<br />
$WAS_HOME/lib/wpsanttasks.jar<br />
$WAS_HOME/lib/WPS_IVTClient.jar<br />
$WAS_HOME/lib/ws-bpc-config-appdeploy.jar<br />
$WAS_HOME/lib/ws-bpc-config-resources.jar<br />
$WAS_HOME/lib/ws-bpc-config-server.jar<br />
$WAS_HOME/lib/ws-config-admin.jar<br />
$WAS_HOME/lib/ws-core-config-server.jar<br />
$WAS_HOME/lib/ws-core-j2eex.jar<br />
$WAS_HOME/lib/ws-wbi-config-cell.jar<br />
$WAS_HOME/lib/ws-wbi-config-resources.jar<br />
$WAS_HOME/lib/ws-wbi-config-server.jar<br />
$WAS_HOME/lib/ws-wbi-j2eex.jar<br />
$WAS_HOME/lib/wtembean.jar</div></div>
<p>If you don&#8217;t delete these jars, you will get the following error message after issuing startServer.sh :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ADMU0116I: Tool information is being logged in file<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/opt/WebSphere/AppServer/profiles/wp_profile/logs/server1/startServer.log<br />
ADMU0128I: Starting tool with the wp_profile profile<br />
ADMU3100I: Reading configuration for server: server1<br />
com.ibm.ws.exception.WsException: Error processing plugin for <br />
jar:file:/opt/WebSphere/AppServer/lib/scdl-infoserver.jar!/META-INF/ws-server-model.init <br />
class: com.ibm.wsspi.sca.scdl.infoserver.impl.InfoserverPackageImpl<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.ibm.ws.config.ModelMgr.initializeModels(ModelMgr.java:110)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.ibm.ws.config.ModelMgr.initialize(ModelMgr.java:49)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.ibm.ws.runtime.service.RepositoryImpl.&lt;init&gt;(RepositoryImpl.java:48)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.ibm.ws.runtime.service.RepositoryImpl.&lt;init&gt;(RepositoryImpl.java:39)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.ibm.ws.runtime.service.RepositoryFactoryImpl.createRepository(RepositoryFactoryImpl.java:32)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.ibm.ws.runtime.service.RepositoryFactory.createRepository(RepositoryFactory.java:55)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.ibm.ws.management.tools.WsServerLauncher.initializeRepositoryAndLauncher(WsServerLauncher.java:393)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.ibm.ws.management.tools.WsServerLauncher.runTool(WsServerLauncher.java:265)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.ibm.ws.management.tools.AdminTool.executeUtility(AdminTool.java:230)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.ibm.ws.management.tools.WsServerLauncher.main(WsServerLauncher.java:108)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:61)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at java.lang.reflect.Method.invoke(Method.java:391)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.ibm.ws.bootstrap.WSLauncher.run(WSLauncher.java:219)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at java.lang.Thread.run(Thread.java:571)<br />
Caused by: java.lang.reflect.InvocationTargetException<br />
&nbsp; &nbsp; &nbsp; &nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:61)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at java.lang.reflect.Method.invoke(Method.java:391)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.ibm.ws.config.ModelMgr.initializeModels(ModelMgr.java:106)<br />
&nbsp; &nbsp; &nbsp; &nbsp; ... 16 more</div></div>
<p>5. It&#8217;s also a good idea to clean out wp_profile/logs/* as there is a cache of jar file paths and their associated classes (the preload cache) that will need to be regenerated after deleting those jars. </p>
<p>6. The only thing the bpe-unconfig task doesn&#8217;t seem to do is delete the BPE shared library. To do this, start server1, and log in to the admin console. Navigate to <strong>Environment -> Shared Libraries</strong> and highlight the BPE library and click delete.</p>
<p>7. You&#8217;re done, start Portal and test everything works! </p>
<p>I also wrote a little script that does some checks and then does all this for you (except for step 6 which I couldn&#8217;t be inspired enough to write a jacl script for). It&#8217;s fairly quick and dirty, but if nothing else it will give you an idea of what has to happen to remove Process Server.  <a href='http://www.torkwrench.com/wp-content/uploads/2011/05/remove-process-server.txt'>You can get it here.</a> Just rename the suffix after you download it. Understandably, WordPress would not yet me save a shell script up to my server.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.torkwrench.com/2011/05/06/uninstall-process-server-keep-portal-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to use the PVSCSI driver on Ubuntu Lucid</title>
		<link>http://www.torkwrench.com/2011/02/07/how-to-use-the-pvscsi-driver-on-ubuntu-lucid/</link>
		<comments>http://www.torkwrench.com/2011/02/07/how-to-use-the-pvscsi-driver-on-ubuntu-lucid/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 05:31:00 +0000</pubDate>
		<dc:creator>Graham</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[10.04]]></category>
		<category><![CDATA[lucid]]></category>
		<category><![CDATA[pvscsi]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.torkwrench.com/?p=304</guid>
		<description><![CDATA[How to get the paravirtualized scsi driver going on Ubuntu 10.04.  <a href="http://www.torkwrench.com/2011/02/07/how-to-use-the-pvscsi-driver-on-ubuntu-lucid/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of the most <a href="http://www.torkwrench.com/2010/01/06/installing-rhel-5-using-the-vmware-paravirtualized-scsi-driver-pvscsi/">popular posts</a> on the site has been about how to enable the paravirtualized scsi driver (pvscsi) on your root partition in a RHEL system. I wrote some pretty complex steps about how you could automate this through RHEL&#8217;s kickstart system. A reader response to the prompted me to try it out pvscsi on Ubuntu Server (10.04) . Well there&#8217;s not much to say &#8211; <em>it just works!</em> .</p>
<p>When you create your VM in vSphere, simply select the &#8220;Custom&#8221; option, rather than the &#8220;Typical&#8221; one as custom allows you to pick your disk type. When the disk type radio button comes up select PVSCSI &#8211; and that&#8217;s it. When you run the Ubuntu install, the installation process will see the disk as normal, and there it is, you&#8217;re done.<br />
<a href="http://www.torkwrench.com/wp-content/uploads/2010/01/pvscsi-esx.png"><img class="aligncenter size-full wp-image-185" title="pvscsi-esx" src="http://www.torkwrench.com/wp-content/uploads/2010/01/pvscsi-esx.png" alt="Setting the SCSI Controller Type" width="460" height="340" /></a></p>
<p>I&#8217;m not sure exactly why this this works in Ubuntu &#8211; whether the pvscsi driver has been added to a later version of the kernel, or if Ubuntu/Debian has patched the kernel to include support for it.</p>
<p>While we are on the subject of paravirtualized drivers, the vmxnet3 driver also works out of the box in the Ubuntu 10.04 install.</p>
<p>I&#8217;ll give it a try on RHEL6 soon, I haven&#8217;t tried it yet and am curious if it works in the same way.</p>
<p><del datetime="2011-02-11T01:42:33+00:00">There are some caveats about pvscsi.</del><br />
<del datetime="2011-02-11T01:42:33+00:00"><br />
There are some very good reasons not to use it &#8211; first it&#8217;s not supported by VMware on the boot disk as described above, and secondly it <a href="http://vpivot.com/2010/02/04/pvscsi-and-low-io-workloads">should not be used in a low throughput environment.</a><br />
</del></p>
<p>Update: 11th Feb, 2011<br />
The gotchas around pvscsi has changed &#8211; according to <a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&#038;cmd=displayKC&#038;externalId=1017652">this KB article</a> , the issue Scott identified with pvscsi in non intensive I/O workloads has gone away in vSphere 4.1, so  . Thanks to at Matt Liebowitz at thelowercasew.com for spotting this. You can read his post on it <a href="http://www.thelowercasew.com/more-vsphere-4-1-enhancements-welcome-back-pvscsi-driver">here.</a> . Matt asserts that the boot disk restriction is gone in 4.1 also, but it still unfortunately applies on Linux guests, according to this other <a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&#038;cmd=displayKC&#038;externalId=1010398">KB article.</a> I would suspect this is because it has been so tricky to configure. With it being included out of the box in Ubuntu Server, maybe they will lift this restriction soon? Personally, since I am running a dev and test lab, I think I will switch over to it exclusively anyway. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.torkwrench.com/2011/02/07/how-to-use-the-pvscsi-driver-on-ubuntu-lucid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cross platform DB2 backup and restore</title>
		<link>http://www.torkwrench.com/2010/10/18/cross-platform-db2-backup-and-restore/</link>
		<comments>http://www.torkwrench.com/2010/10/18/cross-platform-db2-backup-and-restore/#comments</comments>
		<pubDate>Mon, 18 Oct 2010 04:11:40 +0000</pubDate>
		<dc:creator>Graham</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[cross platform]]></category>
		<category><![CDATA[db2]]></category>
		<category><![CDATA[db2load]]></category>
		<category><![CDATA[db2move]]></category>

		<guid isPermaLink="false">http://www.torkwrench.com/?p=280</guid>
		<description><![CDATA[A guide on how to move a DB2 database from one platform to another with special emphasis on migrating from Windows to Linux.  <a href="http://www.torkwrench.com/2010/10/18/cross-platform-db2-backup-and-restore/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>DB2 backups are platform specific. Well, pretty much, <a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.admin.doc/doc/c0005960.htm">it&#8217;s a bit complicated.</a> </p>
<p>Recently, someone sent me a Windows DB2 backup for me to look at, and I wanted to move it to a Linux machine. </p>
<p>Here&#8217;s some steps about how you would do this.</p>
<p>1. On the source machine run:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;db2look -e -o database.sql -l -d &lt;database name&gt;</div></div>
<p>where <databasename> is the name of the database you want to move.</p>
<p>2. Copy the database.sql to your destination machine.</p>
<p>3. Create a database on the destination machine. You can use the same name, or use a different name and edit first connect statement in the database.sql file to point to the new name.</p>
<p>4. If you look at the database.sql, you will notice that the CREATE TABLESPACE commands will have paths in them. This will probably present a problem, since the paths are unlikely to exist on your destination machine. There are a number of ways you could deal with this, but the easiest in my opinion is to just use DB2&#8242;s automatic storage feature and let DB2 worry about it. To show you what I mean by this, here is a tablespace definition from my source database script, straight from db2look.</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">CREATE REGULAR TABLESPACE &quot;ICMLFQ32&quot; IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 32768 MANAGED BY SYSTEM <br />
&nbsp; &nbsp; &nbsp;USING ('C:\DB2\NODE0000\SQL00001\ICMLFQ32')<br />
&nbsp; &nbsp; &nbsp;EXTENTSIZE 32<br />
&nbsp; &nbsp; &nbsp;PREFETCHSIZE AUTOMATIC<br />
&nbsp; &nbsp; &nbsp;BUFFERPOOL ICMLSMAINBP32<br />
&nbsp; &nbsp; &nbsp;OVERHEAD 7.500000<br />
&nbsp; &nbsp; &nbsp;TRANSFERRATE 0.060000 <br />
&nbsp; &nbsp; &nbsp;DROPPED TABLE RECOVERY ON;</div></div>
<p>You can see that a Unix/Linux DB2 install would puke on the path in there. Using automatic storage command this becomes:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">CREATE TABLESPACE ICMLFQ32 PAGESIZE 32 K MANAGED BY AUTOMATIC STORAGE BUFFERPOOL ICMLSMAINBP32</div></div>
<p>Much simpler, but you will need to change these tablespace definitions by hand.</p>
<p>5. After fixing up the tablespace paths, try executing:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;db2 -tvf database.sql</div></div>
<p>I had a problem on my system, doing a Windows -> Linux restore. The database.sql had Windows line endings in it, and so when running it on Linux the command just hung. Running dos2unix database.sql fixed it. (This problem was the actual point of this post, but it seemed hard to explain by itself, so&#8230;. here we are). </p>
<p>6. Now you should have a skeleton database on the destination, with all the tables there just ready to receive data. To copy the actual data, we&#8217;ll be using db2move.<br />
On the source machine, create a new folder and change into it, and then run:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">db2move &lt;databasename&gt; export</div></div>
<p>7. This should fill the folder up with .ixf and .msg files . Copy the entire folder to your destination machine.</p>
<p>8. On the destination machine change to the export folder you just copied over and run:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">db2move &lt;databasename&gt; load</div></div>
<p>9. db2load temporarily suspends the referential integrity constraints of DB2. This is done so it doesn&#8217;t matter which order you load tables in. But since you have suspended these checks while the data is being loaded in you will need to go and make db2 check each table, to make sure that any referential integrity constraints in the database are valid. If you don&#8217;t, you get back a message like this when accessing any tables that you have loaded:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">SQL0668N &nbsp;Operation not allowed for reason code &quot;1&quot; on table &quot;&lt;tablename&gt;&quot;.</div></div>
<p>This means &#8211; &#8220;You need to check this table, to make sure it is valid&#8221; . </p>
<p>To do this, you can query the system catalog table to get back a list of all the tables that need checking, and with a little awk, generate a script to run against the database. There&#8217;s probably a prettier way to do this, but it works.</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">db2 connect to &lt;databasename&gt;<br />
db2 -x select &quot;tabschema,tabname from syscat.tables where status = 'C'&quot; | awk '{print &quot;SET INTEGRITY FOR &quot;$1&quot;.&quot;$2 &quot; IMMEDIATE CHECKED;&quot;}' &gt; check.sql<br />
db2 -tvf check.sql</div></div>
<p>Now you&#8217;re done. If you run a simple select statement against one of the tables you have loaded into the database, DB2 should return with the data. It&#8217;s worth noting that this method will work if changing versions of DB2, and will also cover moving from 32 bit versions of DB2 to 64 bit. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.torkwrench.com/2010/10/18/cross-platform-db2-backup-and-restore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to get rid of SECJ0055E error message in WebSphere Portal</title>
		<link>http://www.torkwrench.com/2010/10/12/how-to-get-rid-of-secj0055e-error-message-in-websphere-portal/</link>
		<comments>http://www.torkwrench.com/2010/10/12/how-to-get-rid-of-secj0055e-error-message-in-websphere-portal/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 23:44:34 +0000</pubDate>
		<dc:creator>Graham</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[Portal 6.0]]></category>
		<category><![CDATA[Portal 6.1]]></category>
		<category><![CDATA[WebSphere Application Server]]></category>
		<category><![CDATA[WebSphere Portal]]></category>

		<guid isPermaLink="false">http://www.torkwrench.com/?p=266</guid>
		<description><![CDATA[SECJ0055E is a WebSphere error message you might see in your SystemOut.log if you have changed your WAS Admin Password. Here is how to get rid of the message. <a href="http://www.torkwrench.com/2010/10/12/how-to-get-rid-of-secj0055e-error-message-in-websphere-portal/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>On a Portal 6.0 server I&#8217;m working on, I kept seeing the following error message in my SystemOut.log . It came up every half hour.</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[10/11/10 12:17:41:439 EST] 0000005b MethodDelegat A &nbsp; SECJ0055E: Authentication failed for wasadmin. The user id or password may have been entered incorrectly or misspelled. &nbsp;The user id may not exist, the account could have expired or disabled. &nbsp;The password may have expired.</div></div>
<p>But my Was Password was correct. I had set it myself and just used it to log into the admin console. </p>
<p>The key is the &#8220;MethodDelegat&#8221; part of the log message. This column is the source of the log message.  &#8220;Delegate method&#8221; made me think of bundled applications that use the RunAsRole . The pznscheduler application runs on a schedule, and sure enough also has a RunAsRole associated with it. </p>
<p>So what has happened, is that the WAS password has changed but the password is also saved with the pznscheduler application, and that saved password hasn&#8217;t been changed. Quite simply, there is a mismatch. This can happen on 6.1 and 7.0, and may also be related to the Portal Admin Password &#8211; it just depends which user is mapped as the RunAsRole . There are more applications that use the RunAsRole for Portal 6.0 .</p>
<p>For 6.0 here are the default out of the box applications you need to worry about when changing the password. LWP_TAI, pznscheduler, LWP_CAI, LWP_Security_Ext.</p>
<p>Of course, you may have other custom applications you need to worry about. The LWP apps use the Portal Admin user by default, so that&#8217;s why I didn&#8217;t have to change them.</p>
<p>For 6.1 you should check pznscheduler and CatalogHandler and for 7.0 the pznscheduler application is the only one you need to worry about. </p>
<p>So to fix it up, if you log into the WAS Admin Console and look for the pznscheduler app in the list of Enterprise Applications, you will see the &#8220;Map RunAs roles to users&#8221; link like in the picture below.</p>
<p><a href="http://www.torkwrench.com/wp-content/uploads/2010/10/runas1.png"><img src="http://www.torkwrench.com/wp-content/uploads/2010/10/runas1.png" alt="" title="runas" width="908" height="683" class="aligncenter size-full wp-image-271" /></a></p>
<p>Then in the next dialog, reenter the new password.</p>
<p><a href="http://www.torkwrench.com/wp-content/uploads/2010/10/runas2.png"><img src="http://www.torkwrench.com/wp-content/uploads/2010/10/runas2.png" alt="" title="runas2" width="728" height="683" class="aligncenter size-full wp-image-269" /></a></p>
<p>This dialog can be a bit funny so you may have to play around with it a bit. Restart Portal and the error should be gone!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.torkwrench.com/2010/10/12/how-to-get-rid-of-secj0055e-error-message-in-websphere-portal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to override a NetApp Filer missing battery shutdown</title>
		<link>http://www.torkwrench.com/2010/08/17/how-to-overide-a-netapp-filer-missing-battery-shutdown/</link>
		<comments>http://www.torkwrench.com/2010/08/17/how-to-overide-a-netapp-filer-missing-battery-shutdown/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 06:50:30 +0000</pubDate>
		<dc:creator>Graham</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[FAS960C]]></category>
		<category><![CDATA[Filer]]></category>
		<category><![CDATA[NetApp]]></category>

		<guid isPermaLink="false">http://www.torkwrench.com/?p=256</guid>
		<description><![CDATA[How to override the automatic shutdown in a NetApp Filer <a href="http://www.torkwrench.com/2010/08/17/how-to-overide-a-netapp-filer-missing-battery-shutdown/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Our team recently became the proud owners of a dirty massive NetApp disk array. It was ex lease, so we got it for almost nothing. It&#8217;s circa 2004, so it old and dusty and a some of the hardware doesn&#8217;t work, but with a little TLC we&#8217;ve got it up and humming away. It was good fun getting it to work. I&#8217;m not entirely sure what to do with it, probably just dump more VMs on it!</p>
<p>One of the problems we had getting it to work was the NVRAM IV card . Being such an old machine, the battery backed cache on there was getting on a bit. Messages like this would come up in the console when booting:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[nvram.bat.error:CRITICAL]: The NVRAM battery in the chassis is *degraded*<br />
[nvram.bat.error:CRITICAL]: The NVRAM battery in the chassis is *partially discharged*<br />
[monitor.nvramLowBattery:CRITICAL]: NVRAM battery is dangerously low.<br />
[nvram.bat.error:CRITICAL]: replayed event: The NVRAM battery in the chassis is *not safe to boot. Delay for charging canceled by user. Charger is ON *</div></div>
<p>In this situation, the machine sits in suspended animation for up to 10 hours until the battery charges to a certain level. It&#8217;s like being stuck in the bios. My battery is so old that it won&#8217;t hold enough charge, so I&#8217;m SOL. </p>
<p>You can override this charging phase by pressing ctrl-c when the filer is booting, however it will turn itself off after 24 hours, lest you should get complacent and think that your data is safe in the event of a power outage. NetApp as a company seem to be really serious about preventing data outage (mad respect yo)!</p>
<p>I think it would be cool to replace the battery in there, but I haven&#8217;t been able to find anywhere that will send me one for a reasonable price. Reading through the lines of the NetApp support site seams to suggest that the battery is only bundled with a NVRAM card, and that you can&#8217;t get them separately. I&#8217;ve cracked open the plastic seal on the battery and it looks like it is just a few camera batteries wired together and attached to a random circuit board. Haven&#8217;t been able to find any suitable parts yet to build my own, but if I do, you dear reader will be the first to know.</p>
<p>Until then I will disable the automatic shutdown, which seems to be undocumented, for obvious reasons. At the NetApp console, go :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">options raid.timeout 0</div></div>
<p>It&#8217;ll periodically spit out little passive aggressive missives like this:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">nvram.bat.missing.error:CRITICAL]: The NVRAM battery in the chassis is *missing or dead*. . Ensure battery is present and connected to the NVRAM card.<br />
[no.halt.nvramLowBattery:warning]: NVRAM battery is dangerously low. Automatic system shutdown is disabled. Replace the battery immediately!</div></div>
<p>But just ignore them &#8211; it should keep on trucking!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.torkwrench.com/2010/08/17/how-to-overide-a-netapp-filer-missing-battery-shutdown/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to add additional packages to a Fedora repo</title>
		<link>http://www.torkwrench.com/2010/04/21/how-to-add-additional-packages-to-a-fedora-repo/</link>
		<comments>http://www.torkwrench.com/2010/04/21/how-to-add-additional-packages-to-a-fedora-repo/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 05:28:56 +0000</pubDate>
		<dc:creator>Graham</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[Centos]]></category>
		<category><![CDATA[createrepo]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[kickstart]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[RHEL]]></category>
		<category><![CDATA[rpm]]></category>

		<guid isPermaLink="false">http://www.torkwrench.com/?p=212</guid>
		<description><![CDATA[How to add extra packages to your Fedora / CentOS / RHEL repository with the createrepo command. <a href="http://www.torkwrench.com/2010/04/21/how-to-add-additional-packages-to-a-fedora-repo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s time to give Fedora 12 a whirl on our servers. In the lab we are massive users of anaconda&#8217;s kickstart system for doing unattended installs. This means that everything has to be perfect, otherwise the install will hang. For instance, if a package that you have defined in the kickstart isn&#8217;t there, anaconda (the name for Fedora&#8217;s installer) will hang. </p>
<p>I&#8217;ve noticed that Fedora has dropped the compat-libstdc++-296 and compat-libstdc++-33, which we require for DB2. The compat packages are in still the &#8216;Everything&#8217; directory in the <a href="http://mirrors.fedoraproject.org/publiclist/Fedora/12/">Fedora 12 mirror sites</a>, so we can download them and add them to our repository. This approach would work with any RHEL/CentOS/Fedora type distro.</p>
<p>1. Extract the CD/DVD to a folder.<br />
2. Copy the packages you would like to add to the Packages subdirectory<br />
3. Cd to the top level directory of the extracted files (you should see directories like Packages, repodata, images as subdirectories )<br />
4. Run this command :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">createrepo --update -g repodata/comps.xml .</div></div>
<p>This will update the package metadata in the repodata directory to include the new packages that you have added.<br />
5. Add your new packages to the %packages section of the kickstart file &#8211; anaconda will now find the packages. For example, this is what mine says:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">%packages --nobase<br />
@core<br />
vim-enhanced<br />
-exim<br />
-samba-winbind<br />
-cairo<br />
-krb5-libs<br />
-fedora-release-notes<br />
-python<br />
-python-libs<br />
-gtk2<br />
-selinux-policy-targeted<br />
-selinux-policy<br />
-policycoreutils<br />
-system-config-samba<br />
-wireless-tools<br />
-openldap<br />
-libthai<br />
-cups-libs<br />
-efibootmgr<br />
-hicolor-icon-theme<br />
-fedora-logos<br />
-system-config-network-tui<br />
-system-config-firewall-tui<br />
-perl-Module-Pluggable<br />
-perl-Convert-ASN1<br />
-perl<br />
-popt<br />
-libtiff<br />
-libselinux<br />
-libselinux-devel<br />
-linux-atm-libs<br />
-cyrus-sasl-lib<br />
-ed<br />
-newt-python<br />
-mdadm<br />
-python-numeric<br />
-kudzu<br />
-gamin<br />
-parted<br />
-wireless-tools<br />
@smb-server<br />
libaio<br />
wget<br />
yum<br />
rpm-build<br />
createrepo<br />
sudo<br />
ntp<br />
openssh-server<br />
openssh-clients<br />
dhclient<br />
kernel-headers<br />
gcc<br />
gcc-c++<br />
mlocate<br />
anacron<br />
vixie-cron<br />
crontabs<br />
make<br />
curl<br />
unzip<br />
svn<br />
compat-libstdc++-296<br />
compat-libstdc++-33<br />
<br />
%post</div></div>
<p>This package selection is really minimal and enables us to build a Fedora machine from nothing in about 5 minutes!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.torkwrench.com/2010/04/21/how-to-add-additional-packages-to-a-fedora-repo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Offline Physical 2 Virtual conversion (p2v) using free tools</title>
		<link>http://www.torkwrench.com/2010/02/23/offline-physical-2-virtual-conversion-p2v-using-free-tools/</link>
		<comments>http://www.torkwrench.com/2010/02/23/offline-physical-2-virtual-conversion-p2v-using-free-tools/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 05:10:54 +0000</pubDate>
		<dc:creator>Graham</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[p2v]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://www.torkwrench.com/?p=200</guid>
		<description><![CDATA[How to convert a Physical Linux server to a Virtual Linux Server using free tools. <a href="http://www.torkwrench.com/2010/02/23/offline-physical-2-virtual-conversion-p2v-using-free-tools/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a bit confused about VMware&#8217;s Converter and when you can use it. Which offering is free? Which is paid? From the last time I looked, I think you need the enterprise product to do an offline conversion. And call me old school, but online conversion just seems like voodoo to me. I was in the office this weekend, trying to convert an important physical machine to a virtual one and it failed for all sorts of reasons:</p>
<p>1. SSH keys. If you have a heavily locked down machine with ssh key logins, you cannot use the online converter.</p>
<p>2. Network. If you can&#8217;t hit the &#8216;source&#8217; machine with ssh, you can&#8217;t convert it. Maybe it&#8217;s on another network, or has a firewall running on it. </p>
<p>3. So since all that didn&#8217;t work, you&#8217;re forced to install the converter on the same machine you are converting. Except you don&#8217;t want to do that because you will have to fill out lots of forms because you are installing a new piece of software on a production machine.</p>
<p>This is a fail safe method of converting a physical Linux server into a virtual one. I converted my physical machine to an ESX 4.0 host, but this method would probably work for other versions of VMware as well.</p>
<p>1. Power down the server.</p>
<p>2. Boot up the server using a linux live cd . <a href="http://www.slax.org/">(I like Slax)</a></p>
<p>3. At the command line, run:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">dd if=/dev/sda | ssh user@server 'dd of=sda.img'</div></div>
<p>Where server is a (linux) server with about twice as much disk space as you have, and /dev/sda is the address of the disk you would like to convert. You could probably do more that one disk using this howto, but I only did one.</p>
<p>4. Install Qemu on the Linux server. You should be able to find it in your yum repo, or apt-get repo.</p>
<p>5. Run this to convert the raw dd image to a vmdk.</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">qemu-img convert sda.img -O vmdk sda.vmdk</div></div>
<p>6. Copy the sda.vmdk to your datastore, using scp if you have ssh enabled on your VMware host, or using the Datastore browser if you don&#8217;t. Make sure to create a folder for the new machine.</p>
<p>7. Create a new VM in the vSphere Console, using values similar to the physical machine you are replacing. Make sure to select Custom at the first screen, not typical.</p>
<p>8. When it comes time to create a new disk, point vSphere at your newly converted vmdk file.</p>
<p>9. Boot up the server, and you&#8217;re done!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.torkwrench.com/2010/02/23/offline-physical-2-virtual-conversion-p2v-using-free-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing RHEL 5 using the VMware Paravirtualized SCSI driver (pvscsi)</title>
		<link>http://www.torkwrench.com/2010/01/06/installing-rhel-5-using-the-vmware-paravirtualized-scsi-driver-pvscsi/</link>
		<comments>http://www.torkwrench.com/2010/01/06/installing-rhel-5-using-the-vmware-paravirtualized-scsi-driver-pvscsi/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 02:24:32 +0000</pubDate>
		<dc:creator>Graham</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[Centos]]></category>
		<category><![CDATA[kickstart]]></category>
		<category><![CDATA[pvscsi]]></category>
		<category><![CDATA[RHEL]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://www.torkwrench.com/?p=184</guid>
		<description><![CDATA[How to install RHEL 5 with the VMware Paravirtualized SCSI driver embedded into the installation media, and then how to automate the installation using it <a href="http://www.torkwrench.com/2010/01/06/installing-rhel-5-using-the-vmware-paravirtualized-scsi-driver-pvscsi/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>VMware ESX 4.0 offers a number of different SCSI disk controllers. One of the newer and more interesting ones is the paravirtualized scsi adapter. As with any type of paravirtualized  driver the paravirtualized scsi driver promises to be faster and use less CPU cycles than the other storage drivers, and since I/O performance is so important to overall system performance in virtualized environments, I thought it was worth a look. I don&#8217;t have any solid numbers about how it performs with WebSphere Portal, but once I do you will be the first to know.</p>
<p>The new driver has a number of drawbacks, most notably it is not supported as a boot device. VMware expect you to configure your OS on one &#8216;normal&#8217; drive and then install a secondary drive with the paravirtualized adaptor. As well as being a pain from a management standpoint , it also ignores the speed increases that you would derive from having the OS on this faster device.</p>
<p>The method below will allow you to install Red Hat Enterprise 5.4 on your primary boot device using the pvscsi driver, and includes steps about how to automate the process with Redhat&#8217;s excellent kickstart system. If you are just interested in doing this on one system, <a href="http://vmadmin.nt.com.au/?p=28" target="_blank">I would follow these steps instead .</a> My steps are good if you want to automate this procedure over many machines, but it&#8217;s probably overkill if you just want to try pvscsi on one machine. Hopefully these steps will be outdated soon when the pvscsi module makes it into the regular mainline kernel, which looks like it might happen in 2.6.33!</p>
<p>1. Create a new VM from the vSphere Console in the usual way.</p>
<p>2. Click edit settings on the new VM and select the SCSI controller 0 device, then up on the right hand side pane, click Change SCSI Controller Type and select VMware Paravirtual.</p>
<p><img class="aligncenter size-full wp-image-185" title="pvscsi-esx" src="http://www.torkwrench.com/wp-content/uploads/2010/01/pvscsi-esx.png" alt="pvscsi-esx" width="460" height="340" /></p>
<p>Now we must create boot media. I use iso images and the virtual cdrom device in VMware, but you could modify these steps and use them with PXE booting or USB booting quite easily. The process here is to add the pvscsi kernel module to the boot disk, so the RHEL installer can see the VMware disk.</p>
<p>3. Grab the prebuilt boot.iso from the images/ subdirectory and unextract it. You can do this by running:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">mount -o loop boot.iso /mnt/boot<br />
<br />
cd /mnt/boot<br />
<br />
mkdir ~/boot<br />
<br />
cp -R * ~/boot<br />
<br />
cd ~/boot</div></div>
<p>You should now have an isolinux subdirectory in this directory.</p>
<p>4. Extract initrd.img . This is the initial ram disk which contains the boot files that the installer requires to run. Create a temp directory and extract it into it.</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">mkdir tmp<br />
cd tmp<br />
gzip -dc ../initrd.img | cpio -ivd</div></div>
<p>5. Now we need to extract (again!) the modules archive, so we can add pvscsi to it.</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">cd modules<br />
gzip -dc modules.cgz | cpio -ivd</div></div>
<p>This will make a new subdirectory which will have the same name as your kernel version. Mine looks like this :<br />
2.6.18-164.el5/x86_64<br />
If you are running a 32 bit kernel or a different version of Redhat, yours will look slightly different.</p>
<p>6. Extract the VMware tools rpm and copy the precompiled driver into the modules directory. Make another temp directory and copy the Vmware Tools rpm into it. You should be able to get the VMware tools rpm from your ESX host or from the VMware website.</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">rpm2cpio VMwareTools-4.0.0-latest.i386.rpm | cpio -idmv<br />
find . -name pvscsi.o | grep 2.6.18-164.el5 (this will return the path to where the driver is - the one below is my path)<br />
cp usr/lib/vmware-tools/modules/binary/bld-2.6.18-8.el5-x86_64smp-RHEL5/objects/pvscsi.o [temp dir from step 4]/modules/2.6.18-164.el5/x86_64/pvscsi.o<br />
cp usr/lib/vmware-tools/modules/binary/bld-2.6.18-8.el5-x86_64smp-RHEL5/objects/pvscsi.o [temp dir from step 4]/modules/2.6.18-164.el5/x86_64/pvscsi.ko</div></div>
<p>Then delete the temporary VMware tools directory.</p>
<p>7. Now we need to edit a bunch of text files that are in the modules subdirectory so Redhat can find the new driver.</p>
<p>At the bottom of module-info add:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">pvscsi<br />
&nbsp; &nbsp; &nbsp; &nbsp; scsi<br />
&nbsp; &nbsp; &nbsp; &nbsp; &quot;VMware PVSCSI driver&quot;</div></div>
<p>At the bottom of modules.alias add:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">alias pci:v000015ADd000007C0sv*sd*bc*sc*i* pvscsi</div></div>
<p>At the bottom of modules.dep add:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">pvscsi: scsi_mod</div></div>
<p>In pci.ids, search for &#8217;15ad&#8217; . You will see an entry for a few  VMware devices. To this list add:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">07c0 &nbsp;PVSCSI SCSI Controller</div></div>
<p>The whole stanza will look something like this:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">15ad &nbsp;VMware<br />
&nbsp; &nbsp; &nbsp; &nbsp; 0405 &nbsp;SVGA II Adapter<br />
&nbsp; &nbsp; &nbsp; &nbsp; 0710 &nbsp;SVGA Adapter<br />
&nbsp; &nbsp; &nbsp; &nbsp; 07c0 &nbsp;PVSCSI SCSI Controller</div></div>
<p>8. Now we need to compress everything. First the modules.cgz (and still in the modules directory) :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">find 2.6.18-164.el5 | cpio -H newc -ov | gzip -9 -c - &gt; modules.cgz<br />
rm -rf 2.6.18-164.el5</div></div>
<p>9. Compress the initrd.img</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">cd ..<br />
find . | cpio -H newc -ov | gzip -9 -c - &gt; initrd.img</div></div>
<p>10. Everything is compressed up again, now to make a boot cd.</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">cd ..<br />
mkisofs -o pvscsi.iso -V pvscsi -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -T .</div></div>
<p>11. Copy pvscsi.iso to your ESX datastore and click edit settings on your paravirtualized guest vm. Set the cdrom to boot from pvscsi.iso . </p>
<p>This is enough to get the installation image to boot correctly with the pvscsi driver, but what will happen next is that the server will reboot using the regular kernel, and it won&#8217;t have the pvscsi driver available to it, so the machine will not reboot. We need to install and configure the VMware tools rpm after the RHEL install so when the machine reboots it will have access to the pvscsi driver file. </p>
<p>If you don&#8217;t want to use kickstart to do this, and the end of the install, drop into a shell by typing ALT-CTRL-F2 and download the VMware tools rpm from a local webserver, or you could copy it to the guest VM using scp or something. For example :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">rpm -Uvh http://yourwebserver/vmwaretools.rpm<br />
vmware-config-tools.pl --default</div></div>
<p>Reboot and you should be good. Read on if you would like to automate this procedure.</p>
<p>12.The easiest way to create a kickstart file is to run through a normal install and then to copy the ~/anaconda-ks.cfg file from the server, which will have all your settings saved in it. <a href="http://www.torkwrench.com/wp-content/uploads/2010/01/example2.cfg">Or look at my example. </a> . All you should need to do here is change the url, key, hostname, rootpw parameters and edit the url to the vmware tools rpm to something valid for your environment and you should be good to go.</p>
<p>Stay tuned for performance numbers to show if any of this is even worth it! <img src='http://www.torkwrench.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.torkwrench.com/2010/01/06/installing-rhel-5-using-the-vmware-paravirtualized-scsi-driver-pvscsi/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Generating a java heap dump when WebSphere AppServer is not responding</title>
		<link>http://www.torkwrench.com/2009/12/29/generating-a-java-heap-dump-when-websphere-appserver-is-not-responding/</link>
		<comments>http://www.torkwrench.com/2009/12/29/generating-a-java-heap-dump-when-websphere-appserver-is-not-responding/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 04:05:14 +0000</pubDate>
		<dc:creator>Graham</dc:creator>
				<category><![CDATA[howto]]></category>

		<guid isPermaLink="false">http://www.torkwrench.com/?p=178</guid>
		<description><![CDATA[How to convert a system dump to a java heap dump .  <a href="http://www.torkwrench.com/2009/12/29/generating-a-java-heap-dump-when-websphere-appserver-is-not-responding/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This one is going to be esoteric.</p>
<p>Working in System Test, you tend to see problems crop up that can only be recreated after a certain amount of time. A memory leak, for example, might not appear to cause any problems until well into a test run. And it&#8217;s tough luck if you haven&#8217;t enabled the correct settings to obtain diagnostic information to debug the problem. You need to stop the server, set the required parameters (verbose gc, Xdump parameters, whatever) and rerun the test to reproduce the problem, which may take days.</p>
<p>Today at work a situation arose where a run had failed and the server was hung. You could send a kill -3 (a sigquit) at the process it would spit out a javacore file which is useful if you have some sort of thread contention or deadlocks. However the developer working on this problem wanted a heap dump, something which is difficult to generate if the server is not responding. </p>
<p><a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/topic/com.ibm.websphere.express.doc/info/exp/ae/tprf_generatingheapdumps.html">(Incidently, if the server is responding, you can use wsadmin to generate a heap dump, which is way easier than the method described below).</a></p>
<p>I ended up stumbling upon a neat way to generate a heap dump when the server is not responding. </p>
<p>1. Run</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">gcore -o &lt;corefile&gt; &lt;pid&gt;</div></div>
<p>Gcore is in the gdb package and forces the system to dump a binary core file. It should be about as large as the memory space that the java process was using when you ran it. Gcore is a Linux specific command; gdb proper should work on other unices, gcore is more of a convenience command. On Windows, use Dr Watson. The IBM support site has some excellent technotes around this sort of thing. I usually just google &#8220;Mustgather websphere hang&#8221; or something and they&#8217;ll often come up.</p>
<p>2. Run</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">. &lt;wp_profile&gt;/bin/setupCmdLine.sh</div></div>
<p>to put all these nifty java tools in your path. </p>
<p>3. Run</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;jextract &lt;coredumpname&gt; -nozip</div></div>
<p>This converts the system dump (core dump) into a useable format. It also produces an xml file that lists each active method and class taken at the time of the dump . </p>
<p>4. Run</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">jdmpview -core &lt;corefilename&gt; -xml &lt;corefilename&gt;.xml -J-Xmx&lt;big number&gt;</div></div>
<p>Where &#8220;big number&#8221; is a memory size bigger than the initial core file in bytes.<br />
jdmpview gives you a command line menu of ways you can poke and prod the dump file. And it is from here where you can construct a java heap dump from a system dump. Simply type <strong>heapdump</strong> at this prompt and it will create a phd (portable heapdump format) file which you can use in one of the many analysis tools in IBM Support Assistant, or else send it on to your friendly neighbourhood support professional.  <img src='http://www.torkwrench.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  A word of warning. With a large system dump file the final &#8216;heapdump&#8217; step seems to be quite slow. Still, it is better than waiting for days to reproduce the initial problem!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.torkwrench.com/2009/12/29/generating-a-java-heap-dump-when-websphere-appserver-is-not-responding/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

