<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-16758301</id><updated>2012-03-07T10:56:44.474+01:00</updated><title type='text'>Jan Kester Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>35</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-16758301.post-1564329495210134048</id><published>2012-03-05T11:29:00.000+01:00</published><updated>2012-03-05T11:29:23.295+01:00</updated><title type='text'>Logging in selenium</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;For some time I am trying to get more out of Selenium. Lot has changed here: selenium2 is a big improvement, and since 2.15 google also contributed its Advanced User Interactions API to the selenium code base, which seems to be a big improvement for mouse handling.&lt;br /&gt;To get a better understanding of what is happening, and especially why my test scripts are failing, I wanted to control the logging of my webdriver. I noticed that this was a bit of a pain. Selenium firefox driver is using java.util.logging. So you are bound to the mechanisms that java.util.logging offers you for log configuration.&lt;br /&gt;&lt;br /&gt;This is the approach I ended up with.&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Before I startup my Firefox Webdriver, I used the setLogLevel method to set the Level of logging that is used for all driver logs. When you set this to WARNING, all logs that the driver makes, are considered to be WARNING logs, when you set them to FINE, all logs are considered to be FINE logs. So dependent on the settings inside your logging.properties, you will see these logs appear in your system out or not. I put the level to INFO, and now they are always appearing in my system.out output. During test development I do not mind. I will switch if off though when I move scripts to an automatic build environment.&lt;/li&gt;&lt;li&gt;To change the settings for java.util.logging, you can either configure the file under java_home/jre/lib, or set the config file explicitly over the command line with -Djava.util.logging.config.file=myfile.&lt;/li&gt;&lt;/ul&gt;I am still interested in routing Java Util Logging (JUL) to log4j. Maybe this is a solution:&lt;br /&gt;&lt;a href="http://www.slf4j.org/legacy.html#jul-to-slf4j"&gt;http://www.slf4j.org/legacy.html#jul-to-slf4j&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-1564329495210134048?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/1564329495210134048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=1564329495210134048' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/1564329495210134048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/1564329495210134048'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2012/03/logging-in-selenium.html' title='Logging in selenium'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-1175395611755471776</id><published>2011-10-19T08:28:00.000+02:00</published><updated>2011-10-19T08:28:52.131+02:00</updated><title type='text'>Junit4 running parallel junit classes</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;To run junit testcases parallel, you can create your own class to run junit with:&lt;br /&gt;&lt;br /&gt;Add this tag to your class declaration.&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;@RunWith(Parallelized.class)&lt;/div&gt;&lt;br /&gt;Implementation of this class looks like:&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;package mypackage;&lt;br /&gt;import java.util.concurrent.ExecutorService;&lt;br /&gt;import java.util.concurrent.Executors;&lt;br /&gt;import java.util.concurrent.TimeUnit;&lt;br /&gt;&lt;br /&gt;import org.junit.runners.Parameterized;&lt;br /&gt;import org.junit.runners.model.RunnerScheduler;&lt;br /&gt;&lt;br /&gt;public class Parallelized extends Parameterized&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static class ThreadPoolScheduler implements RunnerScheduler&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private ExecutorService executor; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public ThreadPoolScheduler()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String threads = System.getProperty("junit.parallel.threads", "16");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int numThreads = Integer.parseInt(threads);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; executor = Executors.newFixedThreadPool(numThreads);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void finished()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; executor.shutdown();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; executor.awaitTermination(10, TimeUnit.MINUTES);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (InterruptedException exc)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new RuntimeException(exc);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void schedule(Runnable childStatement)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; executor.submit(childStatement);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Parallelized(Class klass) throws Throwable&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super(klass);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; setScheduler(new ThreadPoolScheduler());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;Now inside your test class, you will need to create a method with&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;@Parameters&lt;/div&gt;tag declaration, that feeds the constructor:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; public PocAddPoiTest(String browser) {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; super();&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; this.browser = browser;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Parameters&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static Collection browsersStrings() {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // return Arrays.asList(new Object[][] { { "*firefox" },&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // { "*googlechrome" } });&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return Arrays.asList(new Object[][] { { "*firefox","*iexplore" } });&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When junit gets started, it will run two tests parallel.&lt;br /&gt;&lt;br /&gt;Not sure how it handles output .. :-).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-1175395611755471776?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/1175395611755471776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=1175395611755471776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/1175395611755471776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/1175395611755471776'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2011/10/junit4-running-parallel-junit-classes.html' title='Junit4 running parallel junit classes'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-3466257240846294948</id><published>2011-09-22T17:51:00.001+02:00</published><updated>2011-09-22T17:55:52.818+02:00</updated><title type='text'>Run jmeter from eclipse</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Download jmeter source and binaries:&lt;a href="http://archive.apache.org/dist/jakarta/jmeter/binaries/jakarta-jmeter-2.3.4.zip"&gt;http://archive.apache.org/dist/jakarta/jmeter/binaries/jakarta-jmeter-2.3.4.zip&lt;/a&gt;&lt;a href="http://archive.apache.org/dist/jakarta/jmeter/source/jakarta-jmeter-2.3.4_src.zip"&gt;http://archive.apache.org/dist/jakarta/jmeter/source/jakarta-jmeter-2.3.4_src.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Unpack jmeter source file, and rename eclipse.classpath into .classpath.Add a .project file to the same directory:&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;projectDescription&amp;gt;&lt;br /&gt;  &amp;lt;name&amp;gt;jakarta-jmeter-2.3.4&amp;lt;/name&amp;gt;&lt;br /&gt;  &amp;lt;comment&amp;gt;&amp;lt;/comment&amp;gt;&lt;br /&gt;  &amp;lt;projects&amp;gt;&lt;br /&gt;  &amp;lt;/projects&amp;gt;&lt;br /&gt;  &amp;lt;buildSpec&amp;gt;&lt;br /&gt;    &amp;lt;buildCommand&amp;gt;&lt;br /&gt;      &amp;lt;name&amp;gt;org.eclipse.jdt.core.javabuilder&amp;lt;/name&amp;gt;&lt;br /&gt;      &amp;lt;arguments&amp;gt;&lt;br /&gt;      &amp;lt;/arguments&amp;gt;&lt;br /&gt;    &amp;lt;/buildCommand&amp;gt;&lt;br /&gt;  &amp;lt;/buildSpec&amp;gt;&lt;br /&gt;  &amp;lt;natures&amp;gt;&lt;br /&gt;    &amp;lt;nature&amp;gt;org.eclipse.jdt.core.javanature&amp;lt;/nature&amp;gt;&lt;br /&gt;  &amp;lt;/natures&amp;gt;&lt;br /&gt;&amp;lt;/projectDescription&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;Now import the source code as eclipse project.&lt;br /&gt;&lt;br /&gt;Add all libs of binary distribution (lib/*.jar) to the new project's lib dir.&lt;br /&gt;Add all files, except ApacheJmeter.jar (bin/**/*) to the new project's bin dir.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Clean eclipse project.&lt;br /&gt;Run ant package on the build.xml file to create the RMI jars.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Create a launcher for org.apache.jmeter.NewDriver and set arguments/working directory to: ${workspace_loc:jakarta-jmeter-2.3.4/bin}.&lt;br /&gt;When you start the launcher, jmeter comes up.&lt;br /&gt;&lt;br /&gt;With the same configuration you can also debug. Add a debug breakpoint to for instance:&lt;code&gt;org.apache.jmeter.engine.StandardJMeterEngine.runTest()&lt;/code&gt;&lt;br /&gt;Start your debug session now, and run example script. It will wait when you start a test run.&lt;br /&gt;&lt;br /&gt;To debug your own project (with sampler for instance):&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;make your own project dependent on jakarta-jmeter project&lt;/li&gt;&lt;li&gt; check that all jars from jakarta-jmeter project are exported&lt;/li&gt;&lt;li&gt;duplicate the launcher of above, but replace project by your own now&lt;/li&gt;&lt;li&gt;make sure your working directory is still pointing to jakarta-jmeter project's bin directory&lt;/li&gt;&lt;li&gt;check that your own src directory of sampler is on the classpath of the launcher&lt;/li&gt;&lt;li&gt;launch jmeter with this project's launcher&lt;/li&gt;&lt;li&gt;add debug breakpoints to sampler's code&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-3466257240846294948?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/3466257240846294948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=3466257240846294948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/3466257240846294948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/3466257240846294948'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2011/09/run-jmeter-from-eclipse.html' title='Run jmeter from eclipse'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-1450529604585211714</id><published>2011-09-22T16:56:00.000+02:00</published><updated>2011-09-22T16:56:58.228+02:00</updated><title type='text'>Debugging against jmeter</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Inside jmeter startup script, add:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;set DEBUGJDWP=-agentlib:jdwp=transport=dt_socket,address=localhost:9009,server=y,suspend=y&lt;br /&gt;set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %EVACUATION% %RMIGC% %PERM% %DDRAW% %DEBUGJDWP%&lt;br /&gt;&lt;/pre&gt;Now start jmeter. It will hang and wait for debugger.&lt;br/&gt;&lt;br/&gt;In eclipse, add a new remote java application debug configuration.Add jmeter source code to it. Connect.Jmeter will start now.&lt;br/&gt;&lt;br/&gt;Attach jmeter source code. Lookup class:&lt;pre&gt;&lt;br /&gt;org.apache.jmeter.engine.StandardJMeterEngine&lt;br /&gt;&lt;/pre&gt;Set debug point in runTest() method and start your script.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-1450529604585211714?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/1450529604585211714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=1450529604585211714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/1450529604585211714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/1450529604585211714'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2011/09/debugging-against-jmeter.html' title='Debugging against jmeter'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-6169735517956233724</id><published>2011-08-03T14:57:00.000+02:00</published><updated>2011-08-03T14:57:57.695+02:00</updated><title type='text'>Good principles of test automation</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;Core principles of good tests&lt;/b&gt;&lt;br /&gt;When you start automating your tests, there a few important principles to stick to.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Reliable &lt;/b&gt;&lt;br /&gt;First your tests must be reliable. This means that they must repeatable and always give the same results. They should not contain any environment dependencies, and be executable on any environment. To get this working, all hard-coded settings must be configurable, a maven or ant script is required to build and configure the test environment, and all code, test date and configuration scripts must be checked in source code repository. Having reliable tests that run everywhere and always, also means that your tests must take care to setup necessary test data, and clean it afterward again.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Fast&lt;/b&gt;&lt;br /&gt;Next, it would be nice when your tests are fast. In the lifetime of a project you will build up ever more tests; with every next sprint you will need to run more tests. You can't run all your tests on check-in, and for certain groups of tests need to schedule test execution times at less regular intervals.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Self explaining tests&lt;/b&gt;&lt;br /&gt;Also your tests should be easy to understand, and have clean reports. Easy to understand means that an outsider can quickly understand what the test is about. Proper naming helps a lot here, additionally you can add document tags to the comments. It also helps to stick to the domain language so that it is easy to map test cases to use cases.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Clean reports&lt;/b&gt;&lt;br /&gt;Test reports should have a clean baseline. Try to avoid including known bugs, as they clog up the test results, and make the news bugs less visible. Also in your asserts add meaningful log statements that help finding the root cause of the failure.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Continous integration &lt;/b&gt;&lt;br /&gt;Further you want your tests be integrated in continous integration build process. You will probably want to create several groups and have some of these more frequently executed than others. Once you have them running automatically, you are sure that they actually get executed, and you also make sure that they are really reproducible. Before you add your tests to CI you must make sure though that your test reports have a clean baseline. Else people will ignore the test reports. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Continuous integration of test environment setup &lt;/b&gt;&lt;br /&gt;Deployment and execution of tests in CI environments is the easy part. Far more difficult it may be to set up and configure your test environment. This includes setting up your application server, initialising your database, starting your application server, deploying your application and configuration of appl server and application. This will require a lot of specialist knowledge. &lt;br /&gt;One step further you may also want to mock your connection proxies to external connections. This may be for instance a credit card provider. You don't want to send your payments that you generate in tests to a real provider. So you will need to mock the provider's functionality and have your test environment set up with this mock interface instead of the real one. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Testability &lt;/b&gt;&lt;br /&gt;A last point of attention concerns testability. Some of your application's functionality may be difficult to test as you can't reach it with your testing code. Examples could be a status of an object that you have just changed, and can only be checked by a UI application. As a tester you would like to have direct access to this functionality, so that you can use it for the asserts of the test. These testability functionalities are additional requests to the developers. They will need to build it in the code, just for the sake of testing. Other important testability examples are: fixed IDs for html elements, or some deleteFunctionality to clean up test generated objects.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-6169735517956233724?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/6169735517956233724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=6169735517956233724' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/6169735517956233724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/6169735517956233724'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2011/08/good-principles-of-test-automation.html' title='Good principles of test automation'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-5074891152722475708</id><published>2011-08-03T14:54:00.000+02:00</published><updated>2011-08-03T14:54:10.873+02:00</updated><title type='text'>Test automation in agile</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;Test automation importance&lt;/b&gt;&lt;br /&gt;With our change to agile, we have made an important paradigm shift. In the old days we would stick to our planned roadmap, and compromise either on delivery dates or software quality. In Agile software development we are willing to compromise on scope, but not on software quality or delivery dates. This means in short: no code goes out untested.&lt;br /&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;What tests to execute?&lt;/b&gt;&lt;br /&gt;It is nearly impossible to test everything. There are so many types of tests, like: regression, story acceptance, developer, integration, usability, performance, security, upgrade, user acceptance etc. In our release planning, we must make a conscious decision which of those types we want to execute. Some of the test types may require additional experts, some of the tests may not be relevant, some may be just too costly. &lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The usual scrum tests&lt;/b&gt;Within our sprints, we tend to stick to regression tests, story acceptance tests, developer tests and integration tests. Developer tests are internal component tests, that test a component directly without the need of other components. Integration tests review the interaction between two or more components. Story acceptance tests verify the acceptance criteria. Regression tests are the story acceptance tests of previous sprints and may also include parts of the integration tests.&lt;br /&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Which tests to automate?&lt;/b&gt;&lt;br /&gt;For some tests it may not make sense to automate. Will the test ever be executed again? If not, then it will probably not pay off to automate it. Also consider the cost of test automation versus the time needed to test manually. Especially for UI tests, it may be cheaper to do manual tests. Drag and drop, and visual control of the result are very hard to automate. For normal webforms or low level service tests, automation is efficient.&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What are the risks of not automating?&lt;/b&gt;&lt;br /&gt;It is likely, that those tests that we decided not to automate, will not be executed in future sprints. So future sprints may break existing functionality without us knowing it. With less test coverage, we will get afraid to refactor our code. In the extreme case, we would end up with an application that we don't dare to touch. So it is very important to have automated regression tests with good coverage.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-5074891152722475708?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/5074891152722475708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=5074891152722475708' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/5074891152722475708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/5074891152722475708'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2011/08/test-automation-in-agile.html' title='Test automation in agile'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-1453735118679756207</id><published>2011-03-15T11:41:00.002+01:00</published><updated>2011-03-15T11:47:47.629+01:00</updated><title type='text'>SSL handshake failed: Secure connection truncated</title><content type='html'>Got this problem on Ubuntu 9.10 and 10.10.&lt;pre&gt;&lt;br /&gt;svn co --username=xx https:/yy zz&lt;br /&gt;“SSL handshake failed: Secure connection truncated”&lt;br /&gt;&lt;/pre&gt;According to this link &lt;a href="https://bugs.launchpad.net/ubuntu/+source/subversion/+bug/294648"&gt;bug-ubuntu&lt;/a&gt;The solution is:&lt;pre&gt;&lt;br /&gt;sudo apt-get install libneon27&lt;br /&gt;cd /usr/lib/&lt;br /&gt;sudo rm libneon-gnutls.so.27&lt;br /&gt;sudo ln -s /usr/lib/libneon.so.27 libneon-gnutls.so.27&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-1453735118679756207?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/1453735118679756207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=1453735118679756207' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/1453735118679756207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/1453735118679756207'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2011/03/ssl-handshake-failed-secure-connection.html' title='SSL handshake failed: Secure connection truncated'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-7946565008249262563</id><published>2010-06-05T10:40:00.000+02:00</published><updated>2010-06-05T10:40:55.818+02:00</updated><title type='text'>Grinderstone under linux</title><content type='html'>I am using Ubuntu 9.10&lt;pre&gt;&lt;br /&gt;jan@albotek:~/development/eclipse$ more /etc/lsb-release &lt;br /&gt;DISTRIB_ID=Ubuntu&lt;br /&gt;DISTRIB_RELEASE=9.10&lt;br /&gt;DISTRIB_CODENAME=karmic&lt;br /&gt;DISTRIB_DESCRIPTION="Ubuntu 9.10"&lt;br /&gt;&lt;/pre&gt;I installed new eclipse 3.5.2, and inside eclipse used jdk 1.6.0.20 as default JRE, and jython 2.5.1 for my jython. Still I did not manage to get my grinder scripts with proxy working. The failure I was getting:&lt;pre&gt;&lt;br /&gt;Java exception initialising test script&lt;br /&gt; test1.record(grinder.getLogger().output)&lt;br /&gt; File "/home/jan/development/workspace-grinder/Grinder1/src/HelloWorld3.py", line 7, in Caused by: net.grinder.script.NonInstrumentableTypeException: Failed to wrap &lt;bound method net.grinder.engine.process.ExternalLogger.output of net.grinder.engine.process.ExternalLogger@1190ea0&gt;&lt;br /&gt;   at net.grinder.engine.process.instrumenter.MasterInstrumenter.instrument(MasterInstrumenter.java:114)&lt;br /&gt;   at net.grinder.engine.process.TestData.instrument(TestData.java:100)&lt;br /&gt;   at net.grinder.script.Test.record(Test.java:114)&lt;br /&gt;&lt;/pre&gt;In my output log I was seeing:&lt;pre&gt;&lt;br /&gt;6/5/10 10:22:09 a.m. (process albotek-0): The Grinder version 3.4&lt;br /&gt;6/5/10 10:22:09 a.m. (process albotek-0): null 1.5.0: GNU libgcj (4.4.1, GNU libgcj 4.4.1) on Linux i386 2.6.31-21-generic&lt;br /&gt;6/5/10 10:22:09 a.m. (process albotek-0): time zone is GMT+02:00 (+0200)&lt;br /&gt;6/5/10 10:22:21 a.m. (process albotek-0): worker process 0&lt;br /&gt;6/5/10 10:22:21 a.m. (process albotek-0): Java VM does not support instrumentation, DCR unavailable&lt;br /&gt;6/5/10 10:22:21 a.m. (process albotek-0): instrumentation agents: NO INSTRUMENTER COULD BE LOADED&lt;br /&gt;6/5/10 10:22:21 a.m. (process albotek-0): executing "/home/jan/development/workspace-grinder/Grinder1/src/HelloWorld3.py" using Jython 2.5.1 (Release_2_5_1:6813, Sep 26 2009, 13:47:54) &lt;br /&gt;&lt;/pre&gt;Apparently I was using the wrong java version. Although I set it explicitly inside eclipse, eclipse itself had been started with java from OS, and grinderstone is using that one for its execution.I made a small startup script for my eclipse:&lt;pre&gt;&lt;br /&gt;export GDK_NATIVE_WINDOWS=true&lt;br /&gt;./eclipse  -clean -console -consoleLog -vm /usr/lib/jvm/java-6-sun/bin/java -vma&lt;br /&gt;rgs -Xmx400M -XX:MaxPermSize=128M -Dorg.eclipse.swt.browser.XULRunnerPath=/usr/l&lt;br /&gt;ib/xulrunner/xulrunner&lt;br /&gt;&lt;/pre&gt;and when I now start my eclipse, I get:&lt;pre&gt;&lt;br /&gt;6/5/10 10:30:24 AM (process albotek-0): The Grinder version 3.4&lt;br /&gt;6/5/10 10:30:24 AM (process albotek-0): Java(TM) SE Runtime Environment 1.6.0_20-b02: Java HotSpot(TM) Server VM (16.3-b01, mixed mode) on Linux i386 2.6.31-21-generic&lt;br /&gt;6/5/10 10:30:24 AM (process albotek-0): time zone is CEST (+0200)&lt;br /&gt;6/5/10 10:30:29 AM (process albotek-0): worker process 0&lt;br /&gt;6/5/10 10:30:29 AM (process albotek-0): instrumentation agents: byte code transforming instrumenter for Jython 2.5; byte code transforming instrumenter for Java&lt;br /&gt;6/5/10 10:30:29 AM (process albotek-0): executing "/home/jan/development/workspace-grinder/Grinder2/src/HelloWorld3.py" using Jython 2.5.1 (Release_2_5_1:6813, Sep 26 2009, 13:47:54) &lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-7946565008249262563?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/7946565008249262563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=7946565008249262563' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/7946565008249262563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/7946565008249262563'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2010/06/grinderstone-under-linux.html' title='Grinderstone under linux'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-4024878129944155083</id><published>2010-06-04T17:05:00.000+02:00</published><updated>2010-06-04T17:05:20.632+02:00</updated><title type='text'>Grinderstone and instrumentation</title><content type='html'>At least I got my office PC (windows) working now.Script is:&lt;pre&gt;&lt;br /&gt;# A simple example using the HTTP plugin that shows the retrieval of a&lt;br /&gt;# single page via HTTP.&lt;br /&gt;&lt;br /&gt;from net.grinder.script import Test&lt;br /&gt;from net.grinder.script.Grinder import grinder&lt;br /&gt;from net.grinder.plugin.http import HTTPRequest&lt;br /&gt;&lt;br /&gt;test1 = Test(1, "Request resource")&lt;br /&gt;request1 = test1.wrap(HTTPRequest())&lt;br /&gt;&lt;br /&gt;class TestRunner:&lt;br /&gt;    def __call__(self):&lt;br /&gt;        result = request1.GET("http://emeafraippqa08:80/")&lt;br /&gt;&lt;/pre&gt;I used to get failures that had to do with instrumentation.In the end I added a new jdk6 (1.6.0.20) to eclipse, renewed my jython 2.5.1 reference so that it is using these libs, and now got it working.In my console I see the following path:&lt;pre&gt;&lt;br /&gt;04.06.10 17:03:42 (agent): The Grinder 3.4&lt;br /&gt;04.06.10 17:03:42 (agent): Worker process command line: java '-javaagent:C:\development\grinder-3.4\lib\grinder-agent.jar' -classpath 'C:\development\jython2.5.1\jython.jar;C:\Dokumente und Einstellungen\jan.kester\workspace\Grinder1/srcC:\development\grinder-3.4\lib\grinder-agent.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\eclipse_3.5.2\plugins\org.python.pydev_1.5.7.2010050621\PySrc\pydev_sitecustomize;C:\Dokumente und Einstellungen\jan.kester\workspace\Grinder1\src;C:\development\grinder-3.4\lib\grinder-agent.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\jython2.5.1\Lib;C:\development\jython2.5.1\Lib\site-packages;C:\Programme\Java\jdk1.6.0_20\jre\lib\resources.jar;C:\Programme\Java\jdk1.6.0_20\jre\lib\rt.jar;C:\Programme\Java\jdk1.6.0_20\jre\lib\jsse.jar;C:\Programme\Java\jdk1.6.0_20\jre\lib\jce.jar;C:\Programme\Java\jdk1.6.0_20\jre\lib\charsets.jar;C:\Programme\Java\jdk1.6.0_20\jre\lib\ext\dnsns.jar;C:\Programme\Java\jdk1.6.0_20\jre\lib\ext\localedata.jar;C:\Programme\Java\jdk1.6.0_20\jre\lib\ext\sunjce_provider.jar;C:\Programme\Java\jdk1.6.0_20\jre\lib\ext\sunmscapi.jar;C:\Programme\Java\jdk1.6.0_20\jre\lib\ext\sunpkcs11.jar' net.grinder.engine.process.WorkerProcessEntryPoint&lt;br /&gt;04.06.10 17:03:43 (agent): worker emeafralp560-0 started&lt;br /&gt;04.06.10 17:03:45 (process emeafralp560-0): starting threads&lt;br /&gt;04.06.10 17:03:48 (process emeafralp560-0): finished&lt;br /&gt;04.06.10 17:03:49 (agent): finished&lt;br /&gt;&lt;/pre&gt;My direct grinder output is:&lt;pre&gt;&lt;br /&gt;C:\development\grinder-3.4&gt;startAgent_jython251.cmd&lt;br /&gt;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;.;C:\Programme\Java\jre6\lib\ext\QTJava.zip&lt;br /&gt;6/4/10 2:09:53 PM (agent): The Grinder 3.4&lt;br /&gt;6/4/10 2:09:53 PM (agent): Worker process command line: java '-javaagent:C:\development\grinder-3.4\lib\grinder-agent.jar' '-Dpython.home=C:/development/jython2.5.1' '-Dpython.cachedir=C:\development\grinder-3.4/cachedir' -classpath 'C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:/development/jython2.5.1/jython.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;C:\development\grinder-3.4\lib\grinder.jar;.;C:\Programme\Java\jre6\lib\ext\QTJava.zip' net.grinder.engine.process.WorkerProcessEntryPoint&lt;br /&gt;6/4/10 2:09:54 PM (agent): worker emeafralp560-0 started&lt;br /&gt;04.06.10 14:09:55 (process emeafralp560-0): starting threads&lt;br /&gt;04.06.10 14:09:55 (process emeafralp560-0): finished&lt;br /&gt;6/4/10 2:09:56 PM (agent): finished&lt;br /&gt;&lt;/pre&gt;Now I need to get my home PC working still ... (Ubuntu)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-4024878129944155083?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/4024878129944155083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=4024878129944155083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/4024878129944155083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/4024878129944155083'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2010/06/grinderstone-and-instrumentation.html' title='Grinderstone and instrumentation'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-17978577500632273</id><published>2010-06-04T14:12:00.002+02:00</published><updated>2010-06-04T14:12:54.060+02:00</updated><title type='text'>record() not wrap()</title><content type='html'>With the new jython 2.5.1 instrumentation, you must use record() method of Test proxy, and not wrap(). The old one is deprecated.The difference:old:&lt;pre&gt;&lt;br /&gt;from net.grinder.script import Test&lt;br /&gt;from net.grinder.script.Grinder import grinder&lt;br /&gt;&lt;br /&gt;test1 = Test(1, "Log method")&lt;br /&gt;&lt;br /&gt;# Wrap the output() method with our Test and call the result logWrapper.&lt;br /&gt;logWrapper = test1.wrap(grinder.getLogger().output)&lt;br /&gt;&lt;br /&gt;class TestRunner:&lt;br /&gt;    def __call__(self):&lt;br /&gt;        logWrapper("Hello World2")&lt;br /&gt;&lt;/pre&gt;new:&lt;pre&gt;&lt;br /&gt;from net.grinder.script import Test&lt;br /&gt;from net.grinder.script.Grinder import grinder&lt;br /&gt;&lt;br /&gt;test1 = Test(1, "Log method")&lt;br /&gt;&lt;br /&gt;# Instrument the output() method with our Test.&lt;br /&gt;test1.record(grinder.getLogger().output)&lt;br /&gt;&lt;br /&gt;class TestRunner:&lt;br /&gt;    def __call__(self):&lt;br /&gt;        grinder.getLogger().output("Hello World4")&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-17978577500632273?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/17978577500632273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=17978577500632273' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/17978577500632273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/17978577500632273'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2010/06/record-not-wrap.html' title='record() not wrap()'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-3385509770050732803</id><published>2010-06-04T14:01:00.000+02:00</published><updated>2010-06-04T14:01:02.810+02:00</updated><title type='text'>Using grinder 3.4 and jython 2.5.1</title><content type='html'>By default grinder 3.4 comes with a jython jar under lib directory. It is version 2.2.1.In order two use a newer jython, you need to change two settings:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;add your newest jython jar in front of classpath&lt;/li&gt;&lt;li&gt;add a jvm property that directs python_home to the home of your jython.&lt;/li&gt;&lt;/ul&gt;You can either do this in grinder.properties or in your bat script that starts the agent. I prefer the latter as I would like to keep grinder.properties as general as possible, independent of machines/environment.My new startAgent_jython251.cmd script looks like:&lt;pre&gt;&lt;br /&gt;@echo off&lt;br /&gt;set GRINDERPATH=C:\development\grinder-3.4&lt;br /&gt;call %GRINDERPATH%\setGrinderEnv.cmd&lt;br /&gt;set PYTHON_HOME=C:/development/jython2.5.1&lt;br /&gt;echo %CLASSPATH%&lt;br /&gt;set CLASSPATH=%PYTHON_HOME%/jython.jar;%CLASSPATH%&lt;br /&gt;set JVMARGS="-Dpython.home=%PYTHON_HOME% -Dpython.cachedir=%GRINDERPATH%/cachedir"&lt;br /&gt;java -Duser.language="en" -Dgrinder.jvm.arguments=%JVMARGS% -cp %CLASSPATH% net.grinder.Grinder %GRINDERPROPERTIES%&lt;br /&gt;&lt;/pre&gt;When I run a script with this agent cmd, my output looks like:&lt;pre&gt;&lt;br /&gt;04.06.10 13:53:46 (process emeafralp560-0): The Grinder version 3.4&lt;br /&gt;04.06.10 13:53:46 (process emeafralp560-0): Java(TM) SE Runtime Environment 1.6.0_20-b02: Java HotSpot(TM) Client VM (16.3-b01, mixed mode) on Windows XP x86 5.1&lt;br /&gt;04.06.10 13:53:46 (process emeafralp560-0): time zone is MESZ (+0200)&lt;br /&gt;04.06.10 13:53:48 (process emeafralp560-0): worker process 0&lt;br /&gt;04.06.10 13:53:48 (process emeafralp560-0): instrumentation agents: byte code transforming instrumenter for Jython 2.5; byte code transforming instrumenter for Java&lt;br /&gt;04.06.10 13:53:48 (process emeafralp560-0): executing "C:\development\grinder-3.4\HelloGrinder3.py" using Jython 2.5.1 (Release_2_5_1:6813, Sep 26 2009, 13:47:54) &lt;br /&gt;[Java HotSpot(TM) Client VM (Sun Microsystems Inc.)]&lt;br /&gt;&lt;/pre&gt;I think that by default it is already using the new instrumentation implementation that gets used by jython 2.5.1. Manual states namely that if you use the old one, the output shows you &lt;blockquote&gt;traditional Jython instrumenter&lt;/blockquote&gt;I did not see it, and could not influence the output with parameter &lt;blockquote&gt;grinder.dcrinstrumentation = true&lt;/blockquote&gt;So I compared behaviour with a grinder using jython 2.2.1. There using this parameter did make an influence. If you included the parameter, regardless the value you are giving it (true|anything|even-false|false), it will use the new way of instrumentation. Only when you leave the parameter out, you will get output:&lt;pre&gt;&lt;br /&gt;04.06.10 14:00:34 (process emeafralp560-0): The Grinder version 3.4&lt;br /&gt;04.06.10 14:00:34 (process emeafralp560-0): Java(TM) SE Runtime Environment 1.6.0_20-b02: Java HotSpot(TM) Client VM (16.3-b01, mixed mode) on Windows XP x86 5.1&lt;br /&gt;04.06.10 14:00:34 (process emeafralp560-0): time zone is MESZ (+0200)&lt;br /&gt;04.06.10 14:00:34 (process emeafralp560-0): worker process 0&lt;br /&gt;04.06.10 14:00:34 (process emeafralp560-0): instrumentation agents: traditional Jython instrumenter; byte code transforming instrumenter for Java&lt;br /&gt;04.06.10 14:00:34 (process emeafralp560-0): executing "C:\development\grinder-3.4\HelloGrinder3.py" using Jython 2.2.1&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-3385509770050732803?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/3385509770050732803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=3385509770050732803' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/3385509770050732803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/3385509770050732803'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2010/06/using-grinder-34-and-jython-251.html' title='Using grinder 3.4 and jython 2.5.1'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-1263774434697991390</id><published>2010-06-04T13:19:00.000+02:00</published><updated>2010-06-04T13:19:21.790+02:00</updated><title type='text'>My first grinder runs</title><content type='html'>I downloaded grinder 3.4, and unpacked.I installed java jdk 1.6.0.20 on my machine.Inside the root directory of my installation I added following scripts:setGrinderEnv.cmd&lt;pre&gt;&lt;br /&gt;set GRINDERPATH=C:\development\grinder-3.4&lt;br /&gt;set GRINDERPROPERTIES=C:\development\grinder-3.4\grinder.properties&lt;br /&gt;set CLASSPATH=%GRINDERPATH%\lib\grinder.jar;%CLASSPATH%&lt;br /&gt;set JAVA_HOME=C:\Programme\Java\jdk1.6.0_20&lt;br /&gt;PATH=%JAVA_HOME%\bin;%PATH%&lt;br /&gt;&lt;/pre&gt;startProxy.cmd&lt;pre&gt;&lt;br /&gt;set GRINDERPATH=C:\development\grinder-3.4&lt;br /&gt;call %GRINDERPATH%\setGrinderEnv.cmd&lt;br /&gt;echo %CLASSPATH%&lt;br /&gt;java -Duser.language="en" -cp %CLASSPATH% net.grinder.TCPProxy -console -http &gt; ipp.py&lt;br /&gt;&lt;/pre&gt;startConsole.cmd&lt;pre&gt;&lt;br /&gt;set GRINDERPATH=C:\development\grinder-3.4&lt;br /&gt;call %GRINDERPATH%\setGrinderEnv.cmd&lt;br /&gt;echo %CLASSPATH%&lt;br /&gt;java -Duser.language="en" -cp %CLASSPATH% net.grinder.Console&lt;br /&gt;&lt;/pre&gt;startAgent.cmd&lt;pre&gt;&lt;br /&gt;set GRINDERPATH=C:\development\grinder-3.4&lt;br /&gt;call %GRINDERPATH%\setGrinderEnv.cmd&lt;br /&gt;echo %CLASSPATH%&lt;br /&gt;java -Duser.language="en" -cp %CLASSPATH% net.grinder.Grinder %GRINDERPROPERTIES%&lt;br /&gt;&lt;/pre&gt;I also dropped a file grinder.properties in root directory of grinder-3.4:&lt;pre&gt;&lt;br /&gt;grinder.script=HelloGrinder2.py&lt;br /&gt;grinder.processes = 1&lt;br /&gt;grinder.threads = 3&lt;br /&gt;grinder.runs = 2&lt;br /&gt;grinder.useConsole = false&lt;br /&gt;grinder.dcrinstrumentation = true&lt;br /&gt;grinder.logDirectory = logs&lt;br /&gt;grinder.numberOfOldLogs = 0&lt;br /&gt;grinder.initialSleepTime=50&lt;br /&gt;&lt;/pre&gt;With this grinder.properties, an agent will execute the HelloGrinder2.py script:&lt;pre&gt;&lt;br /&gt;from net.grinder.script import Test&lt;br /&gt;from net.grinder.script.Grinder import grinder&lt;br /&gt;&lt;br /&gt;test1 = Test(1, "Log method")&lt;br /&gt;&lt;br /&gt;# Wrap the output() method with our Test and call the result logWrapper.&lt;br /&gt;logWrapper = test1.wrap(grinder.getLogger().output)&lt;br /&gt;&lt;br /&gt;class TestRunner:&lt;br /&gt;    def __call__(self):&lt;br /&gt;        logWrapper("Hello World2")&lt;br /&gt;&lt;/pre&gt;I can execute the script by calling startAgent.cmd.After execution I get a subdirectory called log, with data and output files in it.The output file shows:&lt;pre&gt;&lt;br /&gt;04.06.10 10:47:40 (process emeafralp560-0): starting threads&lt;br /&gt;04.06.10 10:47:40 (thread 2): starting, will do 2 runs&lt;br /&gt;04.06.10 10:47:40 (thread 1): starting, will do 2 runs&lt;br /&gt;04.06.10 10:47:40 (thread 0): starting, will do 2 runs&lt;br /&gt;04.06.10 10:47:40 (process emeafralp560-0): start time is 1275641260135 ms since Epoch&lt;br /&gt;04.06.10 10:47:40 (thread 0): sleeping for 10 ms&lt;br /&gt;04.06.10 10:47:40 (thread 1): sleeping for 1 ms&lt;br /&gt;04.06.10 10:47:40 (thread 2): sleeping for 4 ms&lt;br /&gt;04.06.10 10:47:40 (thread 2 run 0 test 1): Hello World2&lt;br /&gt;04.06.10 10:47:40 (thread 1 run 0 test 1): Hello World2&lt;br /&gt;04.06.10 10:47:40 (thread 0 run 0 test 1): Hello World2&lt;br /&gt;04.06.10 10:47:40 (thread 1 run 1 test 1): Hello World2&lt;br /&gt;04.06.10 10:47:40 (thread 1 test 1): finished 2 runs&lt;br /&gt;04.06.10 10:47:40 (thread 0 run 1 test 1): Hello World2&lt;br /&gt;04.06.10 10:47:40 (thread 0 test 1): finished 2 runs&lt;br /&gt;04.06.10 10:47:40 (thread 2 run 1 test 1): Hello World2&lt;br /&gt;04.06.10 10:47:40 (thread 2 test 1): finished 2 runs&lt;br /&gt;04.06.10 10:47:40 (process emeafralp560-0): elapsed time is 22 ms&lt;br /&gt;&lt;/pre&gt;As my grinder properties file tells to use 3 threads, and 2 runs for each thread, the Hello World2 got written 6 times.My data output shows the test times that the Test Proxy of the script recorded:&lt;pre&gt;&lt;br /&gt;Thread, Run, Test, Start time (ms since Epoch), Test time, Errors&lt;br /&gt;0, 0, 1, 1275641260152, 0, 0&lt;br /&gt;1, 0, 1, 1275641260152, 0, 0&lt;br /&gt;2, 0, 1, 1275641260152, 1, 0&lt;br /&gt;1, 1, 1, 1275641260153, 0, 0&lt;br /&gt;0, 1, 1, 1275641260154, 0, 0&lt;br /&gt;2, 1, 1, 1275641260154, 0, 0&lt;br /&gt;&lt;/pre&gt;This output is a bit boring, as I did not make any http request.With the next file HelloGrinder3.py I do:&lt;pre&gt;&lt;br /&gt;from net.grinder.script import Test&lt;br /&gt;from net.grinder.script.Grinder import grinder&lt;br /&gt;from net.grinder.plugin.http import HTTPRequest&lt;br /&gt;&lt;br /&gt;test1 = Test(1, "Request resource")&lt;br /&gt;request1 = test1.wrap(HTTPRequest())&lt;br /&gt;&lt;br /&gt;class TestRunner:&lt;br /&gt;    def __call__(self):&lt;br /&gt;        result = request1.GET("http://emeafraippqa08:80/")&lt;br /&gt;&lt;/pre&gt;I need to adapt grinder.properties to use this as grinder.script, and then can run startAgent.cmd again.Now my data output looks like:&lt;pre&gt;&lt;br /&gt;Thread, Run, Test, Start time (ms since Epoch), Test time, Errors, HTTP response code, HTTP response length, HTTP response errors, Time to resolve host, Time to establish connection, Time to first byte&lt;br /&gt;1, 0, 1, 1275650338473, 60, 0, 200, 327, 0, 23, 33, 50&lt;br /&gt;1, 1, 1, 1275650338535, 2, 0, 200, 327, 0, 0, 0, 1&lt;br /&gt;2, 0, 1, 1275650338473, 3105, 0, 200, 327, 0, 22, 3085, 3094&lt;br /&gt;0, 0, 1, 1275650338481, 3097, 0, 200, 327, 0, 23, 3085, 3094&lt;br /&gt;2, 1, 1, 1275650341579, 5, 0, 200, 327, 0, 0, 1, 3&lt;br /&gt;0, 1, 1, 1275650341579, 7, 0, 200, 327, 0, 0, 1, 2&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-1263774434697991390?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/1263774434697991390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=1263774434697991390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/1263774434697991390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/1263774434697991390'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2010/06/my-first-grinder-runs.html' title='My first grinder runs'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-1786226228167957966</id><published>2010-06-03T20:17:00.000+02:00</published><updated>2010-06-03T20:17:22.889+02:00</updated><title type='text'>Adding your own styles</title><content type='html'>To get nice formatting of your blog, you can add your own style elements.Under Customize - Layout - Edit Html you can adapt your style sheet.Find the element:&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;]]&amp;gt;&amp;lt;/b:skin&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;and above this add:&lt;pre&gt;&lt;br /&gt;pre {&lt;br /&gt;background:#eeeeee;&lt;br /&gt;border:1px solid #A6B0BF;&lt;br /&gt;font-size:120%;&lt;br /&gt;line-height:100%;&lt;br /&gt;overflow:auto;&lt;br /&gt;padding:10px;&lt;br /&gt;color:#000000 }&lt;br /&gt;pre:hover {&lt;br /&gt;border:1px solid #efefef;&lt;br /&gt;}&lt;br /&gt;code {&lt;br /&gt;font-size:120%;&lt;br /&gt;text-align:left;&lt;br /&gt;margin:0;padding:0;&lt;br /&gt;color: #000000;}&lt;br /&gt;.clear { clear:both;&lt;br /&gt;overflow:hidden;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;Now you have two new styles you can use: pre and code.To use them, switch to Edit HTML mode, and use html tags pre or code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-1786226228167957966?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/1786226228167957966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=1786226228167957966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/1786226228167957966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/1786226228167957966'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2010/06/adding-your-own-styles.html' title='Adding your own styles'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-8407235257877659200</id><published>2010-06-02T16:29:00.002+02:00</published><updated>2010-06-03T20:20:38.369+02:00</updated><title type='text'>My first grinderstone project</title><content type='html'>I followed instructions to set up grinderstone:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;eclipse 3.5.2&amp;nbsp;&lt;/li&gt;&lt;li&gt;pydev from update site&amp;nbsp;&lt;/li&gt;&lt;li&gt;grinderstone from update site&lt;/li&gt;&lt;li&gt;jython 2.5.1 installed&lt;/li&gt;&lt;li&gt;grinder 3.4 installed&lt;/li&gt;&lt;/ul&gt;Under windows preferences I added a jython 2.5.1 jar as jython interpreter. It asks which libraries to include on the python system path. I choose the defaults, excluding __pyclasspath__ and __classpath__. Not sure where these get used for; probably to include your project's&amp;nbsp; .classpath or python path in the jython execution's classpath.&lt;br /&gt;Also under windows-preferences, I set show whitespace characters to true.&lt;br /&gt;&lt;br /&gt;Next I create a python project. I added grinder.jar and grinder-agent.jar to the external libraries of the project build path. Now I can add my first grinder file under src/HelloGrinder.py:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;from net.grinder.script.Grinder import grinder&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# An instance of this class is created for every thread.&lt;br /&gt;&lt;br /&gt;class TestRunner:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # This method is called for every run.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def __call__(self):&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Per thread scripting goes here.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; grinder.getLogger().output("Hello World")&lt;/pre&gt;&lt;br /&gt;Next I need to add a grinder.properties to the directory as well:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;grinder.processes = 1&lt;br /&gt;&lt;br /&gt;grinder.threads = 1&lt;br /&gt;&lt;br /&gt;grinder.runs = 1&lt;br /&gt;&lt;br /&gt;grinder.useConsole = false&lt;br /&gt;&lt;br /&gt;grinder.logDirectory = logs&lt;br /&gt;&lt;br /&gt;grinder.numberOfOldLogs = 0&lt;br /&gt;&lt;br /&gt;grinder.initialSleepTime=50&lt;/pre&gt;I can now select my HelloGrinder.py file, and with right mouse button select: Run As -&amp;nbsp; Grinder Run.&lt;br /&gt;Logs will appear under src. You will need to click refresh (F5) on you project before they get visible ..&lt;br /&gt;&lt;br /&gt;Output looks like:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;02.06.10 16:27:18 (process emeafralp560-0): The Grinder version 3.4&lt;br /&gt;&lt;br /&gt;02.06.10 16:27:18 (process emeafralp560-0): Java(TM) 2 Runtime Environment, Standard Edition 1.5.0_06-b05: Java HotSpot(TM) Client VM (1.5.0_06-b05, mixed mode) on Windows XP x86 5.1&lt;br /&gt;&lt;br /&gt;02.06.10 16:27:18 (process emeafralp560-0): time zone is CEST (+0200)&lt;br /&gt;&lt;br /&gt;02.06.10 16:27:20 (process emeafralp560-0): worker process 0&lt;br /&gt;&lt;br /&gt;02.06.10 16:27:20 (process emeafralp560-0): Java VM does not support instrumentation, DCR unavailable&lt;br /&gt;&lt;br /&gt;02.06.10 16:27:20 (process emeafralp560-0): instrumentation agents: NO INSTRUMENTER COULD BE LOADED&lt;br /&gt;&lt;br /&gt;02.06.10 16:27:20 (process emeafralp560-0): executing "C:\Dokumente und Einstellungen\jan.kester\workspace\Grinder1\src\HelloGrinder.py" using Jython 2.5.1 (Release_2_5_1:6813, Sep 26 2009, 13:47:54) &lt;br /&gt;&lt;br /&gt;[Java HotSpot(TM) Client VM (Sun Microsystems Inc.)]&lt;br /&gt;&lt;br /&gt;02.06.10 16:27:20 (process emeafralp560-0): starting threads&lt;br /&gt;&lt;br /&gt;02.06.10 16:27:20 (thread 0): starting, will do 1 run&lt;br /&gt;&lt;br /&gt;02.06.10 16:27:20 (process emeafralp560-0): start time is 1275488840962 ms since Epoch&lt;br /&gt;&lt;br /&gt;02.06.10 16:27:20 (thread 0): sleeping for 38 ms&lt;br /&gt;&lt;br /&gt;02.06.10 16:27:20 (thread 0 run 0): Hello World&lt;br /&gt;&lt;br /&gt;02.06.10 16:27:20 (thread 0): finished 1 run&lt;br /&gt;&lt;br /&gt;02.06.10 16:27:20 (process emeafralp560-0): elapsed time is 58 ms&lt;br /&gt;&lt;br /&gt;02.06.10 16:27:20 (process emeafralp560-0): Final statistics for this process:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tests&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Errors&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mean Test&amp;nbsp;&amp;nbsp;&amp;nbsp; Test Time&amp;nbsp;&amp;nbsp;&amp;nbsp; TPS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Time (ms)&amp;nbsp;&amp;nbsp;&amp;nbsp; Standard&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Deviation&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ms)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Totals&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0,00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Tests resulting in error only contribute to the Errors column.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp; Statistics for individual tests can be found in the data file, including&lt;br /&gt;&lt;br /&gt;&amp;nbsp; (possibly incomplete) statistics for erroneous tests. Composite tests&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp; are marked with () and not included in the totals.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;02.06.10 16:27:20 (process emeafralp560-0): finished&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-8407235257877659200?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/8407235257877659200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=8407235257877659200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/8407235257877659200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/8407235257877659200'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2010/06/my-first-grinderstone-project.html' title='My first grinderstone project'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-6865399762141306378</id><published>2010-05-04T16:20:00.002+02:00</published><updated>2010-05-04T16:40:02.358+02:00</updated><title type='text'>Setting up ldap on Ubuntu 9.10</title><content type='html'>Installing slapd on Ubuntu 9.10 is not enough.The configuration of slapd requires more steps.I refer to article: &lt;a href="http://doc.ubuntu.com/ubuntu/serverguide/C/openldap-server.html"&gt;http://doc.ubuntu.com/ubuntu/serverguide/C/openldap-server.html&lt;/a&gt; which apparently also applies to 9.10.Make sure you load the necessary schemas:&lt;pre&gt;&lt;br /&gt;ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif&lt;br /&gt;ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif &lt;br /&gt;ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif &lt;br /&gt;&lt;/pre&gt;My ldif file I wanted to load contains dc=ldap,dc=example,dc=ipp. So I wanted to set up a rootdn starting with same domain.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# Load dynamic backend modules&lt;br /&gt;dn: cn=module,cn=config&lt;br /&gt;objectClass: olcModuleList&lt;br /&gt;cn: module&lt;br /&gt;olcModulepath: /usr/lib/ldap&lt;br /&gt;olcModuleload: back_hdb&lt;br /&gt;&lt;br /&gt;# Database settings&lt;br /&gt;dn: olcDatabase=hdb,cn=config&lt;br /&gt;objectClass: olcDatabaseConfig&lt;br /&gt;objectClass: olcHdbConfig&lt;br /&gt;olcDatabase: {1}hdb&lt;br /&gt;olcSuffix: dc=ldap,dc=example,dc=ipp&lt;br /&gt;olcDbDirectory: /var/lib/ldap&lt;br /&gt;olcRootDN: cn=admin,dc=ldap,dc=example,dc=ipp&lt;br /&gt;olcRootPW: secret&lt;br /&gt;olcDbConfig: set_cachesize 0 2097152 0&lt;br /&gt;olcDbConfig: set_lk_max_objects 1500&lt;br /&gt;olcDbConfig: set_lk_max_locks 1500&lt;br /&gt;olcDbConfig: set_lk_max_lockers 1500&lt;br /&gt;olcDbIndex: objectClass eq&lt;br /&gt;olcLastMod: TRUE&lt;br /&gt;olcDbCheckpoint: 512 30&lt;br /&gt;olcAccess: to attrs=userPassword by dn="cn=admin,dc=ldap,dc=example,dc=ipp" write by anonymous auth by self write by * none&lt;br /&gt;olcAccess: to attrs=shadowLastChange by self write by * read&lt;br /&gt;olcAccess: to dn.base="" by * read&lt;br /&gt;olcAccess: to * by dn="cn=admin,dc=ldap,dc=example,dc=ipp" write by * read&lt;br /&gt;&lt;/pre&gt;Note that I changed the domain, and left password to secret.Load this backend file with:&lt;pre&gt;&lt;br /&gt;sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.ldap.example.ipp.ldif&lt;br /&gt;&lt;/pre&gt;You will now need to restart your slapd daemon.Then you can add your own ldif file with data.Afterwards you can test with ldapsearch. As normal user:&lt;pre&gt;&lt;br /&gt;ldapsearch -x -b "dc=ldap,dc=example,dc=ipp" uid=User sn ginveName cn&lt;br /&gt;ldapsearch -x -b "dc=ldap,dc=example,dc=ipp" '(objectclass=top)'&lt;br /&gt;ldapsearch -x -b "dc=ldap,dc=example,dc=ipp" '(objectclass=domain)'&lt;br /&gt;ldapsearch -x -b "dc=ldap,dc=example,dc=ipp" '(objectclass=person)'&lt;br /&gt;ldapsearch -x -b "dc=ldap,dc=example,dc=ipp" '(objectclass=organizationalUnit)'&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-6865399762141306378?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/6865399762141306378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=6865399762141306378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/6865399762141306378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/6865399762141306378'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2010/05/setting-up-ldap-on-ubuntu-910.html' title='Setting up ldap on Ubuntu 9.10'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-328478296292730663</id><published>2010-05-03T11:07:00.001+02:00</published><updated>2010-05-03T11:09:59.119+02:00</updated><title type='text'>Publishing xml</title><content type='html'>I always had the problem in my posts to include xml snippets. A problem other people must have experienced too. I came across the blogger site: &lt;a href="http://formatmysourcecode.blogspot.com/"&gt;http://formatmysourcecode.blogspot.com/&lt;/a&gt;. It allows to copy your xml, paste and convert it. An example is below, it should show xml ...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;templates&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;template autoinsert="true" context="gettercomment_context"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deleted="false" description="Comment for getter method" enabled="true"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id="org.eclipse.jdt.ui.text.codetemplates.gettercomment"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name="gettercomment"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /** * @return the ${bare_field_name} */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/template&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;template autoinsert="true" context="delegatecomment_context"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deleted="false" description="Comment for delegate methods"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enabled="true"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id="org.eclipse.jdt.ui.text.codetemplates.delegatecomment"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name="delegatecomment"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /** * ${tags} * ${see_to_target} */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/template&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;This is the xml with embedded stylesheet.Without stylesheet and with tab size2, it looks like:&lt;pre class="source-code"&gt;&lt;code&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;templates&amp;gt;&lt;br /&gt;        &amp;lt;template autoinsert=&amp;quot;true&amp;quot; context=&amp;quot;gettercomment_context&amp;quot;&lt;br /&gt;                deleted=&amp;quot;false&amp;quot; description=&amp;quot;Comment for getter method&amp;quot; enabled=&amp;quot;true&amp;quot;&lt;br /&gt;                id=&amp;quot;org.eclipse.jdt.ui.text.codetemplates.gettercomment&amp;quot;&lt;br /&gt;                name=&amp;quot;gettercomment&amp;quot;&amp;gt;&lt;br /&gt;                /** * @return the ${bare_field_name} */&lt;br /&gt;        &amp;lt;/template&amp;gt;&lt;br /&gt;        &amp;lt;template autoinsert=&amp;quot;true&amp;quot; context=&amp;quot;delegatecomment_context&amp;quot;&lt;br /&gt;                deleted=&amp;quot;false&amp;quot; description=&amp;quot;Comment for delegate methods&amp;quot;&lt;br /&gt;                enabled=&amp;quot;true&amp;quot;&lt;br /&gt;                id=&amp;quot;org.eclipse.jdt.ui.text.codetemplates.delegatecomment&amp;quot;&lt;br /&gt;                name=&amp;quot;delegatecomment&amp;quot;&amp;gt;&lt;br /&gt;                /** * ${tags} * ${see_to_target} */&lt;br /&gt;        &amp;lt;/template&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-328478296292730663?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/328478296292730663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=328478296292730663' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/328478296292730663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/328478296292730663'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2010/05/publishing-xml.html' title='Publishing xml'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-795300031442278221</id><published>2009-10-20T07:57:00.000+02:00</published><updated>2009-10-20T14:49:59.314+02:00</updated><title type='text'>encrypt directory</title><content type='html'>I wanted to encrypt some personal directories I have on my laptop.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I have an encrypted directory:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;jan@eee901:~/Documents$ ls /home/jan/.encrypted/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4g1Vb4HRZTsVFGXkeqcIsv3q  JgpUH0yio4s6r6QuYYyNEKQVUoXKU1j937UTbHa1YOgQK,  qoSuRuAL7FFdp49ZL2J9UgZp&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;My destination directory /home/jan/Documents/encrypted is empty after a new boot.&lt;br /&gt;&lt;br /&gt;Now I can mount with:&lt;br /&gt;encfs /home/jan/.encrypted /home/jan/Documents/encrypted&lt;br /&gt;&lt;br /&gt;an@eee901:~/Documents$ encfs /home/jan/.encrypted /home/jan/Documents/encrypted&lt;br /&gt;EncFS Password:&lt;br /&gt;jan@eee901:~/Documents$ ls encrypted/&lt;br /&gt;addresses&lt;br /&gt;&lt;br /&gt;To umount:&lt;br /&gt;fusermount -u /home/jan/Documents/encrypted&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When you run the command for the first time, it will ask you to set password.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-795300031442278221?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/795300031442278221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=795300031442278221' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/795300031442278221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/795300031442278221'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2009/10/encrypt-directory.html' title='encrypt directory'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-6388754313110369265</id><published>2009-10-20T07:36:00.000+02:00</published><updated>2009-10-20T07:56:46.307+02:00</updated><title type='text'>Using sdhc card from boot</title><content type='html'>My Eee PC 901 runs Ubuntu. I have no hard disk, but just an internal sd card, and an additional inserted sdhc card in the sd card slot.&lt;br /&gt;I wanted to have all my /home stuff on the external card, so that in case of crash, I can just buy a new card. The internal card is more difficult to replace, so I want to use the external card for whatever possible.&lt;br /&gt;&lt;br /&gt;As the ext card has my /home directory, I need it to be available on boot.&lt;br /&gt;&lt;br /&gt;With lsusb I found the details of my card, and then added an udev rule&lt;br /&gt;&lt;br /&gt;jan@eee901:~/svn/hydra_test$ more /etc/udev/rules.d/01-jankester.rules&lt;br /&gt;#ID_SERIAL_SHORT=058F63356336&lt;br /&gt;#ID_FS_UUID=dd4cb63c-0329-4dc6-8ca8-c2e68b9d233e&lt;br /&gt;BUS=="usb", KERNEL=="sd*", SYSFS{serial}=="058F63356336", NAME="SDHC", OPTIONS+="last_rule", RUN+="/bin/mount /dev/SDHC"&lt;br /&gt;&lt;br /&gt;Now I added entry in fstab:&lt;br /&gt;/dev/SDHC                                 /home           ext3    defaults,noatime           0&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-6388754313110369265?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/6388754313110369265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=6388754313110369265' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/6388754313110369265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/6388754313110369265'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2009/10/using-sdhc-card-from-boot.html' title='Using sdhc card from boot'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-7792186898597519360</id><published>2008-05-14T15:41:00.000+02:00</published><updated>2008-05-14T15:46:39.153+02:00</updated><title type='text'>Ubuntu: starting db2 at bootup</title><content type='html'>I installed db2 express 9.5 under ubuntu 8.04.&lt;br /&gt;After installation of several packages, it installed well.&lt;br /&gt;Only, after installation, it did not automatically start at boot.&lt;br /&gt;&lt;br /&gt;Setting db2set autostart=yes (by db2inst1 user) did not help.&lt;br /&gt;&lt;br /&gt;So in the end, I added a /etc/init.d/db2 script:&lt;br /&gt;&lt;a href="http://www.tldp.org/HOWTO/DB2-HOWTO/ubuntu704.html#AEN794"&gt;http://www.tldp.org/HOWTO/DB2-HOWTO/ubuntu704.html#AEN794&lt;/a&gt;&lt;br /&gt;&lt;span&gt;&lt;span style="color:#000000;"&gt;&lt;pre class="screen"&gt;#!/bin/sh&lt;br /&gt;#&lt;br /&gt;# Script to start DB2 instances on bootup.&lt;br /&gt;#&lt;br /&gt;set -e&lt;br /&gt;&lt;br /&gt;. /lib/lsb/init-functions&lt;br /&gt;&lt;br /&gt;case "$1" in&lt;br /&gt;start)&lt;br /&gt;       /opt/ibm/db2exc/V9.1/instance/db2istrt&lt;br /&gt;       ;;&lt;br /&gt;stop|restart|reload)&lt;br /&gt;       ;;&lt;br /&gt;esac&lt;br /&gt;&lt;br /&gt;exit 0&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Then I installed bum package, and ran System-Administration-Bootup Manager to activate the db2 script at startup.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-7792186898597519360?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/7792186898597519360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=7792186898597519360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/7792186898597519360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/7792186898597519360'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2008/05/ubuntu-starting-db2-at-bootup.html' title='Ubuntu: starting db2 at bootup'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-4753512059336019640</id><published>2008-05-14T15:09:00.000+02:00</published><updated>2008-05-14T15:21:58.991+02:00</updated><title type='text'>Websphere 6.1 administrative security + self signed certificates</title><content type='html'>I installed websphere 6.1 and chose the default "enable administrative security". Once I finished my installation, I noticed I could not login under https://localhost:9043/admin/console. I got a message about a certificate not being trusted.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;First I discovered, that I had renamed my machine, but that /etc/hosts still had old entries for 127.0.0.1. Because of that, my node and cell names were still deduced from the old machine name.&lt;br /&gt;I fixed that and reinstalled.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;At login I got the failure: invalid security certificate.&lt;br /&gt;My browser did not trust the self signed certificate that the websphere server uses.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;I did following to fix that:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;In &lt;was-install&gt;/bin, started keyman: sudo ./ikeyman.sh&lt;/was-install&gt;&lt;/li&gt;&lt;li&gt;Opened jks file under profiles/AppSrv01/etc/DummyClientTrustFile.jks, password is  WebAS.&lt;/li&gt;&lt;li&gt;there I looked up the default_signer, and selected the extract option. I exported cert.arm as base64 ascii.&lt;/li&gt;&lt;li&gt;under firefox, preferences, advanced, view certificates I imported the CA certificate&lt;/li&gt;&lt;li&gt;I restarted firefox.&lt;/li&gt;&lt;/ul&gt;The url with localhost still did not work, but when I replaced localhost by the machine name, I got access to my adminconsole.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;Small remark: the self signed certificate websphere generated is valid for a year. The certificate itself probably too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-4753512059336019640?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/4753512059336019640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=4753512059336019640' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/4753512059336019640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/4753512059336019640'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2008/05/websphere-61-administrative-security.html' title='Websphere 6.1 administrative security + self signed certificates'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-7615115920969195633</id><published>2008-05-09T10:26:00.000+02:00</published><updated>2008-05-09T10:38:10.982+02:00</updated><title type='text'>Installing websphere 6.1 under hardy-heron</title><content type='html'>&lt;p&gt;&lt;br /&gt;I had problems to get websphere installed on Ubuntu 8.04.&lt;br /&gt;The install did work, but the configuration of profiles failed.&lt;br /&gt;In the end it turned out, that /bin/sh points to /bin/dash instead of /bin/bash.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;I executed following commands:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;sudo unlink /bin/sh&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;sudo ln -s /bin/bash /bin/sh&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;During installation I set an admin console username/password.&lt;br /&gt;When I start the server, and go to the console page&lt;br /&gt;&lt;ul&gt;&lt;li&gt;http://localhost:9060/ibm/console/&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;I get redirected to&lt;br /&gt;&lt;ul&gt;&lt;li&gt;https://localhost:9043/ibm/console/&lt;/li&gt;&lt;/ul&gt;and get an error that my self signed certificate is not trusted.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-7615115920969195633?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/7615115920969195633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=7615115920969195633' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/7615115920969195633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/7615115920969195633'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2008/05/installing-websphere-61-under-hardy.html' title='Installing websphere 6.1 under hardy-heron'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-6320900142289896709</id><published>2008-01-02T11:57:00.000+01:00</published><updated>2008-01-02T12:12:33.340+01:00</updated><title type='text'>Dual screen for Dell D830</title><content type='html'>My Dell D830 uses an Intel Graphic Card GM965. To use dualscreen, you must use the package xrandr.&lt;br /&gt;As a normal user you can see your current configuration with:&lt;br /&gt;xrandr -q&lt;br /&gt;When you connect a second monitor (docking station), then by default you will get both screens displaying the same. Example:&lt;br /&gt;jan@southfork:~$ xrandr -q&lt;br /&gt;&lt;blockquote&gt;Screen 0: minimum 320 x 200, current 3600 x 1200, maximum 3600 x 1200&lt;/br&gt;&lt;br /&gt;VGA disconnected (normal left inverted right)&lt;/br&gt;&lt;br /&gt;LVDS connected 1920x1200+0+0 (normal left inverted right) 331mm x 207mm&lt;/br&gt;&lt;br /&gt;1920x1200      60.0*+&lt;/br&gt;&lt;br /&gt;1280x800       60.0&lt;br /&gt;&lt;br /&gt;1280x768       60.0&lt;br /&gt;&lt;br /&gt;1024x768       60.0&lt;br /&gt;&lt;br /&gt;800x600        60.3&lt;br /&gt;&lt;br /&gt;640x480        59.9&lt;br /&gt;&lt;br /&gt;TMDS-1 connected 1680x1050+0+0 (normal left inverted right) 434mm x 270mm&lt;br /&gt;&lt;br /&gt;1680x1050      59.9*+&lt;br /&gt;&lt;br /&gt;1280x1024      75.0     59.9&lt;br /&gt;&lt;br /&gt;1152x864       74.8&lt;br /&gt;&lt;br /&gt;1024x768       75.1     60.0&lt;br /&gt;&lt;br /&gt;800x600        75.0     60.3&lt;br /&gt;&lt;br /&gt;640x480        75.0     60.0&lt;br /&gt;&lt;br /&gt;720x400        70.1&lt;br /&gt;&lt;br /&gt;TV disconnected (normal left inverted right)&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;In my example above you will see that both screens start their output at +0+0 (0,0). I would like to put one screen next to the other. That is, I will get a screen that is 1920 + 1680 = 3600 wide. In order to make it fit, I must make sure that the it will fit in the maximum screen size. By default the maximum screen size is set equal to the largest mode: 1920x1920. I increased it to 3600x1200. You do this by adding a xrandr specific parameter to your xorg.conf file:&lt;br /&gt;&lt;blockquote&gt;Section "Screen"&lt;br /&gt;&lt;br /&gt;   Identifier      "Default Screen"&lt;br /&gt;&lt;br /&gt;         Device          "Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller"&lt;br /&gt;&lt;br /&gt;         Monitor         "Generic Monitor"&lt;br /&gt;&lt;br /&gt;         DefaultDepth    24&lt;br /&gt;&lt;br /&gt;         SubSection "Display"&lt;br /&gt;&lt;br /&gt;       #               Modes           "1920x1200"&lt;br /&gt;&lt;br /&gt;                     Virtual 3600 1200&lt;br /&gt;&lt;br /&gt;   EndSubSection&lt;br /&gt;&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;I needed to comment out the Modes line, else my X would not start any more.&lt;br /&gt;Now you can restart X (logout / login) and change the display to two screens with:&lt;br /&gt;&lt;blockquote&gt;xrandr --output TMDS-1 --mode 1680x1050 --left-of LVDS&lt;/blockquote&gt;Now I will get my laptop screen to the right of my DVI screen.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can also apply these settings to your xorg.conf file, but that effort I will save for a next time :-).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-6320900142289896709?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/6320900142289896709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=6320900142289896709' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/6320900142289896709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/6320900142289896709'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2008/01/dual-screen-for-dell-d830.html' title='Dual screen for Dell D830'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-6436622828122657761</id><published>2007-12-04T09:48:00.000+01:00</published><updated>2007-12-04T09:53:14.964+01:00</updated><title type='text'>VPNC</title><content type='html'>&lt;p style="margin-bottom: 0in"&gt;On Ubuntu 7.10, install vpnc package.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in"&gt;/etc/vpnc/netscreen.conf&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;span style="font-family:Courier 10 Pitch;"&gt;&lt;span style="font-size:85%;"&gt;IPSec gateway&lt;br /&gt;xxx.xxx.xxx.xxx&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;span style="font-family:Courier 10 Pitch;"&gt;&lt;span style="font-size:85%;"&gt;IPSec ID &amp;quot;XXXXXXXXXXXXX&amp;quot; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;span style="font-family:Courier 10 Pitch;"&gt;&lt;span style="font-size:85%;"&gt;IPSec secret xxxxxxxxxxxx &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;span style="font-family:Courier 10 Pitch;"&gt;&lt;span style="font-size:85%;"&gt;Vendor netscreen &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;span style="font-family:Courier 10 Pitch;"&gt;&lt;span style="font-size:85%;"&gt;Perfect Forward Secrecy&lt;br /&gt;dh2 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;span style="font-family:Courier 10 Pitch;"&gt;&lt;span style="font-size:85%;"&gt;Xauth username xxxxxxxx&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;span style="font-family:Courier 10 Pitch;"&gt;&lt;span style="font-size:85%;"&gt;Xauth password xxxxxxxx &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;span style="font-family:Courier 10 Pitch;"&gt;&lt;span style="font-size:85%;"&gt;#Debug 3 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in"&gt;In /etc/vpnc/vpnc-script&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in"&gt;Put following before set -x&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;span style="font-family:Courier 10 Pitch;"&gt;&lt;span style="font-size:85%;"&gt;INTERNAL_IP4_DNS= &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;span style="font-family:Courier 10 Pitch;"&gt;&lt;span style="font-size:85%;"&gt;CISCO_SPLIT_INC=1 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;span style="font-family:Courier 10 Pitch;"&gt;&lt;span style="font-size:85%;"&gt;CISCO_SPLIT_INC_0_ADDR=xxx.xxx.xxx.0 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;span style="font-family:Courier 10 Pitch;"&gt;&lt;span style="font-size:85%;"&gt;CISCO_SPLIT_INC_0_MASK=255.255.252.0 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;span style="font-family:Courier 10 Pitch;"&gt;&lt;span style="font-size:85%;"&gt;CISCO_SPLIT_INC_0_MASKLEN=22 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;span style="font-family:Courier 10 Pitch;"&gt;&lt;span style="font-size:85%;"&gt;CISCO_SPLIT_INC_0_PROTOCOL=0 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;span style="font-family:Courier 10 Pitch;"&gt;&lt;span style="font-size:85%;"&gt;CISCO_SPLIT_INC_0_SPORT=0 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;span style="font-family:Courier 10 Pitch;"&gt;&lt;span style="font-size:85%;"&gt;CISCO_SPLIT_INC_0_DPORT=0 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in"&gt;Create a version for&lt;br /&gt;/etc/resolv.conf.thuis, /etc/resolv.conf.sungard.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in"&gt;Create aliases:&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;span style="font-family:Courier 10 Pitch;"&gt;&lt;span style="font-size:85%;"&gt;alias&lt;br /&gt;sungard-vpn-down='sudo /usr/sbin/vpnc-disconnect; sudo cp&lt;br /&gt;/etc/resolv.conf.thuis /etc/resolv.conf' &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto"&gt;&lt;br /&gt;&lt;span style="font-family:Courier 10 Pitch;"&gt;&lt;span style="font-size:85%;"&gt;alias sungard-vpn-up='sudo&lt;br /&gt;/usr/sbin/vpnc /etc/vpnc/netscreen.conf; sudo cp&lt;br /&gt;/etc/resolv.conf.sungard /etc/resolv.conf' &lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-6436622828122657761?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/6436622828122657761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=6436622828122657761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/6436622828122657761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/6436622828122657761'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2007/12/vpnc.html' title='VPNC'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-5564312994272706057</id><published>2007-11-24T15:56:00.000+01:00</published><updated>2007-11-24T22:47:49.195+01:00</updated><title type='text'>jboss with embedded derby in network mode</title><content type='html'>&lt;style type="text/css"&gt;&lt;br /&gt;&lt;!--&lt;br /&gt;@page { size: 8.5in 11in; margin: 0.79in }&lt;br /&gt;P { margin-bottom: 0.08in }&lt;br /&gt;--&gt;&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;Embedding derby into Jboss&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;In this post I want to show how you can&lt;br /&gt;start jboss with an embedded derby network database.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;The aim is, that when jboss starts: &lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;it will start derby&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;open port 1527 for derby to receive&lt;br /&gt;jdbc calls&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;create a new database if there is&lt;br /&gt;none existing&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;create a datasource inside jboss&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;You can now use any derby jdbc client&lt;br /&gt;to communicate with the database, and use derby datasource inside&lt;br /&gt;jboss as well.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;I had to implement three components:&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;an mbean to start the derby network&lt;br /&gt;server&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;a datasource to connect to derby&lt;br /&gt;database with option create=true&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;an mbean that will get an initial&lt;br /&gt;connection so that database gets created&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;Jboss mbean&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;In Jboss you can deploy mbeans, which&lt;br /&gt;automatically get started on deployment. The implementation of an&lt;br /&gt;Mbean is very simple: you must create an interface that ends with&lt;br /&gt;Mbean and has methods start() and stop(), and implement a class for&lt;br /&gt;this interface that shares the same name without the Mbean part.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;Then you create an xml with a reference&lt;br /&gt;to the class implementation, and a name settings. For example:&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;lt;?xml version="1.0"&lt;br /&gt;encoding="UTF-8"?&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;lt;server&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;lt;mbean&lt;br /&gt;code="jankester.com.derby.jboss.DerbyDatabase"&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; name="jboss.jdbc:service=DerbyDatabase"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;lt;/mbean&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font&lt;br /&gt;face="Monospace"&gt;&amp;lt;/server&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;The deployment of an Mbean can be done&lt;br /&gt;in several ways: you can create an xml file, drop it in the deploy&lt;br /&gt;directory and make sure that the java classes are available in the&lt;br /&gt;lib directory, or you can create a .sar file. The latter has the&lt;br /&gt;advantage that you can do hot deployment, so I prefer it.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;You must: create a jar file or&lt;br /&gt;directory that ends in .sar (so that jboss recognizes it type on&lt;br /&gt;deployment), and add a jar to this .sar file with the necessary&lt;br /&gt;classes.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;The network server Mbean&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;The interface for this mbean looks&lt;br /&gt;like:&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;package&lt;br /&gt;com.jankester.derby.jboss;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;public interface&lt;br /&gt;DerbyDatabaseMBean&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public void start()&lt;br /&gt;throws Exception;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public void stop()&lt;br /&gt;throws Exception;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;The class implementing this interface&lt;br /&gt;has following:&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;package&lt;br /&gt;com.jankester.derby.jboss;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;import&lt;br /&gt;java.sql.DriverManager;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;import&lt;br /&gt;java.sql.SQLException;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;public class&lt;br /&gt;DerbyDatabase implements DerbyDatabaseMBean&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public static final&lt;br /&gt;String START_NETWORK_SERVER = "derby.drda.startNetworkServer";&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public static final&lt;br /&gt;String HOST = "localhost";&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public static final&lt;br /&gt;String PORT_NUMBER = "1527";&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public static final&lt;br /&gt;String DRIVER_CLASSNAME = "org.apache.derby.jdbc.EmbeddedDriver";&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public static final&lt;br /&gt;String SHUTDOWN_URL = "jdbc:derby:;shutdown=true";&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public static final&lt;br /&gt;String SHUTDOWN_MESSAGE = "Derby system shutdown.";&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public static final&lt;br /&gt;String MSG_INIT_SUCCESS = "Derby JDBC driver loaded&lt;br /&gt;successfully";&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public static final&lt;br /&gt;String MSG_INIT_CLASS_NOT_FOUND = "The Derby JDBC driver ("&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;+&lt;br /&gt;DRIVER_CLASSNAME + ") could not be found. Make sure the&lt;br /&gt;appropriate JAR"&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;+ " files&lt;br /&gt;are available.";&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public static final&lt;br /&gt;String MSG_TERM_SUCCESS = "Derby shutdown was successful.";&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public static final&lt;br /&gt;String MSG_TERM_FAILURE = "Unexpected Exception was caught from&lt;br /&gt;the Derby shutdown.";&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public void start()&lt;br /&gt;throws Exception&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; setSystemProperties();&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; initializeCloudscape();&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public void stop()&lt;br /&gt;throws Exception&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; shutdownCloudscape();&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;private void&lt;br /&gt;setSystemProperties()&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String dataDir =&lt;br /&gt;System.getProperty("jboss.server.data.dir");&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("jboss.server.data.dir="&lt;br /&gt;+ dataDir);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.setProperty(START_NETWORK_SERVER,&lt;br /&gt;"true");&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.setProperty("derby.system.home",&lt;br /&gt;dataDir);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;private void&lt;br /&gt;initializeCloudscape()&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Class.forName(DRIVER_CLASSNAME);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;System.out.println(MSG_INIT_SUCCESS);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; catch&lt;br /&gt;(ClassNotFoundException varException)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;System.out.println(MSG_INIT_CLASS_NOT_FOUND);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; varException.printStackTrace();&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;private void&lt;br /&gt;shutdownCloudscape()&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;DriverManager.getConnection(SHUTDOWN_URL);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch&lt;br /&gt;(SQLException varException)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("message="&lt;br /&gt;+ &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; varException.getMessage());&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("sqlstate="&lt;br /&gt;+ &amp;nbsp;&amp;nbsp;&amp;nbsp; varException.getSQLState());&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if&lt;br /&gt;(varException.getMessage().equals(SHUTDOWN_MESSAGE))&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;System.out.println(MSG_TERM_SUCCESS);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;System.out.println(MSG_TERM_FAILURE);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;varException.printStackTrace();&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;In initializeCloudscape() it loads the&lt;br /&gt;driver class. Before, in system properties it sets system properties&lt;br /&gt;that will be picked up by the driver class:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;network mode is true&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;the root directory for derby&lt;br /&gt;database storage is the jboss server data dir.&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;The xml that belong to this mbean is:&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;lt;?xml version="1.0"&lt;br /&gt;encoding="UTF-8"?&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;lt;server&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;lt;mbean&lt;br /&gt;code="jankester.com.derby.jboss.DerbyDatabase"&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;name="jboss.jdbc:service=DerbyDatabase"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;lt;/mbean&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font&lt;br /&gt;face="Monospace"&gt;&amp;lt;/server&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;The xml file must be renamed into&lt;br /&gt;META-INF/jboss-service.xml, the classes added to a jar, and the jar&lt;br /&gt;and META-INF directory together packed into a .sar file. You can now&lt;br /&gt;deploy the file directly in the deploy dir of your server.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;The datasource&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;To create a derby datasource, you can&lt;br /&gt;use the samples that comes with jboss.&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;lt;?xml version="1.0"&lt;br /&gt;encoding="UTF-8"?&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;lt;datasources&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;lt;local-tx-datasource&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;lt;jndi-name&amp;gt;AuditTrail.DataSource&amp;lt;/jndi-name&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;span style="font-family: Courier,monospace;"&gt;&lt;/span&gt;&lt;font&lt;br /&gt;face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;lt;connection-url&amp;gt;jdbc:derby:${jboss.server.data.dir}${/}carnot;create=true&amp;lt;/connection-url&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;lt;driver-class&amp;gt;org.apache.derby.jdbc.EmbeddedDriver&amp;lt;/driver-class&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;user-name&amp;gt;carnot&amp;lt;/user-name&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;password&amp;gt;carnot&amp;lt;/password&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;min-pool-size&amp;gt;5&amp;lt;/min-pool-size&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;max-pool-size&amp;gt;20&amp;lt;/max-pool-size&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;lt;idle-timeout-minutes&amp;gt;5&amp;lt;/idle-timeout-minutes&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;track-statements/&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;lt;depends&amp;gt;jboss.jdbc:service=DerbyDatabase&amp;lt;/depends&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;lt;/local-tx-datasource&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;lt;/datasources&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;Important to note here, is, that the&lt;br /&gt;connection url creates a new database if none is existing and uses&lt;br /&gt;the jboss data directory as its basis for database data.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;The datasource has a dependency on the&lt;br /&gt;derbydatabase mbean that we just created. It will not load before&lt;br /&gt;that mbean has been loaded.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;The poolfiller MBean&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;This mbean is necessary as we must make&lt;br /&gt;sure that the database gets created straight away on loading. If we&lt;br /&gt;leave this out, we can have the scenario that an external jdbc client&lt;br /&gt;calls derby, but that the database has not been created yet. The&lt;br /&gt;database only gets created the first time the datasource connection&lt;br /&gt;gets created. So, this mbean will create a connection and close it&lt;br /&gt;again.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;Here we an interface PoolFillerMbean:&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;package&lt;br /&gt;jankester.com.derby.jboss;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;import&lt;br /&gt;javax.management.ObjectName;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;public interface&lt;br /&gt;PoolFillerMBean&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public void start()&lt;br /&gt;throws Exception;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public void stop()&lt;br /&gt;throws Exception;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public void&lt;br /&gt;setConnectionManager(ObjectName cm);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;and a class PoolFiller:&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;package&lt;br /&gt;jankester.com.derby.jboss;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;import&lt;br /&gt;java.sql.Connection;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;import&lt;br /&gt;javax.management.ObjectName;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;import&lt;br /&gt;javax.naming.InitialContext;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;import&lt;br /&gt;javax.sql.DataSource;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;import&lt;br /&gt;org.jboss.system.ServiceMBeanSupport;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;public class PoolFiller&lt;br /&gt;extends ServiceMBeanSupport implements PoolFillerMBean&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public void start()&lt;br /&gt;throws Exception&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Starting&lt;br /&gt;PoolFiller");&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; startService();&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public void stop()&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Stopping&lt;br /&gt;PoolFiller");&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;private ObjectName&lt;br /&gt;cm;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public void&lt;br /&gt;setConnectionManager(ObjectName cm)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.cm = cm;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;protected void&lt;br /&gt;startService() throws Exception&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String jndiName =&lt;br /&gt;(String) server.getAttribute(cm, "BindName");&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DataSource ds =&lt;br /&gt;(DataSource) new InitialContext().lookup(jndiName);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Found&lt;br /&gt;datasource for jndiname=" + jndiName);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Connection c =&lt;br /&gt;ds.getConnection();&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c.close();&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;Here we had to add an extra method&lt;br /&gt;setConnectionManager to load an existing mbean object. We have to&lt;br /&gt;implement this method in class and interface, so that Jboss can find&lt;br /&gt;it.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;Further we extended ServiceMBeanSupport&lt;br /&gt;so that we have access to the Mbean Server. We&lt;br /&gt;need it to find our Mbean that holds the jndi name of our datasource.&lt;br /&gt;With the jndi name, we can find the datasource, and retrieve a&lt;br /&gt;connection. Now the database gets created.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;The method BindName is an attribute of&lt;br /&gt;the Mbean that gets passed into the setConnection method. If you use&lt;br /&gt;a different version of Jboss (tested with 4.0.5), then look into&lt;br /&gt;&lt;a href="http://localhost:8080/jmx-console"&gt;http://localhost:8080/jmx-console&lt;/a&gt;,&lt;br /&gt;and find an Mbean that has an attribute that holds the jndi&lt;br /&gt;reference.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;The jboss-service.xml looks like:&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;lt;?xml version="1.0"&lt;br /&gt;encoding="UTF-8"?&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;lt;server&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;lt;mbean&lt;br /&gt;code="ag.carnot.derby.jboss.PoolFiller"&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;name="jboss.jdbc:service=PoolFiller"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;lt;depends&lt;br /&gt;optional-attribute-name="ConnectionManager"&amp;gt;jboss.jca:name=AuditTrail.DataSource,service=DataSourceBinding&amp;lt;/depends&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;lt;!-- --&amp;gt; &lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;lt;/mbean&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&lt;br /&gt;style="margin-left: 0.5in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;font face="Courier, monospace"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font&lt;br /&gt;face="Monospace"&gt;&amp;lt;/server&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;Deployment on jboss&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;The easiest is to make a copy of the&lt;br /&gt;server/default directory, and create a server/derby directory.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;Further you must put the derby.jar and&lt;br /&gt;derbynet.jar files in server/derby/lib.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;Copy the two mbeans and datasource.xml&lt;br /&gt;of above in the deploy directory.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;Checks&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;When you have started derby, you should&lt;br /&gt;see that port 1527 got opened, and that the directory carnot has been&lt;br /&gt;created under server/derby/data.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;jdbc client&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;You can use the db2 driver db2jcc.jar,&lt;br /&gt;db2jcc_license_c.jar.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;The url looks like:&lt;br /&gt;jdbc:derby:net://localhost/carnot&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-5564312994272706057?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/5564312994272706057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=5564312994272706057' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/5564312994272706057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/5564312994272706057'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2007/11/running-jboss-embedded-derby-running.html' title='jboss with embedded derby in network mode'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-1210096952682154968</id><published>2007-11-18T17:21:00.000+01:00</published><updated>2007-11-24T20:52:48.743+01:00</updated><title type='text'></title><content type='html'>Installing ubuntu 7.10 behind a proxy&lt;br /&gt;&lt;p&gt;I installed my laptop Dell D830 behind a proxy with a password. After putting in the install CD, I get a tryout system that shows me how ubuntu will look like.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;In this system I already set the proxy, else I will get problems during installation that it cannot find the deb repositories.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;I made proxy settings under System - Preference - Network Proxy, and, under Synaptic - Preferences - Network. I think the latter is most important. This will make the installation work.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;After the installation I needed to set these proxy settings again.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-1210096952682154968?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/1210096952682154968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=1210096952682154968' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/1210096952682154968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/1210096952682154968'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2007/11/installing-ubuntu-7.html' title=''/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-827057432720496379</id><published>2007-10-25T21:24:00.000+02:00</published><updated>2007-10-25T21:28:18.217+02:00</updated><title type='text'></title><content type='html'>Updated Blogger&lt;br /&gt;&lt;p&gt;Finally got a bit further with blogger. It seems that usernames had to be updated, before blog clients would work.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Now I am curious whether xmls will work. That was my problem last time I used it: I could not paste in build.xml files.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-827057432720496379?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/827057432720496379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=827057432720496379' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/827057432720496379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/827057432720496379'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2007/10/updated-blogger-finally-got-bit-further.html' title=''/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-116472701819286218</id><published>2006-11-28T16:12:00.000+01:00</published><updated>2006-11-29T16:21:32.060+01:00</updated><title type='text'>Deploying weblogic 9.2 with openldap</title><content type='html'>&lt;H1 CLASS="western"&gt;Install weblogic 9.2&lt;/H1&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Installed under&lt;br /&gt;/usr/local/bea&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H2 CLASS="western"&gt;Admin console:&lt;/H2&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;http://localhost:7001/console&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H2 CLASS="western"&gt;Start / stop&lt;/H2&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;By default weblogic&lt;br /&gt;comes with some preinstalled examples:&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;/usr/local/bea/weblogic92/samples/domains/wl_server&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;To start/stop a&lt;br /&gt;weblogic domain:&lt;/P&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt; &lt;LI&gt;&lt;P STYLE="margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;bin/startWebLogic.sh&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P STYLE="margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;bin/stopWebLogic.sh&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;/UL&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;You can also stop&lt;br /&gt;weblogic by killing the pid.&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Also in the admin&lt;br /&gt;console, environment, servers.&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H3 CLASS="western"&gt;Quick start&lt;/H3&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;/usr/local/bea/weblogic92/common/bin/quickstart.sh&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H1 CLASS="western"&gt;Domains&lt;/H1&gt;&lt;br /&gt;&lt;H2 CLASS="western"&gt;Create domain&lt;/H2&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Create a new domain&lt;br /&gt;with the configuration wizard&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;/usr/local/bea/weblogic92/common/bin/config.sh&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;create a new&lt;br /&gt; domain&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;generate&lt;br /&gt; automatically for weblogic server&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;username/password&lt;br /&gt; weblogic/weblogic&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;development mode,&lt;br /&gt; sun sdk 1.5&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;additional&lt;br /&gt; configuration: yes&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Adminserver&lt;br /&gt; defaults: 7001&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Add managed&lt;br /&gt; server: name ms1, 7001&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;No clusters&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;No specific&lt;br /&gt; machines&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;domain name&lt;br /&gt; domain_oraxe, location /usr/local/bea/user_projects/domains&lt;/P&gt;&lt;br /&gt;&lt;/UL&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H2 CLASS="western"&gt;Delete a domain&lt;/H2&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Delete the directory&lt;br /&gt;/usr/local/bea/user_projects/domains/&amp;lt;domain&amp;gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H1 CLASS="western"&gt;Configure&lt;/H1&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Configure wl92 for&lt;br /&gt;xxx&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Start administration&lt;br /&gt;server for domain_oraxe&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;/usr/local/bea/user_projects/domains/domain_oraxe/bin/startWebLogic.sh&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H2 CLASS="western"&gt;Jdbc&lt;/H2&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Jdbc - datasources&lt;br /&gt; - new&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;name AuditTrail&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;jndi&lt;br /&gt; AuditTrail.DataSource&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;type Oracle&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;driver Default&lt;br /&gt; weblogic Oracle XA driver&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;connection pool&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;database xe&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;server localhost&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;username/password&lt;br /&gt; xxx/xxx&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;test configuration&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;assign to&lt;br /&gt; administration server&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;open properties&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;connection pool&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;maximum capacity&lt;br /&gt; 50&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Save, activate&lt;br /&gt; changes&lt;/P&gt;&lt;br /&gt;&lt;/UL&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Another datasource for&lt;br /&gt;jms messages storage.&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Make sure you do not&lt;br /&gt;use a xa-enabled jdbc driver.&lt;/P&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Jdbc - datasources&lt;br /&gt; - new&lt;/P&gt;&lt;br /&gt;&lt;/UL&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;oracleJmsStorageDS&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;oracleJmsStorageDS&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Oracle bea type 4&lt;br /&gt; (not xa)&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Do not support&lt;br /&gt; global transactions&lt;/P&gt;&lt;br /&gt;&lt;/UL&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Assign to&lt;br /&gt; administration server&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;open properties&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;connection pool&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;maximum capacity&lt;br /&gt; 25&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Save, activate&lt;br /&gt; changes.&lt;/P&gt;&lt;br /&gt;&lt;/UL&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H1 CLASS="western"&gt;JMS Server&lt;/H1&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Services, Messaging,&lt;br /&gt;jms server&lt;/P&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Create new jms&lt;br /&gt; server&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Jms-server-0&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;New jdbc store&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;JDBCStore-Jms&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;AdminServer&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;oracleJmsStorageDS&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;prefix name jms&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Persistent store -&lt;br /&gt; JDBCStore-Jms&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Target AdminServer&lt;/P&gt;&lt;br /&gt;&lt;/UL&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H1 CLASS="western"&gt;Jms Modules&lt;/H1&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Services,&lt;br /&gt; Messaging, jms modules&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;New system module:&lt;br /&gt; JmsModulexxx&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;default descriptor&lt;br /&gt; and location&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Target adminserver&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Add resources: no&lt;br /&gt; (doing later).&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Save, activate.&lt;/P&gt;&lt;br /&gt;&lt;/UL&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H2 CLASS="western"&gt;Subdeployment&lt;/H2&gt;&lt;br /&gt;&lt;P CLASS="western"&gt;Add a subdeployment to the created jms module.&lt;br /&gt;This will link the jms module to the jms server.&lt;/P&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Edit&lt;br /&gt; JmsModulexxx&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Tab&lt;br /&gt; subdeployments: New&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Name JmsServer0&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Target&lt;br /&gt; Jms-Server-0&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Save, activate&lt;/P&gt;&lt;br /&gt;&lt;/UL&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H2 CLASS="western"&gt;Queues and connectionfactory&lt;/H2&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H3 CLASS="western"&gt;Connection factory&lt;/H3&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;xxxConnectionFactory,&lt;br /&gt; jndi: xxxConnectionFactory&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Advanced targets:&lt;br /&gt; subdpeloyment JmsServer0&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Edit&lt;br /&gt; xxxConnectionFactory: Transactions: xa enabled&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Save, activate&lt;/P&gt;&lt;br /&gt;&lt;/UL&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H3 CLASS="western"&gt;Queues&lt;/H3&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;xxxApplicationQueue&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;xxxDaemonQueue&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;xxxSystemQueue&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;TestJMSQueue&lt;/P&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;All with same name&lt;br /&gt; and jndi.&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;All with&lt;br /&gt; subdeployment JmsServer0.&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;After creating&lt;br /&gt; each queue, open its properties again and go to the delivery failure&lt;br /&gt; tab; set redelivery delay override to 1000 and redelivery limit to&lt;br /&gt; 10.&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Save, activate&lt;/P&gt;&lt;br /&gt;&lt;/UL&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H1 CLASS="western"&gt;Save configuration&lt;/H1&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Create template&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;/usr/local/bea/weblogic92/common/bin/config_builder.sh&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Saves template under&lt;br /&gt;/usr/local/bea/user_templates&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H1 CLASS="western"&gt;Client setup&lt;/H1&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;java.home must be&lt;br /&gt; a jdk 1.5&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Add&lt;br /&gt; server/lib/weblogic.jar to the client's classpath.&lt;/P&gt;&lt;br /&gt;&lt;/UL&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;It seems that wl92 does&lt;br /&gt;not recognise a client's jndi.properties, so add jndi properties&lt;br /&gt;hard-coded in a hash-table:&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;      &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;Hashtable&lt;br /&gt;ht = new Hashtable();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;      &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;ht.put(Context.INITIAL_CONTEXT_FACTORY,&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;             &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;quot;weblogic.jndi.WLInitialContextFactory&amp;quot;);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;      &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;ht.put(Context.PROVIDER_URL,&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;             &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;quot;t3://localhost:7001&amp;quot;);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt; Context&lt;br /&gt;ctx = new InitialContext(ht);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H1 CLASS="western"&gt;Setting up a different authentication provider&lt;/H1&gt;&lt;br /&gt;&lt;H2 CLASS="western"&gt;Ldap&lt;/H2&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;In security realm,&lt;br /&gt;myrealm, providers tab, authentication&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Add a new openldap&lt;br /&gt;provider.&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Edit the properties&lt;/P&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Name&lt;br /&gt; openldap-provider&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Control flag:&lt;br /&gt; optional&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Group base dn:&lt;br /&gt; ou=groups, dc=de, dc=xxx, dc=ag, dc=test&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;User name&lt;br /&gt; attribute: uid&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Static group&lt;br /&gt; object class: groupOfnames&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Port: 389&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;User base dn:&lt;br /&gt; ou=people, dc=de, dc=xxx, dc=ag, dc=test&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;User object class:&lt;br /&gt; person&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Static group name&lt;br /&gt; attribute: cn&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Principal:&lt;br /&gt; cn=Manager, dc=de, dc=xxx, dc=ag, dc=test&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Host: localhost&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Credential:&lt;br /&gt; carldap&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Static Group DNs&lt;br /&gt; from Member DN Filter: (&amp;amp;(member=%M)(objectclass=groupofnames))&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Static Member DN&lt;br /&gt; Attribute: member&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;User from name&lt;br /&gt; filter: (&amp;amp;(uid=%u)(objectclass=person))&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Group from name&lt;br /&gt; filter: (&amp;amp;(cn=%g)(objectclass=groupofnames))&lt;/P&gt;&lt;br /&gt;&lt;/UL&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;This is based on an&lt;br /&gt;openldap with rootdn cn=Manager, dc=de, dc=xxx, dc=ag, dc=test and&lt;br /&gt;password carldap.&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;To get this working,&lt;br /&gt;load a ldif into ldap that contains following:&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;dn:&lt;br /&gt;dc=de,dc=xxx,dc=ag,dc=test&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;objectclass:&lt;br /&gt;top&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;objectclass:&lt;br /&gt;dcObject&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;objectclass:&lt;br /&gt;organization&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;dc:&lt;br /&gt;de&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;o:&lt;br /&gt;xxx&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;dn:&lt;br /&gt;ou=People,dc=de,dc=xxx,dc=ag,dc=test&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;objectclass:&lt;br /&gt;top&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;objectclass:&lt;br /&gt;organizationalUnit&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;ou:&lt;br /&gt;People&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;dn:&lt;br /&gt;uid=weblogic,ou=People,dc=de,dc=xxx,dc=ag,dc=test&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;objectClass:&lt;br /&gt;top&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;objectclass:&lt;br /&gt;uidObject&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;objectclass:&lt;br /&gt;person&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;sn:&lt;br /&gt;Weblogic&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;cn:&lt;br /&gt;Weblogic System Account&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;uid:&lt;br /&gt;weblogic&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;userpassword:&lt;br /&gt;weblogic&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;dn:&lt;br /&gt;ou=Groups,dc=de,dc=xxx,dc=ag,dc=test&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;objectclass:&lt;br /&gt;top&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;objectclass:&lt;br /&gt;organizationalUnit&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;ou:&lt;br /&gt;Groups&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;dn:&lt;br /&gt;cn=Administrators,ou=Groups,dc=de,dc=xxx,dc=ag,dc=test&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;objectClass:&lt;br /&gt;groupOfNames&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;objectClass:&lt;br /&gt;top&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;cn:&lt;br /&gt;Administrators&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;description:&lt;br /&gt;Administrators group for weblogic&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;member:&lt;br /&gt;uid=weblogic,ou=People,dc=de,dc=xxx,dc=ag,dc=test&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;That is, make sure you&lt;br /&gt;have at least the admin weblogic user defined (the user you defined&lt;br /&gt;when setting up the domain), and that this admin user belongs to a&lt;br /&gt;group called Administrators.&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;When weblogic server&lt;br /&gt;boots, it will read the file &amp;lt;domain&amp;gt;/servers/AdminServer/security/&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;boot.properties.If you&lt;br /&gt;want to use a different user, make sure you adapt this file too.&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;To load the above file&lt;br /&gt;(myldap.ldif)&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;/etc/init.d/ldap&lt;br /&gt;stop &amp;amp;&amp;amp; rm /var/lib/ldap/* &amp;amp;&amp;amp; /etc/init.d/ldap start&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;ldapadd&lt;br /&gt;-xv -D 'cn=Manager,dc=de,dc=xxx,dc=ag,dc=test' -w carldap -f&lt;br /&gt;myldap.ldif&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H2 CLASS="western"&gt;Test optional ldap authentication provider&lt;/H2&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;We put the control flag&lt;br /&gt;on OPTIONAL first. If configuration is not right, we should still be&lt;br /&gt;able to login into the admin console.&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;The easiest is to add&lt;br /&gt;an extra group to the ldif file, and make weblogic member of it:&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;dn:&lt;br /&gt;cn=TestGroup,ou=Groups,dc=de,dc=xxx,dc=ag,dc=test&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;objectClass:&lt;br /&gt;groupOfNames&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;objectClass:&lt;br /&gt;top&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;cn:&lt;br /&gt;TestGroup&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;description:&lt;br /&gt;TestGroup for weblogic&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;member:&lt;br /&gt;uid=weblogic,ou=People,dc=de,dc=xxx,dc=ag,dc=test&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;In the security realm&lt;br /&gt;providers now add a audit provider that audits all security related&lt;br /&gt;information. It will create a logfile under server/AdminServer/logs.&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Now reboot the server.&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;In the audit log file&lt;br /&gt;you can find the principals that get assigned to a successful login.&lt;br /&gt;If all is well, you should also see a principal TestGroup now ( the&lt;br /&gt;Administrators principal was already created by the default&lt;br /&gt;authentication).&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;If you do not see then&lt;br /&gt;you will need to debug the ldap connection. If all is well, you can&lt;br /&gt;set the ldap authentication provider to required and the default to&lt;br /&gt;optional.&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H2 CLASS="western"&gt;Debug ldap problems&lt;/H2&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Under environment,&lt;br /&gt;servers, adminserver you can set debugs.&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Set debugs for &lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;weblogic.security.adjudicator&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;weblogic.security.atn&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;weblogic.security.atz&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;weblogic.security.rolemap&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;debug security&lt;/P&gt;&lt;br /&gt;&lt;/UL&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;This is the same as&lt;br /&gt;adding a section to the config/config.xml file:&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;  &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;server&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;    &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;name&amp;gt;AdminServer&amp;lt;/name&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;    &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;server-debug&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;      &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;debug-scope&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;        &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;name&amp;gt;weblogic.security.adjudicator&amp;lt;/name&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;        &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;      &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;/debug-scope&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;      &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;debug-scope&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;        &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;name&amp;gt;weblogic.security.atn&amp;lt;/name&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;        &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;      &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;/debug-scope&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;      &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;debug-scope&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;        &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;name&amp;gt;weblogic.security.atz&amp;lt;/name&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;        &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;      &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;/debug-scope&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;      &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;debug-scope&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;        &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;name&amp;gt;weblogic.security.rolemap&amp;lt;/name&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;        &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;      &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;/debug-scope&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;      &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;debug-security&amp;gt;true&amp;lt;/debug-security&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;    &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;/server-debug&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;    &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;listen-address&amp;gt;&amp;lt;/listen-address&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;  &lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;&amp;lt;/server&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;Now restart the server,&lt;br /&gt;and you will find a ldap trace file and extensive log files.&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H1 CLASS="western"&gt;Deploying xxx&lt;/H1&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H2 CLASS="western"&gt;Settings for weblogic 92&lt;/H2&gt;&lt;br /&gt;&lt;H2 CLASS="western"&gt;Client:&lt;/H2&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&amp;lt;wsp&amp;gt;/lib:&lt;/P&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;weblogic.jar&lt;/P&gt;&lt;br /&gt;&lt;/UL&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&amp;lt;wsp&amp;gt;/etc/xxx.properties&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;JNDI.InitialContextFactory&lt;br /&gt;= weblogic.jndi.WLInitialContextFactory&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;JNDI.URL&lt;br /&gt;= t3://localhost:7001&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;JNDI.User&lt;br /&gt;= weblogic&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;JNDI.Password&lt;br /&gt;= weblogic&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;JNDI.PackagePrefixes&lt;br /&gt;= -&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;PRE&gt;&lt;/PRE&gt;&lt;H2 CLASS="western"&gt;&lt;br /&gt;Server:&lt;/H2&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;xxx-engine.jar/xxx.properties&lt;/P&gt;&lt;br /&gt;&lt;/UL&gt;&lt;br /&gt;&lt;PRE&gt;&lt;/PRE&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;EJB.ServerVendor&lt;br /&gt;= WEBLOGIC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;JMS.MessageListener.ProcessingFailure.Pause&lt;br /&gt;= 1000&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;Client.ServiceFactory&lt;br /&gt;= ag.xxx.workflow.ejb.EjbEnvServiceFactory&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H2 CLASS="western"&gt;Settings for weblogic 92 with ldap&lt;/H2&gt;&lt;br /&gt;&lt;H2 CLASS="western"&gt;Client:&lt;/H2&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&amp;lt;wsp&amp;gt;/lib:&lt;/P&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;weblogic.jar&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;weblogic-auth.jar&lt;br /&gt; (this jar holds the xxx specific weblogic authentication classes&lt;br /&gt; from xxx_HOME/examples/weblogic-auth)&lt;/P&gt;&lt;br /&gt;&lt;/UL&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;&amp;lt;wsp&amp;gt;/etc/xxx.properties&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;JNDI.InitialContextFactory&lt;br /&gt;= weblogic.jndi.WLInitialContextFactory&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;JNDI.URL&lt;br /&gt;= t3://localhost:7001&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;JNDI.User&lt;br /&gt;= weblogic&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;JNDI.Password&lt;br /&gt;= weblogic&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;JNDI.PackagePrefixes&lt;br /&gt;= -&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;Credential.Provider&lt;br /&gt;= &lt;/FONT&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;Secure.Session.Factory&lt;br /&gt;=&lt;br /&gt;ag.xxx.examples.authentication.weblogic.WeblogicSecureSessionFactory&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;Security.Authentication.ConfigurationName&lt;br /&gt;= &lt;/FONT&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H2 CLASS="western"&gt;server&lt;/H2&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;xxx.ear/ldap-sync.jar&lt;br /&gt; (from xxx_HOME/examples/ldap-sync)&lt;/P&gt;&lt;br /&gt; &lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0cm"&gt;xxx.ear/xxx-engine.jar/xxx.properties&lt;/P&gt;&lt;br /&gt;&lt;/UL&gt;&lt;br /&gt;&lt;PRE&gt;&lt;/PRE&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;EJB.ServerVendor&lt;br /&gt;= WEBLOGIC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;JMS.MessageListener.ProcessingFailure.Pause&lt;br /&gt;= 1000&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;Security.Authentication.Mode&lt;br /&gt;= principal&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;Security.Authorization.SynchronizationProvider&lt;br /&gt;= ag.xxx.examples.authorization.ldap.LDAPSynchronizationProvider&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;LDAPSynchronization.ServerName&lt;br /&gt;= localhost&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;LDAPSynchronization.ServerPort&lt;br /&gt;= 389&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;LDAPSynchronization.RootDN&lt;br /&gt;= dc=de,dc=xxx,dc=ag,dc=test&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;LDAPSynchronization.UserFilter&lt;br /&gt;= (&amp;amp;(uid=%v)(objectclass=inetOrgPerson))&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;LDAPSynchronization.ParticipantFilter&lt;br /&gt;=&lt;br /&gt;(&amp;amp;(objectClass=groupOfUniqueNames)(uniqueMember=uid=%v,ou=People,dc=de,dc=xxx,dc=ag,dc=test))&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;FONT FACE="Courier New, monospace"&gt;&lt;FONT SIZE=1 STYLE="font-size: 8pt"&gt;Client.ServiceFactory&lt;br /&gt;= ag.xxx.workflow.ejb.EjbEnvServiceFactory&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-left: 1.27cm; margin-bottom: 0cm; background: #e6e6e6"&gt;&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;H2 CLASS="western"&gt;Problem with cleanup runtime / synchronization&lt;br /&gt;caches&lt;/H2&gt;&lt;br /&gt;&lt;P CLASS="western"&gt;Currently some tests fail as the synchronization&lt;br /&gt;between ldap and audittrail occurs too late. Timerbasedstrategy is&lt;br /&gt;set at 10s. &lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P CLASS="western"&gt;If your run a cleanup, but cache is still there,&lt;br /&gt;the engine might think audittrail is uptodate, where in fact it is&lt;br /&gt;empty.&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-116472701819286218?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/116472701819286218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=116472701819286218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/116472701819286218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/116472701819286218'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2006/11/deploying-weblogic-92-with-openldap.html' title='Deploying weblogic 9.2 with openldap'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-113293216202423662</id><published>2005-11-25T16:18:00.000+01:00</published><updated>2006-02-07T14:51:47.096+01:00</updated><title type='text'>deployment of ejb under jboss</title><content type='html'>&lt;style&gt;  &lt;!--   @page { size: 8.5in 11in; margin: 0.79in }   P { margin-bottom: 0.08in }  --&gt;  &lt;/style&gt;  &lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;Jboss deployment of HelloWorld EJB example&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;Deployment under jboss is relatively simple:&lt;/li&gt;&lt;li&gt;pack classes and deployment descriptors in jar&lt;/li&gt;&lt;li&gt;create ear&lt;/li&gt;&lt;li&gt;copy ear into deploy directory of jboss&lt;/li&gt;&lt;/ul&gt;     &lt;p style="margin-bottom: 0in;"&gt;Then to run the client:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;create client java file that calls util class of HelloWorld ejb example&lt;/li&gt;&lt;li&gt;create client jar with proper jndi.properties&lt;/li&gt;&lt;li&gt;call client&lt;/li&gt;&lt;/ul&gt;    &lt;p style="margin-bottom: 0in;"&gt;To create the jar/ear we need to add the following to our build.xml file:&lt;/p&gt; &lt;blockquote&gt;                  &lt;style&gt;  &lt;!--   @page { size: 8.5in 11in; margin: 0.79in }   P { margin-bottom: 0.08in }  --&gt;  &lt;/style&gt;  &lt;p style="margin-bottom: 0in;"&gt;&amp;lt;!-- =================================================================== --&amp;gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt; &amp;lt;!-- Deployment                                                          --&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt; &amp;lt;!-- =================================================================== --&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt; &amp;lt;target name="jar" depends="compile"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mkdir dir="${samples.jar.dir}" /&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;jar jarfile="${samples.jar.dir}/ejb-hello.jar"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fileset dir="${samples.classes.dir}" includes="**" excludes="**/client/**" /&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;metainf dir="${samples.meta-inf.dir}"&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; includes="**"&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; excludes="application.xml" /&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/jar&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt; &amp;lt;/target&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt; &amp;lt;target name="ear" depends="jar"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mkdir dir="${samples.ear.dir}" /&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;copy file="etc/application.xml" todir="${samples.meta-inf.dir}" /&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;jar jarfile="${samples.ear.dir}/helloworld.ear"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fileset dir="${samples.jar.dir}" includes="**/*" excludes="**/client*.jar" /&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;metainf dir="${samples.meta-inf.dir}" includes="application.xml" /&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/jar&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt; &amp;lt;/target&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt; &amp;lt;target name="deploy-jboss" depends="ear"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;copy todir="${jboss4.deploy.dir}"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fileset dir="${samples.ear.dir}" includes="helloworld.ear" /&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/copy&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt; &amp;lt;/target&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;                  &lt;style&gt;  &lt;!--   @page { size: 8.5in 11in; margin: 0.79in }   P { margin-bottom: 0.08in }  --&gt;  &lt;/style&gt;  &lt;p style="margin-bottom: 0in;"&gt;You also need to add some properties to your build-dist.properties file:&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;jboss4.deploy.dir=/usr/local/jboss-4.0.2/server/default/deploy&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;jboss4.client.j2ee.jar=/usr/local/jboss-4.0.2/client/jbossall-client.jar&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;        &lt;style&gt;  &lt;!--   @page { size: 8.5in 11in; margin: 0.79in }   P { margin-bottom: 0.08in }  --&gt;  &lt;/style&gt;  &lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;The ear target also uses an application.xml file. This is a general file, and not propiety for jboss. It contains:&lt;/p&gt; &lt;blockquote&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;lt;?xml version="1.0" encoding="ISO-8859-1"?&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!DOCTYPE application PUBLIC '-//Sun Microsystems, Inc.//DTD J2EE Application 1.2//EN' &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 'http://java.sun.com/j2ee/dtds/application_1_2.dtd'&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;application&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;   &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;display-name&amp;gt;HelloWorld&amp;lt;/display-name&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;   &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;J2EE application to helloworld&amp;lt;/description&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;   &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;module&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;      &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ejb&amp;gt;ejb-hello.jar&amp;lt;/ejb&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;   &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/module&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/application&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="margin-bottom: 0in;"&gt;           &lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;Ears could also have propiety deployment descriptors, for example when you want to deploy mbeans. However, my example is simple, and does not need it.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;              &lt;style&gt;  &lt;!--   @page { size: 8.5in 11in; margin: 0.79in }   P { margin-bottom: 0.08in }  --&gt;  &lt;/style&gt;   &lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;Now when you start jboss (jboss 4), and run ant deploy-jboss, you should see a successful deployment.&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;To make use of the newly deployed EJB, you will need to write a client file:&lt;/p&gt; &lt;blockquote&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;/**&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt; &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;* $Id$&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt; &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;*/&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;package com.jankester.tryout.client;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;import java.rmi.RemoteException;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;import javax.ejb.CreateException;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;import javax.naming.NamingException;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;import com.jankester.tryout.ejb.session.HelloWorld;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;import com.jankester.tryout.ejb.session.HelloWorldHome;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;import com.jankester.tryout.ejb.session.HelloWorldUtil;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;/**&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt; &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;* @author jkester&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt; &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;* &lt;/font&gt;&lt;/font&gt; &lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt; &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;*/&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;public class HelloWorldEjb&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;{&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;   &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;/**&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;    &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;* @param args&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;    &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;*/&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;   &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String[] args)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;   &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;      &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("calling client of HelloWorld");&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;      &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;      &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;         &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; HelloWorldHome helloHome = HelloWorldUtil.getHome();&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;         &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Got HelloWorld home");&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;         &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; HelloWorld hw = helloHome.create();&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;         &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; String answer1 = hw.helloWorld();&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;         &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; String answer2 = hw.helloWorld("It's me again ..");&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;         &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; System.out.println("answer1=" + answer1 + " answer2=" + answer2);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;      &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;      &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; catch (NamingException ne)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;      &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;         &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; System.out.println("Failed getting home: " + ne.getMessage());&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; System.out.println("exception=" + ne);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;      &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;      &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; catch (RemoteException re)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;      &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;         &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; System.out.println("Failed calling getHome: " + re.getMessage());&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;      &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;      &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; catch (CreateException ce)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;      &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;         &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; System.out.println("Failed creating HelloWorld proxy: " + ce.getMessage());&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;      &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;   &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="margin-bottom: 0in;"&gt;                                                    &lt;/p&gt;              &lt;style&gt;  &lt;!--   @page { size: 8.5in 11in; margin: 0.79in }   P { margin-bottom: 0.08in }  --&gt;  &lt;/style&gt;  &lt;p style="margin-bottom: 0in;"&gt;The client file makes use of the interfaces that have been generated by xdoclet. We will pack all classes into a client-hello.jar.&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;Further we need to add a jndi.properties file for jboss. It contains:&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;java.naming.provider.url=localhost&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;                &lt;style&gt;  &lt;!--   @page { size: 8.5in 11in; margin: 0.79in }   P { margin-bottom: 0.08in }  --&gt;  &lt;/style&gt;  &lt;p style="margin-bottom: 0in;"&gt;This file will also be packed into the client-hello.jar. We need to add the following targets to our build.xml:&lt;/p&gt; &lt;blockquote&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt; &amp;lt;target name="client-jar-jboss" depends="compile"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mkdir dir="${samples.jar.dir}" /&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;jar jarfile="${samples.jar.dir}/client-hello.jar"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fileset dir="${samples.classes.dir}"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;include name="**/client/**" /&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;include name="**/ejb/**" /&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;exclude name="**/ejb/**/*Local*" /&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;exclude name="**/ejb/**/*Bean*" /&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;exclude name="**/ejb/**/*Session*" /&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/fileset&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fileset dir="etc/jboss" includes="*.properties" /&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/jar&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt; &amp;lt;/target&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt; &amp;lt;target name="helloworld-jboss" depends="client-jar-jboss"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;java classname="com.jankester.tryout.client.HelloWorldEjb"&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; failonerror="yes"&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fork="yes"&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; spawn="no"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;classpath&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;pathelement location="${samples.jar.dir}/client-hello.jar" /&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;pathelement location="${jboss4.client.j2ee.jar}" /&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/classpath&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/java&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt; &amp;lt;/target&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;                          &lt;p style="margin-bottom: 0in;"&gt;Now you can call the client file with “ant helloworld-jboss”. You should see output like this:&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;            &lt;style&gt;  &lt;!--   @page { size: 8.5in 11in; margin: 0.79in }   P { margin-bottom: 0.08in }  --&gt;  &lt;/style&gt;  &lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;     &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;[java] calling client of HelloWorld&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;     &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;[java] Got HelloWorld home&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;     &lt;font face="Courier New, monospace"&gt;&lt;font style="font-size: 8pt;" size="1"&gt;[java] answer1=Hello world from HelloWorldBean! answer2=Hello It's me again ..!&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-113293216202423662?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/113293216202423662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=113293216202423662' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/113293216202423662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/113293216202423662'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2005/11/deployment-of-ejb-under-jboss.html' title='deployment of ejb under jboss'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-113291627679567844</id><published>2005-11-25T11:57:00.000+01:00</published><updated>2005-11-25T16:17:33.420+01:00</updated><title type='text'>generating ejb with xdoclet 1.2.3</title><content type='html'>Generating EJBs with Xdoclet&lt;br /&gt;&lt;br /&gt;Based on xdoclet 1.3&lt;br /&gt;&lt;br /&gt;In this example I will create a simple HelloWorld stateless entitybean and create jboss and websphere deployment descriptors.&lt;br /&gt;&lt;br /&gt;I used the following file structure:&lt;br /&gt;&lt;br /&gt;.&lt;br /&gt;|-- build-dist.properties&lt;br /&gt;|-- build.xml&lt;br /&gt;|-- etc&lt;br /&gt;|   |-- application.xml&lt;br /&gt;|   |-- jboss&lt;br /&gt;|   |   `-- jndi.properties&lt;br /&gt;|   |-- merge&lt;br /&gt;|   |   |-- jboss-service.ent&lt;br /&gt;|   |   |-- jboss-webservices.ent&lt;br /&gt;|   |   `-- weblogic-security-role-assignment.xml&lt;br /&gt;|   `-- websphere&lt;br /&gt;|       |-- deploy_helloworld.jacl&lt;br /&gt;|       |-- jndi.properties&lt;br /&gt;|       |-- was.properties&lt;br /&gt;|-- lib&lt;br /&gt;|   |-- xdoclet-1.2.3.jar&lt;br /&gt;|   `-- all other xdoclet jars&lt;br /&gt;|-- lib-samples&lt;br /&gt;|   |-- ejb.jar&lt;br /&gt;|   |-- jboss-j2ee.jar&lt;br /&gt;|   |-- jmxri.jar&lt;br /&gt;|   |-- jsf-api.jar&lt;br /&gt;|   |-- readme.txt&lt;br /&gt;|   |-- servlet.jar&lt;br /&gt;|   |-- struts-1.1-beta-2.jar&lt;br /&gt;|   |-- velocity-1.4-dev.jar&lt;br /&gt;|   `-- webwork.jar&lt;br /&gt;|-- src&lt;br /&gt;|   `-- com&lt;br /&gt;|       `-- jankester&lt;br /&gt;|           `-- tryout&lt;br /&gt;|               |-- client&lt;br /&gt;|               |   `-- HelloWorldEjb.java&lt;br /&gt;|               `-- ejb&lt;br /&gt;|                   `-- session&lt;br /&gt;|                       `-- HelloWorldBean.java&lt;br /&gt;&lt;br /&gt;The lib directory contains the xdoclet libs, the lib-samples directory I used for some additional libraries. Further I made use of libs that are part of the websphere 6 installat&lt;br /&gt;ion.&lt;br /&gt;&lt;br /&gt;The most important files in this listing are build.xml, and HelloWorldBean.java. The HelloWorldEjb.java file is just a client file that will call the EJB.&lt;br /&gt;The HelloWorldBean.java and build.xml are just adaptions of samples that come with the xdoclet 1.2.3.&lt;br /&gt;&lt;br /&gt;Generating EJBs with Xdoclet&lt;br /&gt;&lt;br /&gt;Based on xdoclet 1.3&lt;br /&gt;&lt;br /&gt;In this example I will create a simple HelloWorld stateless entitybean and create jboss and websphere deployment descriptors.&lt;br /&gt;&lt;br /&gt;I used the following file structure:&lt;br /&gt;&lt;br /&gt;.&lt;br /&gt;|-- build-dist.properties&lt;br /&gt;|-- build.xml&lt;br /&gt;|-- etc&lt;br /&gt;|   |-- application.xml&lt;br /&gt;|   |-- jboss&lt;br /&gt;|   |   `-- jndi.properties&lt;br /&gt;|   |-- merge&lt;br /&gt;|   |   |-- jboss-service.ent&lt;br /&gt;|   |   |-- jboss-webservices.ent&lt;br /&gt;|   |   `-- weblogic-security-role-assignment.xml&lt;br /&gt;|   `-- websphere&lt;br /&gt;|       |-- deploy_helloworld.jacl&lt;br /&gt;|       |-- jndi.properties&lt;br /&gt;|       |-- was.properties&lt;br /&gt;|-- lib&lt;br /&gt;|   |-- xdoclet-1.2.3.jar&lt;br /&gt;|   `-- all other xdoclet jars&lt;br /&gt;|-- lib-samples&lt;br /&gt;|   |-- ejb.jar&lt;br /&gt;|   |-- jboss-j2ee.jar&lt;br /&gt;|   |-- jmxri.jar&lt;br /&gt;|   |-- jsf-api.jar&lt;br /&gt;|   |-- readme.txt&lt;br /&gt;|   |-- servlet.jar&lt;br /&gt;|   |-- struts-1.1-beta-2.jar&lt;br /&gt;|   |-- velocity-1.4-dev.jar&lt;br /&gt;|   `-- webwork.jar&lt;br /&gt;|-- src&lt;br /&gt;|   `-- com&lt;br /&gt;|       `-- jankester&lt;br /&gt;|           `-- tryout&lt;br /&gt;|               |-- client&lt;br /&gt;|               |   `-- HelloWorldEjb.java&lt;br /&gt;|               `-- ejb&lt;br /&gt;|                   `-- session&lt;br /&gt;|                       `-- HelloWorldBean.java&lt;br /&gt;&lt;br /&gt;The lib directory contains the xdoclet libs, the lib-samples directory I used for some additional libraries. Further I made use of libs that are part of the websphere 6 installat&lt;br /&gt;ion.&lt;br /&gt;&lt;br /&gt;The most important files in this listing are build.xml, and HelloWorldBean.java. The HelloWorldEjb.java file is just a client file that will call the EJB.&lt;br /&gt;The HelloWorldBean.java and build.xml are just adaptions of samples that come with the xdoclet 1.2.3.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-113291627679567844?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/113291627679567844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=113291627679567844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/113291627679567844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/113291627679567844'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2005/11/generating-ejb-with-xdoclet-123.html' title='generating ejb with xdoclet 1.2.3'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-113171275743424749</id><published>2005-11-11T13:10:00.000+01:00</published><updated>2005-11-11T14:24:07.950+01:00</updated><title type='text'>Testing jms client connections to sun8</title><content type='html'>Here I had the problem that I did not know whether my jms on sun8 application server was properly configured.&lt;br /&gt;&lt;br /&gt;This is what to do to call a queue defined in sun8, send a message and receive a message.&lt;br /&gt;I used an example from sun java tutorial SimpleProducer.java and SimpleSynchConsumer.&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;import javax.jms.*;&lt;br /&gt;import javax.naming.*;&lt;br /&gt;import java.util.Properties;&lt;br /&gt;&lt;br /&gt;public class SimpleProducer {&lt;br /&gt;  /**&lt;br /&gt;   * Main method.&lt;br /&gt;   *&lt;br /&gt;   * @param args     the destination used by the example&lt;br /&gt;   *                 and, optionally, the number of&lt;br /&gt;   *                 messages to send&lt;br /&gt;   */&lt;br /&gt;  public static void main(String[] args) {&lt;br /&gt;      final int NUM_MSGS;&lt;br /&gt;&lt;br /&gt;      if ((args.length &lt;&gt; 2)) {&lt;br /&gt;          System.out.println("Program takes one or two arguments: " +&lt;br /&gt;              "&lt;dest_name&gt; [&lt;number-of-messages&gt;]");&lt;br /&gt;          System.exit(1);&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      String destName = new String(args[0]);&lt;br /&gt;      System.out.println("Destination name is " + destName);&lt;br /&gt;&lt;br /&gt;      if (args.length == 2) {&lt;br /&gt;          NUM_MSGS = (new Integer(args[1])).intValue();&lt;br /&gt;      } else {&lt;br /&gt;          NUM_MSGS = 1;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      /*&lt;br /&gt;       * Create a JNDI API InitialContext object if none exists&lt;br /&gt;       * yet.&lt;br /&gt;       */&lt;br /&gt;                              Properties prop = new Properties();&lt;br /&gt;                              prop.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.appserv.naming.S1ASCtxFactory");&lt;br /&gt;                              prop.put(Context.PROVIDER_URL,"iiop://localhost:3700");&lt;br /&gt;      Context jndiContext = null;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;          System.out.println("Created initial context");&lt;br /&gt;&lt;br /&gt;      /*&lt;br /&gt;       * Look up connection factory and destination.  If either&lt;br /&gt;       * does not exist, exit.  If you look up a&lt;br /&gt;       * TopicConnectionFactory or a QueueConnectionFactory,&lt;br /&gt;       * program behavior is the same.&lt;br /&gt;       */&lt;br /&gt;      ConnectionFactory connectionFactory = null;&lt;br /&gt;      Destination dest = null;&lt;br /&gt;&lt;br /&gt;      String connFactName = "XXXConnectionFactory";&lt;br /&gt;      try {&lt;br /&gt;          System.out.println("Trying to get connection factory");&lt;br /&gt;          connectionFactory =&lt;br /&gt;              (ConnectionFactory) jndiContext.lookup(connFactName);&lt;br /&gt;      } catch (Exception e) {&lt;br /&gt;          System.out.println("JNDI API lookup for " + connFactName + " failed: " + e.toString());&lt;br /&gt;          e.printStackTrace();&lt;br /&gt;          System.exit(1);&lt;br /&gt;      }&lt;br /&gt;          System.out.println("Retrieved connection factory");&lt;br /&gt;&lt;br /&gt;      try {&lt;br /&gt;          System.out.println("Trying to get destination");&lt;br /&gt;          dest = (Destination) jndiContext.lookup(destName);&lt;br /&gt;      } catch (Exception e) {&lt;br /&gt;          System.out.println("JNDI API lookup for " + destName + " failed: " + e.toString());&lt;br /&gt;          e.printStackTrace();&lt;br /&gt;          System.exit(1);&lt;br /&gt;      }&lt;br /&gt;          System.out.println("Retrieved destination");&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      /*&lt;br /&gt;       * Create connection.&lt;br /&gt;       * Create session from connection; false means session is&lt;br /&gt;       * not transacted.&lt;br /&gt;       * Create producer and text message.&lt;br /&gt;       * Send messages, varying text slightly.&lt;br /&gt;       * Send end-of-messages message.&lt;br /&gt;       * Finally, close connection.&lt;br /&gt;       */&lt;br /&gt;      Connection connection = null;&lt;br /&gt;      MessageProducer producer = null;&lt;br /&gt;&lt;br /&gt;      try {&lt;br /&gt;          connection = connectionFactory.createConnection();&lt;br /&gt;&lt;br /&gt;          Session session =&lt;br /&gt;              connection.createSession(false, Session.AUTO_ACKNOWLEDGE);&lt;br /&gt;          producer = session.createProducer(dest);&lt;br /&gt;&lt;br /&gt;          TextMessage message = session.createTextMessage();&lt;br /&gt;&lt;br /&gt;            for (int i = 0; i &lt; NUM_MSGS; i++) {&lt;br /&gt;                message.setText("This is message " + (i + 1));&lt;br /&gt;                System.out.println("Sending message: " + message.getText());&lt;br /&gt;                producer.send(message);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            /*&lt;br /&gt;             * Send a non-text control message indicating end of&lt;br /&gt;             * messages.&lt;br /&gt;             */&lt;br /&gt;            //producer.send(session.createMessage());&lt;br /&gt;        } catch (JMSException e) {&lt;br /&gt;            System.out.println("Exception occurred: " + e.toString());&lt;br /&gt;        } finally {&lt;br /&gt;            if (connection != null) {&lt;br /&gt;                try {&lt;br /&gt;                    connection.close();&lt;br /&gt;                } catch (JMSException e) {&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/number-of-messages&gt;&lt;/dest_name&gt;&lt;/span&gt;&lt;br /&gt;I changed some small things with respect to the original:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;I explicitly added some properties before building up the InitialContext; it probably works without as well&lt;/li&gt;   &lt;li&gt;the factory connection name is here specific.&lt;/li&gt;   &lt;li&gt;Factory and destination are retrieved separately for ease of debugging.&lt;/li&gt;   &lt;li&gt;I removed the sending of an empty message.&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;The program compiles with:&lt;br /&gt;&lt;pre&gt;javac -classpath j2ee.jar SimpleProducer.java&lt;/pre&gt;To run the program I used the following command line:&lt;br /&gt;&lt;pre&gt;java -Dcom.sun.appserv.iiop.&lt;span style="color: rgb(0, 128, 0);"&gt;endpoints=&lt;/span&gt;localhost:3700 &lt;span style="color: rgb(0, 128, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;/span&gt;-classpath appserv-rt.jar:imqjmsra.jar:j2ee.jar:appserv-admin.jar:. SimpleProducer TestJMSQueue 3&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;All libraries except the j2ee.jar are specific for the sun8 jms. The jmvarg is also specific for this jms implementation. The program creates 3 messages on TestJmsQueue, and then actually hangs. With ctrl-c I stop it :-).&lt;br /&gt;&lt;br /&gt;To read out the messages, I use almost literally:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;import javax.jms.*;&lt;br /&gt;import javax.naming.*;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class SimpleSynchConsumer {&lt;br /&gt;   /**&lt;br /&gt;    * Main method.&lt;br /&gt;    *&lt;br /&gt;    * @param args     the destination name and type used by the&lt;br /&gt;    *                 example&lt;br /&gt;    */&lt;br /&gt;   public static void main(String[] args) {&lt;br /&gt;       String destName = null;&lt;br /&gt;       Context jndiContext = null;&lt;br /&gt;       ConnectionFactory connectionFactory = null;&lt;br /&gt;       Connection connection = null;&lt;br /&gt;       Session session = null;&lt;br /&gt;       Destination dest = null;&lt;br /&gt;       MessageConsumer consumer = null;&lt;br /&gt;       TextMessage message = null;&lt;br /&gt;&lt;br /&gt;       if (args.length != 1) {&lt;br /&gt;           System.out.println("Program takes one argument: &lt;dest_name&gt;");&lt;br /&gt;           System.exit(1);&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       destName = new String(args[0]);&lt;br /&gt;       System.out.println("Destination name is " + destName);&lt;br /&gt;&lt;br /&gt;       /*&lt;br /&gt;        * Create a JNDI API InitialContext object if none exists&lt;br /&gt;        * yet.&lt;br /&gt;        */&lt;br /&gt;       try {&lt;br /&gt;           jndiContext = new InitialContext();&lt;br /&gt;       } catch (NamingException e) {&lt;br /&gt;           System.out.println("Could not create JNDI API context: " +&lt;br /&gt;               e.toString());&lt;br /&gt;           System.exit(1);&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       /*&lt;br /&gt;        * Look up connection factory and destination.  If either&lt;br /&gt;        * does not exist, exit.  If you look up a&lt;br /&gt;        * TopicConnectionFactory or a QueueConnectionFactory,&lt;br /&gt;        * program behavior is the same.&lt;br /&gt;        */&lt;br /&gt;       try {&lt;br /&gt;           connectionFactory =&lt;br /&gt;               (ConnectionFactory) jndiContext.lookup("XXXConnectionFactory");&lt;br /&gt;           dest = (Destination) jndiContext.lookup(destName);&lt;br /&gt;       } catch (Exception e) {&lt;br /&gt;           System.out.println("JNDI API lookup failed: " + e.toString());&lt;br /&gt;           System.exit(1);&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       /*&lt;br /&gt;        * Create connection.&lt;br /&gt;        * Create session from connection; false means session is&lt;br /&gt;        * not transacted.&lt;br /&gt;        * Create consumer, then start message delivery.&lt;br /&gt;        * Receive all text messages from destination until&lt;br /&gt;        * a non-text message is received indicating end of&lt;br /&gt;        * message stream.&lt;br /&gt;        * Close connection.&lt;br /&gt;        */&lt;br /&gt;       try {&lt;br /&gt;           connection = connectionFactory.createConnection();&lt;br /&gt;           session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);&lt;br /&gt;           consumer = session.createConsumer(dest);&lt;br /&gt;           connection.start();&lt;br /&gt;&lt;br /&gt;           while (true) {&lt;br /&gt;               Message m = consumer.receive(1);&lt;br /&gt;&lt;br /&gt;               if (m != null) {&lt;br /&gt;                   if (m instanceof TextMessage) {&lt;br /&gt;                       message = (TextMessage) m;&lt;br /&gt;                       System.out.println("Reading message: " +&lt;br /&gt;                           message.getText());&lt;br /&gt;                   } else {&lt;br /&gt;                       break;&lt;br /&gt;                   }&lt;br /&gt;               }&lt;br /&gt;           }&lt;br /&gt;       } catch (JMSException e) {&lt;br /&gt;           System.out.println("Exception occurred: " + e.toString());&lt;br /&gt;       } finally {&lt;br /&gt;           if (connection != null) {&lt;br /&gt;               try {&lt;br /&gt;                   connection.close();&lt;br /&gt;               } catch (JMSException e) {&lt;br /&gt;               }&lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/dest_name&gt;&lt;/span&gt;&lt;br /&gt;Here I only changed the original connection factory name.&lt;br /&gt;This program compiles/runs in similar way.&lt;br /&gt;&lt;pre&gt;javac -classpath j2ee.jar SimpleSynchConsumer.java&lt;/pre&gt;      &lt;pre&gt;java -Dcom.sun.appserv.iiop.&lt;span style="color: rgb(0, 128, 0);"&gt;endpoints=&lt;/span&gt;localhost:3700 &lt;span style="color: rgb(0, 128, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;/span&gt;-classpath appserv-rt.jar:imqjmsra.jar:j2ee.jar:appserv-admin.jar:. SimpleSynchConsumer TestJMSQueue&lt;br /&gt;&lt;/pre&gt;The program gets the messages created with the program before.&lt;br /&gt;&lt;br /&gt;To test for other environments, make sure you use the implementation specific initial context properties, and have the implementation specific jars in your classpath.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-113171275743424749?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/113171275743424749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=113171275743424749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/113171275743424749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/113171275743424749'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2005/11/testing-jms-client-connections-to-sun8.html' title='Testing jms client connections to sun8'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-113153110393855253</id><published>2005-11-09T11:05:00.000+01:00</published><updated>2005-11-09T11:11:43.950+01:00</updated><title type='text'>Compiling with jdk1.3.1</title><content type='html'>Recently I tried to build a project under Suse 9.3 with jdk1.3.1. Normally I use 1.4.2, and all went well. However when I set my java to jdk1.3.1 and start up the compile, I get the following error:&lt;br /&gt;&lt;br /&gt;[javac] Compiling 1634 source files to  /home/jan/workspace/release/build.bak/xxxx/build/classes&lt;br /&gt;   [javac] error: compiler message file broken:  key=compiler.err.sun.io.MalformedInputException arguments=null, null,  null, null, null, null, null&lt;br /&gt;&lt;br /&gt;I found out that it was while the original charset of the files was different as the locale of my current shell.&lt;br /&gt;The command locale shows:&lt;br /&gt;LANG=en_US.UTF-8&lt;br /&gt;LC_CTYPE="en_US.UTF-8"&lt;br /&gt;..&lt;br /&gt;&lt;br /&gt;When I made an explicit `export LANG=en_US.ISO-8859-1` I could run my compile again. Strangely, jdk1.4 does not suffer from this problem.&lt;br /&gt;&lt;br /&gt;To change my environment to jdk1.3.1 and another ant, I use a source script change-java-ant-1_3_1.source:&lt;br /&gt;export JAVA_HOME=/usr/local/jdk1.3.1_16&lt;br /&gt;export ANT_HOME=/usr/local/apache-ant-1.6.3&lt;br /&gt;export PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;export PATH=$ANT_HOME/bin:$PATH&lt;br /&gt;alias ant="ant --noconfig"&lt;br /&gt;export LANG=en_US.ISO-8859-1&lt;br /&gt;&lt;br /&gt;echo "run with source, and not as shell; else it gets forked"&lt;br /&gt;echo "alias of ant set to ant --noconfig"&lt;br /&gt;echo "LANG set to en_US.ISO-8859-1 so that latakia compile works"&lt;br /&gt;echo&lt;br /&gt;echo "test with java -version"&lt;br /&gt;echo "          ant -version"&lt;br /&gt;echo "          locale"&lt;br /&gt;&lt;br /&gt;The --noconfig is needed so that the /etc/ant.conf will not be read. This ant.conf file has already been set to my suse rpm-based ant.&lt;br /&gt;To load the source script I must use source. When I would use a shell to execute it, the new settings would only be valid inside the new shell.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-113153110393855253?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/113153110393855253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=113153110393855253' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/113153110393855253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/113153110393855253'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2005/11/compiling-with-jdk131.html' title='Compiling with jdk1.3.1'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-113111961251673419</id><published>2005-11-04T16:38:00.000+01:00</published><updated>2005-11-04T17:09:04.923+01:00</updated><title type='text'>Websphere 6 on Linux</title><content type='html'>Yesterday I started with the installation of websphere on Linux, Suse 9.3. I downloaded was.cd.6000.trial.base.linux.ia32.tar.gz from the ibm website, and unpacked it.&lt;br /&gt;&lt;br /&gt;As logged in user, I issued a xhost + command.&lt;br /&gt;Then as root, I ran WAS/install to start the installation.&lt;br /&gt;I chose defaults, and a full installation, which installs under /opt/IBM/WebSphere/AppServer/.&lt;br /&gt;&lt;br /&gt;At the end of the installation, the install program asks to run firststeps. I started that, and asked to check the installation. This check succeeded, amongst it also started the AppServer.&lt;br /&gt;The links of Sample Gallery and AdminConsole however did not work. Probably it is not capable of starting up a webbrowser by itself. So, I just stopped the AppServer again from the firststeps, and finished the installation.&lt;br /&gt;&lt;br /&gt;The server can be started now as root from /opt/IBM/WebSphere/AppServer/ :&lt;br /&gt;    bin/startServer.sh server1&lt;br /&gt;and stopped again with&lt;br /&gt;   bin/stopServer.sh server1&lt;br /&gt;&lt;br /&gt;You can see that the server is running with the command&lt;br /&gt;    netstat -an | grep LISTEN&lt;br /&gt;you should see ports 9080, 9060, 9443, ..&lt;br /&gt;&lt;br /&gt;To start the adminconsole, open a browser with&lt;br /&gt;    http://localhost:9060/ibm/console/&lt;br /&gt;Examples applications can be opened with&lt;br /&gt;    http://localhost:9080/WSsamples/en/index.html&lt;br /&gt;    http://localhost:9080/hitcount&lt;br /&gt;    http://localhost:9080/PlantsByWebSphere/&lt;br /&gt;&lt;br /&gt;Next: how to do a simple deployment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-113111961251673419?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/113111961251673419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=113111961251673419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/113111961251673419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/113111961251673419'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2005/11/websphere-6-on-linux.html' title='Websphere 6 on Linux'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-112783918559320826</id><published>2005-09-27T18:37:00.000+02:00</published><updated>2005-09-27T18:39:45.596+02:00</updated><title type='text'>Autostart in kde</title><content type='html'>To make programs start automatically in kde, drag the icon inside ~/.kde/Autostart directory and choose "Link here".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-112783918559320826?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/112783918559320826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=112783918559320826' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/112783918559320826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/112783918559320826'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2005/09/autostart-in-kde.html' title='Autostart in kde'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-112776078489974698</id><published>2005-09-26T20:48:00.000+02:00</published><updated>2005-09-26T20:53:04.900+02:00</updated><title type='text'>rsync with ssh</title><content type='html'>Setup rsync from laptop to a remote server.&lt;br /&gt;To get this done, I followed the steps described in &lt;a href="http://www.jdmz.net/ssh/"&gt;http://www.jdmz.net/ssh/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The commands that I used:&lt;br /&gt;rsync -avz -e ssh Documents/gnupg-data/ jan@www.jankester.com:/home/jan/backup_rsync&lt;br /&gt;ssh-keygen -t dsa -b 2048 -f .ssh/ewing_ssh_rsync_key&lt;br /&gt;&lt;br /&gt;added entry in commands in authorized keys remote&lt;br /&gt;added validate-rsync script on remote under /home/jan/cron&lt;br /&gt;&lt;br /&gt;Test again whether new key works&lt;br /&gt;rsync -avz -e ssh -i /home/jan/.ssh/ewing_ssh_rsync_key Documents/gnupg-data/ jan@www.jankester.com:/home/jan/backup_rsync&lt;br /&gt;&lt;br /&gt;Now add a script to sync anything you like /home/jan/cron/backup-ewing-on-vs01-05.sh:&lt;br /&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;RSYNC=/usr/bin/rsync&lt;br /&gt;SSH=/usr/bin/ssh&lt;br /&gt;KEY=/home/jan/.ssh/ewing_ssh_rsync_key&lt;br /&gt;RUSER=jan&lt;br /&gt;RHOST=www.jankester.com&lt;br /&gt;RPATH=/home/jan/backup_rsync&lt;br /&gt;&lt;br /&gt;LPATH=/home/jan/Documents/gnupg-data&lt;br /&gt;$RSYNC -azv -e "$SSH -i $KEY" $LPATH $RUSER@$RHOST:$RPATH&lt;br /&gt;&lt;br /&gt;LPATH=/home/jan/.ssh&lt;br /&gt;$RSYNC -azv -e "$SSH -i $KEY" $LPATH $RUSER@$RHOST:$RPATH&lt;br /&gt;&lt;br /&gt;LPATH=/home/jan/ssh&lt;br /&gt;$RSYNC -azv -e "$SSH -i $KEY" $LPATH $RUSER@$RHOST:$RPATH&lt;br /&gt;&lt;br /&gt;LPATH=/home/jan/vnc&lt;br /&gt;$RSYNC -azv -e "$SSH -i $KEY" $LPATH $RUSER@$RHOST:$RPATH&lt;br /&gt;&lt;br /&gt;LPATH=/home/jan/Documents/technical_tips&lt;br /&gt;$RSYNC -azv -e "$SSH -i $KEY" $LPATH $RUSER@$RHOST:$RPATH&lt;br /&gt;&lt;br /&gt;LPATH=/home/jan/Documents/personal&lt;br /&gt;$RSYNC -azv -e "$SSH -i $KEY" $LPATH $RUSER@$RHOST:$RPATH&lt;br /&gt;&lt;br /&gt;LPATH=/home/jan/.bash*&lt;br /&gt;$RSYNC -azv -e "$SSH -i $KEY" $LPATH $RUSER@$RHOST:$RPATH&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-112776078489974698?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/112776078489974698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=112776078489974698' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/112776078489974698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/112776078489974698'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2005/09/rsync-with-ssh.html' title='rsync with ssh'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16758301.post-112677344627164948</id><published>2005-09-15T10:36:00.000+02:00</published><updated>2005-09-15T10:37:26.276+02:00</updated><title type='text'>Opening</title><content type='html'>Welcome&lt;br /&gt;my first new blog page. I will put some work comments etc, tips and tricks, and maybe even some funny stories.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16758301-112677344627164948?l=jankesterblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jankesterblog.blogspot.com/feeds/112677344627164948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16758301&amp;postID=112677344627164948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/112677344627164948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16758301/posts/default/112677344627164948'/><link rel='alternate' type='text/html' href='http://jankesterblog.blogspot.com/2005/09/opening.html' title='Opening'/><author><name>Jan Kester</name><uri>http://www.blogger.com/profile/01980860348655917852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_VqDcueZPXr4/St2yxwqgt5I/AAAAAAAAAAM/nrcBbcrv47Y/S220/foto-jan.jpg'/></author><thr:total>0</thr:total></entry></feed>
