tag:blogger.com,1999:blog-18888060636538545722024-03-13T13:26:14.536-07:00Sometimes Savvymiscellaneous solutions to miscellaneous problemsJames Deanhttp://www.blogger.com/profile/07254946210517343073noreply@blogger.comBlogger16125tag:blogger.com,1999:blog-1888806063653854572.post-44668897354708153092015-02-27T07:24:00.003-08:002015-02-27T07:26:33.483-08:00ConfigEngine webdav-deploy-zip-file results in MissingAccessRightsException (WP 8.5)<br />
Last night I needed to deploy some updates to the static portion of my WebSphere Portal v8.5 theme, which is something I've done many times before without issue. The developers provided a .zip file containing the changes they'd made via WebDAV to the theme on the development server, I dropped it onto my test server, and issued the <b style="font-size: small;">ConfigEngine.sh webdav-deploy-zip-file </b>command with the appropriate (and correct) parameters.<br />
<br />
Ninety seconds later, the dreaded words "<b>BUILD FAILED</b>" roll up my console. Ugh. <br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB1OUw67-8-lXqskPVLKtgHcHpsCiC7qWXpijtTDiTvKFOPCHb2vFbpkNyZXQC9mLlc1OXhBW6bbQTpi6xjR2B6eonxqjkDeJmP9zfzPKLsK2XdP7pYvu8c58OgDKkz_pngvGndPNyG1Zf/s1600/build_failed.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="BUILD FAILED" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB1OUw67-8-lXqskPVLKtgHcHpsCiC7qWXpijtTDiTvKFOPCHb2vFbpkNyZXQC9mLlc1OXhBW6bbQTpi6xjR2B6eonxqjkDeJmP9zfzPKLsK2XdP7pYvu8c58OgDKkz_pngvGndPNyG1Zf/s1600/build_failed.PNG" height="48" title="" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Oh boy, here we go again...</td></tr>
</tbody></table>
<i>"Exception found when executing wsadmin"</i> is fairly cryptic, so I went through the trace logs and found that the process was failing shortly after starting the wsadmin session with the the error "<i>com.ibm.wps.services.webdav.MissingAccessRightsException: EJPFB0002E: Exception occurred" </i>- this looks bad. <br />
<br />
I double checked my parameters, validated my wkplc.properties file, checked that my admin account was not locked, and tried again. Same error. After double checking everything again, I decided it was time to restart the cluster. I shut everything down, including the node agents, cleared out the typical temp folders, and brought my deployment manager back online. Once that was good, I started up all of the node agents and checked the sync status of my cluster: All green. I forced a full re-sync anyway. The re-sync went off without a problem, so I started up the portal servers and watched the logs for any signs of trouble, but there weren't any. <br />
<br />
Since everything was still looking good, I went ahead and ran the webdav-deploy-zip-file command again... 10 minutes later, BUILD SUCCESSFUL! Great!<br />
<br />
In summary, if I ever see another MissingAccessRightsException: EJPFB0002E while trying to use wsadmin to deploy a static theme, my first action will be to restart the cluster and try again!<br />
<br />
Happy Portalling!James Deanhttp://www.blogger.com/profile/07254946210517343073noreply@blogger.com0tag:blogger.com,1999:blog-1888806063653854572.post-91690513431671889772014-05-27T10:20:00.002-07:002014-05-27T10:28:13.810-07:00Resolving Issues with IBM WebSphere Portal 8.0 Default Search Service, Crawlers, and Collections<br class="tr_bq" />
<br />
After installing, clustering, and securing WP 8.0, the search services and collections may need to be recreated, but this process seems fragile. Multiple restarts and multiple attempts to recreate the default search service and the default Portal / WCM collections result in an array of errors that can be difficult to isolate.<br />
<blockquote class="tr_bq">
<span style="font-size: x-small;">Some of the error messages seen in the logs and in the UI when the Search Services are mis-configured:</span><br />
<ul>
<li><span style="font-size: x-small;">Unable to start Portal Search Service</span></li>
</ul>
<ul>
<li><span style="font-size: x-small;">Unable to create WebScanner</span></li>
</ul>
<ul>
<li><span style="font-size: x-small;">Failed to parse CrawlerStatus xml</span></li>
</ul>
</blockquote>
<br />
To completely reset the search services, I eventually had to take the following steps:<br />
<ul>
<li>Delete the Default Search Service via the Portal Admin console</li>
</ul>
<ol>
<li>Stop server(s)</li>
<li>Delete all files in /usr/wps/WebSphere/wp_profile/PortalServer/CollectionsConfig</li>
<li>Start the server(s)</li>
</ol>
<ul>
<li>Update Search Service Credentials</li>
</ul>
<ol>
<li>Manage Search -> Search Services -> Default Search Service -> Default Search Collection</li>
<li>Edit "Portal Content Source", "Security" tab to manually update credentials<br /><br /><i><span style="font-size: x-small;"><span style="color: red;"><b>Note</b></span>: I had a problem with my Portal Source due to incorrect protocol in the generated seedlist URI. This was causing a failure with a 401 HTTP code. To fix it I had to switch the URI from HTTPS to HTTP and restart the crawler. </span></i></li>
<li>Edit "WCM Content Source", "Security" tab to manually update credentials</li>
<li>Run both crawlers</li>
<li>Win.</li>
</ol>
<br />
Snippets of the stack traces I encountered in my portal logs during this process: <br />
<br />
<blockquote>
<span style="font-size: x-small;">PortalCollect E com.ibm.hrl.portlets.WsPse.PortalCollectionsService createWebScannerLite EJPJO0032E: Unable to create Webscanner<br />com.ibm.lotus.search.engine.SearchAdminException: Failed to get crawler status from persistence layer.<br />...<br /><span style="color: red;"><i>(the following line was a big clue!)</i></span><br />Caused by: com.ibm.lotus.search.engine.PersistenceException: Failed to parse CrawlerStatus xml.<br /> at com.ibm.lotus.search.engine.PersistenceService.getCrawlerStatus(PersistenceService.java:313)<br /> at com.ibm.lotus.search.engine.SearchAdminService.init(SearchAdminService.java:686)<br /> ... 47 more<br />Caused by: org.xml.sax.SAXParseException: Content is not allowed in trailing section.<br /> at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)<br /> at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)<br /> at com.ibm.lotus.search.engine.xml.SearchEngineInternalContentHandler.parseCrawlerStatus(SearchEngineInternalContentHandler.java:75)<br /> at com.ibm.lotus.search.engine.PersistenceService.getCrawlerStatus(PersistenceService.java:311)<br /> ... 48 more<br />PortalCollect E com.ibm.hrl.portlets.WsPse.PortalCollectionsService PortalCollectionsService EJPJO0119E: Failed to initialize portal collections services.<br />com.ibm.hrl.portlets.WsPse.PortalWebScannerException: EJPJO0032E: Unable to create Webscanner<br />...<br />Caused by: com.ibm.lotus.search.engine.SearchAdminException: Failed to get crawler status from persistence layer.<br /> at com.ibm.lotus.search.engine.SearchAdminService.init(SearchAdminService.java:688)<br /> at com.ibm.lotus.search.engine.SearchEngineWebScannerLiteImp.init(SearchEngineWebScannerLiteImp.java:180)<br /> at com.ibm.lotus.search.engine.SearchEngineWebScannerLiteImp.setProp(SearchEngineWebScannerLiteImp.java:291)<br /> at com.ibm.hrl.portlets.WsPse.PortalCollectionsService.createWebScannerLite(PortalCollectionsService.java:3669)<br /> ... 44 more<br />Caused by: com.ibm.lotus.search.engine.PersistenceException: Failed to parse CrawlerStatus xml.<br /> at com.ibm.lotus.search.engine.PersistenceService.getCrawlerStatus(PersistenceService.java:313)<br /> at com.ibm.lotus.search.engine.SearchAdminService.init(SearchAdminService.java:686)<br /> ... 47 more<br />Caused by: org.xml.sax.SAXParseException: Content is not allowed in trailing section.<br /> at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)<br /> at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)<br /> at com.ibm.lotus.search.engine.xml.SearchEngineInternalContentHandler.parseCrawlerStatus(SearchEngineInternalContentHandler.java:75)<br /> at com.ibm.lotus.search.engine.PersistenceService.getCrawlerStatus(PersistenceService.java:311)<br /> ... 48 more</span></blockquote>
<br />
Happy Portalling!James Deanhttp://www.blogger.com/profile/07254946210517343073noreply@blogger.com3tag:blogger.com,1999:blog-1888806063653854572.post-42819784944144048062014-05-09T07:13:00.001-07:002014-05-27T10:26:25.194-07:00IBM Lotus Connections Media Gallery Video Playback Fails with Error #2032In my Connections 4.0 environment, any attempt to play a video file through the embedded media player would fail with the mysterious code "Error #2032".<br />
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJq70KzU1NAo2EFdVhBWrqFK4ccGOsMmrSdmKSU1LbenOU0v61sQskucMX6d8hyphenhyphenGQR-WY4aWpYI3vZ018YoapH3WOpSsPsUrsKGSYjL9Mkwbgw2-aaerf3DxYAKsgx0j_32KLI9qznMvZq/s1600/2032.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="1" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJq70KzU1NAo2EFdVhBWrqFK4ccGOsMmrSdmKSU1LbenOU0v61sQskucMX6d8hyphenhyphenGQR-WY4aWpYI3vZ018YoapH3WOpSsPsUrsKGSYjL9Mkwbgw2-aaerf3DxYAKsgx0j_32KLI9qznMvZq/s1600/2032.jpg" height="283" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="border: solid 1px #000; text-align: center;">Error #2032 on Video Playback</td></tr>
</tbody></table>
<div>
<br /></div>
<div>
Digging a little deeper with Fiddler uncovered a 404 error for a file called "textLayout_1.0.0.595.swz". This file does not exist on my Connections server.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMgF179dcjrpzVF3rmepU1kBxqdeoPRyZfmm4aOe5skbbduRN5H0OJ0k8NQuWQNAHnXc_T0vKOjSGPJH9IZ3Wip09pEiFqOvNgEq0e4N9wy3g-IPfyloEl98C3KOCTZjwhPp554pYBtg_x/s1600/fiddler.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="1" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMgF179dcjrpzVF3rmepU1kBxqdeoPRyZfmm4aOe5skbbduRN5H0OJ0k8NQuWQNAHnXc_T0vKOjSGPJH9IZ3Wip09pEiFqOvNgEq0e4N9wy3g-IPfyloEl98C3KOCTZjwhPp554pYBtg_x/s1600/fiddler.jpg" height="107" width="640" /></a></div>
<br />
Apparently it is common for the Adobe Flash plugin to reach out to Adobe's website for certain supporting localization and support files, but in our environment that wasn't possible so it attempted to find the file on the internal server instead.. Why these files weren't included with Connections is a good question that I never did get an answer to. <br />
<br />
I was able to locate the missing file (textLayout_1.0.0.595.swz) on the Adobe web site at this URL: <span style="font-family: Arial, sans-serif; font-size: 10pt;"><a href="http://fpdownload.adobe.com/pub/swz/tlf/1.0.0.595/textLayout_1.0.0.595.swz" style="font-family: 'Times New Roman', serif; font-size: 12pt;">http://fpdownload.adobe.com/pub/swz/tlf/1.0.0.595/textLayout_1.0.0.595.swz</a></span><br />
<br />
Once I had the file, I was able to follow the procedure documented in the following Connections Customization article to customize my Connections installation with the missing file: <span style="font-family: Arial, sans-serif; font-size: 10pt;"><a href="http://infolib.lotus.com/resources/connections/4.0/doc/en_us/ic4_p4.html#t_admin_common_customize_main" style="font-family: 'Times New Roman', serif; font-size: 12pt;">http://infolib.lotus.com/resources/connections/4.0/doc/en_us/ic4_p4.html#t_admin_common_customize_main</a></span><br />
<br />
Then I tried again... and the problem persisted. Another fiddler trace revealed that the 404 had moved on to a different .swz file, though, so I repeated the process again for osmf_flex.4.0.0.13495.swz, then again for another .swz... and so on until I had added each of the following to my Connections installation:<br />
<br />
<ul>
<li>framework_4.0.0.14159.swz</li>
<li>osmf_flex.4.0.0.13495.swz</li>
<li>rpc_4.0.0.14159.swz</li>
<li>sparkskins_4.0.0.14159.swz</li>
<li>spark_4.0.0.14159.swz</li>
<li>textLayout_1.0.0.595.swz</li>
</ul>
<br />
<div>
Once all of these .swz files were hosted locally within my Connections installation, the Media Gallery started playing video normally!</div>
</div>
<div>
<br /></div>
<div>
Happy Portalling!</div>
<div>
<br /></div>
<div>
<i>Note: Your particular Connections Media Gallery Video Player (sn_media_video_player) may require different versions of these .swz files, but a little searching on the Adobe site should help you find the ones you need.</i></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
James Deanhttp://www.blogger.com/profile/07254946210517343073noreply@blogger.com0tag:blogger.com,1999:blog-1888806063653854572.post-8493978912686556492014-02-12T07:03:00.002-08:002014-05-27T10:26:48.603-07:00Installing OmniFind 9.1 to AIX 7.1 - Workaround for IBM XL C++ for AIX, V10.1.02 Error<br />
When attempting to install Omnifind 9.1 to an AIX 7.1 server, I encountered an error stating: "Required AIX Library is Missing" with details telling me that "xlC.aix.rte version must be 10.1.0.1 or later." I check the AIX machine and found that my xlC.aix.rte version was actually 12.1.0.0... should be good to go, right? Not so much!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicdz9g0f8U5H8aa2c3piFVdmAjhAPfC48a9dTRHGFTplIl7LjHCdQayRBW1SiyscSQnDLi-6rV1zOsChdNn4n13MIjaFkA0H1f9th-Gyg3sUVQnJCn4cD8qGMZPzEmzAYCi5NWaTfATKUX/s1600/err.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicdz9g0f8U5H8aa2c3piFVdmAjhAPfC48a9dTRHGFTplIl7LjHCdQayRBW1SiyscSQnDLi-6rV1zOsChdNn4n13MIjaFkA0H1f9th-Gyg3sUVQnJCn4cD8qGMZPzEmzAYCi5NWaTfATKUX/s1600/err.jpg" height="140" width="320" /></a></div>
<br />
Digging a little deeper, I found that a script named "getxlcversion61.sh" was being placed in my temporary folder during the installation process. This script ran and generated a text file containing the xlc version, but the text file was empty and the version check failed. Turns out that there's a bug in this script causing the problem, and here's how you get around it:<br />
<br />
<ol>
<li>Locate or define the temp directory for your installation. You may define it by setting the IATEMPDIR environment variable to whatever works best for you:</li>
<ol>
<li><b><span style="font-size: x-small;">export IATEMPDIR=/usr/omnifind/tmp</span></b></li>
</ol>
<li>Start Omnifind Installer: </li>
<ol>
<li><b><span style="font-size: x-small;">cd <installer dir>/Main</span></b></li>
<li><b><span style="font-size: x-small;">./install.bin</span></b></li>
<li>Choose Language & click “OK”</li>
</ol>
<li><b>STOP! DO NOT ACCEPT LICENSE AGREEMENT!</b></li>
<li>Move to the OmniFind 9.1 temp directory on your system and find the getxlcversion61.sh file:</li>
<ol>
<li>find . -name "getxlcversion61.sh"</li>
<li>This file is only available while the installer is running. If you quit the install, it cleans up after itself and removes this file.</li>
<li>This file is stored in a temporary, numbered directory within your temp folder. </li>
</ol>
<li>Update the following line to remove "C/":</li>
<ol>
<li><span style="font-size: x-small;">VERSION=`lslpp -lq xlC.aix61.rte 2>/dev/null | grep "XL </span><b><span style="color: #cc0000; font-size: large;"><u>C/</u></span></b><span style="font-size: x-small;">C++ Runtime" | cut -f16 -d" "` [BAD!]</span></li>
<li><span style="font-size: x-small;">VERSION=`lslpp -lq xlC.aix61.rte 2>/dev/null | grep "XL C++ Runtime" | cut -f16 -d" "` [GOOD!]</span></li>
</ol>
<li>Save and close getxlcversion61.sh.</li>
<li>Accept the license agreement.</li>
<li>Ignore the “unsupported OS” warning if installing to AIX 7.1.</li>
<li>Continue with the installation... and good luck!</li>
</ol>
Happy Portalling!James Deanhttp://www.blogger.com/profile/07254946210517343073noreply@blogger.com0tag:blogger.com,1999:blog-1888806063653854572.post-40696133536558560852013-12-12T06:43:00.000-08:002013-12-12T06:43:54.207-08:00Develop WebSphere Portal 8 Portlets without RAD<br />
My buddy Gabriel posted a great article about creating portlets for IBM WebSphere Portal 8 without the need for RAD (Rational Application Developer) by creating some simple, custom actions in the Eclipse IDE. Great stuff, and I can't wait to try it out!<br />
<br />
See the article here: <a href="http://theoreticaltechstuff.blogspot.com/2013/12/creating-portlets-without-rad-ibm.html?showComment=1386859313424#c3336981388793430830">http://theoreticaltechstuff.blogspot.com/2013/12/creating-portlets-without-rad-ibm.html?showComment=1386859313424#c3336981388793430830</a>James Deanhttp://www.blogger.com/profile/07254946210517343073noreply@blogger.com0tag:blogger.com,1999:blog-1888806063653854572.post-20382127505930048712013-03-18T10:48:00.005-07:002013-03-18T10:52:19.700-07:00IBM Launchpad Will Not Start: Unable to find supported browser<br />
<br />
I encountered this issue when attempting to start the launchpad to start an IBM WebSphere Portal 8 installation via the IBM installation manager - took me a while to sort out, so hopefully this write-up will save someone else some time!<br />
<div>
<br /></div>
<div>
When trying to fire up the IBM Launchpad application via the Setup.sh command on a system where Mozilla Firefox 17+ is configured as the default browser, you may receive an error message in your browser:</div>
<br />
<blockquote class="tr_bq">
<b>Unable to find supported browser</b></blockquote>
<blockquote class="tr_bq">
An error occurred while starting the launchpad. This error typically occurs when the launchpad is unable to find a supported browser. Check your product's documentation for a list of supported browsers.<br />
NOTE: This file is a place holder for product specific instructions about how to recover from this error.<br />
You should describe the location of installation programs on the product CD so the user can run them directly without starting launchpad if necessary.<br />
Procedure for correcting the error that is preventing the launchpad from displaying<br />
==============================================================<br />
The launchpad supports the following browsers:<br />
o Mozilla<br />
o Firefox<br />
o Internet Explorer (Microsoft Windows platforms only)<br />
o SeaMonkey</blockquote>
<div>
<br />
With a little digging, you'll discover that the whichBrowser variable in <i>launchpad\browser.sh</i> script (called by Setup.sh) is actually being set correctly, and that your browser is being opened with the following, valid command:<br />
<blockquote class="tr_bq">
/usr/bin/firefox -P Profile_2883 -profile /tmp/IBM_LaunchPad_2883/Profile_2883 file:///media/sf_websphere_media/media_80/wp_package/Setup/launchpad/Mozilla.html</blockquote>
This will immediately redirect you to <i>file:///media/sf_websphere_media/media_80/wp_package/Setup/launchpad/en/noBrowser.html</i> - it may not even be apparent that a redirection occurs, which can be frustrating. <br />
<br />
What's happening here is that the javascript file "Mozilla.js" (called from "Mozilla.html") is attempting to make a netscape.security.PrivilegeManager.enablePrivilege call, which is no longer supported by Firefox. This throws a javascript error, which triggers the redirect. <br />
<blockquote class="tr_bq">
Mozilla.js Line 43: netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");</blockquote>
<blockquote class="tr_bq">
<i>Support for enablePrivilege has been removed in Firefox (Bug 546848), so it is no longer possible to get special elevated privileges by using this method.</i></blockquote>
For details about the change to Firefox, the following support note: <a href="http://support.mozilla.org/en-US/questions/944433">http://support.mozilla.org/en-US/questions/944433</a><br />
<br />
<br />
To get around this problem, I installed an older version of Firefox (10.2). Once I did this, everything worked great! You can find older versions of Firefox here: <a href="https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/">https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/</a><br />
<br />
Happy Portalling!<br />
<br /></div>
James Deanhttp://www.blogger.com/profile/07254946210517343073noreply@blogger.com7tag:blogger.com,1999:blog-1888806063653854572.post-20747777456319702872013-03-13T16:47:00.001-07:002013-03-13T16:47:58.067-07:00CentOS 6 Minimal Desktop Install TipI've had to do this a few times, and I always forget the commands - this time I stumbled upon jbmurphy's blog and an old post that already had the information I needed: <br />
<br />
<pre style="background-color: white; border: 0px; color: #444444; font-size: 12px; line-height: 18px; outline: 0px; padding: 0px; vertical-align: baseline;">
</pre>
<pre style="background-color: white; border: 0px; color: #444444; font-size: 12px; line-height: 18px; outline: 0px; padding: 0px; vertical-align: baseline;">yum groupinstall basic-desktop desktop-platform x11 fonts</pre>
<br />
<br />
http://www.jbmurphy.com/2011/12/01/how-to-add-gnome-to-centos-6-minimal-install/<br />
<br />
Thanks JBM :)James Deanhttp://www.blogger.com/profile/07254946210517343073noreply@blogger.com0tag:blogger.com,1999:blog-1888806063653854572.post-52112459312614444542012-11-29T10:06:00.001-08:002012-11-29T10:06:39.959-08:00Direct to Server URL Loses Port Number (WebSphere Portal 6.1)I recently encountered a situation that required direct-to-node testing of one server in my portal cluster, so I looked up the default port for this server and typed in my internal URL: <u><i> http://myserver:10048/wps/portal...</i></u> It was immediately obvious that something was wrong when the IBM logo and the login button did not render correctly. <br />
<br />
I attempted to log in anyway... 404. I noticed that the URL was incorrect in that the server-specific port had been removed, so my URL looked like this: <u><i>http://myserver/wps/myportal/...</i></u><br />
<br />
It took a little digging, but I was able to find and resolve the problem with the following steps.<br />
<br />
<b>In the Deployment Manager</b><br />
<br />
<ol>
<li>Navigate to Resources -> Resource Environment Providers</li>
<li>Click WP_ConfigService</li>
<li>Click Custom Properties (on the right)</li>
<li>Clear the http.host.port property (mine was 80)</li>
<li>Clear https.host.port property to (mine was 443)</li>
<li>Sync the cluster and restart the portal servers</li>
</ol>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRo1-HV38x4Q8sUNfK8PQNlVIQPvNnv4VXGbgnyzgKqqBOSrjYJVZmzaJzz6oSAlPUcnqo2uNOB_86SzlqEa8LLkALUuAIqzqNoZ4gPxW8TlioGqXJNdLhFV6pfVS90NTrPI9xJWjVi_t6/s1600/config_sshot.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="108" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRo1-HV38x4Q8sUNfK8PQNlVIQPvNnv4VXGbgnyzgKqqBOSrjYJVZmzaJzz6oSAlPUcnqo2uNOB_86SzlqEa8LLkALUuAIqzqNoZ4gPxW8TlioGqXJNdLhFV6pfVS90NTrPI9xJWjVi_t6/s320/config_sshot.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Blank values for http.port and https.port</td></tr>
</tbody></table>
<br />
Happy portalling!<br />
<br />James Deanhttp://www.blogger.com/profile/07254946210517343073noreply@blogger.com0tag:blogger.com,1999:blog-1888806063653854572.post-46138108201275437352012-11-06T09:39:00.000-08:002012-11-06T09:39:32.349-08:00Hiding Portal Pages from Navigation (WP 6.1)Hiding portal pages (and other items) from Portal Navigation is a common requirement, but there is no obvious way to do this. There are some suggestions that using the Manage Pages portlet works, though I have not had any success with it. My personal approach requires xmlaccess, but has never let me down! Here's how I do it:<br />
<br />
First, use xmlaccess to export the page, label, or other item(s) that you need to hide from navigation. For a brief tutorial about xmlaccess exporting, the following article may be helpful: <a href="http://www-01.ibm.com/support/docview.wss?uid=swg21260098">http://www-01.ibm.com/support/docview.wss?uid=swg21260098</a><br />
<br />
Following is a snippet from a Portal 6.1.0.3 xmlaccess export that I took - it has been mangled slightly to fit on the page. The parameter in question is highlighted in red. If your export does not contain this parameter, just copy / paste from this article and it should work fine. <br />
<br />
<blockquote class="tr_bq">
<span style="font-size: xx-small;"> <content-node action="update" active="true" allportletsallowed="false" create-type="explicit" domain="rel".... ><br /> <supported-markup markup="html" update="set"/><br /> <localedata locale="en"><br /> <title>Enterprise Search for classic collections</title><br /> </localedata><br /> <parameter name="colorPalette" type="string" update="set"><![CDATA[bcbstp2Theme/bcbstp2Theme]]></parameter><br /> <b><span style="color: red;"><parameter name="com.ibm.portal.Hidden" type="string" update="set"><![CDATA[true]]></parameter></span></b><br /> <parameter name="com.ibm.portal.IgnoreAccessControlInCaches" type="string" update="set"><![CDATA[false]]></parameter><br /> <parameter name="com.ibm.portal.bookmarkable" type="string" update="set"><![CDATA[No]]></parameter><br /> <parameter name="com.ibm.portal.friendly.name" type="string" update="set"><![CDATA[OmniFindSearch]]></parameter><br /> <parameter name="com.ibm.portal.remote-cache-expiry" type="string" update="set"><![CDATA[0]]></parameter><br /> <parameter name="com.ibm.portal.remote-cache-scope" type="string" update="set"><![CDATA[NON-SHARED]]></parameter></span></blockquote>
<br />
If the parameter already exists, just change the value within the CDATA block to "<i>true</i>" (to hide the page) or "<i>false</i>" (to show the page), depending on what you need. <br />
<br />
Once you're done, save the xmlaccess file (make sure you keep a back up of your original export!) and reimport to your server. The changes should be visible to Portal Navigation on the next reload.<br />
<br />
Happy Portalling!<br />
<br />
James Deanhttp://www.blogger.com/profile/07254946210517343073noreply@blogger.com1tag:blogger.com,1999:blog-1888806063653854572.post-45952983951357449942012-10-26T08:00:00.001-07:002012-10-26T08:00:39.323-07:00Memory Analysis - Gathering Java Cores on Windows WebSphere Servers<div class="MsoNormal">
After dealing with a few memory leak issues in a windows-based, production environment, I have found the following steps to be most useful for gathering java cores to analyze for potential memory leaks. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Download the Microsoft Debug Diagnostic Tool v1.2 http://www.microsoft.com/download/en/details.aspx?id=26798</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Download the tool appropriate to your environment (32b vs. 64b)</div>
<div class="MsoNormal">
Install the tool with default settings.</div>
<div class="MsoNormal">
Launch the tool.</div>
<div class="MsoNormal">
Cancel the "Rules Wizard" (if it shows up)</div>
<div class="MsoNormal">
Click the "Processes" tab.</div>
<div class="MsoNormal">
Select the java.exe process to be monitored.</div>
<div class="MsoNormal">
Right click and select "Monitor for Leaks".</div>
<div class="MsoNormal">
Wait about 15 minutes after starting the server, then right click the monitored java.exe and select "Create Full Userdump</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
1. Install and take the defaults</div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
2. Launch Debug Diagnostic Tool<o:p></o:p></div>
<div class="MsoNormal">
3. Cancel the "Rules" wizard if it pops up<o:p></o:p></div>
<div class="MsoNormal">
4. Go to processes tab<o:p></o:p></div>
<div class="MsoNormal">
5. Locate the java.exe that you suspect to be leaking memory<o:p></o:p></div>
<div class="MsoNormal">
6. Right click and select "monitor for leaks"<o:p></o:p></div>
<div class="MsoNormal">
7. After 15 minutes, right click on the same java.exe from step 5 and select "Create Full Userdump"<o:p></o:p></div>
<div class="MsoNormal">
8. Depending how log it takes for memory to grow (minutes, hours, days, weeks...) collect 2 more userdumps over time for comparison analysis<o:p></o:p></div>
<div class="MsoNormal">
9. Review dumps by clicking the Advanced Analysis tab<o:p></o:p></div>
<div class="MsoNormal">
10. Click the "Add Data Files" button<o:p></o:p></div>
<div class="MsoNormal">
11. Locate dumps (default: <Debug_Diag_Install_Dir>\Logs\Misc)<o:p></o:p></div>
<div class="MsoNormal">
12. Select the dumps from the same PID that you created in step 7<o:p></o:p></div>
<div class="MsoNormal">
13. Select "MemoryAnalysis.asp"<o:p></o:p></div>
<div class="MsoNormal">
14. Click "Start Analysis"<o:p></o:p></div>
James Deanhttp://www.blogger.com/profile/07254946210517343073noreply@blogger.com0tag:blogger.com,1999:blog-1888806063653854572.post-23295832357874477592012-09-19T13:33:00.002-07:002012-09-19T13:33:47.293-07:00Adding LDAP Attributes to WebSphere Portal 6.1<div>
<br /></div>
<div>
When using an external directory for security in WebSphere Portal 6.1, you may find that some of the attributes in your directory are not available to applications, even through direct PUMA calls. This is because WP only has default access to a base set of default attributes and anything outside of this set has to be mapped manually.</div>
<div>
<br /></div>
<div>
Adding these attribute mappings for WebSphere Portal 6.1 can be a little tricky, but once you've done it a few times it gets easier. The following article attempts to provide a concise list of the steps required to add custom LDAP Attributes to your IBM WebSphere Portal 6.1 cluster.</div>
<div>
<br /></div>
<div>
The full IBM InfoCenter document can be found here: <a href="http://publib.boulder.ibm.com/infocenter/wpexpdoc/v6r1/index.jsp?topic=/com.ibm.wp.exp.doc_v6101/install/i5os_add_attributes.html">http://publib.boulder.ibm.com/infocenter/wpexpdoc/v6r1/index.jsp?topic=/com.ibm.wp.exp.doc_v6101/install/i5os_add_attributes.html</a></div>
<div>
<br /></div>
<div>
Special thanks to Gabriel Boie (<a href="http://theoreticaltechstuff.blogspot.com/">http://theoreticaltechstuff.blogspot.com</a>) for providing clarifying information regarding this task!</div>
<div>
<br /></div>
<div>
<div>
I will assume that you already have a valid LDAP configuration and that you know your primary node's profile path and can find both the ConfigEngine.sh/bat and wkplc.properties files. </div>
<div>
<br /></div>
</div>
<b>Install WIMSystem.ear</b><br />
This config engine task installs the WIM application required to add and map the new LDAP attributes. <br />
<div>
<ul>
<li><b>Stand-Alone:</b></li>
</ul>
</div>
<div>
<blockquote class="tr_bq">
ConfigEngine.bat wp-la-install-ear -DWasPassword=password
</blockquote>
</div>
<div>
<br />
<ul>
<li><b>Clustered: </b> <i><span style="font-size: x-small;">This must be run on the primary node, but the Server and Node name parameters are for the deployment manager.</span></i></li>
</ul>
<br />
<div>
<blockquote class="tr_bq">
ConfigEngine.bat wp-la-install-ear -DWasPassword=password –DServerName=server_name –DNodeName=node_name </blockquote>
</div>
<div>
<br />
<ul>
<li><b>Restart the Cluster.</b></li>
</ul>
</div>
<div>
<b>Add the LDAP Attributes</b><br />
<ul>
<li>Backup the wkplc.properties file in your primary node, then open it in a text editor.</li>
<li>Find and update the following properties with values that meet your needs - the following is an example specific to my environment.</li>
</ul>
<blockquote class="tr_bq">
la.providerURL=corbaloc:iiop:localhost:10031<br />la.propertyName=extendedAttribute01<br />la.entityTypes=PersonAccount<br />la.dataType=String<br />la.multiValued=true</blockquote>
</div>
<div>
<br />
<ul>
<li><b>Save the wkplc.properties file and execute the following ConfigEngine command:</b></li>
</ul>
<br />
<blockquote class="tr_bq">
ConfigEngine.bat wp-add-property -DWasPassword=password</blockquote>
<blockquote class="tr_bq">
<span style="font-size: x-small;"><b>TIP</b>: A connection refused error will occur if the providerURL address and/or port are incorrect. Check your server settings for address and port.</span> </blockquote>
<blockquote class="tr_bq">
<span style="font-size: x-small;"><b>TIP</b>: A NameNotFoundException following a message stating that the WIMServiceHome EJB could not be found will likely occur if you neglect to restart the cluster after installing or reinstalling WIMSystem (wp-la-install-ear).</span> </blockquote>
<blockquote class="tr_bq">
<span style="font-size: x-small;"><b>TIP</b>: An error stating that the service must be run on the deployment manager (paraphrased, I don't have the exact message, sorry) most likely indicates that WIMSystem.ear was installed using an incorrect server and/or node name. The following technote addresses this situation: <a href="http://www-01.ibm.com/support/docview.wss?uid=swg21383774">http://www-01.ibm.com/support/docview.wss?uid=swg21383774</a></span> </blockquote>
<blockquote class="tr_bq">
<span style="font-size: x-small;"><b>TIP</b>: Provide LDAP credentials at the prompt. Your bind account should have write access, though these mappings are possible without them.</span></blockquote>
</div>
<div>
<br />
<ul>
<li><b><span style="color: #cc0000;">REPEAT</span> </b>the steps under <b style="font-weight: bold;">"Add the LDAP Attributes" </b>once for each attribute you need to add.<b style="font-weight: bold;"> </b></li>
</ul>
</div>
<div>
<b>Map LDAP Attribute Names in Portal</b><br />
<br />
For the final step, we have to map the LDAP attribute names to Portal attribute names. This simple process is described in <a href="http://publib.boulder.ibm.com/infocenter/wpexpdoc/v6r1/index.jsp?topic=/com.ibm.wp.exp.doc_v6101/install/i5os_add_attributes.html">http://publib.boulder.ibm.com/infocenter/wpexpdoc/v6r1/index.jsp?topic=/com.ibm.wp.exp.doc_v6101/install/i5os_add_attributes.html</a>. The following example applies to standalone LDAP only! For federated LDAP, reference the aforementioned infocenter document.<br />
<br />
<br />
<ul>
<li><b>Update your wkplc.properties files with the appropriate LDAP names, desired portal names, and matching entity types.</b></li>
</ul>
<blockquote class="tr_bq">
standalone.ldap.attributes.mapping.ldapName= extensionAttribute2, extensionAttribute6, extensionAttribute8, extensionAttribute10, extensionAttribute11, extensionAttribute13</blockquote>
<blockquote class="tr_bq">
standalone.ldap.attributes.mapping.portalName= DepartmentCode, DivisionCode, ManagerCode, EmployeeGrade, BuildingName, BusinessUnit</blockquote>
<blockquote class="tr_bq">
standalone.ldap.attributes.mapping.entityTypes=PersonAccount, PersonAccount, PersonAccount, PersonAccount, PersonAccount, PersonAccount</blockquote>
<br />
<blockquote class="tr_bq">
</blockquote>
<b>Execute the following ConfigEngine task:</b><br />
<br />
<ul>
<li>ConfigEngine.bat|sh wp-update-standalone-ldap-attribute-config -DWasPassword=password</li>
</ul>
<br />
<br />
<br /></div>
</div>
James Deanhttp://www.blogger.com/profile/07254946210517343073noreply@blogger.com0tag:blogger.com,1999:blog-1888806063653854572.post-45064306808060536712011-12-28T08:20:00.000-08:002011-12-28T08:20:53.840-08:00Changing WebSphere Portal 6.1 Profile Path and Name using Graphical InstallerSetting the profile name, and path, while installing WebSphere Portal 6.1 is actually pretty easy, though many people don't even realize that it's possible. <br />
<br />
Simply add the profile path, name, and isDefault property to the install.sh command line. Here's an example:<br />
<blockquote class="tr_bq">./install.sh -W detectProfileAction.isDefault="True" -W detectProfileAction.profileName="wp_wcmdev01" -W detectProfileAction.profilePath="/opt/IBM/WebSphere/AppServer/profiles"</blockquote><br />
The full document from IBM can be found at the following URI. The article is specific to AIX and SA Portal, but worked fine for me on Linux using an ND configuration as well.<br />
<br />
<a href="http://publib.boulder.ibm.com/infocenter/wpdoc/v6r1/index.jsp?topic=/com.ibm.wp.ent.doc_v6101/install/stdalone_aix_inst_wp.html">http://publib.boulder.ibm.com/infocenter/wpdoc/v6r1/index.jsp?topic=/com.ibm.wp.ent.doc_v6101/install/stdalone_aix_inst_wp.html</a>James Deanhttp://www.blogger.com/profile/07254946210517343073noreply@blogger.com0tag:blogger.com,1999:blog-1888806063653854572.post-35041089281867002062011-09-16T09:30:00.000-07:002014-05-27T10:27:25.763-07:00RAFW Control Error: "Current user is not a root user!"When running IHS under a non-root user context you can run into some strange problems. In this case, we had properly installed and configured our IBM HTTP Servers under a non-root user and put them under RAFW management some months ago without any issues. <br />
<br />
Recently, however, changes to the topology required that we regenerate the RAFW environment tree. The web servers were discovered and added into the new environment, as expected, but every attempt to start or stop them from RAFW failed with the following error: <br />
<br />
<br />
<blockquote>
<i>/opt/buildforge/rafw/product/lib/jython/ant_jythonLib.xml:341: Current user is not a root user!</i></blockquote>
There were plenty of lines in the logs telling us that RAFW was connected under our non-root user context, all directory ownership and file level RWX rights were correct, and issuing commands from the local machine worked fine, but this error kept coming back! It was frustrating and, as is often the case with RAFW and WebSphere, even the mighty Google couldn't help.<br />
<br />
Some digging into the product directory eventually led us to the ineptly named value in the install.properties file for each of the IHS node entries in the RAFW environment tree: ALLOW_NON_ROOT_SILENT_INSTALL. Turns out that this value is not only checked during install, but is also read during other RAFW actions! We opened each install.properties file (\IBM\BuildForge\rafw\user\environments\prod_env\cells\cell\nodes\ihs01\install.properties in our environment) and set "ALLOW_NON_ROOT_SILENT_INSTALL = true".<br />
<br />
BINGO! The next run went smoothly and the following note was noticed in the logs:<br />
<div>
<br /></div>
<blockquote>
<i>[echo] Warning: ALLOW_NON_ROOT_SILENT_INSTALL is set to true: skipping root check</i></blockquote>
<br />
<div>
Happy RAFWing!</div>
James Deanhttp://www.blogger.com/profile/07254946210517343073noreply@blogger.com0tag:blogger.com,1999:blog-1888806063653854572.post-13068368298477611522011-08-18T11:29:00.000-07:002011-08-18T11:29:26.341-07:00Installing 32-bit CentOS 5.6 in VirtualBox 4.0 on 64-bit Windows 7VirtualBox (<a href="http://www.virtualbox.org/">http://www.virtualbox.org</a>) is a very handy virtualization application that can very quickly get your Virtual Machines up and running and supports a wide variety of environments. Lately, I have been using it to host various Linux distributions on my Windows 7 machine while I study and experiment with different technologies.<br />
<br />
Recently I decided that I wanted to install CentOS 5.6 with the Gnome DWM and ran into a couple of little small issues that are very easy to get around if you know how to handle them.<br />
<br />
First, I am using the image CentOS-5.6-i386-bin-DVD and initializing the new VM with the following settings (your settings may be slightly different):<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmYPhWhuf86g70zY5tjt33aZZndUPWvmwGtXWThEN9FYCJwO3UTY5MKJvjbcp-s5qfVCPR7D17qOvB1A8H7_XILzbLR5K7ztwZ3Al6su5XEE6y7DIEF2tlSi3BCAVl95KQs1uwgNo5ip2f/s1600/VBox+CentOS+Settings.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span class="Apple-style-span" style="color: black;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmYPhWhuf86g70zY5tjt33aZZndUPWvmwGtXWThEN9FYCJwO3UTY5MKJvjbcp-s5qfVCPR7D17qOvB1A8H7_XILzbLR5K7ztwZ3Al6su5XEE6y7DIEF2tlSi3BCAVl95KQs1uwgNo5ip2f/s320/VBox+CentOS+Settings.jpg" width="233" /></span></a></div><br />
<br />
Start the VM and choose the default boot option, which will attempt to load CentOS 5.6 from the mapped DVD drive. CentOS-5.6-i386-bin-DVD fails to load, hanging on the line: "NET: Registered protocol family 2":<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE9uPBRwOSA7LgtB2jeEueMqLjn9D4WuNHp_FdEnz-uH1p6UFJKD5Vhp8ZlEl8eumilguK7NFjJKYTIEJ9kpsPjlhIYP8LXYwoY18iRWuqsAQYpYlyo9O_t8xipHGy8IlQKBGLvMgi-fzY/s1600/VBox+CentOS_NotLoading.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span class="Apple-style-span" style="color: black;"><img border="0" height="206" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE9uPBRwOSA7LgtB2jeEueMqLjn9D4WuNHp_FdEnz-uH1p6UFJKD5Vhp8ZlEl8eumilguK7NFjJKYTIEJ9kpsPjlhIYP8LXYwoY18iRWuqsAQYpYlyo9O_t8xipHGy8IlQKBGLvMgi-fzY/s320/VBox+CentOS_NotLoading.jpg" width="320" /></span></a></div><br />
There is an easy workaround for this issue. Power off the hung VM using the guest window's menu or by closing the window and choosing the "Power Off" option, then go back to the VirtualBox Manager, select the CentOS VM from the list of machines, and click the "Settings" button. From there, you'll need to select "System" from the list on the left, then check the "Enable IO APIC" box, click the "OK" button, and start your new VM again.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5Eulrzcuq-7Nn_ruyRpjmxtFwdRlHU4MVW57zwYuWblgU2yOC4bhzmpfKcBF0QOSp9-HRqZoujQjuJ94WMx_LLuUQTV2a7-t2pIPhIkIN6EnjTNUHFmeOWsTiiwtYkx_S2qjZvGCFLV1O/s1600/VBox+CentOS+IOAPIC.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span class="Apple-style-span" style="color: black;"><img border="0" height="247" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5Eulrzcuq-7Nn_ruyRpjmxtFwdRlHU4MVW57zwYuWblgU2yOC4bhzmpfKcBF0QOSp9-HRqZoujQjuJ94WMx_LLuUQTV2a7-t2pIPhIkIN6EnjTNUHFmeOWsTiiwtYkx_S2qjZvGCFLV1O/s320/VBox+CentOS+IOAPIC.jpg" width="320" /></span></a></div><br />
The VirtualBox documentation states that<i> "Enabling the I/O APIC is required for 64-bit guest operating systems"</i>, then follows that statement up with<i> "software support for I/O APICs has been unreliable with some operating systems other than Windows"</i>. Since we're installing a 32-bit Linux distribution as our guest operating system, enabling I/O APIC does not sound like the right thing to do, but it works.<div><br />
After the guest operating system is installed, rebooted, and patched it's time to install the VirtualBox Guest Additions. The VB Guest Additions make the guest OS much more usable by providing a host of features that include better mouse integration, higher screen resolutions, clipboard integration, shared folders, and (my favorite) dynamic screen resizing. Before the VB Guest Additions can be installed completely, we must first install a couple of prerequisite packages:<br />
<br />
<ul><li>gcc - The Gnu C Complier</li>
<li>kernel-devel - Development package for building kernel modules to match the kernel.</li>
</ul><br />
To install gcc and kernel-devel in CentOS 5.6, open a terminal window as root and enter the following commands and answer "y" when asked to confirm the action. <br />
<ul><li>yum install kernel-devel</li>
<li>yum install gcc</li>
</ul><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqJY5GwApkqv4dDRh6C6jtZcAXPdpkM2YH3Eh5e34s0PHO6Eg7JdnRge9ZeJAMGQZ7eVzduYKdomfM1HMElMJObn6YPAwVouk24pyLB8pICHNCHuQyZter0v_aLyjF172EkIteClqYaCG0/s1600/vbox_prereqs.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><span class="Apple-style-span" style="color: black;"><img border="0" height="218" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqJY5GwApkqv4dDRh6C6jtZcAXPdpkM2YH3Eh5e34s0PHO6Eg7JdnRge9ZeJAMGQZ7eVzduYKdomfM1HMElMJObn6YPAwVouk24pyLB8pICHNCHuQyZter0v_aLyjF172EkIteClqYaCG0/s320/vbox_prereqs.jpg" width="320" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span class="Apple-style-span" style="font-size: small;"> </span><i><span class="Apple-style-span" style="font-size: x-small;">YUM (Yellow dog Updater Modified) will automatically detect <br />
dependencies and install any prerequisite packages. </span></i></td></tr>
</tbody></table><div>Now that the prerequisites are out of the way, it is safe to install the VirtualBox Guest Additions. From a command prompt enter the following command as root (note that this command will be different if your VB version is not exactly the same as mine): </div><br />
<b><i>/media/VBOXADDITIONS_4.0.12_72916/VBoxLinuxAdditions.run</i></b><br />
</div><div>In some situations it is possible that the kernel-devel package previously installed is not exactly what is required to build the VB Guest Additions module. If that happens, you will see an error message as in the following screenshot.<br />
<span class="Apple-style-span" style="background-color: white; font-family: Verdana, sans-serif, Arial, 'Trebuchet MS', 'Times New Roman'; font-size: x-small;"><br />
</span><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfwQLdMOpHkoHZt3unTenhmWrSoghMIOG_E-R7oKSqKzeImeqLdFsJRuF7d_xiIVlLtStCBi-rnLl_iKglwB7S13Q6lVcJYMZk6q0HVW8Wx6jL3opptoY8YOqRkyisqYGgJCpPrhKLWww6/s1600/vbox_prereqs_error.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span class="Apple-style-span" style="color: black;"><img border="0" height="218" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfwQLdMOpHkoHZt3unTenhmWrSoghMIOG_E-R7oKSqKzeImeqLdFsJRuF7d_xiIVlLtStCBi-rnLl_iKglwB7S13Q6lVcJYMZk6q0HVW8Wx6jL3opptoY8YOqRkyisqYGgJCpPrhKLWww6/s320/vbox_prereqs_error.jpg" width="320" /></span></a></div><span class="Apple-style-span" style="background-color: white; font-family: Verdana, sans-serif, Arial, 'Trebuchet MS', 'Times New Roman'; font-size: x-small;"><br />
</span><br />
If this happens, simply copy the line with the correct yum install kernel-devel-* command and run it at the terminal command prompt. This will install the specific version of the kernel development package that the VirtualBox needs in order to build the Guest Additions module. <br />
<br />
When the yum installer completes, execute VBoxLinuxAdditions.run again:<br />
<br />
<b><i>/media/VBOXADDITIONS_4.0.12_72916/VBoxLinuxAdditions.run</i></b><br />
<br />
Watch the screen - all boxes should have a green "OK" in them. <span class="Apple-style-span" style="background-color: white; font-family: Verdana, sans-serif, Arial, 'Trebuchet MS', 'Times New Roman'; font-size: x-small;"><br />
</span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6unLjWe0FePMc-ZZY0qtqjwOr8V059LCdICh_KEUcaSm5ol6qcY63HSd2wDo_oFdABbYbOaiszs1RCdpD2hyXLjknwpvsaM-L58fyqAyv6xqL7HgY9UsP2Keq4AVOXLdAjzDQ-kHLA2V0/s1600/vbox_ga_hooray.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><span class="Apple-style-span" style="color: black;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6unLjWe0FePMc-ZZY0qtqjwOr8V059LCdICh_KEUcaSm5ol6qcY63HSd2wDo_oFdABbYbOaiszs1RCdpD2hyXLjknwpvsaM-L58fyqAyv6xqL7HgY9UsP2Keq4AVOXLdAjzDQ-kHLA2V0/s320/vbox_ga_hooray.jpg" width="320" /></span></a></td></tr>
<tr><td class="tr-caption"><i>If there are any steps that say "FAILED" then you may need to consult the VirtualBox documentation at <a href="http://www.virtualbox.org/wiki/Documentation">http://www.virtualbox.org/wiki/Documentation</a>.</i><div style="font-size: medium;"><span class="Apple-style-span" style="background-color: white; font-family: Verdana, sans-serif, Arial, 'Trebuchet MS', 'Times New Roman'; font-size: x-small;"><br />
</span></div></td></tr>
</tbody></table><span class="Apple-style-span" style="font-family: Verdana, sans-serif, Arial, 'Trebuchet MS', 'Times New Roman';"><b>That's it! Now restart the guest OS, log in, and enjoy! </b></span><br />
<span class="Apple-style-span" style="font-family: Verdana, sans-serif, Arial, 'Trebuchet MS', 'Times New Roman'; font-size: x-small;"><br />
</span><br />
<span class="Apple-style-span" style="background-color: white; font-family: Verdana, sans-serif, Arial, 'Trebuchet MS', 'Times New Roman'; font-size: x-small;"><br />
</span></div>James Deanhttp://www.blogger.com/profile/07254946210517343073noreply@blogger.com0tag:blogger.com,1999:blog-1888806063653854572.post-25262476818043253542011-04-27T13:54:00.000-07:002011-04-27T14:08:40.262-07:00Propagating WAS 7.0 Plugin to Remote IHS ServerSometimes it looks like everything is right in the httpd.conf and admin.conf files, but stuff still just doesn't want to work. Very frustrating and time consuming until you realize that you missed one little step.<br />
<br />
If propagating a plugin from WAS 7.0 admin console to an IHS 7.0 server results in the following errors, then you may be simply missing an admin.passwd file. <br />
<br />
These two messages appear in the WAS console and the dmgr SystemOut.log:<br />
<br />
<blockquote><strong><em><span style="color: orange;">PLGC0063E: The propagation of the plug-in configuration file ... on the Web server computer failed.</span></em></strong></blockquote><blockquote><strong><em><span style="color: orange;">PLGC0049E: The propagation of the plug-in configuration file failed for the Web server.</span></em></strong> </blockquote>... and this one appears in the admin_error.log of your IHS server's logs directory: <br />
<br />
<blockquote><span style="color: orange;"><strong><em>[Wed Apr 27 14:57:15 2011] [error] [client 127.0.0.1] user MyAdmin not found: /wasadmin</em></strong></span></blockquote><div>Even though all of the user and account names are set correctly in the WAS console and on the target IHS server's various config files, the admin.passwd file is probably missing. Try setting the admin.passwd file by using the following command (of course, substituting "MyAdmin" for your local account name):</div><br />
<blockquote><strong><em><span style="color: orange;">./htpasswd -c /opt/IBM/HTTPServer/conf/admin.passwd MyAdmin</span></em></strong></blockquote>Then restart your admin server using the<span style="color: orange;"> <strong><em>/HTTPServer/bin/adminctrl stop | start</em></strong></span> commands, and try to propagate the plugin again. With any luck, you're in business. <br />
<br />
This will create the admin.passwd account in the HTTP Server's conf directory. Restart the admin server and try the propagation again.... worked for me!James Deanhttp://www.blogger.com/profile/07254946210517343073noreply@blogger.com1tag:blogger.com,1999:blog-1888806063653854572.post-33680113797985301682011-04-27T09:21:00.000-07:002011-04-27T09:21:17.944-07:00IBM RAFW 7.1.1.2 IHS Plugin Patch Failure - FixIBM's Rational Automation Framework for Websphere (RAFW) can save a ton of time and trouble when installing, configuring, or administering IBM WebSphere products, but when things go wrong it can be a massive headache! <br />
<br />
This time around I was attempting to create a new clustered WAS 7.0.0.13 environment with separate nodes running IHS and Plugin (7.0.0.13 as well). The installs ran fine until it came time to patch up the plugin to 7.0.0.13 / JDK SR8, at which point things went bad.<br />
<br />
At first it looked like the patch names were wrong, so I reviewed the patches directory under the RAFW Media tree and made some adjustments to my install.properties files for each of the two IHS nodes I was attempting to install and patch the Plugin to. Then I ran the steps again, but came up with different errors. A few more tweaks and I managed to get the right values, but the project still failed on the Install Plugin Nodes steps! <br />
<br />
In case anyone is struggling with the patch lines, here are the valid X_PATCHES values from the IHS Node's install.properties file:<br />
<br />
<br />
<blockquote># Patches to apply for each product.<br />
IHS_PATCHES=ihs70_fp13,ihs70_jdk_sr8<br />
PLUGIN_PATCHES=plugin70_fp13,plugin70_jdk_sr8</blockquote>The error, once the patch lines were sorted out, was:<br />
<br />
<br />
<blockquote>D:\IBM\BuildForge\rafw\product\actions\install\ihs\common\install_update_ihs_common.xml:176: D:\IBM\BuildForge\rafw\media\linux\X64\ihs\70\patches\@PATCHNAME@ not found.<br />
(our BF/RAFW stack is on a Windows server)<br />
</blockquote>This looked very odd to me, so I dug into the install_update_ihs_common.xml file and back-traced the call to the install_ihs70.xml file, where I found the offending @PATCHNAME@ in an ANT for loop ... what would we call it? A typo? I'm not sure how it got there. <br />
<br />
Anyway, on to the fix. It was easy - just replace "@PATCHNAME@" with a properly formatted ANT variable (as was done in other places in the script): "@{PATCHNAME}". <br />
<br />
<div><blockquote>ORIG: <param name="PATCH_NAME" value="@PATCHNAME@" /></blockquote></div><div><blockquote>FIXED: <param name="PATCH_NAME" value="@{PATCHNAME}" /></blockquote></div><br />
That's it... if it helps anyone, great! <br />
<br />
-KreebogJames Deanhttp://www.blogger.com/profile/07254946210517343073noreply@blogger.com0