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

<channel>
	<title>Genesis</title>
	<atom:link href="http://www.genesis.uk.com/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://www.genesis.uk.com/wordpress</link>
	<description>Service Provisioning</description>
	<lastBuildDate>Fri, 08 Jul 2011 03:12:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>The Information Exchange &#8211; A universal mechanism to finance and drive innovation in the free market</title>
		<link>http://www.genesis.uk.com/wordpress/archives/1119</link>
		<comments>http://www.genesis.uk.com/wordpress/archives/1119#comments</comments>
		<pubDate>Fri, 08 Jul 2011 01:36:11 +0000</pubDate>
		<dc:creator>husseinb</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Free Market]]></category>
		<category><![CDATA[Idea]]></category>
		<category><![CDATA[Information Exchange]]></category>
		<category><![CDATA[Innovation]]></category>
		<category><![CDATA[White Paper]]></category>

		<guid isPermaLink="false">http://www.genesis.uk.com/wordpress/?p=1119</guid>
		<description><![CDATA[For the last few years I&#8217;ve been considering how to apply the fundamental ideas behind the IT solutions and financial instruments that have been created in FOREX, Securities and Futures exchanges and Payments Clearing and Settlement mechanisms to other sectors with the goal of achieving self financing innovation. The free exchange of ideas has been [...]]]></description>
			<content:encoded><![CDATA[<p>For the last few years I&#8217;ve been considering how to apply the fundamental ideas behind the IT solutions and financial instruments that have been created in <a href="http://en.wikipedia.org/wiki/Forex">FOREX</a>, <a href="http://en.wikipedia.org/wiki/Stock_exchange">Securities</a> and <a href="http://en.wikipedia.org/wiki/Futures_exchange">Futures</a> exchanges and Payments Clearing and Settlement mechanisms to other sectors with the goal of achieving self financing innovation. </p>
<p>The free exchange of ideas has been the principal driving force behind innovation in every field of human endeavour. Our culture, politics, laws, scientific knowledge, technology and the development of the human condition have all been enhanced by collaboration and the flow of ideas through the exchange of information. In our current epoch the technologies that enable the open exchange of information are available at the finger tips of a third of the worlds population yet, powerful cultural, legal, territorial and commercial disincentives to the free exchange of information remain, and in many areas of science and broader society, a culture that restricts collaboration prevails. Beyond these threats to the transparent and free exchange of information is the growing entropy that results from propaganda and ignorance which continues to erode the value of information and increases the cost of its extraction. </p>
<p>An elegant and proven solution to these problems is the creation of a open regulated exchange, bringing together producers and consumers of information and facilitating secure and transparent exchange. Financial exchanges, if they are governed properly, provide a fair platform for participants to exchange their goods and services and or engage in speculation. If they operate efficiently and provide services that are demanded by their customers the exchange increases the volume of trade to the financial benefit of all participants. Information exchanges can do the same for innovation.</p>
<p>My thesis is simply that the creation of Information Exchange which I define as <em>a platform of services and a system of governance that facilitates the exchange of information between participants that create and/or consume information</em> will result in greater collaboration between the participants and the increased volume of information exchanged will drive innovation. What is more I propose that such exchanges can be created for any sector, whether it&#8217;s government, health care, military or scientific endeavour, an Information Exchange will drive innovation, making its application universal. Finally by implementing financial speculative instruments based on the value of information as measured by its utility both within the exchange and externally, the innovation will be self financing with no need of state funding.  </p>
<p>Conceptually it is useful to consider the Information Exchange (IEX) from two different perspectives, organisational and technical. From an organisational perspective the Information Exchange is an institution which is dedicated to catalysing collaboration between its participants and protecting the information  assets they invest in the exchange. To this end the IEX seeks to shoulder the burden of legal, regulatory and security compliance on behalf of its participants. Furthermore the IEX endeavours to reward its participants not only by ensuring that any innovation that is attributed to their information asset is fully acknowledged, but also by offering access to unprecedented analytic services for the mining of the rich seams of data which the exchange aggregates from its participants thus giving all participants a foundation for innovation.</p>
<p>From a technical perspective the IEX is a secure computational hub, an enterprise system for the analysis of digital data. The system facilitates the rapid and secure exchange of information resulting from analysis carried out on an aggregate of public and private data; information assets invested in the exchange by participating members.</p>
<p>The differentiation between information exchange and data sharing is an essential proposition of the exchange. Data sharing requires the data owner to agree to provide access (and potentially a wide range of other rights as well as obligations) to data with other parties under a contractual agreement. The sharing of data will typically result in the data being duplicated and distributed to multiple consumers. Obtaining data sharing agreements for privately held data or data of a sensitive nature is typically difficult, time consuming and expensive. For the data producer the problem is compounded by multiplicity of agreements which they may be requested to negotiate and for the consumer simply identifying relevant data for their analysis can be thwart with difficulty.</p>
<p>Information sharing within the exchange is the sharing of the results of an analytic service provided by the exchange between participant members. While the underlying data used in the analysis may be private and sensitive in nature the results of exchange services based on the data will be cleansed of information that could be used to compromise the confidentiality of the data and will ensure compliance in legality, regulation and security. Data providers need only negotiate terms of sharing with the exchange. This paradigm provides the benefits of sharing data by allowing participants access to information from analysis conducted on that data but minimises the risks and costs associated with sharing data with multiple consumers. The data is never shared, rather the information is exchanged.</p>
<p>In my next entry I will describe in more detail the mechanisms available for participants to invest information assets into the exchange and the underlying IT architecture of an exchange.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.genesis.uk.com/wordpress/archives/1119/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Building and deploying your WebLogic domain Part 2</title>
		<link>http://www.genesis.uk.com/wordpress/archives/938</link>
		<comments>http://www.genesis.uk.com/wordpress/archives/938#comments</comments>
		<pubDate>Sun, 29 Nov 2009 23:05:47 +0000</pubDate>
		<dc:creator>husseinb</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Building]]></category>
		<category><![CDATA[IT Provisioning]]></category>
		<category><![CDATA[WebLogic]]></category>

		<guid isPermaLink="false">http://www.genesis.uk.com/wordpress/?p=938</guid>
		<description><![CDATA[Hussein Badakhchani&#8217;s Blog December 30, 2006  12:36 AM I&#8217;ll start this entry by briefly recapping the two metrics I used to measure the performance of our old build process discussed in my last entry: Build time. If it takes you longer than a few minutes to build your domain, you should be asking why? Work time. [...]]]></description>
			<content:encoded><![CDATA[<p>Hussein Badakhchani&#8217;s Blog  December 30, 2006  12:36 AM</p>
<p>I&#8217;ll start this entry by briefly recapping the two metrics I used to measure the performance of our old build process discussed in my last <a href="http://www.genesis.uk.com/wordpress/?p=931">entry</a>:</p>
<ul>
<li>Build time. If it takes you longer than a few minutes to build your domain, you should be asking why?</li>
<li>Work time. If it takes you longer than a few minutes to make a configuration change to your domain, you should be asking why?</li>
</ul>
<p>I have yet to hear a valid reason why a standard WLS domain (e.g. not a Portal domain) should take longer than a few minutes to build, if you think you&#8217;ve got one please post a comment on this entry. The main reason I come across is that the build process is &#8220;Dynamic&#8221; i.e the domain is created using WLSHELL or WLST. In my experience these domains take between 10 &#8211; 40 minutes to build. If you use these tools to build your domains please post a comment on the time it takes you. If you&#8217;re happy with this time and it meets your requirements, well thats marvelous. After about the fourth time I rebuilt and deployed a domain of ours to fix multiple configuration issues, a process that took about 90 minutes (after two days spent trying to figure out exactly where to make the changes), It was plain to me that a 20 minute cycle was not acceptable for us. So there you have it, this is why I believe these two metrics are important. As the old cliche mandates time is money.</p>
<p>The third metric I want to discuss falls under the category of complexity, specifically the number of files in your build process that it takes to build your domain. I appreciate that measuring complexity in this way is blunt to say the least but we have start somewhere and in my experience it is a worthwhile measure. Latter on I&#8217;ll discuss another form of complexity that is can&#8217;t be measured easily but can be avoided. In my original <a href="http://dev2dev.bea.com/blog/hoos/archive/2005/11/whats_in_the_bu.html">rant</a> I noted that our build process had no less than 69 files to describe a our WLS domain, thats property files and templates. How many files does your build process use?</p>
<p>In an effort to cap the number of files required to build our domain we came up with the following directory structure for Choom (the version on Choom that will be released in codeshare will be even simpler):</p>
<p>(missing image filestructure.png)</p>
<p>Choom stores property files in the properties directory and templates in, erm, the templates directory, no surprises there. In my last entry I described the hierarchical nature of the properties, this hierarchy is observed in the directory structure.</p>
<p>Directly under the properties directory we find common.properties. You guessed it, these properties are common to ALL our domains. Now there aren&#8217;t many properties in this file but this does not diminish its importance, you see, the more properties you can define in this file, the more standardised your domans will be and standardised domains mean less maintenance effort.</p>
<p>Under the domains directory we store the properties for the various domains. Each domain type is named, for instance, we can see depicted the mydomain type. Typically the domain type is named after the project it belongs to. Domain level properties are stored under the domain type directory. As before the more poperties we store at this level as opposed to the environment level the more standardised our domains become.</p>
<p>The templates generally follow the same naming and oragnisational conventions. If you read my last entry on this subject you may have noticed that the use nomenclature is a key tool in reducing complexity. By adhering to some simple conventions for naming files, properties and tokens it becomes easy to locate and make changes to configuration values.</p>
<p>When we first embarked on creating our new build process I wanted to make sure that we stuck to just that, creating a process to build our domains rather than an application that builds our domains. This is why I really wanted to use Ant rather than a programming language. I have come across home made build applications written in Java, Lisp, Scheme and of course Jython/WLST and in almost every instance you find a build team that is not only responsible for environment provisioning but also has to support their miserable build application, yet another reinvented square wheel. This is a surefire way to inject a huge amount of complexity into your build process and I maintain it is completely unnecessary for the vast majority of WLS domains. I should qualify this by saying that Jython and WLST have an extremely valuable role in build verification and environment prooving and my next entry will describe how we exploited these features in choom.</p>
<div id="a000955more">
<div id="more"></div>
</div>
<p><a name="comments"></a></p>
<h4>Comments</h4>
<p><span class="small">Comments are listed in date ascending order (oldest first) | <a href="#post">Post Comment</a></span></p>
<ul>
<li> <a name="1387"></a>
<div id="c1387">An interesting article.  I have used some of your suggestions in the building and deploying of my WLS application. I was wondering what you use for release control of application builds from the source control system. I was wondering if you had any thoughts about Maven. All my current build is done using ant command line scripts. I am looking for a tool or framework to formalize the release of a build into testing and production.</p>
<p>Thanks</p>
<p>Ramdas</p>
<p class="posted"><span class="ltcaption1">Posted by: ramdas  on March  6, 2007 at  3:45 PM</span></p>
</div>
</li>
</ul>
<ul>
<li> <a name="1403"></a>
<div id="c1403">
<p>Thanks for the feedback Ramdas I hope you found the suggestions useful. We do use a source code control system but in a very simple fashion. I have found building infrastructure components does not require the same level of source control as application source code. For example we typically find there is no need for branching. Curretly we have clearcase setup to automatically update everyones views as soon as one person makes a change and we deliver code to the build users view every night.</p>
<p>We all build from the trunk and the build always marches forward, every time we finish a new template we label the build and continue moving forward. One day we may require more sophisticated use of CM but to be honest I see no requirement for this.</p>
<p>With respect to Maven it may be useful for keeping track of and building software products but I don&#8217;t see it being of any use in building infrastructure or applications. I may be wrong but if I can live without it now I have to ask what does it have that I am missing? I&#8217;m not interested in integration with eclipse <img src='http://www.genesis.uk.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>If you&#8217;re interested I have started a project on codeshare called <a rel="nofollow" href="https://genesis.projects.dev2dev.bea.com/">genesis</a> that takes choom to the next level. We are in the planning phase right now and your feedback would be most welcome.</p>
<p class="posted"><span class="ltcaption1">Posted by: hoos  on March 10, 2007 at  4:44 AM</span></p>
</div>
</li>
</ul>
<ul>
<li> <a name="1414"></a>
<div id="c1414">Hoos,</p>
<p>Thanks for your thoughts on Maven.<br />
On a similar topic, i have been debating where to package the 3rd party JARs when creating and deploying the EAR. Currently i am not consistent &#8211; some of the JARs are in the /lib folder and some are packaged in the META-INF/lib folder of the corresponding JARs within the EAR file. I would prefer to have all the stuff packaged in the EAR, but then i noticed that the size of the EAR file was growing given the size of some of these 3rd party JARs &#8211; especially these days with opensource frameworks and their dependancies.<br />
What are your thoughts on where to have these JARs?</p>
<p>Thanks</p>
<p class="posted"><span class="ltcaption1">Posted by: ramdas  on March 12, 2007 at  7:06 PM</span></p>
</div>
</li>
</ul>
<ul>
<li> <a name="1415"></a>
<div id="c1415">
<p>Thats a good question, if your using WLS9+ then consider deploying your jars as seprate libraries. I have not tried this myself due to time constraints but the principle seems sound. Let me know if you do try this out. Otherwise I suggest placing your jars in the APP-INF/lib folder of the EAR and removing them from the orginal EJB/WAR files. Be careful though, make sure you test the app after every change to the packaging.</p>
<p>When you say your EARs grow in size I&#8217;m not sure what the problem is. For instance say you are deploying two EJBs in an ear file and each EJB has it&#8217;s own copy of a dependant jar in it&#8217;s META-INF/lib directory then placing one copy of this jar in the APP-INF/lib of the EAR and removing the ones in the EJB  should result in an overall decrease in size. Please expain if I have misunderstood you.</p>
<p class="posted"><span class="ltcaption1">Posted by: hoos  on March 12, 2007 at  7:21 PM</span></p>
</div>
</li>
</ul>
<ul>
<li> <a name="1418"></a>
<div id="c1418">Hoos, I am using WLS9.2 and i have read about the concept of deployable libraries.. will go back to it and see if it fits into my framework. When i said, the size of the EAR is big, i was not referring to 3rd party JARS being duplicated between the various modules within the EAR  (viz. WS, UI, EJB) but the fact that if these 3rd party JARS could be removed all together from the EAR and be made available in a place where the WLS servers could load them during startup (viz. /lib). One obvious downside of this is that when deploying such JARS to a cluster, i would have to make sure these 3rd party JARS are sync&#8217;d up to all the managed servers in the cluster. If they were all part of a single EAR, I would be limiting the number of files to be deployed to the various managed servers to a smaller number (ideally 1) which would be simpler to administer and manage.<br />
Any thoughts?</p>
<p>Thanks</p>
<p class="posted"><span class="ltcaption1">Posted by: ramdas  on March 13, 2007 at 12:33 PM</span></p>
</div>
</li>
</ul>
<ul>
<li> <a name="1426"></a>
<div id="c1426">
<p>Ramdas, limiting the number of deployments to clusters is a good idea, and it&#8217;s good that your thinking about it. I currently have to deal with  a cluster onto which we deploy over 20 EARs, I consider this to be plain wrong. It is a perfet example of a lack of appreciation for operational requirements.</p>
<p>Ensuring the correct version of each application is installed on every machine in the cultser is something our build, installation and deployment processes are responsible for e.g. we use ssh to execute scripts that check the versions of the binaries on all machines before deployment commences.</p>
<p>On production servers we <a rel="nofollow" href="http://e-docs.bea.com/wls/docs81/deployment/concepts.html">enable cluster constraints</a> which fails deployments of applications with different deltas.</p>
<p>Have a read of the various deployment options available, I prefer nostage and external deployment options to staging as I have found staging took a long time, but your situation may be different.</p>
<p class="posted"><span class="ltcaption1">Posted by: hoos  on March 15, 2007 at  3:45 PM</span></p>
</div>
</li>
</ul>
<ul>
<li> <a name="1434"></a>
<div id="c1434">Hoos, where would you package 3rd party JARS like JSF and other open-source frameworks which are used by the modules within the EAR &#8211; these are not necessarily shared between the various modules in the EAR. Currently i have these JARs in many different places(EAR/APP-INF/lib, EAR/WAR/WEB-INF/lib &#8230;.). BEA recommends in some places to place 3rd party JARS in the APP-INF/lib folder which is at the EAR level and then at other places in the document i see it recommending to be added to the WEB-INF/lib folder at the web JAR level &#8211; and then in some other parts of the doc it says to place these completely outside the EAR but in the Domain system classpath via the /lib folder&#8230; i am confused&#8230;</p>
<p class="posted"><span class="ltcaption1">Posted by: ramdas  on March 16, 2007 at  7:31 PM</span></p>
</div>
</li>
</ul>
<ul>
<li> <a name="1933"></a>
<div id="c1933">I wish I had listened to this advice a little more about using ant to build the domain rather than WLST.</p>
<p>I&#8217;ve taken us down the WLST path of configuring domain templates and unpacking them to the servers.  For the most part it works rather well.  Unfortunately there are missing pieces &#8211; for instance you can&#8217;t pre-configure logs to &#8216;rotate on startup&#8217; or to limit the number of log files.  Oh you may set those values in your template, but they are lost when you unpack or write the domain.  I&#8217;m also running into similar problems with the assignment of some resources to a target or cluster when configuring the template.  So for now we are having to use the console to re-configure after building the domain, and next we&#8217;ll use WLST to connect to a newly built domain and re-configure then bounce.  I want an administration/configuration API that is not deprecated and is fully functional.</p>
<p class="posted"><span class="ltcaption1">Posted by: ejjohnson  on August  6, 2007 at  8:33 AM</span></p>
</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.genesis.uk.com/wordpress/archives/938/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Building and deploying your WebLogic Domain</title>
		<link>http://www.genesis.uk.com/wordpress/archives/931</link>
		<comments>http://www.genesis.uk.com/wordpress/archives/931#comments</comments>
		<pubDate>Sun, 22 Nov 2009 18:56:08 +0000</pubDate>
		<dc:creator>husseinb</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.genesis.uk.com/wordpress/?p=931</guid>
		<description><![CDATA[Hussein Badakhchani&#8217;s Blog November 1, 2006&#160;&#160; 1:37 AM Those of you who read my blog would be aware that around late November of last year I decided our existing build process had to go. You can read my original rant here. Well I am please to report that after much discussion we bit the bullet [...]]]></description>
			<content:encoded><![CDATA[<p>Hussein Badakhchani&#8217;s Blog November  1, 2006&nbsp;&nbsp; 1:37 AM</p>
<p>Those of you who read my blog would be aware that around late November of last year I decided our existing build process had to go. You can read my original rant <a href="http://www.genesis.uk.com/wordpress/?p=264">here</a>. Well I am please to report that after much discussion we bit the bullet a decided to scrap our build process and embark on creating a new process that we hoped would meet the increasing demands being made on the infrastructure team to build and deploy the numerous WLS domains that we manage. We have been using the new build process (which we call choom) for almost a year. In that time the demands to create new environments and support new versions of WebLogic, Apache and other middleware applications have only increased while our team has dropped in size from six to two people. If you are considering different approaches to building and deploying WLS domains I hope you find this and the next few entries useful. If you think these ideas are rubbish I want to know why?</p>
<p>To start with lets define some of the key requirments for our build process. The build process must:</p>
<ul>
<li>Create a complete WLS domain and scripts to distribute and install the domain onto multiple machines.</li>
<li>Be fast. It should take no longer than a few minutes to build, distribute and install a WLS domain. This a key measure of the performance of a build process. The vast majority of WLS domains I have seen can be built and distrbuted in under a miniute on a desktop pc.</li>
<li>Enforce architectural and design decisions and verify the configuration by checking the completed domain before it is distributed.</li>
<li>Be simple to use. Anyone with basic unix skills should be able to build and deploy a domain after a 5 minute tutorial.</li>
<li>Be able to build Apache, WebLogic and any other application maintained by the support team.</li>
<li>Be simple to maintain. The build process should not require a team to support it. The process of adding new environments or applications must require no special skills.</li>
</ul>
<p>With these requirements in place we invited BEA to help us evaluate different build approaches. The debates were always heated as everyone involved knew we had to get this right or we would end up in a mess. To outsiders it may well have seemed that the team was about to crack but in my experience civil and plesant technical discussion is often a sign that participants don&#8217;t know what they are talking about or don&#8217;t care. We whittled down the contenders to a) using WLST to dynamically create the domain and b) Create template domains and use ANT to &#8220;copy filter&#8221; the templates. We opted for ANT option for many reasons but the deciding reason was simple, WLST can only build WLS, the ANT option gave us a consistant method for building any application we wanted.</p>
<p>The next step was to create a template domain and define the properties. The customer had two sites, a live site and a contingency site. These sites were home to the production environment, a domain that spanned two machines. We would supply arguments to the build script which would determine which property files were loaded and used to create the domain. We had to group related properties together in their own files and we came up with the following files:</p>
<ul>
<li>common.properties &#8211; Used by all builds prefix=Common.</li>
<li>mydomain.properties &#8211; Domain specific prefix=Domain</li>
<li>production-live.properties &#8211; Production environment and live site prefix=Environment.</li>
<li>production-cont.properties &#8211; Production environment and contingency site prefix=Environment.</li>
<li>machine-live1.properties &#8211; Machine 1 in the live site prefix=Machine.</li>
<li>machine-live2.properties &#8211; Machine 2 in the live site prefix=Machine.</li>
<li>machine-cont1.properties &#8211; Machine 1 in the contingency site prefix=Machine.</li>
<li>machine-cont2.properties &#8211; Machine 2 in the contingency site prefix=Machine.</li>
</ul>
<p>To build the domain one would execute the following command:</p>
<pre style="background-color:#FFFF99;">
ant -Dproduct=weblogic92 -Dsite=live -Ddomain=mydomain -Denv=production
</pre>
<p>The build loads the correct set of properties based on these arguments. This is a pretty standard approach familiar to anyone that uses ant, it looks  like this:</p>
<pre style="background-color:#FFFF99;">
&lt;property name="properties.dir" location="${basedir}/properties"/&gt;
&lt;property file="${properties.dir}/common.properties"/&gt;
&lt;property file="${properties.dir}/domains/${domain}/${domain}.properties"/&gt;
&lt;property
file="${properties.dir}/domains/${domain}/environments/${env}/${product}/${env}-${site}.properties"/&gt;
</pre>
<p>I&#8217;ll explain the directory structure in my next entry, to round off this entry I want to explain one of the problems with this standard ant approach and how we resolved it. If you have ever had to locate a property to change it&#8217;s value you have probably had a few hours of your life wasted by having to locate that property because it is defined in multiple files and ant can be configured to inherit properties. Our old build process didn&#8217;t have a consistant hierarchy which compounded the problem. It could take days to make a change to a single property! We were burned so badly by this that we decided there would be no inheritance of property files in Choom and that every property name would conform to a nomenclature that would indicate where that property was located in the build file system. For instance, if you were looking at a template of the config.xml you would see something like this:</p>
<pre style="background-color:#FFFF99;">
    &lt;ssl&gt;
      &lt;name&gt;@Domain.admin.Server.Name@&lt;/name&gt;
      &lt;enabled>@Environment.admin.Server.SSL.Enabled@&lt;/enabled&gt;
</pre>
<p>Any property prefixed with Domain corresponds to the domain level properties defined in mydomain.properties. If it&#8217;s prefixed with Environment you know it has to be in the production-${site}.property file for that site. Now we can locate and change the value of any property in seconds. For me this is a key metric to use in determining the performance of your build process. If you find it takes longer than a couple of minutes to make a simple configuration change in your build, alarm bells should start ringing.</p>
<p>In my next entry I will discuss the directory structure of choom and the templates. We gave alot of thought to the directiry structure of the build process. We wanted it to be intuative, consistant and to reflect how we perceivethe  architecture our domains.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.genesis.uk.com/wordpress/archives/931/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>One size fits all GC</title>
		<link>http://www.genesis.uk.com/wordpress/archives/928</link>
		<comments>http://www.genesis.uk.com/wordpress/archives/928#comments</comments>
		<pubDate>Sun, 22 Nov 2009 14:11:24 +0000</pubDate>
		<dc:creator>husseinb</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.genesis.uk.com/wordpress/?p=928</guid>
		<description><![CDATA[Hussein Badakhchani&#8217;s Blog October 7, 2005&#160;&#160; 3:24 AM Before I get a flurry of comments about how the idea of having a single set of GC settings that is optimal for all Java applications is nonsense and farcical let me clarify what I mean by placing some limitations on this statement. Firstly I will narrow [...]]]></description>
			<content:encoded><![CDATA[<p>Hussein Badakhchani&#8217;s Blog October  7, 2005&nbsp;&nbsp; 3:24 AM</p>
<p>Before I get a flurry of comments about how the idea of having a single set of GC settings that is optimal for all Java applications is nonsense and farcical let me clarify what I mean by placing some limitations on this statement.
<p>Firstly I will narrow the range of applications that I am talking about to J2EE applications built with a combination of JSPs, Servlets and EJBs, ok so I haven&#8217;t narrowed the range much.
<p>Second I am not saying that these settings will be 100% <i>optimal</i>, but that they will probably be good enough. To quantify what I mean I would estimate that the number of major garbage collects over a say a 12 hour period while the application is under moderate to heavy load will be low and more importantly the percent of time spent by the JVM on this activilty will be a around 1% of the time it spends on all the other activity it is engaged in.</p>
<p>Finally these settings have been tested successfully in the field by a number of people and I have tested these setting myself against eight applications in the last year, all with very differernt memory footprints during volume and performance tuning phases. The results have always been very consistent, only today a couple of my colleagues independently came to settings that were very close to these &#8220;one size fits all&#8221; settngs.</p>
<p>Here they are:</p>
<p><b>-XX:NewRatio=4</b>
<p>Don&#8217;t specify the new size area using XX:NewSize as if you do change your heap size you will also have to remember to change this to keep the proportions allocated in your heap consistant. Specify a ratio instead, 4 is about right 2 it pointless as you will end up doing full GCs all the time.</p>
<p><b>-XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=80</b></p>
<p>You can play around with these but settings in order to find an optimum for your JVM. Make sure you use <a href="http://java.sun.com/performance/jvmstat">jvmstat</a> to monitor the imapct of your experiments, the <a href="http://java.sun.com/performance/jvmstat/visualgc.html">visualgc</a> is useful for this purpose.</p>
<p><b>-XX:PermSize=128m -XX:MaxPermSize=128m</b></p>
<p>Unless your getting memory errors or your application is being profiled by a tools that rely on  bytecode analysers you probably won&#8217;t need more than 128m of perm space. Use jvmstat to capture your applications total memory footprint.</p>
<p><b>-Xnoclassgc -XX:+DisableExplicitGC</b></p>
<p>You knows it makes sence to stop WLS or application code <b>trying</b> to incite unnecessary GC by calling GC directly. Leave GC it to the JVM!</p>
<p>I leave it up to the reader to find applications that make a mockery of these settings!<br />
]]></content:encoded>
			<wfw:commentRss>http://www.genesis.uk.com/wordpress/archives/928/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Ghost in the Korn Shell</title>
		<link>http://www.genesis.uk.com/wordpress/archives/922</link>
		<comments>http://www.genesis.uk.com/wordpress/archives/922#comments</comments>
		<pubDate>Sun, 22 Nov 2009 14:06:20 +0000</pubDate>
		<dc:creator>husseinb</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.genesis.uk.com/wordpress/?p=922</guid>
		<description><![CDATA[Hussein Badakhchani&#8217;s Blog April 12, 2006&#160;&#160; 5:27 AM Have you ever wondered how a running WebLogic domain would cope with having the domain root directory deleted? Well if you have been responsible for resilience testing or excessively use rm -rf you may have some idea of the problems you could face if you loose your [...]]]></description>
			<content:encoded><![CDATA[<p>Hussein Badakhchani&#8217;s Blog April 12, 2006&nbsp;&nbsp; 5:27 AM</p>
<p>Have you ever wondered how a running WebLogic domain would cope with having the domain root directory deleted? Well if you have been responsible for resilience testing or excessively use rm -rf you may have some idea of the problems you could face if you loose your domain root.</p>
<p>I have witnessed some pretty disastrous effects on WLS 5 and WLS 6.1 domains as a result of deleting the domain root but a recent cleansing event on a weblogic 8.1 domain proved to me just how resilient this product has become.</p>
<p>I was asked by a developer to look at a print out of a log file which showed an EmbeddedLDAPException indicating that configuration files could not be found. This was an odd error but the obvious action was to check for the existence of the files, at this point I found that the entire domain was missing from the file system!</p>
<p>After checking the other machines in the cluster and finding the domain was missing from those machines as well I decided to try and identify exactly when the domain was deleted. Luckily our log files are located in a different location outside of the domain root, searching through the server logs it appeared that the domain had been deleted some three days earlier based on the first instance of the Embedded LDAP error I found. I was shocked by this, how was it possible that deleting a WLS domain from a working environment could go unnoticed for three days! Examining the log files further I found no other errors related to loss of the domain, it seemed that everything had continued to function correctly even after the deletion of the domain root directory.</p>
<p>Finally I decided to approach the developers working on ghost environment and explain the cause of the exception to them, they were as surprised as I was. We spent the next few hours double checking the application functionality as well as monitoring the domain using the console. I tested the JDBC connection pools, took thread dumps of the servers, examined the memory consumption and used WLST to dump the states of EJB MBeans, everything seemed to be o.k.</p>
<p>The developers continued their testing on the ghost integration domain for another seven days, the only limitation was that the servers could not be restarted, we could even deploy applications using the console.</p>
<p>Of course the application deserves some credit for not having any dependency on the domain file system but I was well impressed by WLS. We still don&#8217;t know who it was that deleted the domain in the first instance, an individual we have named &#8220;The ghost in the Korn shell&#8221; and to whom we have since attributed a number of other odd events, but at least now I know what happens if I delete the domain root directory. I wonder how JBoss and WebSphere would handle such events?</p>
<p>On a side note standard nerds and geeks may be interested to know that this entry was written using &#8220;Das Keyboard&#8221;.</p>
<div id="a000491more">
<div id="more">
</div>
</div>
<p></p>
<div class="grayline"></div>
<p><a name="comments"></a></p>
<h4>Comments</h4>
<p><span class="small">Comments are listed in date ascending order (oldest first)</span></p>
<ul>
<li>
<a name="573"></a></p>
<div id="c573">
<p>If this has happened under *NIX environment (and it looks like it did), the reason WLS kept functioning may be the feature of the OS.. </p>
<p>OS keeps reference count on all open inodes (files or directories) and only TRULY DELETES stuff when all references are removed. So if WL server opened the files, you can go ahead and delete them &#8211; no-one will see them anymore, except for WL server, because it still holds reference to it. So WLS can read/write to these &#8220;ghost&#8221; files, but after the process exits, reference counts will go to zero and the files will be gone forever.</p>
<p class="posted"><span class="ltcaption1">Posted by: sLayer  on April 12, 2006 at 10:09 AM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="575"></a></p>
<div id="c575">
<p>I would certainly expect the OS not to kill the WLS processes just because the files they rely on were deleted, I&#8217;m not sure how WLS would behave under Windows although I do remember that Windows tends to lock files that are in use by a process.</p>
<p>What impressed me though was the sheer lack of errors and the fact that appart from the LDAP exception every thing else seemed to be working fine. I can only explain this by assuming that much of the servers work is carried out in memory, and thats why removing these files had such little effect.</p>
<p class="posted"><span class="ltcaption1">Posted by: hoos  on April 13, 2006 at  2:36 AM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="577"></a></p>
<div id="c577">
<p>Great story Hoos!  I agree with sLayer though &#8211; the files were probably not *really* deleted, but simply absent from your directory listings (and still available to the running processes).  Still, that is neat.
</p>
<p>
I think that keyboard is kinda funny.  It sort of illustrates the difficult some folk have in training themselves not to  look at the keyboard.  So, now they can simply avoid the training by removing the keyboard &#8211; effectively doing the same thing at greater cost but with ease and absolutely no chance to cheat <img src='http://www.genesis.uk.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />   The strength zones sound interesting though.  My pinky is powerless compared to my thunderous thumb!
</p>
<p class="posted"><span class="ltcaption1">Posted by: jonmountjoy  on April 13, 2006 at  5:10 AM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="578"></a></p>
<div id="c578">
<p>I can now type without looking at the keyboard but its the shift key, punctuation and numbers that catch me out. Still I&#8217;ve only been using it for the last few days.</p>
<p class="posted"><span class="ltcaption1">Posted by: hoos  on April 13, 2006 at  7:48 AM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="629"></a></p>
<div id="c629">
Actuall email recieved by me from Hoos on the first day of using Das Keyboard.<br />
<br />
>> HELP.I.CANT.FIND.THE.SPACE.BAR11</p>
<p> <img src='http://www.genesis.uk.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
<br />
My current client doesnt allow bring you own keyboard in, and my machine at home already has 2 keyboards attached (usb/wireless and ps/2 for Lilo) so my &#8220;das keyboard&#8221; is gathering dust.</p>
<p class="posted"><span class="ltcaption1">Posted by: simonvc  on May  8, 2006 at  2:47 AM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="635"></a></p>
<div id="c635">
<p>If only your current employers knew how you used to &#8220;build weblogic domains&#8221;, just make sure you don&#8217;t turn that green field into a mine field&#8230;</p>
<p>On a more serious note, like some sort of crazy fool I bought the U.S version of &#8220;Das Keyboard&#8221; and as a result had to learn how to map the missing / and | key, in, erm, true hacker style I won&#8217;t let a missing key stop me!</p>
<p class="posted"><span class="ltcaption1">Posted by: hoos  on May  8, 2006 at  8:28 AM</span></p>
</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.genesis.uk.com/wordpress/archives/922/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IT Infrastructure Nomenclature: Environment Names</title>
		<link>http://www.genesis.uk.com/wordpress/archives/907</link>
		<comments>http://www.genesis.uk.com/wordpress/archives/907#comments</comments>
		<pubDate>Sun, 22 Nov 2009 00:52:09 +0000</pubDate>
		<dc:creator>husseinb</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.genesis.uk.com/wordpress/?p=907</guid>
		<description><![CDATA[Hussein Badakhchani&#8217;s Blog August 30, 2007 9:26 PM Building on my last entry on nomenclature I want to discuss the naming of environments. By an environment I mean all the infrastructure that belongs to a functional group of a project, for instance the User Acceptance Test environment or the Production environment. A typical enterprise stack [...]]]></description>
			<content:encoded><![CDATA[<p>Hussein Badakhchani&#8217;s Blog August 30, 2007   9:26 PM</p>
<p></p>
<p>Building on my last <a href="http://www.genesis.uk.com/wordpress/?p=689">entry</a> on nomenclature I want to discuss the naming of environments. By an environment I mean all the infrastructure that belongs to a functional group of a project, for instance the User Acceptance Test environment or the Production environment.</p>
<p>A typical enterprise stack may consist of a Web Server, WebLogic server, perhaps a Digital Signature Messaging System or some Message Oriented Middleware like MQ and a database. Lets assume for simplicity that our environments have dedicated stacks, so my Functional Test environment is not sharing it&#8217;s database or any other infrastructure with my User Acceptance Test environment. What are the options for naming my environment? Well you could just give it an arbitrary name based on an abbreviation of it&#8217;s function and number to keep it unique. This is a fairly common practice and we end up with names like UAT01 and PRD01. Such a naming scheme is perfectly fine if you have a single project and you don&#8217;t reuse the environment for other projects but what if you have multiple projects and multiple environments, what problems can you expect with your basic naming scheme?</p>
<p>Well for a start there is no way of telling which environments belong to which projects from the name alone,  &#8220;So what,&#8221; you might think and as you&#8217;re probably a miserable developer, who has lived inside an enclipse shell for the last couple of years producing very buggy code, your limited vision is unsurprising. Lets demonstrate the cost to the project whith this simple dialogue:</p>
<ul>
<li>Support Caller: Can we change the apache configuration for the Micky Mouse project.</li>
<li>Support Engineer: Erm, ok what environment are you talking about?</li>
<li>Support Caller: The test environment.</li>
<li>Support Engineer: Which test environment, Functional Test or UAT?</li>
<li>Support Caller: Functional Test.</li>
<li>Support Engineer: We have 10 FT environments which one?</li>
<li>Support Caller: Erm, I&#8217;ll get back to you on that.
</ul>
<p>Ok, this example maybe a little contrived and you&#8217;re probably thinking why doesn&#8217;t the defect tracker/ticketing system have all this information in it but it is a real scenario and a common one in meduim sized businesses. The point is we haven&#8217;t considered encoding the project name as metadata in the environment name and this piece of information is a key requirement not just for the support team but for anyone in the project that uses the environments.</p>
<p>As with naming your machines the first step in naming your environments is to identify your metadata requirements. In a recent exercise for one client we agreed on the following requirements:</p>
<ol>
<li>The function of the environment should be present as a two character abbreviation e.g pd = Production, ft=Functional Test, ut = User Acceptance Test.</li>
<li>All environments that belong to the &#8220;<a href="http://en.wikipedia.org/wiki/Hafez">Hafez</a>&#8221; programme will be identified by the numeral 1.</li>
<li>The two projects in the Hafez programme, &#8220;Enterprise security&#8221; and &#8220;Processing engine&#8221; will be identified by the numerals 1 and 2 respectively.</li>
</ol>
<p>We can express these requirements in <a href="http://en.wikipedia.org/wiki/Backus-Naur_form">Backus-Naur form</a>:</p>
<p>&lt;Environment Name&gt; ::= &lt;Environment Function&gt;&lt;Programme ID&gt;&lt;Project ID&gt;<br/><br />
&lt;Environment Function&#038;gt ::= &#8220;FT&#8221; | &#8220;UT&#8221; | &#8220;PD&#8221;<br/><br />
&lt;Programme ID&gt; ::= &#8220;1&#8243;<br/><br />
&lt;Project ID&gt; ::= &#8220;1&#8243; | &#8220;2&#8243;<br/>
</p>
<p>These basic rules allowed us to name all the environments for the programme consistently, uniquely and in and easily identifiable fashion, for instance PD12 is the production environment for the processing engine project which is part of the Hafez programme.</p>
<p>While an environment naming convention is useful it really becomes poweful when we start to derive the names of key infrastructure artificates from our environment names. Lets list some of these artefacts and their derived names, we will stick with WebLogic artefacts for now. You may want to try wrtiting out the general rule for each artefact in Backus-naur form for yourself:</p>
<table border="1" cellpadding="3" cellspacing="0" frame="box">
<tr>
<td><strong>Artifact</strong></td>
<td><strong>Name</strong></td>
</tr>
<tr>
<td>WLS Domain name</td>
<td>pd12</td>
</tr>
<tr>
<td>WLS Admin server listen address</td>
<td>wls-admin-pd12.mydomain.com</td>
</tr>
<tr>
<td>WLS Managed server listen address</td>
<td>wls01-pd12.mydomain.com</td>
</tr>
<tr>
<td>WLS identity store file name</td>
<td>wls01-pd12.mydomain.com.jks</td>
</tr>
<tr>
<td>WLS key alias</td>
<td>wls01-pd12_mydomain_com</td>
</tr>
</table>
<p>As you can see we have now consistently named listen addresses (hostnames), key stores and key aliases all from our environment name. Anyone can work out the name of the admin server for a given enironment based on our nomeclature. If you want to inspect the identity key you know what it&#8217;s alias should be. We can also derive names for database schemas, unix users and host of other infrastructure artefacts from the seed name, the environment name.</p>
<p>The benefits of a well thought out nomenclature are numerous and include:</p>
<ol>
<li>Simplifies <a href="http://dev2dev.bea.com/blog/hoos/archive/2005/10/environment_pro_1.html">environment proving</a> and automated validation of environments.</li>
<li>Simplifies the task of communicating and understanding the infrastructure architecture.</li>
<li>Maintains naming consistency across the programme.</li>
<li>Quicker creation of standardised specifications for new environments.</li>
<li>Facilitates automation of environment provisioning.</li>
</ol>
<p>The last two points are where my interests lie, but if your going around touting yourself as an I.T Architect, I.T Technologist, <a href="http://www.prospects.ac.uk/cms/ShowPage/Home_page/Explore_types_of_jobs/Types_of_Job/p!eipaL?state=showocc&#038;pageno=1&#038;idno=95">I.T Architectural Technologist</a>, guru, software imagineer, system-medic, Creative Management I.T Dude or some other exotic, bogus job title you should consider all the benefits before making up that random naming scheme on the plane back from some dodgy industry do or in a 10 minute teleconference with the offshore development team.</p>
<div id="a001600more">
<div id="more">
</div>
</div>
<p></p>
<div class="grayline"></div>
<p><a name="comments"></a></p>
<h4>Comments</h4>
<p><span class="small">Comments are listed in date ascending order (oldest first) | <a href="#post">Post Comment</a></span></p>
<ul>
<li>
<a name="2062"></a></p>
<div id="c2062">
Hoos: I had a similar dialog with one of the developers for a weblogic domain and I had to log on to 2 different weblogic domains to find out which environment the developer is talking about. So having some sort of naming convention should improve the situation&#8230; </p>
<p class="posted"><span class="ltcaption1">Posted by: lalitkumar.dandekar  on September  4, 2007 at  3:33 AM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="2063"></a></p>
<div id="c2063">
<p>Lalit, another common scenario is this one:</p>
<p>Support Caller 1: Can we change the Apache configuration for the Micky mouse project on uat.<br />
Support Engineer 1: Sure, done<br />
Support Caller 2: We are having problems on UAT03, we can&#8217;t reach the application.<br />
Support Engineer 2: Support Engineer 1 which UAT environment did you update?<br />
Support Engineer 1: Erm UAT&#8230;..</p>
<p>You are right of course, for the nomeclature to be of any use all stake holders must be aware of it and of the environements they are using.</p>
<p class="posted"><span class="ltcaption1">Posted by: hoos  on September  4, 2007 at  5:12 AM</span></p>
</div>
</li>
</ul>
<form method="post" action="http://dev2dev.bea.com/mt/comments" name="comments_form" onsubmit="if (this.bakecookie[0].checked) rememberMe(this)">
<input type="hidden" name="static" value="1" />
<input type="hidden" name="entry_id" value="1600" />
<p><a name="post"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.genesis.uk.com/wordpress/archives/907/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IT Infrastructure Nomenclature: Machine names</title>
		<link>http://www.genesis.uk.com/wordpress/archives/689</link>
		<comments>http://www.genesis.uk.com/wordpress/archives/689#comments</comments>
		<pubDate>Fri, 09 Jan 2009 09:22:37 +0000</pubDate>
		<dc:creator>husseinb</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Environment Provisioning]]></category>
		<category><![CDATA[IT Provisioning]]></category>
		<category><![CDATA[Nomenclature]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://www.genesis.uk.com/?p=689</guid>
		<description><![CDATA[Hussein Badakhchani&#8217;s Blog August 11, 2007&#160;&#160; 1:34 AM I have worked in a lot places where little thought is given to the naming of infrastructure artefacts with predictable results. The benefits of an enterprise wide nomenclature for infrastructure artefacts are manifold and include: All artefacts are named in an consistent and identifiable fashion. Enhanced clarity [...]]]></description>
			<content:encoded><![CDATA[<p>Hussein Badakhchani&#8217;s Blog August 11, 2007&nbsp;&nbsp; 1:34 AM</p>
<p> I have worked in a lot places where little thought is given to the naming of infrastructure artefacts with predictable results. The benefits of an enterprise wide nomenclature for infrastructure artefacts are manifold and include:</p>
<ul>
<li>All artefacts are named in an consistent and identifiable fashion.</li>
<li>Enhanced clarity in cases of ambiguity. All stakeholders will be able to<br />
communicate information regarding the environments without risk of confusion.</li>
<li>Avoids naming collisions.</li>
<li>Simplifies the understanding of infrastructure architecture.</li>
<li>Lays the foundations for automating infrastructure environment provisioning.</li>
<li>Provides additional information, metadata, about the named artefact.</li>
</ul>
<p>Encoding the correct metadata in the name of an artefact is the probably the most important step when creating your nomenclature. If you get this step right all the other benefits will follow, so take your time and make sure you include all the stakeholders in the requirements gathering process. Here are a few suggestions for meta data that you may decide to encode in a machine name:</p>
<ul>
<li>Programme or project identifier.</li>
<li>Machine function.</li>
<li>Environment identifier.</li>
<li>Machine identifier.</li>
</ul>
<p>For instance, say you have purchased six machines for a project code named &#8220;Ferdowsi&#8221;. Each machine fulfils a function in your architecture so you have a Web server, application server and database server. These machines will be deployed to your test and production environments, lets look at one possible way of naming them. We will start by expressing our metadata in <a href="http://en.wikipedia.org/wiki/Backus-Naur_form">Backus-Naur form</a>.</p>
<p>&lt;Machine name&gt;::=&lt;Programme Id&gt;&lt;Machine function&gt;&lt;Environment Id&gt;&lt;Machine ID&gt;</p>
<p>&lt;Programme ID&gt;::=&#8221;fr&#8221;</p>
<p>&lt;Machine function&gt;::==&#8221;ws&#8221;|&#8221;ap&#8221;|&#8221;db&#8221;</p>
<p>&lt;Environment ID&gt;::=&#8221;1&#8243;|&#8221;2&#8243;</p>
<p>&lt;Machine ID&gt;:==&lt;digit&gt;</p>
<p>Lets describe the metadata in more detail as well as some of the constraints we want to place on them. The programme ID is two characters in length and indicates that these machines belong to the &#8220;Ferdowsi&#8221; project. If we had machines that were shared between programmes/projects we would drop this identifier from the machine name. Including the machine function in the name of the machine is a common and useful practice. Again we used a two length abbreviation of the full function name, so for Web server we derive &#8220;ws&#8221; and so on. The environment id is number that translates to environment to which the machine is deployed so. In our case 1=&#8221;Production&#8221; and 2=&#8221;Test&#8221;. Finally the machine id is a digit assigned to identify the machines within there environments, so our machines are named as follows:</p>
<table>
<tr>
<td>Production</td>
<td>Test</td>
</tr>
<tr>
<td>frws101</td>
<td>frws201</td>
</tr>
<tr>
<td>frap101</td>
<td>frap201</td>
</tr>
<tr>
<td>frdb101</td>
<td>frdb201</td>
</tr>
</table>
<p>I don&#8217;t want this entry to be interpreted as a prescriptive piece, I&#8217;m not telling you how to name your infrastructure artefacts, rather it should help the reader to consider moving away from arbitrary naming practices and open possibilities for deriving the names of all the other artefacts across the enterprise such as host names, file names for certificates, ketstores, logs, WebLogic domain names, etc, etc.</p>
<p>Too many architects overlook nomenclature and as a result they inject and unhealthy dose of entropy into their systems. Finally with the nomenclature in place you can begin to automate the provisioning of your enterprise stack, from networks and operating system to applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.genesis.uk.com/wordpress/archives/689/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Genesis 0.0.34 Released</title>
		<link>http://www.genesis.uk.com/wordpress/archives/639</link>
		<comments>http://www.genesis.uk.com/wordpress/archives/639#comments</comments>
		<pubDate>Mon, 05 Jan 2009 02:03:56 +0000</pubDate>
		<dc:creator>salimb</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[ABC Provisioning]]></category>
		<category><![CDATA[Ant]]></category>
		<category><![CDATA[Environment Provisioning]]></category>
		<category><![CDATA[Genesis]]></category>
		<category><![CDATA[Infrastructure Provisioning]]></category>
		<category><![CDATA[JAVA]]></category>

		<guid isPermaLink="false">http://www.genesis.uk.com/?p=639</guid>
		<description><![CDATA[The Genesis 0.0.34 package is available for download here. Follow the Getting Started guide for quick installation instructions. Check the sourceforge website source code download instructions.]]></description>
			<content:encoded><![CDATA[<p>The Genesis 0.0.34 package is available for download <a href="https://sourceforge.net/project/showfiles.php?group_id=193849">here</a>.  Follow the <a href="http://www.genesis.uk.com/documentation/getting-started/">Getting Started</a> guide for quick installation instructions.  Check the sourceforge website source code download <a href="https://sourceforge.net/svn/?group_id=193849">instructions</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.genesis.uk.com/wordpress/archives/639/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebLogic Server Debug Environment Variables</title>
		<link>http://www.genesis.uk.com/wordpress/archives/621</link>
		<comments>http://www.genesis.uk.com/wordpress/archives/621#comments</comments>
		<pubDate>Sun, 04 Jan 2009 01:25:34 +0000</pubDate>
		<dc:creator>husseinb</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Debug]]></category>
		<category><![CDATA[Developers]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[WebLogic]]></category>
		<category><![CDATA[WebLogic Server]]></category>

		<guid isPermaLink="false">http://www.genesis.uk.com/?p=621</guid>
		<description><![CDATA[Hussein Badakhchani&#8217;s Blog January 5, 2007&#160;&#160; 7:49 AM Here are all the WLS debug flags I have collected over the years from BEA and from grepping the internet. Simply add them to the wls java command using the -D option e.g.: -Dweblogic.debug.DebugMessaging=true These debug parameters include: IIOP weblogic.iiop.ots weblogic.iiop.transport weblogic.iiop.marshal weblogic.iiop.startup JDBC/Data Sources weblogic.JDBCConn weblogic.JDBCSQL [...]]]></description>
			<content:encoded><![CDATA[<p>Hussein Badakhchani&#8217;s Blog January  5, 2007&nbsp;&nbsp; 7:49 AM</p>
<p>Here are all the WLS debug flags I have collected over the years from BEA and from grepping the internet. Simply add them to the wls java command using the -D option e.g.: -Dweblogic.debug.DebugMessaging=true</p>
<p><span id="more-621"></span></p>
<p>These debug parameters include:</p>
<p>
<strong>IIOP</strong><br />
weblogic.iiop.ots<br />
weblogic.iiop.transport<br />
weblogic.iiop.marshal<br />
weblogic.iiop.startup</p>
<p><strong>JDBC/Data Sources</strong><br />
weblogic.JDBCConn<br />
weblogic.JDBCSQL<br />
weblogic.JDBCConnStackTrace</p>
<p><strong>JMX/Deployment</strong><br />
weblogic.commoAdmin<br />
weblogic.commoProxy<br />
weblogic.deployerRuntime<br />
weblogic.MasterDeployer<br />
weblogic.deployTask<br />
weblogic.deployHelper<br />
weblogic.MasterDeployer<br />
weblogic.OamDelta<br />
weblogic.OamVersion<br />
weblogic.slaveDeployer.semaphore<br />
weblogic.slaveDeployer<br />
weblogic.ConfigMBean<br />
weblogic.ConfigMBeanEncrypt<br />
weblogic.ConfigMBeanSetAttribute<br />
weblogic.management.DynamicMBeanImpl<br />
weblogic.management.DynamicMBeanImpl.setget<br />
weblogic.mbeanProxyCache<br />
weblogic.mbeanDelete<br />
weblogic.mbeanQuery<br />
weblogic.MBeanInteropList<br />
weblogic.mbeanProxy<br />
weblogic.registerMBean<br />
weblogic.getMBeanInfo<br />
weblogic.getMBeanAttributes<br />
weblogic.addDependenciesRecursively<br />
weblogic.MBeanListener<br />
weblogic.application<br />
weblogic.deployer<br />
weblogic.appPoller<br />
weblogic.appManager<br />
weblogic.BootstrapServlet<br />
weblogic.fileDistributionServlet</p>
<p><strong>Application Deployment</strong><br />
weblogic.J2EEApplication<br />
weblogic.application<br />
weblogic.appPoller<br />
weblogic.appManager</p>
<p><strong>JTA</strong><br />
weblogic.JTAGateway<br />
weblogic.JTAGatewayStackTrace<br />
weblogic.JTA2PC<br />
weblogic.JTA2PCStackTrace<br />
weblogic.JTAHealth<br />
weblogic.JTAPropagate<br />
weblogic.JTARecovery<br />
weblogic.JTAXA<br />
weblogic.JTAXAStackTrace<br />
weblogic.JTAResourceHealth<br />
weblogic.JTAMigration<br />
weblogic.JTARecoveryStackTrace<br />
weblogic.JTANaming<br />
weblogic.JTATLOG<br />
weblogic.JTALifecycle</p>
<p><strong>EJB</strong></p>
<p>weblogic.ejb.cache.debug<br />
weblogic.ejb.cache.verbose<br />
ejb.enableCacheDump<br />
weblogic.ejb20.cmp.rdbms.debug<br />
weblogic.ejb20.cmp.rdbms.verbose<br />
weblogic.ejb20.persistence.debug<br />
weblogic.ejb20.persistence.verbose<br />
weblogic.ejb20.compliance.debug<br />
weblogic.ejb20.compliance.verbose<br />
weblogic.ejb.deployment.debug<br />
weblogic.ejb.deployment.verbose<br />
weblogic.ejb20.dd.xml<br />
weblogic.ejb.deployer.debug<br />
weblogic.ejb.deployer.verbose<br />
weblogic.ejb.verbose.deployment<br />
weblogic.ejb20.ejbc.debug<br />
weblogic.ejb20.ejbc.verbose<br />
weblogic.ejb.runtime.debug<br />
weblogic.ejb.runtime.verbose<br />
weblogic.ejb20.jms.poll.debug<br />
weblogic.ejb20.jms.poll.verbose<br />
weblogic.ejb20.security.debug<br />
weblogic.ejb20.security.verbose<br />
weblogic.ejb.locks.debug<br />
weblogic.ejb.locks.verbose<br />
weblogic.ejb.bean.manager.debug<br />
weblogic.ejb.bean.manager.verbose<br />
weblogic.ejb.pool.InstancePool.debug<br />
weblogic.ejb.pool.InstancePool.verbose<br />
weblogic.ejb.swap.debug<br />
weblogic.ejb.swap.verbose<br />
weblogic.j2ee.dd.xml</p>
<p><strong>General</strong><br />
weblogic.debug<br />
weblogic.kernel.debug<br />
weblogic.debug.DebugConnection<br />
weblogic.debug.DebugRouting<br />
weblogic.debug.DebugMessaging<br />
weblogic.debug.isLogRemoteExceptionsEnabled<br />
weblogic.StdoutDebugEnabled</p>
<p><strong>WLI</strong></p>
<p>wlc.debug.signature<br />
wli.bpm.client.security.debug<br />
wli.bpm.studio.timeprocessor.debug<br />
wli.bpm.studio.debug<br />
wli.bpm.server.common.timedevent.debug<br />
wli.bpm.server.common.xmltemplate.debug<br />
wli.bpm.server.eventprocessor.addrmsgdebug<br />
wli.bpm.server.eventprocessor.debug<br />
wli.bpm.server.jms.debug<br />
wli.bpm.server.plugin.debug<br />
wli.bpm.server.workflow.debug<br />
wli.bpm.server.businesscalendar.debug<br />
wli.bpm.server.busop.debug<br />
wli.bpm.server.workflow.action.taskduedate.debug<br />
wli.bpm.server.workflow.timedevent.debug<br />
wli.bpm.server.xml.debug<br />
wli.bpm.server.xslt.debug<br />
wli.bpm.server.workflow.start.debug<br />
wli.bpm.server.workflowprocessor.debug<br />
wli.common.server.errorlistener.debug
</p>
<div id="a001024more">
<div id="more">
</div>
</div>
<p></p>
<div class="grayline"></div>
<p><a name="comments"></a></p>
<h4>Comments</h4>
<p><span class="small">Comments are listed in date ascending order (oldest first) | <a href="#post">Post Comment</a></span></p>
<ul>
<li>
<a name="1222"></a></p>
<div id="c1222">
<p>Have you noticed new debug feature of WebLogic 9.2 at<br />
Admin Console &#8211;> Server &#8212; Debug  ?</p>
<p>All interal subsystem debug flags are avialable there !!!! Good move !!!</p>
<p>-cheers,<br />
Jayesh</p>
<p class="posted"><span class="ltcaption1">Posted by: patel_jayesh_j  on January  5, 2007 at  2:52 PM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="1223"></a></p>
<div id="c1223">
<p>Jayesh, the short answer is yes! We have been using WLS9.2 in anger as soon as it became available; but, and there is always a but, there are a lot users of WLS 8.X and lower, I dare say the majority. Also I have a special blog lined of for the pile of poo that is the WLS9.+ console. The trap was baited thank you for snapping <img src='http://www.genesis.uk.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> !</p>
<p class="posted"><span class="ltcaption1">Posted by: hoos  on January  5, 2007 at  6:39 PM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="1225"></a></p>
<div id="c1225">
hoos, First I apologize sincerely.</p>
<p>Didn&#8217;t realize writing mistake I had made, until reading your last comment.</p>
<p>I intended to say &#8220;Good move by BEA&#8221;  &#8211; for making  &#8220;internal&#8221; debug flags  available in user friendly fashion.</p>
<p>As a person who supports 8.1 production apps and uses internal debug flags, I find one page listing of the debug flags  extremely useful.</p>
<p class="posted"><span class="ltcaption1">Posted by: patel_jayesh_j  on January  8, 2007 at  3:09 PM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="1226"></a></p>
<div id="c1226">
<p>Jayesh, no need to apologise. While the ability to enable debug in all WLS9.2 subsystems through the console (thus via mbeans and WLST, I assume) is great, I have found that the console application itself for WLS9.2 is a lot less user friendly.</p>
<p>Everyone I have spoken to so far has told me it&#8217;s a step backwards from the WLS8.1 console and is missing some key features. We all want the miserable applet tree view back and to be able to view WebApp and EJB deployment descriptors from the console!</p>
<p>I&#8217;ll detail the others gripes in my next entry.</p>
<p class="posted"><span class="ltcaption1">Posted by: hoos  on January  8, 2007 at  4:48 PM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="1227"></a></p>
<div id="c1227">
for 6.x,7.x versions see also:<br />
http://wldj.sys-con.com/read/42733.htm</p>
<p>for wls9.x &#8211; my favourite d-flag to debug webservices:<br />
-Dweblogic.wsee.verbose=*<br />
(I&#8217;m not sure if it can be enabled via admin console)</p>
<p>cheers, makiey</p>
<p class="posted"><span class="ltcaption1">Posted by: makiey  on January  9, 2007 at 12:36 AM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="1228"></a></p>
<div id="c1228">
<p>Thanks for the tips makiey.
<p>Here are sone RMI debug flags I found <a href="http://www.cs.man.ac.uk/~fellowsd/work/usingRMI.html" rel="nofollow">here</a>:</p>
<ul>
<li>java.rmi.server.logCalls=true</li>
<li>sun.rmi.loader.logLevel=[BRIEF|VERBOSE]</li>
<li>sun.rmi.server.exceptionTrace</li>
<li>sun.rmi.server.logLevel=[BRIEF|VERBOSE]</li>
</ul>
<p>I used some of these recently to resolve <a href="http://forums.bea.com/bea/thread.jspa?threadID=400000738&#038;messageID=400002805#400002805" rel="nofollow">this</a>.</p>
</p>
<p class="posted"><span class="ltcaption1">Posted by: hoos  on January  9, 2007 at  1:46 AM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="1243"></a></p>
<div id="c1243">
Here are two more for messaging bridge :</p>
<p>-Dweblogic.debug.DebugMessagingBridgeStartup=true<br />
-Dweblogic.debug.DebugMessagingBridgeRuntime=true</p>
<p>And two others for stdout and stderr :<br />
-Dweblogic.Stdout=</p>
<p>-Dweblogic.Stderr=</p>
<p>Best regards</p>
<p class="posted"><span class="ltcaption1">Posted by: jirey  on January 16, 2007 at  7:32 AM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="1244"></a></p>
<div id="c1244">
<p>Jirey, thanks, thats great.</p>
<p class="posted"><span class="ltcaption1">Posted by: hoos  on January 16, 2007 at 12:16 PM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="1246"></a></p>
<div id="c1246">
Regarding the WLS 9.x console &#8212; I also agree that the 8.1 console was better.  In particular the 9.x console is very slow in all aspects &#8212; initial login, transitions between screens, completion of operations.</p>
<p class="posted"><span class="ltcaption1">Posted by: jlindwall  on January 18, 2007 at 10:06 AM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="1254"></a></p>
<div id="c1254">
There is another option in WLS that I use: under the Server element in config.xml ther is a ServerDebug element there you can specify any flags that you need (some of them are not exists as command-line options AFAIK. And, probably, vise versa). This element maps to the weblogic.management.configuration.ServerDebugMBean MBean. It get~ methods correspond to the flags that can be used in config.xml. You can even change these flags in run-time <img src='http://www.genesis.uk.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p class="posted"><span class="ltcaption1">Posted by: dsoukhoroslov@yahoo.com  on January 19, 2007 at  8:18 AM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="1257"></a></p>
<div id="c1257">
Nice List! Here are the SSL flags I use: -Dweblogic.security.SSL.verbose=true<br />
-Dssl.debug=true</p>
<p class="posted"><span class="ltcaption1">Posted by: tallsandwich  on January 22, 2007 at  5:13 AM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="2037"></a></p>
<div id="c2037">
Just curious, I have been trying to figure out how to Start a RMI Server within WebLogic. I understand how to create the client, I just need to start the Server.</p>
<p class="posted"><span class="ltcaption1">Posted by: marcInDallas  on August 26, 2007 at  4:04 PM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="2038"></a></p>
<div id="c2038">
<p>It starts up automatically when you start the server and is accessible via the t3 protocol, so if I remembet correctly all you need to do is register your stubs against the listen address and port of your server using t3. See <a href="http://e-docs.bea.com/wls/docs92/rmi/rmi_intro.html" rel="nofollow">this</a> for full details.</p>
<p class="posted"><span class="ltcaption1">Posted by: hoos  on August 26, 2007 at  6:07 PM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="2039"></a></p>
<div id="c2039">
Thanks for the help hoos.</p>
<p class="posted"><span class="ltcaption1">Posted by: marcInDallas  on August 26, 2007 at  8:13 PM</span></p>
</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.genesis.uk.com/wordpress/archives/621/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What, no WLST!</title>
		<link>http://www.genesis.uk.com/wordpress/archives/598</link>
		<comments>http://www.genesis.uk.com/wordpress/archives/598#comments</comments>
		<pubDate>Tue, 30 Dec 2008 20:14:07 +0000</pubDate>
		<dc:creator>husseinb</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[WebLogic]]></category>
		<category><![CDATA[WLST]]></category>

		<guid isPermaLink="false">http://www.genesis.uk.com/?p=598</guid>
		<description><![CDATA[Hussein Badakhchani&#8217;s Blog September 29, 2005&#160;&#160; 7:29 PM As a consultant working on-site with the client on a live issue what are the chances that they will have WLST installed on the live server and at your disposal.Well, I have yet to come across one client so far.Thats not to say WLST both online and [...]]]></description>
			<content:encoded><![CDATA[<p>Hussein Badakhchani&#8217;s Blog September 29, 2005&nbsp;&nbsp; 7:29 PM</p>
<p>As a consultant working on-site with the client on a live issue what are the chances that they will have WLST installed on the live server and at your disposal.Well, I have yet to come across one client so far.Thats not to say WLST both online and offline are not great tools.I have been playing around with them for the last couple of months in my spare time (sad I know) and I like what I see,but the reality is that for the time being and probably up until a lot of clients upgrade to WLS 9 I am stuck with weblogic.Admin, along with VI and Bash instead of Eclipse and Jython.
<p>Troubleshooting live systems requires developers debugging skills but you frequently lack the latest tools used by developers and as such to use the words of <a href="http://www.ateamshrine.co.uk/ba.php">&#8220;B.A.&#8221; Baracus</a> I pitty the fool that turns up on-site without knowledge of these tools; trust me I have a few in my time.</p>
<p>With that said here is a Bash script that I use to dump EJB data from WLS. You don&#8217;t need the Bash at all, it is simply a wrapper for what is a lengthy command line.</p>
<pre style="background-color:#FFFF99;">
#!/bin/bash

# ejbdump.sh
#
# author: Hussein Badakhchani
# date: 29 September 2005
# description: This scrip uses the weblogic.Admin tool to dump all data \
#              relating to a EJBMBeans
# processname: ejbdump
# info: Make sure your WebLogic environment is set up correctly. \
#       Run setEnv.sh before using ejbdump

prog=ejbdump

if [ ! $# == 4 ]; then
  echo
  echo "Usage: $0 url username password command_file"
  echo
  echo "e.g. ejbdump myhost:7001 myuser mypassword commands.txt"
  exit
fi

url=$1
username=$2
password=$3
command_file=$4

# Check for the existence of the command file.
if [ ! -f "$command_file" ]
then
  echo
  echo "Command file: $command_file not found!"
  echo "Please proivde the correct path to this file and ensure you have the \
correct privledges associated with it."
  exit $E_NOTFOUND
fi

java -cp $CLASSPATH weblogic.Admin -adminurl $url -username $username \
-password $password BATCHUPDATE -batchFile $command_file \
-continueOnError -batchCmdVerbose
</pre>
<p>This scripts runs the weblogic.Admin class which executes a number of commands in $command_file, here it is: commands.txt</p>
<pre style="background-color:#FFFF99;">
get -pretty -type EJBCacheRuntime
get -pretty -type EJBComponentRuntime
get -pretty -type EJBLockingRuntime
get -pretty -type EJBPoolRuntime
get -pretty -type EJBRuntime
get -pretty -type EJBTransactionRuntime
get -pretty -type EntityCacheCumulativeRuntime
get -pretty -type EntityCacheCurrentStateRuntime
get -pretty -type EntityCacheRuntime
get -pretty -type EntityEJBRuntime
</pre>
<p>The -type arguments are all MBeans, I grabbed these from <a href="http://e-docs.bea.com/wls/docs81/javadocs/weblogic/management/runtime/package-summary.html">WLS 8.1 API javadocs</a>, notice that all you do is drop MBean from the name to get the correct argument name.</p>
<p>I run the above script using the command line:</p>
<pre>
[husseinb@lap1 bea]$ ./ejbdump lap3:7001 weblogic weblogic commands.txt
</pre>
<p>You can of course just hardcode arguments into the script. When run against the examples domain shipped with WLS the output looks a bit like this:</p>
<pre>
Executing command: get -pretty -type EntityCacheRuntime

No MBeans found

Error executing command in batch file commands.txt at line number: 9

Executing command: get -pretty -type EntityEJBRuntime

---------------------------
MBeanName: "examples:ApplicationRuntime=examplesServer__appsdir_ejb20_basic_containerManaged_ear,
EJBComponentRuntime=examplesServer__appsdir_ejb20_basic_containerManaged_ear_ejb20_basic_containerManaged.jar,
Location=examplesServer,
Name=examplesServer__appsdir_ejb20_basic_containerManaged_ear_ejb20_basic_containerManaged.jar_containerManaged,
ServerRuntime=examplesServer,Type=EntityEJBRuntime"
        CacheRuntime: examplesServer__appsdir_ejb20_basic_containerManaged_ear_ejb20_basic_containerManaged.jar_containerManaged
        CachingDisabled: true
        EJBName: containerManaged
        LockingRuntime:
        Name: examplesServer__appsdir_ejb20_basic_containerManaged_ear_ejb20_basic_containerManaged.jar_containerManaged
        ObjectName: examplesServer__appsdir_ejb20_basic_containerManaged_ear_ejb20_basic_containerManaged.jar_containerManaged

        Parent: examplesServer__appsdir_ejb20_basic_containerManaged_ear_ejb20_basic_containerManaged.jar
        PoolRuntime: examplesServer__appsdir_ejb20_basic_containerManaged_ear_ejb20_basic_containerManaged.jar_containerManaged
        Registered: false
        Resources:
        TransactionRuntime: examplesServer__appsdir_ejb20_basic_containerManaged_ear_ejb20_basic_containerManaged.jar_containerManaged
        Type: EntityEJBRuntime
---------------------------
MBeanName:"examples:ApplicationRuntime=examplesServer__appsdir_ejb20_basic_beanManaged_ear,
EJBComponentRuntime=examplesServer__appsdir_ejb20_basic_beanManaged_ear_ejb20_basic_beanManaged.jar,
Location=examplesServer,
Name=examplesServer__appsdir_ejb20_basic_beanManaged_ear_ejb20_basic_beanManaged.jar_beanManaged,
ServerRuntime=examplesServer,Type=EntityEJBRuntime"
        CacheRuntime: examplesServer__appsdir_ejb20_basic_beanManaged_ear_ejb20_basic_beanManaged.jar_beanManaged
        CachingDisabled: true
        EJBName: beanManaged
        LockingRuntime:
        Name: examplesServer__appsdir_ejb20_basic_beanManaged_ear_ejb20_basic_beanManaged.jar_beanManaged
        ObjectName: examplesServer__appsdir_ejb20_basic_beanManaged_ear_ejb20_basic_beanManaged.jar_beanManaged
        Parent: examplesServer__appsdir_ejb20_basic_beanManaged_ear_ejb20_basic_beanManaged.jar
        PoolRuntime: examplesServer__appsdir_ejb20_basic_beanManaged_ear_ejb20_basic_beanManaged.jar_beanManaged
        Registered: false
        Resources:
        TransactionRuntime: examplesServer__appsdir_ejb20_basic_beanManaged_ear_ejb20_basic_beanManaged.jar_beanManaged
        Type: EntityEJBRuntime

---------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------
Batch Command Results:
Total Commands Executed: 10
Commands Successful: 6
Commands Failed: 4
</pre>
<p><a href="http://dev2dev.bea.com/blog/sghattu/index.html">Satya Ghattu</a>  kindly replyed to my <a href="http://forums.bea.com/bea/thread.jspa?threadID=600006540&#038;tstart=0">post</a>  regadring the failed commands, although he used WLST to confirm the results <img src='http://www.genesis.uk.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>As you can the output is very verbose, if you want to examine a particular bean you can use it&#8217;s name (obtained from the output of the last script) to insruct weblogic.Admin, for example:</p>
<pre>
java -cp $CLASSPATH weblogic.Admin -url lap3:7001 -username weblogic \
-password weblogic GET -pretty -mbean \
examples:ApplicationRuntime=examplesServer__appsdir_ejb20_basic_containerManaged_ear,
EJBComponentRuntime=examplesServer__appsdir_ejb20_basic_containerManaged_ear_ejb20_basic_containerManaged.jar,
Location=examplesServer,
Name=examplesServer__appsdir_ejb20_basic_containerManaged_ear_ejb20_basic_containerManaged.jar_containerManaged,
ServerRuntime=examplesServer,Type=EJBTransactionRuntime
</pre>
<p>
To round off this entry I should point out what Satya informed of in his reply to my post, WLST online is supported by BEA for WLS 7 and 8.1 even though it is not shipped with them. I hope this spurs its uptake among infrastructure departments that use those products. If anyone can tell me what events trigger the creation of EntityCacheCurrentStateRuntime and the other missing MBeans I would be most greatful.
</p>
<div id="a000277more">
<div id="more">
</div>
</div>
<p></p>
<div class="grayline"></div>
<p><a name="comments"></a></p>
<h4>Comments</h4>
<p><span class="small">Comments are listed in date ascending order (oldest first) | <a href="#post">Post Comment</a></span></p>
<ul>
<li>
<a name="271"></a></p>
<div id="c271">
Anyone reading these comments, please check out the FAQ&#8217;s on edocs. BEA clearly mentions that WLST for 7.0 and 8.1 is supported.  I have also reiterated in my BEAWorld session that WLST for 8.1 and 7.0 is supported.</p>
<p>http://e-docs.bea.com/wls/docs90/config_scripting/wlst_faq.html#1058762</p>
<p>If you still have any questions, please contact BEA support.</p>
<p class="posted"><span class="ltcaption1">Posted by: sghattu  on September 29, 2005 at  9:06 PM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="273"></a></p>
<div id="c273">
As a follow-up to Satya&#8217;s comment, you can connect remotely to a server using WLST.  It does not have to be installed on the machine running the server, I believe.</p>
<p>So, as a consultant, you should be able to install the different WLST versions for 7.0 and 8.1 on your own laptop, or even on a customer machine at your disposal, and connect remotely.</p>
<p>I&#8217;m not a WLST expert, but Satya can confirm/deny this.</p>
<p class="posted"><span class="ltcaption1">Posted by: mcico  on September 30, 2005 at  9:39 AM</span></p>
</div>
</li>
</ul>
<ul>
<li>
<a name="274"></a></p>
<div id="c274">
<p>You can connect to a WLS which has WLST installed on it remotely, after all you provide it with URL to connect to same as weblogic.Admin or any JMX client. But it must already be installed on WLS in order to do this. As indicated in my post WLST is NOT shipped with WLS versions prior to 9, even though as has now been mentioned alot, BEA do support it on those versions.</p>
<p>Now the last time I installed WLST was on WLS 8.1 and however easy it was you still need to copy files and ammend classpaths, most infrastructure deparments have change control procedures that limit changes to configuration files and the installment of new software, whether or not the vendors support it must go though a test phase. This means if WLST is not already installed you will probably not be able to convince a client to install it for you in the week or two that your on a clients site. All I&#8217;m saying is that in the last two months alone I have visited six clients on site, none of them had WLST installed on the live environments, two of them had it scheduled to be included in upgrade programmes.</p>
<p>My point is as a consultant you cannot rely on it being present, same as Eclipse, Jyphon, etc hence you still need to be aware tools like weblogic.Admin.</p>
<p class="posted"><span class="ltcaption1">Posted by: hoos  on September 30, 2005 at 10:03 AM</span></p>
</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.genesis.uk.com/wordpress/archives/598/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

