<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>IT Developer World</title>
	<atom:link href="http://itdevworld.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://itdevworld.wordpress.com</link>
	<description>IT Related thoughts</description>
	<lastBuildDate>Mon, 16 Nov 2009 00:40:48 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='itdevworld.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/1d1eb8f45f88efe16b1fb8474a943568?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>IT Developer World</title>
		<link>http://itdevworld.wordpress.com</link>
	</image>
			<item>
		<title>WebSphere eXtreme Scale 6 book review</title>
		<link>http://itdevworld.wordpress.com/2009/11/16/websphere-extreme-scale-6-book-review/</link>
		<comments>http://itdevworld.wordpress.com/2009/11/16/websphere-extreme-scale-6-book-review/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 00:40:48 +0000</pubDate>
		<dc:creator>rafaelri</dc:creator>
				<category><![CDATA[JavaEE]]></category>
		<category><![CDATA[WebSphere]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[eXtreme Scale]]></category>
		<category><![CDATA[DynaCache]]></category>
		<category><![CDATA[low latency]]></category>
		<category><![CDATA[high performance]]></category>
		<category><![CDATA[data cache]]></category>
		<category><![CDATA[data grid]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[Packt Publishing]]></category>

		<guid isPermaLink="false">http://itdevworld.wordpress.com/?p=232</guid>
		<description><![CDATA[Anyone designing a high performance transaction processing system has already needed at least a caching solution for increasing response time on frequently used data. But sometimes these data might become bigger than usual, those are times when you need a sofisticate
solution, something that can automatically fetch data from a slower storage, offload when not necessary, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=232&subd=itdevworld&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Anyone designing a high performance transaction processing system has already needed at least a caching solution for increasing response time on frequently used data. But sometimes these data might become bigger than usual, those are times when you need a sofisticate</p>
<div id="attachment_233" class="wp-caption alignright" style="width: 131px"><a href="http://www.packtpub.com/ibm-websphere-extreme-scale-6?utm_source=itdevworld.wordpress.com&amp;utm_medium=bookrev&amp;utm_content=blog&amp;utm_campaign=mdb_001416" target="_blank"><img class="size-thumbnail wp-image-233 " title="WebSphere eXtreme Scale" src="http://itdevworld.files.wordpress.com/2009/11/websphere-extreme.jpg?w=121&#038;h=150" alt="WebSphere eXtreme Scale" width="121" height="150" /></a><p class="wp-caption-text">WebSphere eXtreme Scale Book</p></div>
<p>solution, something that can automatically fetch data from a slower storage, offload when not necessary, split its contents between various nodes, &#8230;</p>
<p>If you require something like this then you&#8217;ll notice that you need a DataGrid solution.</p>
<p>By now you&#8217;ll be asking yourself why I am on that subject? Recently I&#8217;ve been kindly invited to review a book about <a href="http://www.packtpub.com/ibm-websphere-extreme-scale-6?utm_source=itdevworld.wordpress.com&amp;utm_medium=bookrev&amp;utm_content=blog&amp;utm_campaign=mdb_001416" target="_blank">IBM WebSphere eXtreme Scale</a> from <a href="http://www.packtpub.com/" target="_blank">Packt Publishing</a>.</p>
<p>Apart from this, I work on a project where we were already evaluating WebSphere eXtreme Scale as a replacement for <a href="http://www.redbooks.ibm.com/redbooks/pdfs/sg247393.pdf" target="_blank">WebSphere DynaCache</a>.</p>
<p>If you are in a hurry and want to have a sneak peak on the book contents, take a look at the sample chapter (<a href="http://www.packtpub.com/files/7443-getting-started-with-ibm-websphere-sample-chapter-7-the-datagrid-api.pdf" target="_blank">Chapter 7: &#8220;The DataGrid API&#8221;</a>) available for free on Packt Publishing website.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/itdevworld.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/itdevworld.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/itdevworld.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/itdevworld.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/itdevworld.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/itdevworld.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/itdevworld.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/itdevworld.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/itdevworld.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/itdevworld.wordpress.com/232/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=232&subd=itdevworld&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://itdevworld.wordpress.com/2009/11/16/websphere-extreme-scale-6-book-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/292a48d9cbe4c198ce280095a4e3fecc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rafaelri</media:title>
		</media:content>

		<media:content url="http://itdevworld.files.wordpress.com/2009/11/websphere-extreme.jpg?w=121" medium="image">
			<media:title type="html">WebSphere eXtreme Scale</media:title>
		</media:content>
	</item>
		<item>
		<title>Anatomy of an inbound jca connector</title>
		<link>http://itdevworld.wordpress.com/2009/10/01/anatomy-of-an-inbound-jca-connector/</link>
		<comments>http://itdevworld.wordpress.com/2009/10/01/anatomy-of-an-inbound-jca-connector/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 21:39:24 +0000</pubDate>
		<dc:creator>rafaelri</dc:creator>
				<category><![CDATA[JavaEE]]></category>
		<category><![CDATA[EAI]]></category>
		<category><![CDATA[EIS]]></category>
		<category><![CDATA[Inbound connector]]></category>
		<category><![CDATA[JCA]]></category>
		<category><![CDATA[MessageDriven]]></category>
		<category><![CDATA[Resource Adapter]]></category>

		<guid isPermaLink="false">http://itdevworld.wordpress.com/?p=218</guid>
		<description><![CDATA[Continuing with the posts about JCA lets now have a look on the specifics of an Inbound JCA connector. As already mentioned in a previous post the term inbound is related to the flow of the call on your application.
The endpointActivation method plays a key role in an Inbound adapter. This is the method that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=218&subd=itdevworld&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Continuing with the posts about JCA lets now have a look on the specifics of an Inbound JCA connector. As already mentioned in a <a href="http://itdevworld.wordpress.com/2008/12/24/inbound-jca-connectors-introduction/">previous post</a> the term inbound is related to the flow of the call on your application.<br />
The <a href="http://www.j2ee.me/j2ee/1.4/docs/api/javax/resource/spi/ResourceAdapter.html#endpointActivation(javax.resource.spi.endpoint.MessageEndpointFactory,%20javax.resource.spi.ActivationSpec)">endpointActivation</a> method plays a key role in an Inbound adapter. This is the method that is triggered by the container on each of the Activation Specs you have configured on your Application Server instance. This is also the point where you start your monitoring thread (FooMonitor in our example). Remember that this monitoring object has to have access to a number of key container classes such as <a href="http://www.j2ee.me/j2ee/1.4/docs/api/javax/resource/spi/endpoint/MessageEndpointFactory.html">MessageEndpointFactory</a> implementation and also <a href="http://www.j2ee.me/j2ee/1.4/docs/api/javax/resource/spi/work/WorkManager.html">WorkManager</a>.<br />
Apart from container objects you&#8217;ll certainly need to have the <a href="http://www.j2ee.me/j2ee/1.4/docs/api/javax/resource/spi/ActivationSpec.html">ActivationSpec</a> object passed on the <a href="http://www.j2ee.me/j2ee/1.4/docs/api/javax/resource/spi/ResourceAdapter.html#endpointActivation(javax.resource.spi.endpoint.MessageEndpointFactory,%20javax.resource.spi.ActivationSpec)">endpointActivation</a> method since it carries on the configuration provided for this activation spec (taking JMS as an example it&#8217;d be host, queue, username, &#8230;).<br />
Another point to remember is that you&#8217;ll need to have a reference to the monitor threads that were activated since on container shutdown it&#8217;ll invoke the <a href="http://www.j2ee.me/j2ee/1.4/docs/api/javax/resource/spi/ResourceAdapter.html#endpointDeactivation(javax.resource.spi.endpoint.MessageEndpointFactory,%20javax.resource.spi.ActivationSpec)">endpointDeactivation</a> method and you&#8217;ll need to retrieve the related monitor thread and stop its execution.</p>
<h3>Inbound Connector classes</h3>
<p>Too much text lets now have a look on some diagrams:<br />
<a href="http://itdevworld.files.wordpress.com/2009/10/fooinboundadapterclassdiagram.jpg"><img class="aligncenter size-medium wp-image-220" title="FooInboundAdapterClassDiagram" src="http://itdevworld.files.wordpress.com/2009/10/fooinboundadapterclassdiagram.jpg?w=196&#038;h=300" alt="FooInboundAdapterClassDiagram" width="196" height="300" /></a><br />
As you may have already guessed, FooMonitor is the thread that will poll for events and schedule their notifications through the WorkManager. You should never use the monitor thread for the notification since it&#8217;ll be blocked during notification denying the sending of other notifications. That&#8217;s the reason you should schedule an asynchronous notification using WorkManager.</p>
<h3>FooNotification implementation</h3>
<p>Skipping to the FooNotification class, its implementation will be something like the following code:</p>
<pre class="brush: java;">
public void run() {
	MessageEndpoint endpoint = null;
	try {
		endpoint =  messageEndpointFactory.createEndpoint(null);
		((FooListener) endpoint).onMessage(msg);
	} catch (Exception ex) {
		logger.error(&quot;Error on foo notification&quot; ,ex);
	} finally {
		if (endpoint != null)
			endpoint.release();
	}
}
</pre>
<p>As already mentioned, that&#8217;s the point where the MessageEndpointFactory is used. It provides us proxies for FooMDB classes. Remember to ALWAYS invoke release after using this proxy otherwise your container may run out of proxies since it&#8217;ll think you are still using them.<br />
Another aspect not really detailed is the msg parameter on the onMessage method: this one is dependent on your ResourceAdapter &#8211; You are the one responsible for defining it (unless you have chosen a regular API like JMS).</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/itdevworld.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/itdevworld.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/itdevworld.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/itdevworld.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/itdevworld.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/itdevworld.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/itdevworld.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/itdevworld.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/itdevworld.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/itdevworld.wordpress.com/218/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=218&subd=itdevworld&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://itdevworld.wordpress.com/2009/10/01/anatomy-of-an-inbound-jca-connector/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/292a48d9cbe4c198ce280095a4e3fecc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rafaelri</media:title>
		</media:content>

		<media:content url="http://itdevworld.files.wordpress.com/2009/10/fooinboundadapterclassdiagram.jpg?w=196" medium="image">
			<media:title type="html">FooInboundAdapterClassDiagram</media:title>
		</media:content>
	</item>
		<item>
		<title>Disabling Seam Deployer</title>
		<link>http://itdevworld.wordpress.com/2009/09/09/disabling-seam-deployer/</link>
		<comments>http://itdevworld.wordpress.com/2009/09/09/disabling-seam-deployer/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 21:52:34 +0000</pubDate>
		<dc:creator>rafaelri</dc:creator>
				<category><![CDATA[JavaEE]]></category>
		<category><![CDATA[Classloader]]></category>
		<category><![CDATA[JBoss 5.1]]></category>
		<category><![CDATA[jboss-scanning.xml]]></category>
		<category><![CDATA[Seam]]></category>
		<category><![CDATA[seam.deployer]]></category>

		<guid isPermaLink="false">http://itdevworld.wordpress.com/?p=211</guid>
		<description><![CDATA[This post is only an update to the previous post. Recently I found an even more elegant solution in order to disable seam.deployer. Instead of removing the package from JBoss AS deployers folder we can provide a jboss-scanning.xml file which as documented on JBoss Wiki is able to remove certain files from scanning process.
So, a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=211&subd=itdevworld&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This post is only an update to the <a href="http://itdevworld.wordpress.com/2009/09/06/seam-on-jboss-5-x-without-seam-deployer/">previous post</a>. Recently I found an even more elegant solution in order to disable seam.deployer. Instead of removing the package from JBoss AS deployers folder we can provide a jboss-scanning.xml file which as documented on <a href="http://www.jboss.org/community/wiki/JBoss5custommetadatafiles">JBoss Wiki</a> is able to remove certain files from scanning process.<br />
So, a better (and also less instrusive) workaround is to provide under war/WEB-INF/classes a jboss-scanning.xml file with the following contents:</p>
<pre class="brush: xml;">
&lt;scanning xmlns=&quot;urn:jboss:scanning:1.0&quot;&gt;
  &lt;path name=&quot;servlet-1.0.war/WEB-INF/classes&quot;&gt;
    &lt;exclude name=&quot;seam.properties&quot;/&gt;
  &lt;/path&gt;
&lt;/scanning&gt;
</pre>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/itdevworld.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/itdevworld.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/itdevworld.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/itdevworld.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/itdevworld.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/itdevworld.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/itdevworld.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/itdevworld.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/itdevworld.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/itdevworld.wordpress.com/211/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=211&subd=itdevworld&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://itdevworld.wordpress.com/2009/09/09/disabling-seam-deployer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/292a48d9cbe4c198ce280095a4e3fecc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rafaelri</media:title>
		</media:content>
	</item>
		<item>
		<title>Seam on JBoss 5.x without Seam Deployer</title>
		<link>http://itdevworld.wordpress.com/2009/09/06/seam-on-jboss-5-x-without-seam-deployer/</link>
		<comments>http://itdevworld.wordpress.com/2009/09/06/seam-on-jboss-5-x-without-seam-deployer/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 02:48:48 +0000</pubDate>
		<dc:creator>rafaelri</dc:creator>
				<category><![CDATA[JavaEE]]></category>
		<category><![CDATA[Classloader]]></category>
		<category><![CDATA[JBoss 5.1]]></category>
		<category><![CDATA[JBoss Seam]]></category>
		<category><![CDATA[Seam]]></category>
		<category><![CDATA[VFS]]></category>
		<category><![CDATA[VFSScanner]]></category>

		<guid isPermaLink="false">http://itdevworld.wordpress.com/?p=202</guid>
		<description><![CDATA[Recently I started a proof of concept for a new project that will run on JBoss 5.1. The reason for picking JBoss 5.1 instead of the mature 4.2 series was due to its full support for JavaEE 1.5 (4.2 supports only EJB3 spec, no servlet injection, etc) as well as its longer support (4.2 will [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=202&subd=itdevworld&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Recently I started a proof of concept for a new project that will run on JBoss 5.1. The reason for picking JBoss 5.1 instead of the mature 4.2 series was due to its full support for JavaEE 1.5 (4.2 supports only EJB3 spec, no servlet injection, etc) as well as its longer support (4.2 will start an EOL cycle soon).<br />
As soon as I decided to use JBoss 5.x the classloading nightmare started. First of all, Seam uses a kinda strange hack for detecting its components (its scanner class makes use of java.io.File which in turn does not work on newer VFS system released on JBoss 5.x).<br />
Recommendation on Seam forums is to include no Seam file at you EAR/WAR and let Seam deployer do the trick but thiss comes with much obvious limitations:</p>
<ol>
<li>You&#8217;ll need a separate packaging for your application on JBoss (this is probably the worst limitation)</li>
<li>Seam (and its dependencies) upgrades will involve patching Application Server files</li>
</ol>
<p>But although recommended you can still deploy a regular Seam application without Seam Deployer. I&#8217;ll try to provide a step-by-step guide on how to circumvent this limitation:</p>
<p><strong>First step:</strong> remove <strong>seam.deployer</strong> from <strong>$JBOSS_HOME/server/default/deployers</strong> (an alternative and less intrusive solution that I just found after writting this post is described <a href="http://itdevworld.wordpress.com/2009/09/09/disabling-seam-deployer/">over here</a>)<br />
<strong>Second step:</strong> add all Seam dependencies (jboss-seam-ui.jar, jboss-seam.jar, etc) inside EAR (I sincerely suggest under a lib folder).<br />
<strong>Third step:</strong> place a jboss-app.xml with the following content on you EAR/META-INF folder</p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
  &lt;!DOCTYPE jboss-app
    PUBLIC &quot;-//JBoss//DTD J2EE Application 4.2//EN&quot;
    &quot;http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd&quot;&gt;
&lt;jboss-app&gt;
      &lt;loader-repository&gt;
            myapp.ear=MyAppEar
      &lt;/loader-repository&gt;
&lt;/jboss-app&gt;
</pre>
<p><strong>Fourth step:</strong> place a jboss-classloading.xml also on EAR/META-INF folder with the following contents:</p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot;
              name=&quot;myapp.ear&quot;
              domain=&quot;MyAppEar&quot;&gt;
&lt;/classloading&gt;
</pre>
<p><strong>Fifth step:</strong> place <strong>jboss-seam-int-jbossas.jar</strong> from <strong>seam.deployer/lib-int</strong> into your <strong>EAR/lib</strong> folder. (this jar contains org.jboss.seam.integration.jbossas.vfs.VFSScanner)<br />
<strong>Sixth step:</strong> place another jboss-classloading.xml on WAR/WEB-INF folder with the following contents:</p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot;
              name=&quot;mywebapp.war&quot;
              domain=&quot;MyWebAppWar&quot;&gt;
&lt;/classloading&gt;
</pre>
<p><strong>Seventh step:</strong> Place a jboss-web.xml under WAR/WEB-INF with the following contents:</p>
<pre class="brush: xml;">
&lt;jboss-web&gt;
	&lt;class-loading java2ClassLoadingCompliance=&quot;false&quot;&gt;
		&lt;loader-repository&gt;
			mywebapp.war:loader=MyWebApp
			&lt;loader-repository-config&gt;java2ParentDelegation=false
			&lt;/loader-repository-config&gt;
		&lt;/loader-repository&gt;
	&lt;/class-loading&gt;
&lt;/jboss-web&gt;
</pre>
<p><strong>Eighth step:</strong> place a seam-deployment.properties anywhere in the classpath (anywhere but before seam jar) with the following contents:</p>
<pre class="brush: cpp;">
org.jboss.seam.deployment.scanners=org.jboss.seam.integration.jbossas.vfs.VFSScanner
</pre>
<p><strong>Ninth step:</strong> Add all Seam dependencies on <strong>MANIFEST.MF</strong> file under <strong>WAR/META-INF</strong> and remember to include <strong>jboss-seam-int-jbossas.jar</strong> on the classpath.</p>
<p>That&#8217;s all you need to avoid having a separate packaging for a Seam enterprise application running on JBoss 5.x (sincerely I guess that you risk having to remove the seam-deployment.properties only). This also makes it easier to replace the JSF implementation on your application. </p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/itdevworld.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/itdevworld.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/itdevworld.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/itdevworld.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/itdevworld.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/itdevworld.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/itdevworld.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/itdevworld.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/itdevworld.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/itdevworld.wordpress.com/202/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=202&subd=itdevworld&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://itdevworld.wordpress.com/2009/09/06/seam-on-jboss-5-x-without-seam-deployer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/292a48d9cbe4c198ce280095a4e3fecc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rafaelri</media:title>
		</media:content>
	</item>
		<item>
		<title>Accessing a HMC through a SSH tunnel</title>
		<link>http://itdevworld.wordpress.com/2009/05/17/accessing-a-hmc-through-a-ssh-tunnel/</link>
		<comments>http://itdevworld.wordpress.com/2009/05/17/accessing-a-hmc-through-a-ssh-tunnel/#comments</comments>
		<pubDate>Sun, 17 May 2009 22:48:13 +0000</pubDate>
		<dc:creator>rafaelri</dc:creator>
				<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[Admin]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[DLPAR]]></category>
		<category><![CDATA[HMC]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[Java Web Start]]></category>
		<category><![CDATA[JNLP]]></category>
		<category><![CDATA[LPAR]]></category>
		<category><![CDATA[MSI]]></category>
		<category><![CDATA[Power]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[System P]]></category>
		<category><![CDATA[tunnel]]></category>

		<guid isPermaLink="false">http://itdevworld.wordpress.com/?p=186</guid>
		<description><![CDATA[For sysadmins this might be a rather easy task, but as a HMC end-user I had to search a little bit.
If you never used an IBM server you might be wondering what is an HMC. At first it seems like a notebook in a blade format as you can see on the picture below: 
But [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=186&subd=itdevworld&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>For sysadmins this might be a rather easy task, but as a HMC end-user I had to search a little bit.<br />
If you never used an IBM server you might be wondering what is an HMC. At first it seems like a notebook in a blade format as you can see on the picture below:<br />
<div id="attachment_187" class="wp-caption aligncenter" style="width: 310px"><a href="http://itdevworld.files.wordpress.com/2009/05/hmc.jpg"><img class="size-medium wp-image-187" title="HMC" src="http://itdevworld.files.wordpress.com/2009/05/hmc.jpg?w=300&#038;h=246" alt="HMC" width="300" height="246" /></a><p class="wp-caption-text">HMC (source: http://www.fz-juelich.de/jsc/index.php?index=1979)</p></div><br />
But apart from its similarity to a fancy notebook, its purpose is to allow administration of IBM LPARs (or DLPARs after Power6 arrival).<br />
There you can boot, shutdown, change CPUs and memory for LPARs, etc.<br />
Apart from allowing the administration in loco, it provides a Java based application that can be installed either through a <a href="http://java.sun.com/javase/technologies/desktop/javawebstart/index.jsp">Java Web Start launcher</a> or using an <a href="http://en.wikipedia.org/wiki/MSI">MSI installer</a>.<br />
I&#8217;ll try to explain the steps involved in running it using the <a href="http://en.wikipedia.org/wiki/Java_Web_Start#Java_Network_Launching_Protocol_.28JNLP.29">JNLP</a> Java Web Start launcher.</p>
<p><strong>Setup SSH tunnel and Download JNLP</strong></p>
<p>Open the SSH connection between you and any host on the same network as your HMC (this can even be the HMC itself) and tunnel the following ports from your machine to HMC&#8217;s IP.</p>
<ul>
<li>30000 up to 30009</li>
<li>9090</li>
<li>9960</li>
<li>8443</li>
<li>443</li>
<li>80</li>
</ul>
<p>Sincerely, I did not check if, strictly speaking, all the ports are necessary but feel free to test them and leave  a comment. These ports were the result of a few searches over the internet.</p>
<p>After setting up the tunnel, point your preferred browser to http://localhost and <strong>download</strong> the JNLP file at the following link:</p>
<div id="attachment_192" class="wp-caption aligncenter" style="width: 310px"><a href="http://itdevworld.files.wordpress.com/2009/05/hmc-http.jpg"><img class="size-medium wp-image-192" title="HMC html page" src="http://itdevworld.files.wordpress.com/2009/05/hmc-http.jpg?w=300&#038;h=172" alt="HMC html page" width="300" height="172" /></a><p class="wp-caption-text">HMC html page</p></div>
<p>I had to edit the codebase property of the JNLP file, but I guess it wont be necessary as I still had to edit the hosts file and add an alias for the machine name (eg.: hmc.my-server.mylocalnetwork).  You&#8217;ll end up having codebase as follows:</p>
<pre class="brush: xml;">codebase=&quot;http://127.0.0.1/wsmship/codebase&quot;</pre>
<p><strong>Edit hosts file</strong></p>
<p>The next step is to edit your hosts file so it will have an extra alias pointing to <strong>127.0.0.1</strong>. Copy the host name from the <em>original value of the codebase property</em>.<br />
Then launch the JNLP file with Java Web Start. If you have the mime type correctly associated at your operating system, double click the file and wait for its launch. Sometimes it may complain at the first connection attempt, retry it and it&#8217;ll connect successfully. I guess I might still be missing some ports from the 30000~30009 range, since my first attempt was using ports from 30001~30009 and it always complained at the first attempt.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/itdevworld.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/itdevworld.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/itdevworld.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/itdevworld.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/itdevworld.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/itdevworld.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/itdevworld.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/itdevworld.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/itdevworld.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/itdevworld.wordpress.com/186/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=186&subd=itdevworld&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://itdevworld.wordpress.com/2009/05/17/accessing-a-hmc-through-a-ssh-tunnel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/292a48d9cbe4c198ce280095a4e3fecc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rafaelri</media:title>
		</media:content>

		<media:content url="http://itdevworld.files.wordpress.com/2009/05/hmc.jpg?w=300" medium="image">
			<media:title type="html">HMC</media:title>
		</media:content>

		<media:content url="http://itdevworld.files.wordpress.com/2009/05/hmc-http.jpg?w=300" medium="image">
			<media:title type="html">HMC html page</media:title>
		</media:content>
	</item>
		<item>
		<title>WebSphere Concepts: Cell, Node, Cluster, Server&#8230;</title>
		<link>http://itdevworld.wordpress.com/2009/05/03/websphere-concepts-cell-node-cluster-server/</link>
		<comments>http://itdevworld.wordpress.com/2009/05/03/websphere-concepts-cell-node-cluster-server/#comments</comments>
		<pubDate>Sun, 03 May 2009 01:20:12 +0000</pubDate>
		<dc:creator>rafaelri</dc:creator>
				<category><![CDATA[JavaEE]]></category>
		<category><![CDATA[Cell]]></category>
		<category><![CDATA[Cluster]]></category>
		<category><![CDATA[concepts]]></category>
		<category><![CDATA[Deployment Manager]]></category>
		<category><![CDATA[dmgr]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Node Agent]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[WebSphere]]></category>

		<guid isPermaLink="false">http://itdevworld.wordpress.com/?p=180</guid>
		<description><![CDATA[Quick post&#8230; If you are not familiar with WebSphere at first you might get confused with its concepts: cell, deployment manager, node, node agent, cluster, server, &#8230;
First of all, lets start with the concept of a Cell:
A Cell is a virtual unit that is built of a Deployment Manager and one or more nodes. I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=180&subd=itdevworld&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:left;">Quick post&#8230; If you are not familiar with WebSphere at first you might get confused with its concepts: cell, deployment manager, node, node agent, cluster, server, &#8230;</p>
<p style="text-align:left;">First of all, lets start with the concept of a Cell:</p>
<p style="text-align:left;">A <strong>Cell</strong> is a virtual unit that is built of a <a href="#DeploymentManager">Deployment Manager </a>and one or more nodes. I guess a picture will help making things clearer:</p>
<p style="text-align:left;">
<div id="attachment_181" class="wp-caption aligncenter" style="width: 485px"><a href="http://itdevworld.files.wordpress.com/2009/05/websphere-cell.jpg"><img class="size-full wp-image-181" title="WebSphere Cell" src="http://itdevworld.files.wordpress.com/2009/05/websphere-cell.jpg?w=475&#038;h=327" alt="WebSphere Cell" width="475" height="327" /></a><p class="wp-caption-text">WebSphere Cell</p></div>
<p style="text-align:left;">But still there are a few concepts that need to be explained. The next obvious one is the Deployment Manager.</p>
<p style="text-align:left;">The <strong><a name="DeploymentManager">Deployment Manager</a></strong> is a process (in fact it is an special WebSphere instance) responsible for managing the installation and maintenance of Applications, Connection Pools and other resources related to a J2EE environment. It is also responsible for centralizing user repositories for application and also for WebSphere authentication and authorization.</p>
<p style="text-align:left;">The Deployment Manager communicates with the Nodes through another special WebSphere process, the <a href="#NodeAgent">Node Agent</a>.</p>
<p style="text-align:left;">The <strong><a name="Node">Node</a></strong> is another virtual unit that is built of a Node Agent and one or more <a href="#Server">Server</a> instances.</p>
<p style="text-align:left;">The <strong><a name="NodeAgent">Node Agent</a></strong> it the process responsible for spawning and killing server processes and also responsible for configuration synchronization between the Deployment Manager and the Node. Extra care must be taken when changing security configurations for the cell, since communication between Deployment Manager and Node Agent is ciphered and secured when security is enabled, Node Agent needs to have configuration fully resynchronized when impacting changes are made to Cell security configuration.</p>
<p style="text-align:left;"><strong><a name="Server">Servers</a></strong> are regular Java process responsible for serving J2EE requests (eg.: serving JSP/JSF pages, serving EJB calls, consuming JMS queues, etc).</p>
<p style="text-align:left;">And to finish, <strong>Clusters</strong> are also virtual units that groups <a href="#Server">Servers</a> so resources added to the Cluster are propagated to every Server that makes up the cluster, this will in fact affect usually more than a single <a href="#Node">Node</a> instance.</p>
<p style="text-align:left;">Lets finish this post with another diagram to illustrate all those concepts.</p>
<p style="text-align:left;">
<div id="attachment_183" class="wp-caption aligncenter" style="width: 542px"><a href="http://itdevworld.files.wordpress.com/2009/05/websphere-concepts.jpg"><img class="size-full wp-image-183" title="WebSphere Concepts" src="http://itdevworld.files.wordpress.com/2009/05/websphere-concepts.jpg?w=532&#038;h=388" alt="WebSphere Concepts" width="532" height="388" /></a><p class="wp-caption-text">WebSphere Concepts</p></div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/itdevworld.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/itdevworld.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/itdevworld.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/itdevworld.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/itdevworld.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/itdevworld.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/itdevworld.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/itdevworld.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/itdevworld.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/itdevworld.wordpress.com/180/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=180&subd=itdevworld&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://itdevworld.wordpress.com/2009/05/03/websphere-concepts-cell-node-cluster-server/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/292a48d9cbe4c198ce280095a4e3fecc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rafaelri</media:title>
		</media:content>

		<media:content url="http://itdevworld.files.wordpress.com/2009/05/websphere-cell.jpg" medium="image">
			<media:title type="html">WebSphere Cell</media:title>
		</media:content>

		<media:content url="http://itdevworld.files.wordpress.com/2009/05/websphere-concepts.jpg" medium="image">
			<media:title type="html">WebSphere Concepts</media:title>
		</media:content>
	</item>
		<item>
		<title>First impressions of IBM WebSphere MQ Low Latency Messaging</title>
		<link>http://itdevworld.wordpress.com/2009/04/10/first-impressions-of-ibm-websphere-mq-low-latency-messaging/</link>
		<comments>http://itdevworld.wordpress.com/2009/04/10/first-impressions-of-ibm-websphere-mq-low-latency-messaging/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 00:39:00 +0000</pubDate>
		<dc:creator>rafaelri</dc:creator>
				<category><![CDATA[JavaEE]]></category>
		<category><![CDATA[Messaging]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[JMS]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[Low Latency Messaging]]></category>
		<category><![CDATA[Multicast]]></category>
		<category><![CDATA[Queue]]></category>
		<category><![CDATA[Resource Adapter]]></category>
		<category><![CDATA[RMM]]></category>
		<category><![CDATA[RUM]]></category>
		<category><![CDATA[Topic]]></category>
		<category><![CDATA[Unicast]]></category>
		<category><![CDATA[WebSphere MQ]]></category>

		<guid isPermaLink="false">http://itdevworld.wordpress.com/?p=178</guid>
		<description><![CDATA[IBM has a rather new platform for messaging. It is called WebSphere MQ Low Latency Messaging (aka WebSphere MQ LLM). It was released on the fourth quarter of 2007 and sincerely it hasn&#8217;t much similarities with the well known WebSphere MQ (former MQ Series).
First of all, after installing it you will probably notice that there [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=178&subd=itdevworld&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>IBM has a rather new platform for messaging. It is called WebSphere MQ Low Latency Messaging (aka WebSphere MQ LLM). It was released on the fourth quarter of 2007 and sincerely it hasn&#8217;t much similarities with the well known WebSphere MQ (former MQ Series).</p>
<p>First of all, after installing it you will probably notice that there isn&#8217;t a service for starting up. Soon you notice that it is rather a library that provides messaging services. Actually, it is a native library (currently [v2.1] only available for Linux x86, Windows x86 and Solaris Sparc) that comes already with JNI bindings.</p>
<p>To make things even harder, there isn&#8217;t much documentation available (<a href="http://publib.boulder.ibm.com/infocenter/wllm/v2r1/topic/com.ibm.wllm.doc/api/javadoc/messaging/com/ibm/llm/rum/RumInstance.html" target="_blank">and it seems like IBM is still organizing its docs online</a>).</p>
<p>But, IBM claims that it has shown impressive numbers on its benchmarks:</p>
<blockquote><p>WebSphere MQ Low Latency Messaging has demonstrated very high throughput, one-to-many multicast messaging, which can deliver approximately one million 120-byte messages per second on Ethernet, close to three million 120-byte messages per second on InfiniBand, and more than 8 million smaller messages per second, all on common x86 servers. Testing has also measured very low latency of 30 microseconds for 120 byte messages delivered at 10,000 messages per second on InfiniBand or 61 microseconds on Ethernet (1)</p></blockquote>
<p>Source: <a href="http://www-03.ibm.com/press/us/en/pressrelease/22558.wss" target="_blank">IBM press release</a></p>
<p>In its Java version, the main classes that you&#8217;ll interact when using WMQ LLM are:</p>
<ul>
<li>RUMInstance (available through RUMFactory)</li>
<li>RMMInstance</li>
</ul>
<p>For instance, RUM stands for Reliable Unicast Messaging and RMM stands for Reliable Multicast Messaging. As you can guess, RUM is used for Queue styled messaging and RMM for Topic styled messaging.</p>
<p>One of its drawbacks is that it still lacks a JMS based Resource Adapter but nothing denies you from rolling your own if you can&#8217;t wait for an official adapter from IBM.</p>
<p>I am planning to do some benchmarking against a regular MQ integrated application. As soon as I have the results I&#8217;ll post them over here.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/itdevworld.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/itdevworld.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/itdevworld.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/itdevworld.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/itdevworld.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/itdevworld.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/itdevworld.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/itdevworld.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/itdevworld.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/itdevworld.wordpress.com/178/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=178&subd=itdevworld&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://itdevworld.wordpress.com/2009/04/10/first-impressions-of-ibm-websphere-mq-low-latency-messaging/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/292a48d9cbe4c198ce280095a4e3fecc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rafaelri</media:title>
		</media:content>
	</item>
		<item>
		<title>WebSphere custom user repository</title>
		<link>http://itdevworld.wordpress.com/2009/03/28/websphere-custom-user-repository/</link>
		<comments>http://itdevworld.wordpress.com/2009/03/28/websphere-custom-user-repository/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 02:27:26 +0000</pubDate>
		<dc:creator>rafaelri</dc:creator>
				<category><![CDATA[JavaEE]]></category>
		<category><![CDATA[Custom Repository]]></category>
		<category><![CDATA[DatabaseServerLoginModule]]></category>
		<category><![CDATA[DataObject]]></category>
		<category><![CDATA[DB]]></category>
		<category><![CDATA[DBAdapter]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[LDAP]]></category>
		<category><![CDATA[SDO]]></category>
		<category><![CDATA[VMM]]></category>
		<category><![CDATA[WebSphere]]></category>
		<category><![CDATA[WIM]]></category>
		<category><![CDATA[wimconfig.xml]]></category>

		<guid isPermaLink="false">http://itdevworld.wordpress.com/?p=171</guid>
		<description><![CDATA[If you already used JBoss you probably used (or at least knew there is) the DatabaseServerLoginModule. But, if you happen to be using WebSphere things are a little bit different. WebSphere (I guess version 6 onwards) comes with the powerful concept of the federated repository. This feature allows multiples sources for authentication and authorization. The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=171&subd=itdevworld&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>If you already used JBoss you probably used (or at least knew there is) the <a href="http://docs.jboss.org/jbossas/jboss4guide/r1/html/index.html" target="_blank">DatabaseServerLoginModule</a>. But, if you happen to be using WebSphere things are a little bit different. WebSphere (I guess version 6 onwards) comes with the powerful concept of the federated repository. This feature allows multiples sources for authentication and authorization. The final layout inside WebSphere ressembles an LDAP tree, every Repository is suffixed with an identifier.</p>
<p>But, unfortunately, through the Web Administration interface you are limited to LDAP and the builtin FileBased WIM authentication.</p>
<p>Another thing that makes it even harder is that there isn&#8217;t much documentation about these extended repositories.</p>
<p>There is <a href="http://www.ibm.com/developerworks/websphere/techjournal/0508_benantar/0508_benantar.html" target="_blank">one post from IBM that suggests that there are alternatives</a>:</p>
<blockquote><p>The information used for the registry lookup is customizable and can be made totally flexible if a custom registry is developed using the WebSphere Application Server custom registry interface.</p>
</blockquote>
<p>But still there isn&#8217;t a single link from this article that points out how to achieve this. If you get the <a href="http://www.google.com.br/search?q=websphere+application+server+custom+registry" target="_blank">key words in this phrase and risk a Google search </a>you&#8217;d end up finding <a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v4r0/index.jsp?topic=/com.ibm.websphere.v4.doc/wasa_content/050202.html" target="_blank">how to do this on WebSphere 4</a>, that, by the way, was much limitted when compared to what is available on WebSphere 6.</p>
<p><a href="http://www.google.com.br/search?q=websphere+application+server+custom+registry+6.1" target="_blank">Refining this search</a> a little bit you&#8217;ll find what you are looking for, <a href="http://www.ibm.com/developerworks/websphere/library/samples/vmmsampleadapter.html" target="_blank">how to do this on WebSphere 6</a>. But you&#8217;ll only take this approach if you are willing to roll your own adapter, but be advised that this tutorial won&#8217;t cover every steps you need and this is the content of another post. There is a <a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.javadoc.doc/vmm/com/ibm/wsspi/wim/package-tree.html" target="_blank">complex interface</a> that needs to be implemented in order to fulfill the requirements of an WebSphere Repository. The complexity is derived from the fact that all method in this interface is based on <code><a href="http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.emf.ecore.sdo.doc/references/javadoc/commonj/sdo/class-use/DataObject.html" target="_blank">commonj.sdo.DataObject</a> class and this class maps an XML to a Java Object hierarchy making for now this implementation almost a guessing game since there isn't much public information regarding this interface contract.</code></p>
<p>But, returning to the original objective of the post that was to guide on how to make WebSphere authenticate users against a database, setup the <a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.wim.doc.en/database.html" target="_blank">DBAdapter</a> using the <a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.base.doc/info/aes/ae/txml_config_vmmca.html" target="_blank">guide that is found on this page</a>. If you want, check the <a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.wim.doc.en/adapters.html" target="_blank">list of WebSphere builtin adapters here</a>.</p>
<p>The last step is to create the tables for the database as described on <a href="http://www.ibm.com/developerworks/websphere/techjournal/0701_ilechko/0701_ilechko.html" target="_blank">step 3 of this post</a>. This post in fact describes various possibilities for user repositories available in WebSphere.</p>
<p>JBoss <a href="http://docs.jboss.org/jbossas/jboss4guide/r1/html/index.html" target="_blank">DatabaseServerLoginModule</a> adantages over WebSphere approach are its simplicity and flexibility but on the other hand, WebSphere Federated Repositories present a much more robust approach for handling user databases.</p>
<p>I&#8217;ll try to post some tips on how to roll your own Repository in the next few days.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/itdevworld.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/itdevworld.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/itdevworld.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/itdevworld.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/itdevworld.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/itdevworld.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/itdevworld.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/itdevworld.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/itdevworld.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/itdevworld.wordpress.com/171/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=171&subd=itdevworld&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://itdevworld.wordpress.com/2009/03/28/websphere-custom-user-repository/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/292a48d9cbe4c198ce280095a4e3fecc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rafaelri</media:title>
		</media:content>
	</item>
		<item>
		<title>Avoiding method timeouts in EJB Containers using Command Pattern with a JMS Queue</title>
		<link>http://itdevworld.wordpress.com/2009/03/14/avoiding-method-timeouts-in-ejb-containers-using-command-pattern-with-a-jms-queue/</link>
		<comments>http://itdevworld.wordpress.com/2009/03/14/avoiding-method-timeouts-in-ejb-containers-using-command-pattern-with-a-jms-queue/#comments</comments>
		<pubDate>Sat, 14 Mar 2009 00:54:50 +0000</pubDate>
		<dc:creator>rafaelri</dc:creator>
				<category><![CDATA[JavaEE]]></category>
		<category><![CDATA[Command]]></category>
		<category><![CDATA[Container]]></category>
		<category><![CDATA[CorrelationID]]></category>
		<category><![CDATA[EJB]]></category>
		<category><![CDATA[JMS]]></category>
		<category><![CDATA[JMS Queue]]></category>
		<category><![CDATA[Long Running Task]]></category>
		<category><![CDATA[MDB]]></category>
		<category><![CDATA[MessageDriven]]></category>
		<category><![CDATA[Method Timeout]]></category>
		<category><![CDATA[Pattern]]></category>
		<category><![CDATA[Queue]]></category>
		<category><![CDATA[Runnable]]></category>
		<category><![CDATA[SessionBean]]></category>
		<category><![CDATA[Timeout]]></category>

		<guid isPermaLink="false">http://itdevworld.wordpress.com/?p=164</guid>
		<description><![CDATA[If you ever needed to run a complex processing in EJB that would take for example two minutes you probably have already faced the container time limitation for SessionBean methods.
This timeout (in contrast to what most think) isn&#8217;t there only to developer&#8217;s life harder. Actually, it is exactly the opposite: it is there to avoid [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=164&subd=itdevworld&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>If you ever needed to run a complex processing in EJB that would take for example two minutes you probably have already faced the container time limitation for SessionBean methods.</p>
<p>This timeout (in contrast to what most think) isn&#8217;t there only to developer&#8217;s life harder. Actually, it is exactly the opposite: it is there to avoid that someone inadvertly implement a code that takes the whole server down (including your beloved application).</p>
<p>But there are times when long running operations are really necessary, for example a cache warmup.</p>
<p><strong>MDBs are an exception</strong></p>
<p>As in our project a few operations would easily violate this limitation we had to research a smart way of circumventing this limitation. During our research we found out this post on <a title="/dev/websphere" href="http://www.devwebsphere.com/devwebsphere/2006/01/coping_with_lon.html" target="_blank">/dev/websphere</a> blog. So we already knew that we would end up using a JMS Queue but having one Queue, MDB and so ever for each task would be a mess (not to mention that it was way too much work and not ellegant). So, that was when we came to the conclusion that what we needed was an way of having multiple tasks on top of the same infra-structure.</p>
<p><strong>Command Pattern to the Rescu</strong><strong>e</strong></p>
<p>We realized that by using an ObjectMessage that carried our <a title="Command Pattern" href="http://en.wikipedia.org/wiki/Command_pattern" target="_blank">Command object</a> we would end up having a single queue that would handle all of our long running tasks. If there is specific context for the task processing we can have it stored in the Command Object (eg.: id of a purchase transaction that needs to be processed, or even the purchase object itself).</p>
<p><strong>Sequence Diagrams for the solution</strong></p>
<p>Let&#8217;s have an example, suppose we have a long running cleanup of a database that needs to be run in a timely manner. We would end up having the following flow of method calls:</p>
<div id="attachment_166" class="wp-caption aligncenter" style="width: 544px"><a href="http://itdevworld.files.wordpress.com/2009/03/jobsubmissiononworkingqueue1.jpg"><img class="size-full wp-image-166" title="JOB Submission on Working Queue" src="http://itdevworld.files.wordpress.com/2009/03/jobsubmissiononworkingqueue1.jpg?w=534&#038;h=244" alt="JOB Submission on Working Queue" width="534" height="244" /></a><p class="wp-caption-text">JOB Submission on Working Queue</p></div>
<p>Having the Command object implement <a title="Runnable" href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/class-use/Runnable.html" target="_blank">Runnable interface</a> is a wise idea (to avoid having another interface that is almost a Runnable clone not to mention that future JavaEE Asynch beans will probably be implemented on top of Runnable interface).</p>
<p>The next important part is the JOB execution, which is depicted below:</p>
<div id="attachment_167" class="wp-caption aligncenter" style="width: 541px"><a href="http://itdevworld.files.wordpress.com/2009/03/workingbeanflow.jpg"><img class="size-full wp-image-167" title="JOB execution Working MDB" src="http://itdevworld.files.wordpress.com/2009/03/workingbeanflow.jpg?w=531&#038;h=424" alt="JOB execution Working MDB" width="531" height="424" /></a><p class="wp-caption-text">JOB execution Working MDB</p></div>
<p>As mentioned on the notes, you need to be aware that the <a title="Transactional Context" href="http://edocs.bea.com/wle/transact/trxejb.htm" target="_blank">Transactional Context</a> for the MDB <strong>MUST be Never</strong>, otherwise you&#8217;d avoid method timeouts but would still have transaction timeouts.</p>
<p>Another tricky part is splitting the long running task in smaller chunks that can execute under the method timeout.</p>
<p>As stated in the diagram, the LongRunningJOB code inside the run method is called inside the execution context of the MDB which is free from the method timeout limitation.</p>
<p><strong>Signalling JOB return code</strong></p>
<p>If you need to be notified that the JOB has finished its execution you&#8217;d need to have either another JOB passed as parameter to this JOB and it&#8217;ll be responsible of executing the code that would inform its return status OR have a message sent on a Temporary Queue OR the last option would be to submit a reply in another queue and have a CorrelationID link the request and the response message.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/itdevworld.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/itdevworld.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/itdevworld.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/itdevworld.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/itdevworld.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/itdevworld.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/itdevworld.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/itdevworld.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/itdevworld.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/itdevworld.wordpress.com/164/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=164&subd=itdevworld&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://itdevworld.wordpress.com/2009/03/14/avoiding-method-timeouts-in-ejb-containers-using-command-pattern-with-a-jms-queue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/292a48d9cbe4c198ce280095a4e3fecc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rafaelri</media:title>
		</media:content>

		<media:content url="http://itdevworld.files.wordpress.com/2009/03/jobsubmissiononworkingqueue1.jpg" medium="image">
			<media:title type="html">JOB Submission on Working Queue</media:title>
		</media:content>

		<media:content url="http://itdevworld.files.wordpress.com/2009/03/workingbeanflow.jpg" medium="image">
			<media:title type="html">JOB execution Working MDB</media:title>
		</media:content>
	</item>
		<item>
		<title>Architecture Evaluation using ATAM</title>
		<link>http://itdevworld.wordpress.com/2009/03/03/architecture-evaluation-using-atam/</link>
		<comments>http://itdevworld.wordpress.com/2009/03/03/architecture-evaluation-using-atam/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 14:14:28 +0000</pubDate>
		<dc:creator>rafaelri</dc:creator>
				<category><![CDATA[Architecture Evaluation]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Analysis]]></category>
		<category><![CDATA[ATAM]]></category>
		<category><![CDATA[functional]]></category>
		<category><![CDATA[Methodology]]></category>
		<category><![CDATA[non-functional]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[response time]]></category>
		<category><![CDATA[Tradeoff]]></category>

		<guid isPermaLink="false">http://itdevworld.wordpress.com/?p=161</guid>
		<description><![CDATA[Those who work as a Software Architect have already been tasked with something like:
&#8220;We need to develop an Web application with a huge aptitude to scale horizontally and also able to conform with tight response times&#8221;

If you are really an architect, you&#8217;ll start to make up the architecture either in your mind, on an UML [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=161&subd=itdevworld&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Those who work as a Software Architect have already been tasked with something like:</p>
<blockquote><p>&#8220;We need to develop an Web application with a huge aptitude to scale horizontally and also able to conform with tight response times&#8221;</p>
</blockquote>
<p>If you are really an architect, you&#8217;ll start to make up the architecture either in your mind, on an UML tool or even on a simple paper. It is as easy as it was coded on you, by heart you start to scratch how the solution would look like and in the end it&#8217;ll probably meet all the functional and non-functional requirements you had been told.<br />
This works in this scenario but imagine if now, instead of coming up with a proposal of an architecture you are tasked to evaluate someone else architecture.<br />
This is the scenario where <a href="http://www.sei.cmu.edu/pub/documents/00.reports/pdf/00tr004.pdf">ATAM</a> is the way to go. It was designed as a sucessor of <a href="https://eprints.kfupm.edu.sa/63213/1/63213.pdf">Software Architecture Analysis Method (SAAM)</a>. ATAM is also already <a href="http://scholar.google.com.br/scholar?q=atam+architecture+evaluation">a very accepted methodology</a>.</p>
<p>ATAM authors define it as:</p>
<blockquote><p>&#8220;The purpose of the ATAM is to assess the  on sequences of architectural decisions in light of quality attribute requirements.&#8221;</p>
</blockquote>
<p>ATAM is based on meetings with key stakeholders from diferent areas. During these meetings key quality attributes (QA) are formalized for the architecture and are later detailed, they are also further prioritized in relation to the importance of each QA and also the risk of not having this QA complete.</p>
<p>The last step is the generation of a report containing (mainly):</p>
<ul>
<li>Risks and Non-risks</li>
<li>Sensitivity and Tradeoff Points</li>
</ul>
<p>If you have alredy this need, give a look on ATAM. I&#8217;ll try to post some insights on how to apply it on the next few weeks.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/itdevworld.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/itdevworld.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/itdevworld.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/itdevworld.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/itdevworld.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/itdevworld.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/itdevworld.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/itdevworld.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/itdevworld.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/itdevworld.wordpress.com/161/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itdevworld.wordpress.com&blog=4407561&post=161&subd=itdevworld&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://itdevworld.wordpress.com/2009/03/03/architecture-evaluation-using-atam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/292a48d9cbe4c198ce280095a4e3fecc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rafaelri</media:title>
		</media:content>
	</item>
	</channel>
</rss>