<?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-14419533</id><updated>2012-01-16T11:47:23.304Z</updated><title type='text'>My Memory Aid</title><subtitle type='html'>Stuff I think I should write down so I don't forget it....</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default?start-index=101&amp;max-results=100'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>127</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-14419533.post-5009021845095121201</id><published>2012-01-16T11:27:00.002Z</published><updated>2012-01-16T11:47:23.495Z</updated><title type='text'>Java regex's</title><content type='html'>Just a quick note on java.util.Pattern. e.g. extract numbers from a known pattern&lt;br /&gt;&lt;br /&gt;We know that our data format will be various letters, the number we want to extract. One or more letters. How do we extract the numbers?&lt;br /&gt;&lt;br /&gt;Easy, using a regex Pattern, and the &lt;a href="http://docs.oracle.com/javase/6/docs/api/java/util/regex/Matcher.html"&gt;Matcher &lt;/a&gt;class.&lt;br /&gt;&lt;br /&gt;e.g. (in groovy)&lt;br /&gt;&lt;pre&gt;import java.util.regex.*&lt;br /&gt;def testString ="abc4567!TheEnd"&lt;br /&gt;def pattern = Pattern.compile("\\D*(\\d*).*") // N.B. Double quotes to escape \ pattern == \D*(\d*).*.. i.e. not a number/ number/ anything&lt;br /&gt;Matcher m = pattern.matcher(testString)&lt;br /&gt;if(m.matches()){&lt;br /&gt;  def i=0&lt;br /&gt;  while(i&amp;lt;=m.groupCount())         println m.group(i++) }else     println "Doesn't match" &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Returns our number... 4567&lt;br /&gt;&lt;br /&gt;Note groups are returned based 1/ the whole matching string followed by a group for each cycle of parentheses (1 in this case).&lt;br /&gt;&lt;br /&gt;e.g. if the above regex is changed to &lt;pre&gt;"\\D*&lt;span style="color: rgb(153, 0, 0);"&gt;(\\d&lt;span style="color: rgb(0, 153, 0);"&gt;(\\d&lt;span style="color: rgb(0, 0, 153);"&gt;(\\d*&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;)&lt;/span&gt;.*"&lt;/pre&gt;&lt;br /&gt;Then the results would be as follows. Note how as the group index increases, we traverse deeper into the parentheses of the regex&lt;br /&gt;&lt;pre&gt;group(0) == abc4567!TheEnd&lt;br /&gt;group(1) == &lt;span style="color: rgb(153, 0, 0);"&gt;4567&lt;/span&gt;&lt;br /&gt;group(2) == &lt;span style="color: rgb(0, 153, 0);"&gt;567&lt;/span&gt;&lt;br /&gt;group(3) == &lt;span style="color: rgb(0, 0, 153);"&gt;67&lt;/span&gt;&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/14419533-5009021845095121201?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/5009021845095121201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=5009021845095121201' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/5009021845095121201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/5009021845095121201'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2012/01/java-regexs.html' title='Java regex&apos;s'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-8492051962451590858</id><published>2011-11-16T22:41:00.003Z</published><updated>2011-11-16T22:52:30.855Z</updated><title type='text'>Ec2 Getting started</title><content type='html'>My notes on getting an Ec2 instance up and running.&lt;br /&gt;&lt;br /&gt;I created the (free) Amazon Linux AMI.&lt;br /&gt;&lt;br /&gt;This is a base linux distro, so you will need to install any extra software you need (e.g. in my case tomcat, jdk)&lt;br /&gt;&lt;br /&gt;Install tomcat6&lt;br /&gt;&gt; sudo yum install tomcat6&lt;br /&gt;&lt;br /&gt;Get JDK&lt;br /&gt; wget http://www.java.net/download/jdk6/6u30/promoted/b10/binaries/jdk-6u30-ea-bin-b10-linux-amd64-25_oct_2011-rpm.bin&lt;br /&gt;&lt;br /&gt;Install&lt;br /&gt;chmod a+x ./jdk-6u30-ea-bin-b10-linux-amd64-25_oct_2011-rpm.bin&lt;br /&gt;sudo ./jdk-6u30-ea-bin-b10-linux-amd64-25_oct_2011-rpm.bin&lt;br /&gt;&lt;br /&gt;Start Tomcat&lt;br /&gt;tbc&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-8492051962451590858?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/8492051962451590858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=8492051962451590858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/8492051962451590858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/8492051962451590858'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/11/ec2-getting-started.html' title='Ec2 Getting started'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-2969322866130584222</id><published>2011-10-21T16:51:00.004+01:00</published><updated>2011-10-21T16:58:47.801+01:00</updated><title type='text'>Grails dynamic finders not working in Unit Tests</title><content type='html'>I ran into a problem with my unit test in Grails.&lt;br /&gt;&lt;br /&gt;One of the dynamic finders was not working. What was strange was that it worked fine when I ran the app normally. It only failed in the unitTests.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;groovy.lang.MissingMethodException: No signature of method: static com.domain.myDomain.findByCode() is applicable for argument types: (java.lang.String) values: [myCode]&lt;br /&gt; at groovy.lang.MetaClassImpl.invokeStaticMissingMethod(MetaClassImpl.java:1357)&lt;br /&gt; at groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:1343)&lt;br /&gt; at groovy.lang.ExpandoMetaClass.invokeStaticMethod(ExpandoMetaClass.java:1082)&lt;br /&gt; at &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Solution.&lt;br /&gt;&lt;br /&gt;When unit testing, grails mocks out all backend access. In order to do this it must dynamically update the domain classes (e.g. save method), so that they dont try to talk to the DB. &lt;br /&gt;&lt;br /&gt;Therefore when using any unit testing on domain object you must first mock it out. This is easily done in the unitTest class in the setUp() method&lt;br /&gt;&lt;br /&gt;e.g.&lt;br /&gt;&lt;pre&gt;mockDomain myDomain&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;It can save you a lot of hassle&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-2969322866130584222?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/2969322866130584222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=2969322866130584222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/2969322866130584222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/2969322866130584222'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/10/grails-dynamic-finders-not-working-in.html' title='Grails dynamic finders not working in Unit Tests'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-7627275285574742423</id><published>2011-10-18T12:17:00.002+01:00</published><updated>2011-10-18T12:23:43.879+01:00</updated><title type='text'>Stack trace cleanup</title><content type='html'>Groovy has a handy class for sanitize stack traces. (i.e. it removes any java, groovy classes from the classpath, so that just so called 'Business' classes remain.&lt;br /&gt;&lt;br /&gt;Of course if you are using thirdparty libraries then this might not cleanse the stack trace enough. Therefore it might be useful to append extra ignorable packages into the ignore list. &lt;br /&gt;&lt;br /&gt;e.g.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// Add any extra package names here&lt;br /&gt;String[] GROOVY_PACKAGES =&lt;br /&gt;            System.getProperty("groovy.sanitized.stacktraces",&lt;br /&gt;                    "groovy.," +&lt;br /&gt;                            "org.codehaus.groovy.," +&lt;br /&gt;                            "java.," +&lt;br /&gt;                            "javax.," +&lt;br /&gt;                            "sun.," +&lt;br /&gt;                            "gjdk.groovy.,"&lt;br /&gt;            ).split("(\\s|,)+");&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public static Throwable sanitize(Throwable t) {&lt;br /&gt;    // Note that this getBoolean access may well be synced...&lt;br /&gt;    if (!Boolean.getBoolean("groovy.full.stacktrace")) {&lt;br /&gt;        StackTraceElement[] trace = t.getStackTrace();&lt;br /&gt;        List&lt;stacktraceelement&gt; newTrace = new ArrayList&lt;stacktraceelement&gt;();&lt;br /&gt;        for (StackTraceElement stackTraceElement : trace) {&lt;br /&gt;            if (isApplicationClass(stackTraceElement.getClassName())) {&lt;br /&gt;                newTrace.add(stackTraceElement);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        // We don't want to lose anything, so log it&lt;br /&gt;        STACK_LOG.log(Level.WARNING, "Sanitizing stacktrace:", t);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        StackTraceElement[] clean = new StackTraceElement[newTrace.size()];&lt;br /&gt;        newTrace.toArray(clean);&lt;br /&gt;        t.setStackTrace(clean);&lt;br /&gt;    }&lt;br /&gt;    return t;&lt;br /&gt;}&lt;br /&gt;&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/14419533-7627275285574742423?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/7627275285574742423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=7627275285574742423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/7627275285574742423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/7627275285574742423'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/10/stack-trace-cleanup.html' title='Stack trace cleanup'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-6375066270828375127</id><published>2011-10-13T09:18:00.003+01:00</published><updated>2011-10-13T09:40:00.689+01:00</updated><title type='text'>Grails local plugin repository</title><content type='html'>If you are creating your own grails plugins, then you need to&lt;br /&gt;1/ Store them on a central server&lt;br /&gt;2/ Inform grails to check this server to find your plugins before going online to download them&lt;br /&gt;&lt;br /&gt;There are 2 ways to do this (see&lt;a href="http://grails.org/doc/1.3.x/guide/12.%20Plug-ins.html"&gt; http://grails.org/doc/1.3.x/guide/12.%20Plug-ins.html&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1/ Grails Compatible Repositories&lt;/b&gt;&lt;br /&gt;This is easily achieved by creating (or updating if it already exists) the $HOME/.grails/settings.groovy file&lt;br /&gt;&lt;br /&gt;e.g. to add myPluginRepository&lt;br /&gt;&lt;br /&gt;The discovery, and distribution locations are svn repositories&lt;br /&gt;&lt;pre&gt;grails.plugin.repos.resolveOrder=['myPluginRepository', 'default', 'core']&lt;br /&gt;grails.plugin.repos.discovery.myPluginRepository="http://myServer/svn//my-plugin-distributions"&lt;br /&gt;grails.plugin.repos.distribution.myPluginRepository="http://myServer/svn//my-plugin-distributions"&lt;br /&gt;&lt;/pre&gt;To publish&lt;br /&gt;&lt;pre&gt;grails release-plugin -repository = myPluginRepository&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;2/ Maven Compatible Repositories (Recommended)&lt;br /&gt;&lt;/b&gt;&lt;u&gt;maven-install&lt;/u&gt;&lt;br /&gt;The &lt;code&gt;maven-install&lt;/code&gt; command will install the Grails project or plugin artifact into your local Maven cache:&lt;br /&gt;&lt;pre&gt;grails maven-install&lt;/pre&gt;&lt;br /&gt;In  the case of plugins, the plugin zip file will be installed, whilst for  application the application WAR file will be installed.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;maven-deploy&lt;/u&gt;&lt;br /&gt;The &lt;code&gt;maven-deploy&lt;/code&gt; command will deploy a Grails project or plugin into a remote Maven repository:&lt;br /&gt;&lt;pre&gt;grails maven-deploy&lt;/pre&gt;&lt;br /&gt;It is assumed that you have specified the necessary configuration within a &lt;code&gt;pom.xml&lt;/code&gt; or that you specify the &lt;code&gt;id&lt;/code&gt; of the remote repository to deploy to:&lt;br /&gt;&lt;pre&gt;grails maven-deploy --repository=myPluginRepository&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The repository argument specifies the 'id' for the repository. You need to configure the details of the repository specified by this 'id' within your grails-app/conf/BuildConfig.groovy file or in your USER_HOMER/.grails/settings.groovy file:&lt;br /&gt;&lt;pre&gt;grails.project.dependency.distribution = {&lt;br /&gt;     localRepository = "/path/to/my/local"&lt;br /&gt;     remoteRepository(id:"myPluginRepository", url:"http://myserver/path/to/repo")&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The syntax for configuring remote repositories matches the syntax from the remoteRepository element in the Ant Maven tasks. For example the following XML:&lt;br /&gt;&lt;pre&gt;&amp;lt;remoteRepository id="myPluginRepository" url="scp://localhost/www/repository"&amp;gt;&lt;br /&gt;    &amp;lt;authentication username="..." privateKey="${user.home}/.ssh/id_dsa"/&amp;gt;&lt;br /&gt;&amp;lt;/remoteRepository&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Can be expressed as:&lt;br /&gt;&lt;pre&gt;remoteRepository(id:"myPluginRepository", url:"scp://localhost/www/repository") {&lt;br /&gt;    authentication username:"...", privateKey:"${userHome}/.ssh/id_dsa"&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;By default the plugin will try to detect the protocol to use from the URL of the repository (ie "http" from "http://.." etc.), however if you need to explicitly specify a different protocol you can do:&lt;br /&gt;&lt;pre&gt;grails maven-deploy --repository=myPluginRepository --protocol=webdav&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The available protocols are:&lt;br /&gt;&lt;br /&gt;    * http&lt;br /&gt;    * scp&lt;br /&gt;    * scpexe&lt;br /&gt;    * ftp&lt;br /&gt;    * webdav&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-6375066270828375127?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/6375066270828375127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=6375066270828375127' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6375066270828375127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6375066270828375127'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/10/grails-local-plugin-repository.html' title='Grails local plugin repository'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-869257423608431662</id><published>2011-10-11T12:50:00.002+01:00</published><updated>2011-10-11T12:57:56.932+01:00</updated><title type='text'>Arrays Maps List syntax for groovy/ java/ javascript</title><content type='html'>Slight syntax differences&lt;br /&gt;&lt;br /&gt;Note groovy maps are different to json maps, and proposed Java map literals. Grrovy maps use similar syntax to arrays&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1/ Groovy syntax&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Map&lt;/u&gt;&lt;br /&gt;&lt;pre&gt;def map= ['id':'FX-11', 'name':'Radish', 'no':1234, 99:'Y']&lt;br /&gt;assert map == ['name':'Radish', 'id':'FX-11', 99:'Y', 'no':1234]     //order of keys irrelevant&lt;br /&gt;def map4= [:]&lt;br /&gt;assert map == java.util.LinkedHashMap&lt;br /&gt;&lt;br /&gt;def map2= [id:'FX-11', two:"two"] as Hashtable&lt;br /&gt;assert map2 == java.util.Hashtable&lt;br /&gt;assert map2.two == "two"&lt;br /&gt;assert map2['two'] == "two"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Note: key may be string or not.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Array&lt;/u&gt;&lt;br /&gt;&lt;pre&gt;a= [ 11, 12, 13, 14 ] as Object[]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;List (by default create ArrayList)&lt;/u&gt;&lt;br /&gt;&lt;pre&gt;def list = [5, 6, 7, 8]&lt;br /&gt;assert list.get(2) == 7&lt;br /&gt;assert list[2] == 7&lt;br /&gt;assert list instanceof java.util.List&lt;br /&gt;assert list instanceof java.util.ArrayList&lt;br /&gt;&lt;br /&gt;def emptyList = []&lt;br /&gt;assert emptyList.size() == 0&lt;br /&gt;assert emptyList instanceof java.util.ArrayList&lt;br /&gt;&lt;br /&gt;// To force to type other than ArrayList use&lt;br /&gt;numbers3 = new LinkedList(['One', 'Two', 'Three', 'Four', 'Five'])&lt;br /&gt;numbers4 = ['One', 'Two', 'Three', 'Four', 'Five'] as Stack // Groovy 1.6+&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Note Groovy also has Range type. This is inherits from java.util.List, but is a pure groovy class (e.g. groovy.lang.IntRange)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2/ Java (8) syntax (Note these produce immutable items)&lt;/b&gt;&lt;br /&gt;&lt;a href="http://sellmic.com/blog/2011/07/08/7-new-cool-features-in-java-7/"&gt;http://sellmic.com/blog/2011/07/08/7-new-cool-features-in-java-7/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.joda.org/2007/02/java-7-list-and-map-literals_6278.html"&gt;http://blog.joda.org/2007/02/java-7-list-and-map-literals_6278.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://code.joejag.com/2009/new-language-features-in-java-7/"&gt;http://code.joejag.com/2009/new-language-features-in-java-7/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Map&lt;/u&gt;&lt;br /&gt;&lt;pre&gt;Map&lt;string, integer=""&gt; map = {"key" : 1};&lt;br /&gt;int value = map["key"];&lt;br /&gt;&lt;br /&gt;Set&lt;string&gt; set = {"item"};&lt;br /&gt;&lt;/string&gt;&lt;/string,&gt;&lt;/pre&gt;&lt;br /&gt;&lt;u&gt;Array&lt;/u&gt;&lt;br /&gt;&lt;pre&gt;String[] array = {"item1", "item2",}&lt;/pre&gt;&lt;br /&gt;&lt;u&gt;List&lt;/u&gt;&lt;br /&gt;&lt;pre&gt;List&lt;string&gt; list = ["Abba", "Beatles", "Corrs"];&lt;br /&gt;List&lt;string&gt; emptyList = [];&lt;/string&gt;&lt;/string&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;3/ Javascript/ Json Syntax&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Array&lt;/u&gt;&lt;br /&gt;&lt;pre&gt;var emptyList = [];&lt;br /&gt;var homogenousList = [1, 2, 3];&lt;br /&gt;var heterogenousList = ["one", 2, 3.0];&lt;br /&gt;Var list = new Array();&lt;br /&gt;list[0] = "item";&lt;br /&gt;list[1] = "item1";&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;u&gt;List&lt;/u&gt;&lt;br /&gt;Use Array&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Map&lt;/u&gt;&lt;br /&gt;&lt;pre&gt;var emptyMap = {};&lt;br /&gt;var homogenousMap = {"one": 1, "two": 2, "three": 3};&lt;br /&gt;var heterogenousMap = {"one": 1,&lt;br /&gt;                     "two": "two",&lt;br /&gt;                     "three": 3.0};&lt;br /&gt;&lt;br /&gt;map = {'key':'value'}&lt;br /&gt;map.key == 'value'&lt;br /&gt;map['key'] == 'value'&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/14419533-869257423608431662?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/869257423608431662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=869257423608431662' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/869257423608431662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/869257423608431662'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/10/arrays-maps-list-syntax-for-groovy-java.html' title='Arrays Maps List syntax for groovy/ java/ javascript'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-4151382023172915503</id><published>2011-10-10T17:20:00.002+01:00</published><updated>2011-10-10T17:27:46.955+01:00</updated><title type='text'>Grails (hibernate) "Could not find a setter for property in class"</title><content type='html'>When working on a Domain class (in grails) I wanted to add a convenience method to return some information.&lt;br /&gt;&lt;br /&gt;e.g. I had a property endDate, and I wanted to have a method isActive to return true if the endDate does not exist or is in the future.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;div style="font-family: courier new;"&gt; boolean isActive(){&lt;br /&gt;        if(endDate==null) return true;&lt;br /&gt;        return endDate&lt;br /&gt;    }&lt;/div&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;However when I try to run the app I get&lt;br /&gt;&lt;br /&gt;Solution is&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;div style="font-family: courier new;"&gt; def isActive(){&lt;br /&gt;        if(endDate==null) return true;&lt;br /&gt;        return endDate&lt;br /&gt;    }&lt;/div&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If defined as boolean (or int string etc), then Hibernate interprets it as a getter, and will look for corresponding setter, and throw an exception when not finding it.&lt;br /&gt;Defined as with a def, means this won't happen.&lt;br /&gt;Alternative is to set it in the transients static.&lt;br /&gt;&lt;br /&gt;e.g.&lt;br /&gt;static transients = [ "active" ]&lt;br /&gt;&lt;a href="http://grails.1312388.n4.nabble.com/Transient-properties-td1345135.html"&gt;http://grails.1312388.n4.nabble.com/Transient-properties-td1345135.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-4151382023172915503?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/4151382023172915503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=4151382023172915503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/4151382023172915503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/4151382023172915503'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/10/grails-hibernate-could-not-find-setter.html' title='Grails (hibernate) &quot;Could not find a setter for property in class&quot;'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-5662378166716396645</id><published>2011-10-08T19:14:00.002+01:00</published><updated>2011-10-09T09:18:18.594+01:00</updated><title type='text'>No Sql</title><content type='html'>This video is useful &lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=sh1YACOK_bo"&gt;http://www.youtube.com/watch?v=sh1YACOK_bo&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At a high level there are 4 cetegories of noSql Db's&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Key Value based e.g. Amazon Riak, Voldemort&lt;/div&gt;&lt;div&gt;Column based e.g. HBase, Bigtable. each row can have its own schema (semi structured)&lt;/div&gt;&lt;div&gt;Document Databases (e.g. couchDb, mongoDb).. Key Value based&lt;/div&gt;&lt;div&gt;Graph based: &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-5662378166716396645?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/5662378166716396645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=5662378166716396645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/5662378166716396645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/5662378166716396645'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/10/no-sql.html' title='No Sql'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-8469932718182493092</id><published>2011-09-25T22:03:00.001+01:00</published><updated>2011-09-25T22:03:51.629+01:00</updated><title type='text'>Configuring 2-way SSL with Oracle Service Bus</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255); "&gt;&lt;h2 style="display: block; font-weight: bold; font-size: 13pt; margin-top: 10pt; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; line-height: 19px; font-family: serif; color: rgb(79, 129, 189); "&gt;Configuring 2-way SSL with Oracle Service Bus&lt;/h2&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Must set up Identity and trust.&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Identity represents the server itself. This corresponds to the Servers private key. (Its public key is embedded in its certificate)&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Trust is for when weblogic is communicating with clients over 2-way SSL. It must store a list of certificates it trusts. The client must then supply one of these as part of the handshaking protocol.&lt;/p&gt;&lt;h3 style="font-size: 11pt; display: block; font-weight: bold; margin-top: 10pt; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; line-height: 17px; font-family: serif; color: rgb(79, 129, 189); "&gt;Server Side configuration (ie. For terminating 2 way SSL requests)&lt;/h3&gt;&lt;h4 style="display: block; font-weight: bold; margin-top: 10pt; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; line-height: 17px; font-size: 11pt; font-family: serif; color: rgb(79, 129, 189); font-style: italic; "&gt;Enable X509 as an Identity Asserter type&lt;/h4&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Error if not present:&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;b&gt;X.509 token identity assertion is not enabled in the security realm&lt;/b&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Goto Security/ myrealm/ Providers/ Authentication/ DefaultIdentityAsserter&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Add X509 to DefaultIdentityAsserter. (Note also that wsse.PasswordDigest is also present here for WS-Security UsernameToken. (Digest Replay Detection Enabled can be also be set here). Also to enable this you also must set “Enable Password Digests” in the &lt;span class="yiv1342650993bclast"&gt; DefaultAuthenticator.&lt;/span&gt;)&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Restart Server&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;img width="602" height="376" id="yiv1342650993_x0000_i1031" src="http://uk.mg6.mail.yahoo.com/ya/download?mid=1%5f194794%5fAE%2fci2IAAJwkTmo95AkVqw3hMkk&amp;amp;pid=2&amp;amp;fid=Inbox&amp;amp;inline=1" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/p&gt;&lt;h4 style="display: block; font-weight: bold; margin-top: 10pt; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; line-height: 17px; font-size: 11pt; font-family: serif; color: rgb(79, 129, 189); font-style: italic; "&gt;Next Step&lt;/h4&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Error&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;span class="yiv1342650993bea-portal-theme-taskcontent"&gt;&lt;b&gt;The X.509 username-mapper sub-plugin of the default identity asserter in not configured&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.0001pt; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;span style="font-size: 12pt; "&gt;HTTPS inbound endpoint &lt;i&gt;inboundEndpoint&lt;/i&gt; specifies CLIENT-CERT authentication, therefore the username mapper properties of the default identity asserter must be configured (this is required to support 2-way SSL)&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;b&gt;&lt;span style="font-size: 12pt; "&gt;Action&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;span style="font-size: 12pt; line-height: 18px; "&gt;Configure the username-mapper fields of the Default Identity Assertion provider in the security realm pages of the WebLogic Server console&lt;/span&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;h3 style="font-size: 11pt; display: block; font-weight: bold; margin-top: 10pt; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; line-height: 17px; font-family: serif; color: rgb(79, 129, 189); "&gt;Client&lt;/h3&gt;&lt;h2 style="display: block; font-weight: bold; font-size: 13pt; margin-top: 10pt; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; line-height: 19px; font-family: serif; color: rgb(79, 129, 189); "&gt;Configuring 2-way SSL with SoapUI (client)&lt;/h2&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;A lot of these settings are configured in the Global Preferences table, so cannot be saved per project.&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Firstly load the KeyStore (where the client certificate is stored) in the SSL tab of the Prferences.&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Note: Requires Client Authentication box is part of the Mock definitions, and is not required for a client configuration.&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;img width="602" height="376" id="yiv1342650993Picture_x0020_1" src="http://uk.mg6.mail.yahoo.com/ya/download?mid=1%5f194794%5fAE%2fci2IAAJwkTmo95AkVqw3hMkk&amp;amp;pid=3&amp;amp;fid=Inbox&amp;amp;inline=1" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;You may also need to configure a proxy (I did) if your client is on the external web, and you use a proxy to access that.&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;img width="602" height="376" id="yiv1342650993_x0000_i1029" src="http://uk.mg6.mail.yahoo.com/ya/download?mid=1%5f194794%5fAE%2fci2IAAJwkTmo95AkVqw3hMkk&amp;amp;pid=4&amp;amp;fid=Inbox&amp;amp;inline=1" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Keytool commands&lt;/p&gt;&lt;table class="yiv1342650993MsoTableLightList" border="1" cellspacing="0" cellpadding="0" width="690" style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: table; border-collapse: collapse; width: 517.4pt; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "&gt;&lt;tbody style="width: 688px; "&gt;&lt;tr style="display: table-row; vertical-align: inherit; height: 17.05pt; "&gt;&lt;td width="393" valign="top" style="display: table-cell; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; width: 294.55pt; border-top-style: solid; border-top-color: black; border-top-width: 1pt; border-left-style: solid; border-left-color: black; border-left-width: 1pt; border-bottom-style: none; border-bottom-width: initial; border-bottom-color: initial; border-right-style: none; border-right-width: initial; border-right-color: initial; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: black; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; height: 17.05pt; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p class="yiv1342650993MsoNormal" align="center" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; text-align: center; "&gt;&lt;span style="font-size: 10pt; line-height: 14px; color: white; "&gt;Command&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 12pt; line-height: 18px; color: white; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="297" valign="top" style="display: table-cell; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; width: 222.85pt; border-top-style: solid; border-top-color: black; border-top-width: 1pt; border-left-style: none; border-left-width: initial; border-left-color: initial; border-bottom-style: none; border-bottom-width: initial; border-bottom-color: initial; border-right-style: solid; border-right-color: black; border-right-width: 1pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: black; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; height: 17.05pt; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p class="yiv1342650993MsoNormal" align="center" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; text-align: center; "&gt;&lt;span style="font-size: 10pt; line-height: 14px; color: white; "&gt;Description&lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 18px; color: white; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="display: table-row; vertical-align: inherit; "&gt;&lt;td width="393" valign="top" style="display: table-cell; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; width: 294.55pt; border-top-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: black; border-bottom-color: black; border-left-color: black; border-top-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; border-right-style: none; border-right-width: initial; border-right-color: initial; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "&gt;&lt;a rel="nofollow" name="wp1196294" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;&lt;/td&gt;&lt;td width="297" valign="top" style="display: table-cell; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; width: 222.85pt; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-top-color: black; border-right-color: black; border-bottom-color: black; border-top-width: 1pt; border-right-width: 1pt; border-bottom-width: 1pt; border-left-style: none; border-left-width: initial; border-left-color: initial; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "&gt;&lt;a rel="nofollow" name="wp1196296" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="display: table-row; vertical-align: inherit; "&gt;&lt;td width="393" valign="top" style="display: table-cell; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; width: 294.55pt; border-top-style: none; border-right-style: none; border-bottom-style: none; border-width: initial; border-color: initial; border-left-style: solid; border-left-color: black; border-left-width: 1pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;a rel="nofollow" name="wp1196298" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;keytool -genkey -keystore keystorename -storepass keystorepassword&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 12pt; line-height: 18px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="297" valign="top" style="display: table-cell; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; width: 222.85pt; border-top-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-right-style: solid; border-right-color: black; border-right-width: 1pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;a rel="nofollow" name="wp1196300" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;Generates a new private key entry and self-signed digital certificate in a keystore. If the keystore does not exist, it is created.&lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 18px; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="display: table-row; vertical-align: inherit; "&gt;&lt;td width="393" valign="top" style="display: table-cell; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; width: 294.55pt; border-top-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: black; border-bottom-color: black; border-left-color: black; border-top-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; border-right-style: none; border-right-width: initial; border-right-color: initial; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;a rel="nofollow" name="wp1196302" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;keytool -import -alias aliasforprivatekey&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;br /&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;-file privatekeyfilename.pem&lt;/code&gt;&lt;br /&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;-keypass privatekeypassword&lt;/code&gt;&lt;br /&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;-keystore keystorename -storepass keystorepassword&lt;/code&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 12pt; line-height: 18px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="297" valign="top" style="display: table-cell; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; width: 222.85pt; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-top-color: black; border-right-color: black; border-bottom-color: black; border-top-width: 1pt; border-right-width: 1pt; border-bottom-width: 1pt; border-left-style: none; border-left-width: initial; border-left-color: initial; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;a rel="nofollow" name="wp1196304" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;Updates the self-signed digital certificate with one signed by a trusted CA.&lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 18px; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="display: table-row; vertical-align: inherit; "&gt;&lt;td width="393" valign="top" style="display: table-cell; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; width: 294.55pt; border-top-style: none; border-right-style: none; border-bottom-style: none; border-width: initial; border-color: initial; border-left-style: solid; border-left-color: black; border-left-width: 1pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;a rel="nofollow" name="wp1196306" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;keytool -import -alias aliasfortrustedca -trustcacerts -file trustedcafilename.pem -keystore keystorename -storepass keystorepassword&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 12pt; line-height: 18px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="297" valign="top" style="display: table-cell; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; width: 222.85pt; border-top-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-right-style: solid; border-right-color: black; border-right-width: 1pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;a rel="nofollow" name="wp1196308" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;Loads a trusted CA certificate into a keystore. If the keystore does not exist, it is created.&lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 18px; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="display: table-row; vertical-align: inherit; "&gt;&lt;td width="393" valign="top" style="display: table-cell; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; width: 294.55pt; border-top-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: black; border-bottom-color: black; border-left-color: black; border-top-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; border-right-style: none; border-right-width: initial; border-right-color: initial; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;a rel="nofollow" name="wp1196310" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;keytool -certreq -alias alias&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;br /&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;-sigalg&lt;/code&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;sigalg&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;br /&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;-file&lt;/code&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;certreq_file&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;br /&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;-keypass&lt;/code&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;privatekeypassword&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;br /&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;-storetype&lt;/code&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;keystoretype&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;br /&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;-keystore&lt;/code&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;keystorename&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;br /&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;-storepass&lt;/code&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;keystorepassword&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 12pt; line-height: 18px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="297" valign="top" style="display: table-cell; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; width: 222.85pt; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-top-color: black; border-right-color: black; border-bottom-color: black; border-top-width: 1pt; border-right-width: 1pt; border-bottom-width: 1pt; border-left-style: none; border-left-width: initial; border-left-color: initial; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;a rel="nofollow" name="wp1196312" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;Generates a Certificate Signing Request (CSR), using the PKCS#10 format, and a self-signed certificate with a private key.&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;a rel="nofollow" name="wp1196313" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;Stores the CSR in the specified&lt;/span&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;certreq_file&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;, and the certificate/private key pair as a key entry in the specified keystore under the specified alias.&lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 18px; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="display: table-row; vertical-align: inherit; "&gt;&lt;td width="393" valign="top" style="display: table-cell; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; width: 294.55pt; border-top-style: none; border-right-style: none; border-bottom-style: none; border-width: initial; border-color: initial; border-left-style: solid; border-left-color: black; border-left-width: 1pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;a rel="nofollow" name="wp1196315" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;keytool -list -keystore keystorename&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 12pt; line-height: 18px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="297" valign="top" style="display: table-cell; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; width: 222.85pt; border-top-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-right-style: solid; border-right-color: black; border-right-width: 1pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;a rel="nofollow" name="wp1196317" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;Displays what is in the keystore.&lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 18px; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="display: table-row; vertical-align: inherit; "&gt;&lt;td width="393" valign="top" style="display: table-cell; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; width: 294.55pt; border-top-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: black; border-bottom-color: black; border-left-color: black; border-top-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; border-right-style: none; border-right-width: initial; border-right-color: initial; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;a rel="nofollow" name="wp1196319" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;keytool -delete -keystore keystorename -storepass keystorepassword -alias privatekeyalias&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 12pt; line-height: 18px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="297" valign="top" style="display: table-cell; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; width: 222.85pt; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-top-color: black; border-right-color: black; border-bottom-color: black; border-top-width: 1pt; border-right-width: 1pt; border-bottom-width: 1pt; border-left-style: none; border-left-width: initial; border-left-color: initial; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;a rel="nofollow" name="wp1196321" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;Deletes the entry identified by the specified alias from the keystore.&lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 18px; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="display: table-row; vertical-align: inherit; "&gt;&lt;td width="393" valign="top" style="display: table-cell; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; width: 294.55pt; border-top-style: none; border-top-width: initial; border-top-color: initial; border-left-style: solid; border-left-color: black; border-left-width: 1pt; border-bottom-style: solid; border-bottom-color: black; border-bottom-width: 1pt; border-right-style: none; border-right-width: initial; border-right-color: initial; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;a rel="nofollow" name="wp1196323" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;keytool -help&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 12pt; line-height: 18px; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="297" valign="top" style="display: table-cell; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; width: 222.85pt; border-top-style: none; border-top-width: initial; border-top-color: initial; border-left-style: none; border-left-width: initial; border-left-color: initial; border-bottom-style: solid; border-bottom-color: black; border-bottom-width: 1pt; border-right-style: solid; border-right-color: black; border-right-width: 1pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;a rel="nofollow" name="wp1196325" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;&lt;span style="font-size: 10pt; line-height: 14px; "&gt;Provides online help for keytool.&lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 18px; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h2 style="display: block; font-weight: bold; font-size: 13pt; margin-top: 10pt; margin-right: 0cm; margin-bottom: 3pt; margin-left: 37.8pt; line-height: normal; font-family: serif; color: rgb(79, 129, 189); "&gt;&lt;a rel="nofollow" name="wp1190032" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;Initial Setup steps&lt;/h2&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;In order to enable outbound two way SSL (i.e. MW making a two way SSL call out to a client) we need to create a Service Key Provider&lt;/span&gt;&lt;/p&gt;&lt;h3 style="font-size: 11pt; display: block; font-weight: bold; margin-top: 10pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 36pt; line-height: normal; font-family: serif; color: rgb(79, 129, 189); "&gt;&lt;span class="yiv1342650993statusmessagewarning"&gt;Create a Service Key Provider&lt;/span&gt;&lt;/h3&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;To use a service key provider, you must configure a &lt;u&gt;PKI credential mapping provider&lt;/u&gt;.&lt;/p&gt;&lt;p class="yiv1342650993pbody" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;To use the PKI Credential Mapping provider, you need to:&lt;/p&gt;&lt;ol start="1" type="1" style="display: block; padding-left: 40px; margin-top: 1em; margin-right: 0px; margin-bottom: 0cm; margin-left: 0px; list-style-type: decimal; "&gt;&lt;li class="yiv1342650993MsoNormal" style="display: list-item; margin-top: 0cm; margin-right: 0cm; margin-bottom: 10pt; margin-left: 0cm; line-height: normal; font-size: 11pt; font-family: sans-serif; "&gt;&lt;a rel="nofollow" name="wp1205381" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;Configure keystores with appropriate keys and distribute the keystores on all machines in a WebLogic Server cluster. Setting up keystores is not a WebLogic Server function. For information about setting up keystores, see the &lt;span class="yiv1342650993chyperlink"&gt;&lt;a rel="nofollow" target="_blank" href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html" style="text-decoration: underline; color: blue; outline-style: none; outline-width: initial; outline-color: initial; "&gt;help for the Java keytool utility&lt;/a&gt;&lt;/span&gt; at http://java.sun.com/j2se/1.4.2/docs/tooldocs/solaris/keytool.html. See also&lt;a rel="nofollow" target="_blank" href="http://download.oracle.com/docs/cd/E11035_01/wls100/secmanage/identity_trust.html" style="text-decoration: underline; color: blue; outline-style: none; outline-width: initial; outline-color: initial; "&gt;Configuring Identity and Trust,&lt;/a&gt; for information about keystores and keys in WebLogic Server.&lt;/li&gt;&lt;li class="yiv1342650993MsoNormal" style="display: list-item; margin-top: 0cm; margin-right: 0cm; margin-bottom: 10pt; margin-left: 0cm; line-height: normal; font-size: 11pt; font-family: sans-serif; "&gt;&lt;a rel="nofollow" name="wp1205382" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;Configure a PKI Credential Mapping provider. A PKI Credential Mapping provider is not already configured in the default security realm (&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;span style="font-size: 10pt; "&gt;myrealm&lt;/span&gt;&lt;/code&gt;). See &lt;a rel="nofollow" target="_blank" href="http://download.oracle.com/docs/cd/E11035_01/wls100/secmanage/providers.html#wp1205083" style="text-decoration: underline; color: blue; outline-style: none; outline-width: initial; outline-color: initial; "&gt;PKI Credential Mapper Attributes&lt;/a&gt; and &lt;span class="yiv1342650993chyperlink"&gt;Configure Credential Mapping providers&lt;/span&gt; in the Administration Console online help.&lt;/li&gt;&lt;li class="yiv1342650993MsoNormal" style="display: list-item; margin-top: 0cm; margin-right: 0cm; margin-bottom: 10pt; margin-left: 0cm; line-height: normal; font-size: 11pt; font-family: sans-serif; "&gt;&lt;a rel="nofollow" name="wp1205106" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;/a&gt;Create credential mappings. See &lt;span class="yiv1342650993chyperlink"&gt;Create PKI Credential Mappings&lt;/span&gt; in the Administration Console online help.&lt;/li&gt;&lt;/ol&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;h4 style="display: block; font-weight: bold; margin-top: 10pt; margin-right: 0cm; margin-bottom: 3pt; margin-left: 43.2pt; line-height: normal; font-size: 11pt; font-family: serif; color: rgb(79, 129, 189); font-style: italic; "&gt;Create Java Keystore in Domain&lt;/h4&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;Create a Keystore. Import certificate (user identification certificate) into keystore.&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;See &lt;a rel="nofollow" target="_blank" href="http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/security/model.html#wp1089312" style="text-decoration: underline; color: blue; outline-style: none; outline-width: initial; outline-color: initial; "&gt;http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/security/model.html#wp1089312&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;(see step 6)&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;Configure each WebLogic Server instance to have access to its &lt;u&gt;own copy of each keystore&lt;/u&gt;. All entries referred to by the PKI credential mapper must exist in all keystores (same entry with the same alias).&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 36pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;May have to convert certificate to format understood by keytool&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 36pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;keytool -importkeystore -srckeystore pki\GTMSWebUser.pfx -srcstoretype pkcs12 -destkeystore  ./pkiKeystore&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 36pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;So I was able to directly import the pfx file containing the private key and certificate.&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;From OSB this was then accessible in the ServiceKey Provider. Not when selecting the Key, you must supply the private key password to access it (not the keystore password)&lt;span style="color: rgb(31, 73, 125); "&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;h4 style="display: block; font-weight: bold; margin-top: 10pt; margin-right: 0cm; margin-bottom: 3pt; margin-left: 43.2pt; line-height: normal; font-size: 11pt; font-family: serif; color: rgb(79, 129, 189); font-style: italic; "&gt;Create a PKI credential mapping Provider&lt;/h4&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;Got security/ myrealm/ providers/ CredentialMapping&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;Select New.&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;Select PKICredentialMapper&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;Supply a name (e.g. PkiCredentialMapper)&lt;/span&gt;&lt;/p&gt;&lt;h4 style="display: block; font-weight: bold; margin-top: 10pt; margin-right: 0cm; margin-bottom: 3pt; margin-left: 43.2pt; line-height: normal; font-size: 11pt; font-family: serif; color: rgb(79, 129, 189); font-style: italic; "&gt;Create Credential Mapping&lt;/h4&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;Got security/ myrealm/ providers/ CredentialMapping&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;Select New.&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;Protocol= https&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;remoteHost= web3.bgegtms.ie&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;PrincipleName = GTMS&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;CredentialType = Cert&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;h2 style="display: block; font-weight: bold; font-size: 13pt; margin-top: 10pt; margin-right: 0cm; margin-bottom: 3pt; margin-left: 37.8pt; line-height: normal; font-family: serif; color: rgb(79, 129, 189); "&gt;Create ServiceBus ServiceKeyProvider&lt;/h2&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoBodyText" style="margin-top: 2pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 10pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;h3 style="font-size: 11pt; display: block; font-weight: bold; margin-top: 10pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 36pt; line-height: normal; font-family: serif; color: rgb(79, 129, 189); "&gt;Configure a PKI Credential Mapping provider&lt;/h3&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;img border="0" width="601" height="277" id="yiv1342650993Picture_x0020_4" src="http://uk.mg6.mail.yahoo.com/ya/download?mid=1%5f194794%5fAE%2fci2IAAJwkTmo95AkVqw3hMkk&amp;amp;pid=5&amp;amp;fid=Inbox&amp;amp;inline=1" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Goto Providers./ CredentialMapping. Select New/ PKICredentialMapper&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Note a restart is required after this.&lt;/p&gt;&lt;h3 style="font-size: 11pt; display: block; font-weight: bold; margin-top: 10pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 36pt; line-height: normal; font-family: serif; color: rgb(79, 129, 189); "&gt;Create Credential Mappings&lt;/h3&gt;&lt;h3 style="font-size: 11pt; display: block; font-weight: bold; margin-top: 10pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 36pt; line-height: normal; font-family: serif; color: rgb(79, 129, 189); "&gt;Configure a PKI Credential Mapping provider&lt;/h3&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Not sure if this is needed?&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;img border="0" width="536" height="388" id="yiv1342650993Picture_x0020_5" src="http://uk.mg6.mail.yahoo.com/ya/download?mid=1%5f194794%5fAE%2fci2IAAJwkTmo95AkVqw3hMkk&amp;amp;pid=6&amp;amp;fid=Inbox&amp;amp;inline=1" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Restart server&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;h3 style="font-size: 11pt; display: block; font-weight: bold; margin-top: 10pt; margin-right: 0cm; margin-bottom: 2pt; margin-left: 36pt; line-height: normal; font-family: serif; color: rgb(79, 129, 189); "&gt;&lt;span class="yiv1342650993statusmessagewarning"&gt;PKI credential mapper provider&lt;/span&gt;&lt;/h3&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Create a new PKI Credential mapper in the console&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;img border="0" width="601" height="198" id="yiv1342650993Picture_x0020_6" src="http://uk.mg6.mail.yahoo.com/ya/download?mid=1%5f194794%5fAE%2fci2IAAJwkTmo95AkVqw3hMkk&amp;amp;pid=7&amp;amp;fid=Inbox&amp;amp;inline=1" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Click on new and create KeyStore&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;img border="0" width="601" height="314" id="yiv1342650993Picture_x0020_7" src="http://uk.mg6.mail.yahoo.com/ya/download?mid=1%5f194794%5fAE%2fci2IAAJwkTmo95AkVqw3hMkk&amp;amp;pid=8&amp;amp;fid=Inbox&amp;amp;inline=1" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;span class="yiv1342650993statusmessagewarning"&gt;There is no PKI credential mapper provider configured in your security realm. Service key provider management will be disabled. Configure a PKI credential mapper provider if you need service provider support. This is typically the case if you have Oracle Service Bus proxy services with web service security enabled or outbound 2-way SSL connections.&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1342650993MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-8469932718182493092?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/8469932718182493092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=8469932718182493092' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/8469932718182493092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/8469932718182493092'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/09/configuring-2-way-ssl-with-oracle.html' title='Configuring 2-way SSL with Oracle Service Bus'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-3325327097771635644</id><published>2011-08-19T21:36:00.000+01:00</published><updated>2011-08-19T21:38:19.216+01:00</updated><title type='text'>Ordered Map vs Sorted Map</title><content type='html'>This is obvious once you know it (isnt’ everything).&lt;br /&gt; &lt;br /&gt;A little bit of a rant at declining standards first.. (its ok, I’m not lamenting the youth of today, or society; its my own declining standards I’m ranting about)..  &lt;br /&gt; &lt;br /&gt;I feel that a lot of times I rely on google to give me a quick solution to a problem. There’s nothing inherently wrong with this. I imagine 95% of developers do it and certainly it leads to quicker solutions. One negative consequence of this is that I don’t get any depth of knowledge, just a quick link to a possible solution which I often can paste in to fulfil my needs. Little effort, quick result, but little return and learnt. In some ways this blog is an attempt to expand some of these topics just a little bit more, in order to get a better understanding of them, but it too has a bit of the copy and paste solution about it.&lt;br /&gt; &lt;br /&gt;Of course this only works if you 1/ Ask the correct question, and 2/ form your question correctly....  So today (possibly as a result of years of quick solution hunting, and no learning) I forgot some of the  basics, and didn’t ask the correct question.&lt;br /&gt; &lt;br /&gt;I had a Map instance where I wanted to control the sequencing of the keys. I knew this class existed in the java.util Collections classes (or failing that the commons collections), so I was frantically searching the web for a Sorted Map.&lt;br /&gt; &lt;br /&gt;I found java.util.SortedMap. Perfect ...&lt;br /&gt;I read the javadoc description and thought.. this isn’t what I want... It sorts on natural Order, or based on applying a custome comparator. After much head scratching about how I would create a custom comparator to order my Map in the order which it was created, I finally had my Eureka moment... I didn’t want a Sorted Map at all&lt;br /&gt; &lt;br /&gt;Of course what I really wanted was java.util.LinikedHashMap. This stores the Keys within an internal LinkedList structure that maintains the order of the elements as they are added. Quite different to a sorted List which dynamically sorts the keys based on a algorithm (either natural or custom).&lt;br /&gt; &lt;br /&gt;So todays lesson is simple. Learn the basic terminology before consulting the almighty google. And LinkedHashMap is quite different to SortedMap&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-3325327097771635644?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/3325327097771635644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=3325327097771635644' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/3325327097771635644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/3325327097771635644'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/08/ordered-map-vs-sorted-map.html' title='Ordered Map vs Sorted Map'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-6390586803286470828</id><published>2011-08-14T20:27:00.002+01:00</published><updated>2011-08-15T21:58:09.814+01:00</updated><title type='text'>Gson inheritance</title><content type='html'>This article helped fix a problem I had with inheritance, and Gson (JSON api)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.velvetcache.org/2011/01/24/gson-inheritance-issues"&gt;http://www.velvetcache.org/2011/01/24/gson-inheritance-issues&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;Basically, key is to ensure that you specify the field values as private fields, and assign their values in the constructor (not by creating a new private field with an updated value)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-6390586803286470828?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/6390586803286470828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=6390586803286470828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6390586803286470828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6390586803286470828'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/08/gson-inheritance.html' title='Gson inheritance'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-376963232955381450</id><published>2011-08-01T17:29:00.001+01:00</published><updated>2011-08-01T17:29:43.064+01:00</updated><title type='text'>jconsole for high level profiling</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;&lt;p class="yiv1294997682MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;I’ve mentioned it obliquely before but its time I highlighted the free profiling tool jconsole.&lt;/p&gt;&lt;p class="yiv1294997682MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1294997682MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Always good to infrequently check your application especially if you are getting OutOfMemory errors.&lt;/p&gt;&lt;p class="yiv1294997682MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1294997682MsoNormal" id="yui_3_2_0_5_13115383510862058" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;It also doubles up as an MBean browser&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-376963232955381450?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/376963232955381450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=376963232955381450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/376963232955381450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/376963232955381450'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/08/jconsole-for-high-level-profiling.html' title='jconsole for high level profiling'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-9136942690761958854</id><published>2011-07-23T12:04:00.000+01:00</published><updated>2011-07-23T12:08:18.821+01:00</updated><title type='text'></title><content type='html'>Wget (or curl) can be a magic command at the right times.&lt;br /&gt;&lt;br /&gt;Heres some options I’ve used to retrieve a directory from svn&lt;br /&gt;&lt;br /&gt;I wanted to download the everything below&lt;br /&gt;https://remotehost/svn/Base/Streams/1.3/Projects/ProjectName/trunk/osb/Interface/Resources&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;wget -r --no-parent -nH --cut-dirs=10 --no-check-certificate  --http-user=user --http-password=password  https://remotehost/svn/Base/Streams/1.3/Projects/ProjectName/trunk/osb/Interface/Resources&lt;br /&gt;&lt;/span&gt;or&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;-r = recursive&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;--no-parent stops it looping back to parent directory should any references point there&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;-nH. Ignore the host when saving any resources (removes remotehost directory)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;--cut-dirs=10. Removes 10 directories when saving resources. This removes /svn/Base/Streams/1.3/Projects/ProjectName/trunk/osb/Interface/Resources, and will only save any subsequent directories and filenames.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;--no-check-certificate, ignores any https cert problems. Handy for local sites with untrusted certs.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;-m = mirror. Handy replacement for, -N -r -l inf --no-remove-listing&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;-Rindex.html : do not download index.html pages&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;--http-user, --http-password specify some HTTP basic auth if required&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;Proxy&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;--proxy-user=, --proxy-password= specify some proxy  auth if required. The actual proxy itself&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;To specify the proxy. Yo must set environment variables&lt;br /&gt;e.g. export http_proxy=http://192.168.10.250:80&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;variables are&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;http_proxy&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;https_proxy&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;If set, the http_proxy and https_proxy variables should contain the urls of the proxies for http and https connections respectively.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;ftp_proxy&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;This variable should contain the url of the proxy for ftp connections. It is quite common that http_proxy and ftp_proxy are set to the same url.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;no_proxy&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;This variable should contain a comma-separated list of domain extensions proxy should not be used for. For instance, if the value of no_proxy is ‘.mysite.com’, proxy will not be used to retrieve documents from mysite.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-9136942690761958854?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/9136942690761958854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=9136942690761958854' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/9136942690761958854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/9136942690761958854'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/07/wget-or-curl-can-be-magic-command-at.html' title=''/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-8804391012243663941</id><published>2011-07-18T20:58:00.002+01:00</published><updated>2011-07-18T21:32:41.695+01:00</updated><title type='text'>JSTL Gotcha</title><content type='html'>Why doesn’t this work?&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;%@ taglib uri="http://stripes.sourceforge.net/stripes.tld" prefix="stripes" %&amp;gt;&lt;br /&gt;&amp;lt;%@ taglib uri="http://www.stripes-stuff.org/security.tld" prefix="security" %&amp;gt;&lt;br /&gt;&amp;lt;%@ taglib uri="http://stripes.bge.ie/StripesExtension.tld" prefix="stripes-extension" %&amp;gt;&lt;br /&gt;&amp;lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %&amp;gt;&lt;br /&gt;&amp;lt;%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %&amp;gt;&lt;br /&gt;&amp;lt;%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;c:set var="a" value="A"&amp;gt;&amp;lt;/c:set&amp;gt;&lt;br /&gt;&amp;lt;c:set var="b" value="B"&amp;gt;&amp;lt;/c:set&amp;gt;&lt;br /&gt;&amp;lt;c:set var="c" value="C"&amp;gt;&amp;lt;/c:set&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;c:if test="${a=='A' }"&amp;gt;&lt;br /&gt;  a= A,&lt;br /&gt;  &amp;lt;c:if test="${b=='B' } "&amp;gt;&lt;br /&gt;    b=B&lt;br /&gt;    &amp;lt;c:if test="${c=='C' }"&amp;gt;&lt;br /&gt;    c=C&lt;br /&gt;    &amp;lt;/c:if&amp;gt;&lt;br /&gt;  &amp;lt;/c:if&amp;gt;&lt;br /&gt;&amp;lt;/c:if&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The answer is the space in the test B jstl tag.&lt;br /&gt;&lt;br /&gt;Another few hours of my life wasted... &lt;br /&gt;Also another time waster... Beware of &amp;lt;div id=”myDiv” class=”myDiv” /&amp;gt;&lt;br /&gt;&lt;br /&gt;Firefox didn’t like the autoclose tag. I needed to explicitly add a &amp;lt;/div&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-8804391012243663941?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/8804391012243663941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=8804391012243663941' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/8804391012243663941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/8804391012243663941'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/07/jstl-gotcha.html' title='JSTL Gotcha'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-5256083929273357305</id><published>2011-07-18T20:25:00.002+01:00</published><updated>2011-07-18T20:41:33.706+01:00</updated><title type='text'>SoapUi Scripting</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;&lt;p class="yiv194676122MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Heres a simple project with some scripting in it.&lt;/p&gt;&lt;p class="yiv194676122MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv194676122MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Key points are.&lt;/p&gt;&lt;p class="yiv194676122MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv194676122MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;1/ Any output from script gets redirected to the script log. This is visible as a tab at the bottom of the main pane.&lt;/p&gt;&lt;p class="yiv194676122MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;Note. This tab only appears after a script generates a log message.&lt;/p&gt;&lt;p class="yiv194676122MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv194676122MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;2/  Examples are online at. This includes writing request to file, and dynamically generating responses&lt;/p&gt;&lt;p class="yiv194676122MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv194676122MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;a rel="nofollow" target="_blank" href="http://www.soapui.org/Service-Mocking/creating-dynamic-mockservices.html" style="text-decoration: underline; color: blue; outline-style: none; outline-width: initial; outline-color: initial; "&gt;http://www.soapui.org/Service-Mocking/creating-dynamic-mockservices.html&lt;/a&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sample project&lt;br /&gt;&lt;a href="http://www.opendrive.com/files/34748467_7IFfD/salaryTest-soapui-project.xml" alt="salaryTest-soapui-project.xml"&gt;salaryTest-soapui-project.xml&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-5256083929273357305?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/5256083929273357305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=5256083929273357305' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/5256083929273357305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/5256083929273357305'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/07/soapui-scripting.html' title='SoapUi Scripting'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-5206070649210607680</id><published>2011-06-30T11:40:00.002+01:00</published><updated>2011-06-30T11:40:40.940+01:00</updated><title type='text'>Weblogic Security Realm WLST import and export</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;This is just a reminder for myself, the code is not mine but can be found at multiple places on the web so I have no idea who the initial owner is and who to give credits.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;&lt;p class="yiv534447395MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;I took it from &lt;a rel="nofollow" target="_blank" href="http://icanjango.appspot.com/jvzoggel.blogspot.com/2011/06/weblogic-security-realm-wlst-import-and.html" style="text-decoration: underline; color: blue; outline-style: none; outline-width: initial; outline-color: initial; "&gt;http://icanjango.appspot.com/jvzoggel.blogspot.com/2011/06/weblogic-security-realm-wlst-import-and.html&lt;/a&gt;&lt;/p&gt;&lt;p class="yiv534447395MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;export configuration:&lt;/b&gt;&lt;/p&gt;&lt;p class="yiv534447395MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;span style="font-size: 10pt; "&gt;java weblogic.WLST&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="yiv534447395MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;span style="font-size: 10pt; "&gt;connect('weblogic','weblogic', '&lt;a rel="nofollow" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;t3://somedomain:7001&lt;/a&gt;')&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="yiv534447395MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;span style="font-size: 10pt; "&gt;domainRuntime()&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="yiv534447395MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;span style="font-size: 10pt; "&gt;cd('/DomainServices/DomainRuntimeService/DomainConfiguration/FirstDomain/SecurityConfiguration/FirstDomain/DefaultRealm/myrealm/AuthenticationProviders/DefaultAuthenticator')&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="yiv534447395MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;span style="font-size: 10pt; "&gt;cmo.exportData('DefaultAtn','/tmp/export.ldif', Properties())&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;import configuration:&lt;/b&gt;&lt;/p&gt;&lt;p class="yiv534447395MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;span style="font-size: 10pt; "&gt;java weblogic.WLST&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="yiv534447395MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;span style="font-size: 10pt; "&gt;connect('weblogic','weblogic', '&lt;a rel="nofollow" style="text-decoration: underline; color: rgb(35, 71, 134); outline-style: none; outline-width: initial; outline-color: initial; "&gt;t3://someotherdomain:7001&lt;/a&gt;')&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="yiv534447395MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;span style="font-size: 10pt; "&gt;domainRuntime()&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="yiv534447395MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;span style="font-size: 10pt; "&gt;cd('/DomainServices/DomainRuntimeService/DomainConfiguration/SecondDomain/SecurityConfiguration/SecondDomain/DefaultRealm/myrealm/AuthenticationProviders/DefaultAuthenticator')&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="yiv534447395MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;code style="display: block; font-family: 'Courier New'; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; white-space: normal; "&gt;&lt;span style="font-size: 10pt; "&gt;cmo.importData('DefaultAtn','/tmp/export.ldif', Properties())&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-5206070649210607680?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/5206070649210607680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=5206070649210607680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/5206070649210607680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/5206070649210607680'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/06/weblogic-security-realm-wlst-import-and.html' title='Weblogic Security Realm WLST import and export'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-2857775782221853475</id><published>2011-06-16T07:46:00.001+01:00</published><updated>2011-06-16T07:50:33.998+01:00</updated><title type='text'>Css Resources</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;&lt;a rel="nofollow" target="_blank" href="http://www.netdreams.co.uk/index.php/blog/2010/02/18/free-admin-skin-available-for-download/" id="yui_3_2_0_3_13080341694491314" style="text-decoration: underline; color: blue; outline-style: none; outline-width: initial; outline-color: initial; "&gt;http://www.netdreams.co.uk/index.php/blog/2010/02/18/free-admin-skin-available-for-download/&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-2857775782221853475?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/2857775782221853475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=2857775782221853475' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/2857775782221853475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/2857775782221853475'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/06/css-resources.html' title='Css Resources'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-6195890557909741523</id><published>2011-04-30T22:46:00.001+01:00</published><updated>2011-04-30T22:48:06.971+01:00</updated><title type='text'>Weblogic transactions</title><content type='html'>&lt;b&gt;Weblogic transactions&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://download.oracle.com/docs/cd/E12840_01/wls/docs103/jta/trxman.html#wp1052600"&gt;http://download.oracle.com/docs/cd/E12840_01/wls/docs103/jta/trxman.html#wp1052600&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Handling Heuristic Completions&lt;/b&gt;&lt;br /&gt;&lt;u&gt;Heuristic error&lt;/u&gt;&lt;br /&gt;After the abandon transaction timer expires, no further attempt is made to resolve the transaction with any resources that are unavailable or unable to acknowledge the transaction outcome. If the transaction is in a prepared state before being abandoned, the transaction manager will roll back the transaction to release any locks held on behalf of the abandoned transaction and will write an heuristic error to the server log.&lt;br /&gt;A heuristic completion (or heuristic decision) occurs when a resource makes a unilateral decision during the completion stage of a distributed transaction to commit or rollback updates. This can leave distributed data in an indeterminate state. Network failures or resource timeouts are possible causes for heuristic completion. In the event of an heuristic completion, one of the following heuristic outcome exceptions may be thrown:&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;div&gt;&lt;b&gt;HeuristicRollback&lt;/b&gt;—one resource participating in a transaction decided to autonomously rollback its work, even though it agreed to prepare itself and wait for a commit decision. If the Transaction Manager decided to commit the transaction, the resource's heuristic rollback decision was incorrect, and might lead to an inconsistent outcome since other branches of the transaction were committed.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;div&gt;&lt;b&gt;HeuristicCommit&lt;/b&gt;—one resource participating in a transaction decided to autonomously commit its work, even though it agreed to prepare itself and wait for a commit decision. If the Transaction Manager decided to rollback the transaction, the resource's heuristic commit decision was incorrect, and might lead to an inconsistent outcome since other branches of the transaction were rolled back.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;div&gt;&lt;b&gt;HeuristicMixed&lt;/b&gt;—the Transaction Manager is aware that a transaction resulted in a mixed outcome, where some participating resources committed and some rolled back. The underlying cause was most likely heuristic rollback or heuristic commit decisions made by one or more of the participating resources.&lt;div&gt;&lt;br /&gt;&lt;b&gt;HeuristicHazard&lt;/b&gt;—the Transaction Manager is aware that a transaction might have resulted in a mixed outcome, where some participating resources committed and some rolled back. But system or resource failures make it impossible to know for sure whether a Heuristic Mixed outcome definitely occurred. The underlying cause was most likely heuristic rollback or heuristic commit decisions made by one or more of the participating resources.&lt;br /&gt;When an heuristic completion occurs, a message is written to the server log. Refer to your database vendor documentation for instructions on resolving heuristic completions.&lt;br /&gt;Some resource managers save context information for heuristic completions. This information can be helpful in resolving resource manager data inconsistencies. If the ForgetHeuristics attribute is selected (set to true) on the JTA panel of the WebLogic Console, this information is removed after an heuristic completion. When using a resource manager that saves context information, you may want to set the ForgetHeuristics attribute to false.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-6195890557909741523?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/6195890557909741523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=6195890557909741523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6195890557909741523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6195890557909741523'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/04/weblogic-transactions.html' title='Weblogic transactions'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-5979482713096879822</id><published>2011-04-29T20:05:00.004+01:00</published><updated>2011-09-25T22:03:25.177+01:00</updated><title type='text'>SSL</title><content type='html'>&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;&lt;span class="Apple-style-span" style="color: rgb(69, 69, 69); "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;These are the steps I followed. This was a straightforward task to configure apache to accept HTTPS traffic. Further enhancements such as forcing HTTPS only, or validating client certificates were not required.&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt; &lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;This article is quite good&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;&lt;a rel="nofollow" target="_blank" href="http://articles.sitepoint.com/article/securing-apache-2-server-ssl" style="text-decoration: underline; color: blue; outline-style: none; outline-width: initial; outline-color: initial; "&gt;http://articles.sitepoint.com/article/securing-apache-2-server-ssl&lt;/a&gt;&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt; &lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); "&gt;&lt;span style="color: rgb(31, 73, 125); "&gt;If on linux then install mod_ssl. (&lt;a rel="nofollow" target="_blank" href="http://www.cyberciti.biz/faq/rhel-apache-httpd-mod-ssl-tutorial/" style="text-decoration: underline; color: blue; outline-style: none; outline-width: initial; outline-color: initial; "&gt;http://www.cyberciti.biz/faq/rhel-apache-httpd-mod-ssl-tutorial/&lt;/a&gt; )&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); "&gt;&lt;span style="color: rgb(31, 73, 125); "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); "&gt;&lt;span style="color: rgb(31, 73, 125); "&gt;yum install mod_ssl ...&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); "&gt;&lt;span style="color: rgb(31, 73, 125); "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); "&gt;&lt;span style="color: rgb(31, 73, 125); "&gt;Also &lt;a rel="nofollow" target="_blank" href="http://www.csrparser.com/" style="text-decoration: underline; color: blue; outline-style: none; outline-width: initial; outline-color: initial; "&gt;http://www.csrparser.com/&lt;/a&gt; is handy for checking any old CSRs&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); "&gt;&lt;span style="color: rgb(31, 73, 125); "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); "&gt;&lt;span style="color: rgb(31, 73, 125); "&gt;Setting up certs etc.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt; &lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;&lt;b&gt;generate a certificate.&lt;/b&gt;&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt; &lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;PreRequisite:&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;To do this you need a Certification Authority, CA, (openssl to DIY, or public CA). See links above&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt; &lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;1/ Generate CSR (Certificate Signing Request)&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;Multiple ways to do this. OpenSSL or Keytool.&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;For openssl using defaults you can simply do&lt;/p&gt;&lt;pre style="display: block; font-family: 'Courier New'; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; white-space: pre; font-size: 10pt; color: rgb(69, 69, 69); "&gt;&lt;span style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: silver; background-position: initial initial; background-repeat: initial initial; "&gt;openssl req -new&lt;/span&gt;&lt;/pre&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt; &lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;2/ Generate certificate (using CA)&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt; &lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;3/ Install certificate in Apache (as root)&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;4/ Edit ssl.conf file (equivalent to  httpd.conf). Configure any VirtualHosts you require, and assign them the requisite keys and certs, e.g.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(17, 17, 17); font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 14px; line-height: 22px; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class="ini" style="padding-top: 0.667em; padding-right: 0.917em; padding-bottom: 0.667em; padding-left: 0.917em; margin-top: 0px; margin-right: 0px; margin-bottom: 1.833em; margin-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(238, 238, 238); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(221, 221, 221); border-right-color: rgb(221, 221, 221); border-bottom-color: rgb(221, 221, 221); border-left-color: rgb(221, 221, 221); overflow-x: auto; overflow-y: auto; clear: both; font-family: Consolas, 'Andale Mono', Monaco, Courier, 'Courier New', Verdana, sans-serif; font-size: 0.857em; line-height: 1.5em; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&amp;lt;VirtualHost www.nixcraft.com:&amp;gt; &lt;br /&gt;SSLEngine On &lt;br /&gt;SSLCertificateFile /etc/pki/tls/http/apachecert.pem &lt;br /&gt;SSLCertificateKeyFile /etc/pki/tls/http/apachekey.pem &lt;br /&gt;SSLProtocol All -SSLv2 &lt;br /&gt;SSLCipherSuite HIGH:MEDIUM:!aNULL:+MD5 &lt;br /&gt;DocumentRoot /var/www/html/ssl&lt;br /&gt;ServerName www.nixcraft.com&lt;br /&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1211685203MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;Create CA private Key (used for generating CSR’s)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;openssl genrsa –aes256 -out domainname.com.key 1024&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;In general generate a private key per domain&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;Create Self Signed CA cert (Also generates private Key for CA)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;openssl req -new -x509 -extensions v3_ca -keyout ./private/cakey.pem -out cacert.pem -days 3650&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;Create Self signed CA using existing private key&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;openssl req -new -x509 -extensions v3_ca -key privateKey.pem  -out cacert.pem -days 3650&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;This command demonstrates the how commands in openssl combine functionality&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;Req command allows switch to x509&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;b&gt;&lt;span style="font-size: 12pt; "&gt;Keystore&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;span style="font-size: 12pt; "&gt;The default locations of the of the &lt;/span&gt;&lt;span style="font-size: 10pt; "&gt;keystore&lt;/span&gt;&lt;span style="font-size: 12pt; "&gt; files is %JAVA_HOME%/jre/security/.keystore&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="yiv667283225MsoNormal" style="margin-top: 0px; margin-right: 0cm; margin-bottom: 0px; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; font-size: 12pt; font-family: serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;span style="font-size: 12pt; "&gt;To include trusted certs from the keystore in a java client you must add the following&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;Java -Djavax.net.ssl.trustStore=...&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;i&gt;Problems&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;div&gt;&lt;b&gt; Unsupported OID in the AlgorithmIdentifier&lt;/b&gt; &lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&amp;lt;ms_osb1&amp;gt; &amp;lt;[ACTIVE] ExecuteThread: '13' for queue: 'weblogic.kernel.Default (self-tuning)'&amp;gt; &amp;lt;&amp;lt;WLS Kernel&amp;gt;&amp;gt; &amp;lt;&amp;gt; &amp;lt;&amp;gt; &amp;lt;1315908488277&amp;gt; &amp;lt;BEA-090898&amp;gt; &amp;lt;Ignoring the trusted CA certificate "CN=T-TeleSec GlobalRoot Class 3,OU=T-Systems Trust Center,O=T-Systems Enterprise Services GmbH,C=DE". The loading of the trusted certificate list raised a certificate parsing exception PKIX: Unsupported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11.&amp;gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;br /&gt;&lt;a rel="nofollow" target="_blank" href="http://java.sun.com/javase/6/webnotes/6u13.html" style="text-decoration: underline; color: blue; outline-style: none; outline-width: initial; outline-color: initial; "&gt;http://java.sun.com/javase/6/webnotes/6u13.html&lt;/a&gt;&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;I was doing some work with 2-way SSL, and seeing the following error in my weblogic (OSB) logs.&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;As it happens this is a problem with JDK 1.6_013. They included a non compatible CA cert in the keystore.&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;keytool -delete -keystore $JAVA_HOME\jre\lib\security\cacerts -alias ttelesecglobalrootclass2ca -keystorepass changeit&lt;br /&gt;keytool -delete -keystore $JAVA_HOME\jre\lib\security\cacerts -alias ttelesecglobalrootclass3ca -keystorepass changeit&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt;&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt;&lt;b&gt;How do I remove a passphrase from a key?&lt;/b&gt;&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt;Perhaps you’ve grown tired of typing your passphrase every time your secure daemon starts. You can decrypt your key, removing the passphrase requirement, using the rsa or dsa option, depending on the signature algorithm you chose when creating your private key.&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt;If you created an RSA key and it is stored in a standalone file called key.pem, then here’s how to output a decrypted version of the same key to a file called newkey.pem.&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt;# you'll be prompted for your passphrase one last time&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt;openssl rsa -in key.pem -out newkey.pem&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt;Often, you’ll have your private key and public certificate stored in the same file. If they are stored in a file called mycert.pem, you can construct a decrypted version called newcert.pem in two steps.&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt;# you'll need to type your passphrase once more&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt;openssl rsa -in mycert.pem -out newcert.pem&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt;openssl x509 -in mycert.pem &amp;gt;&amp;gt;newcert.pem&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt; &lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt; from&lt;/p&gt;&lt;p class="yiv240870782MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; "&gt;&lt;a href="http://www.madboa.com/geek/openssl/#key-removepass"&gt;http://www.madboa.com/geek/openssl/#key-removepass&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-5979482713096879822?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/5979482713096879822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=5979482713096879822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/5979482713096879822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/5979482713096879822'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/04/ssl.html' title='SSL'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-5866472693069426108</id><published>2011-04-12T21:22:00.001+01:00</published><updated>2011-04-12T21:22:52.314+01:00</updated><title type='text'>Hudson and Ant</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(69, 69, 69); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;&lt;p class="yiv1258275232MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;The following error was blocking all my Hudson builds&lt;/p&gt;&lt;pre style="display: block; font-family: 'Courier New'; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; white-space: pre; font-size: 10pt; "&gt;UNC paths are not supported.  Defaulting to Windows directory.&lt;/pre&gt;&lt;p class="yiv1258275232MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;&lt;span style="color: rgb(31, 73, 125); "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="yiv1258275232MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;This was occurring after checkout, just as it starts to try and build&lt;/p&gt;&lt;p class="yiv1258275232MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt; &lt;/p&gt;&lt;p class="yiv1258275232MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;The problem was that I was building on a network drive, and this was causing problems. Solution is&lt;/p&gt;&lt;p class="yiv1258275232MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;1/ to map network drive to a lettered drive&lt;/p&gt;&lt;pre style="display: block; font-family: 'Courier New'; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; white-space: pre; font-size: 10pt; "&gt;&lt;span style="font-size: 11pt; "&gt;2/ Set Hudson_Home to point to new directory.&lt;/span&gt;&lt;b&gt;&lt;i&gt;&lt;span style="color: rgb(31, 73, 125); "&gt; &lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style="font-size: 11pt; "&gt;(&lt;/span&gt;export CATALINA_OPTS="-DHUDSON_HOME=/path/to/hudson_home/ -Xmx512m")&lt;/pre&gt;&lt;p class="yiv1258275232MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: block; line-height: normal; "&gt;3/ Restart&lt;/p&gt;&lt;pre style="display: block; font-family: 'Courier New'; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; white-space: pre; font-size: 10pt; "&gt;&lt;span style="color: rgb(31, 73, 125); "&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;pre style="display: block; font-family: 'Courier New'; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; white-space: pre; font-size: 10pt; "&gt;At revision 11699&lt;/pre&gt;&lt;pre style="display: block; font-family: 'Courier New'; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; white-space: pre; font-size: 10pt; "&gt;no change for &lt;a rel="nofollow" target="_blank" href="https://svnserver/svn/AdminToolsWeb" style="text-decoration: underline; color: blue; outline-style: none; outline-width: initial; outline-color: initial; "&gt;https://svnServer/svn/AdminToolsWeb&lt;/a&gt; since the previous build&lt;/pre&gt;&lt;pre style="display: block; font-family: 'Courier New'; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; white-space: pre; font-size: 10pt; "&gt;[workspace] $ cmd /c call "F:\My Documents\apps\apache-tomcat-7.0.4\temp\hudson6361.bat"&lt;/pre&gt;&lt;pre style="display: block; font-family: 'Courier New'; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; white-space: pre; font-size: 10pt; "&gt;'\\c\USERS_HOME\khyland\.hudson\jobs\WAT\workspace'&lt;/pre&gt;&lt;pre style="display: block; font-family: 'Courier New'; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; white-space: pre; font-size: 10pt; "&gt;CMD.EXE was started with the above path as the current directory.&lt;/pre&gt;&lt;pre style="display: block; font-family: 'Courier New'; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; white-space: pre; font-size: 10pt; "&gt;UNC paths are not supported.  Defaulting to Windows directory.&lt;/pre&gt;&lt;pre style="display: block; font-family: 'Courier New'; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; white-space: pre; font-size: 10pt; "&gt;  &lt;/pre&gt;&lt;pre style="display: block; font-family: 'Courier New'; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; white-space: pre; font-size: 10pt; "&gt;C:\WINDOWS&amp;gt;f:\\apps\\ant.bat clean package &lt;/pre&gt;&lt;pre style="display: block; font-family: 'Courier New'; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; white-space: pre; font-size: 10pt; "&gt;Buildfile: build.xml does not exist!&lt;/pre&gt;&lt;pre style="display: block; font-family: 'Courier New'; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; white-space: pre; font-size: 10pt; "&gt;Build failed&lt;/pre&gt;&lt;pre style="display: block; font-family: 'Courier New'; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; white-space: pre; font-size: 10pt; "&gt;Finished: FAILURE&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-5866472693069426108?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/5866472693069426108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=5866472693069426108' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/5866472693069426108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/5866472693069426108'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/04/hudson-and-ant.html' title='Hudson and Ant'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-1946736034894071021</id><published>2011-03-26T07:36:00.001Z</published><updated>2011-03-26T07:36:59.222Z</updated><title type='text'>Windows Batch files</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;div class="WordSection1"&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/oldnewthing/archive/2005/01/28/362565.aspx" style="color: blue; text-decoration: underline; "&gt;http://blogs.msdn.com/b/oldnewthing/archive/2005/01/28/362565.aspx&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Good article.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Summary&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;%~dp0 = directory current resource is in. Useful for loading dependencies relative to batch file.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;%CD% = current working directory. (Possible different from %~dp0)&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt; &lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;e.g.&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;dir¬&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;    -bin&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;    -lib&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt; &lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;If batch file is in bin and includes artifacts in lib, it needs to be able to access them regardless of where cwd is&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-1946736034894071021?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/1946736034894071021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=1946736034894071021' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/1946736034894071021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/1946736034894071021'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/03/windows-batch-files.html' title='Windows Batch files'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-3449581748987554538</id><published>2011-03-22T22:40:00.001Z</published><updated>2011-03-22T22:40:44.869Z</updated><title type='text'>mvn quickie</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;div class="WordSection1"&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Mvn command for downloading external sources and including them in eclipse.. (handy for debugging)&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;mvn eclipse:clean eclipse:eclipse -DdownloadSources&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;div&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-3449581748987554538?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/3449581748987554538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=3449581748987554538' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/3449581748987554538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/3449581748987554538'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/03/mvn-quickie.html' title='mvn quickie'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-1378936913865911435</id><published>2011-03-21T21:25:00.002Z</published><updated>2011-03-21T21:30:20.285Z</updated><title type='text'>Transparent divs, centering CSS</title><content type='html'>&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: sans-serif; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;b&gt;Transparent Div&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;filter: alpha(opacity=55);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;-moz-opacity: .55;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;background-color:#AAA;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;opacity: 0.55;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: sans-serif; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: sans-serif; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;b&gt;Transparent floating div&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: sans-serif; "&gt;&lt;span class="Apple-style-span"  &gt;Note we had a problem getting a background image to display on div&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: sans-serif; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;div#overlay {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;filter: alpha(opacity=55);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;-moz-opacity: .55;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;background-color:#AAA;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;opacity: 0.55;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;position:absolute;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;top:200;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;left:100;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;width: 500px;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;height: 260px;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;z-index:1;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: sans-serif; "&gt;&lt;span class="Apple-style-span"  &gt;Finally to make an image centered in div (absolutely&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: sans-serif; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;div#overlay img{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;margin: 120px;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;top: 400px;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: sans-serif; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;b&gt;HTML&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;&amp;lt;div id="overlay"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;&amp;lt;img src="${ctx}/img/wait30.gif" /&gt; &amp;lt;div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;JQuery Centre, even when scrolling&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;jQuery.fn.center = function () {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;this.css("position","absolute");&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;this.css("top", ( $(window).height() - this.height() ) / 2+$(window).scrollTop() + "px");&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;this.css("left", ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + "px");&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;return this;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: sans-serif; "&gt;&lt;span class="Apple-style-span"  &gt;or&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;jQuery.fn.center = function () {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;this.css("position","absolute");&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;this.css("top", ( $(window).height() - this.outerHeight() ) / 2+$(window).scrollTop() + "px");&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;this.css("left", ( $(window).width() - this.outerWidth() ) / 2+$(window).scrollLeft() + "px");&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;return this;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" &gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: sans-serif; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: sans-serif; "&gt;&lt;span class="Apple-style-span"  &gt;then user jQuery(element).center(); &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: sans-serif; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;a href="http://stackoverflow.com/questions/210717/what-is-the-best-way-to-center-a-div-on-the-screen-using-jquery"&gt;http://stackoverflow.com/questions/210717/what-is-the-best-way-to-center-a-div-on-the-screen-using-jquery&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: sans-serif; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-1378936913865911435?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/1378936913865911435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=1378936913865911435' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/1378936913865911435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/1378936913865911435'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/03/transparent-divs-centering-css.html' title='Transparent divs, centering CSS'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-745176641730427854</id><published>2011-03-16T22:06:00.001Z</published><updated>2011-03-16T22:06:19.757Z</updated><title type='text'>Oracle Service Bus</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Interesting article on OSB Route Node vs Service Callout&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Taken from &lt;a rel="nofollow" target="_blank" href="http://forums.oracle.com/forums/thread.jspa?threadID=1003862" style="color: blue; text-decoration: underline; "&gt;http://forums.oracle.com/forums/thread.jspa?threadID=1003862&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span style="font-size: 12pt; "&gt;Little differences between ServiceCallout and Route nodes. Route node can be seen as an action which defines where a Request thread stops and Response thread begins, in addition to what ever it does. It is know that by-design, request and response pipelines of a OSB proxy will be in different threads unless other wise configured.&lt;br /&gt;And also &lt;u&gt;Route Node&lt;/u&gt; can be (&lt;b&gt;request-response&lt;/b&gt; and &lt;b&gt;request only&lt;/b&gt;)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;u&gt;&lt;span style="font-size: 12pt; "&gt;Service Callout&lt;/span&gt;&lt;/u&gt;&lt;span style="font-size: 12pt; "&gt; wsdl operation is &lt;b&gt;request-response only&lt;/b&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-745176641730427854?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/745176641730427854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=745176641730427854' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/745176641730427854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/745176641730427854'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/03/oracle-service-bus.html' title='Oracle Service Bus'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-7569913003627407128</id><published>2011-03-16T22:05:00.001Z</published><updated>2011-03-16T22:05:23.107Z</updated><title type='text'>Java and XML Date fields</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;div class="WordSection1"&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;If you use Xml Date and time field you will need to use the XmlGregorianCalendar&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Easiest way to invoke this is.&lt;/p&gt;&lt;pre style="margin-top: 0cm; margin-right: 0cm; margin-left: 0cm; margin-bottom: 0.0001pt; font-size: 10pt; font-family: 'Courier New'; "&gt;&lt;span class="typ"&gt;GregorianCalendar&lt;/span&gt;&lt;span class="pln"&gt; cal &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;new&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;GregorianCalendar&lt;/span&gt;&lt;span class="pun"&gt;();&lt;/span&gt;&lt;br /&gt;&lt;span class="pln"&gt;cal&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;setTime&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;yourDate&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span class="typ"&gt;XMLGregorianCalendar&lt;/span&gt;&lt;span class="pln"&gt; date2 &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;DatatypeFactory&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;newInstance&lt;/span&gt;&lt;span class="pun"&gt;().&lt;/span&gt;&lt;span class="pln"&gt;newXMLGregorianCalendar&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;cal&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span style="font-size: 12pt; "&gt;However if your Xml schema required separate Date and Time elements, not a single DateTime field then the following should be used. The standard XMLGregorianCalendar constructor used above will generate a DateTime field&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span style="font-size: 12pt; "&gt;Note there a couple of gothca's, such as having to add one to the month (since java counts months from 0).&lt;/span&gt;&lt;/p&gt;&lt;pre style="margin-top: 0cm; margin-right: 0cm; margin-left: 0cm; margin-bottom: 0.0001pt; font-size: 10pt; font-family: 'Courier New'; "&gt;GregorianCalendar cal = new GregorianCalendar();&lt;br /&gt;cal.setTime(yourDate);&lt;br /&gt;XMLGregorianCalendar xmlDate = df.newXMLGregorianCalendarDate(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH)+1, cal.get(Calendar.DAY_OF_MONTH), 0);&lt;br /&gt;XMLGregorianCalendar xmlTime = df.newXMLGregorianCalendarTime(cal.get(Calendar.&lt;span class="pln"&gt;HOUR_OF_DAY&lt;/span&gt;&lt;span class="pun"&gt;),&lt;/span&gt;&lt;span class="pln"&gt; cal&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="kwd"&gt;get&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="typ"&gt;Calendar&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;MINUTE&lt;/span&gt;&lt;span class="pun"&gt;),&lt;/span&gt;&lt;span class="pln"&gt; cal&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="kwd"&gt;get&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="typ"&gt;Calendar&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;SECOND&lt;/span&gt;&lt;span class="pun"&gt;),&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="lit"&gt;0&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span style="font-size: 10pt; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt; &lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-7569913003627407128?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/7569913003627407128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=7569913003627407128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/7569913003627407128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/7569913003627407128'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/03/java-and-xml-date-fields.html' title='Java and XML Date fields'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-8705109411666615631</id><published>2011-03-09T20:55:00.000Z</published><updated>2011-03-09T20:56:28.960Z</updated><title type='text'>OSB Route Node vs Service Callout</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Interesting article on OSB Route Node vs Service Callout&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Taken from &lt;a rel="nofollow" target="_blank" href="http://forums.oracle.com/forums/thread.jspa?threadID=1003862" style="color: blue; text-decoration: underline; "&gt;http://forums.oracle.com/forums/thread.jspa?threadID=1003862&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span style="font-size: 12pt; "&gt;Little differences between ServiceCallout and Route nodes. Route node can be seen as an action which defines where a Request thread stops and Response thread begins, in addition to what ever it does. It is know that by-design, request and response pipelines of a OSB proxy will be in different threads unless other wise configured.&lt;br /&gt;And also &lt;u&gt;Route Node&lt;/u&gt; can be (&lt;b&gt;request-response&lt;/b&gt; and &lt;b&gt;request only&lt;/b&gt;)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;u&gt;&lt;span style="font-size: 12pt; "&gt;Service Callout&lt;/span&gt;&lt;/u&gt;&lt;span style="font-size: 12pt; "&gt; wsdl operation is &lt;b&gt;request-response only&lt;/b&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-8705109411666615631?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/8705109411666615631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=8705109411666615631' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/8705109411666615631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/8705109411666615631'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/03/osb-route-node-vs-service-callout.html' title='OSB Route Node vs Service Callout'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-1884893880052748424</id><published>2011-03-08T23:26:00.002Z</published><updated>2011-03-09T20:55:05.173Z</updated><title type='text'>java.lang.IllegalStateException: Cannot forward a response that is already committed</title><content type='html'>&lt;div&gt;We saw a few of the following errors running Oracle Enterprise Manager on Weblogic 11g (10.3.3) &lt;/div&gt;&lt;div&gt;java.lang.IllegalStateException: Cannot forward a response that is already committed&lt;/div&gt;&lt;div&gt;“EM web client user sends a request to the SOA WebLogic Server, the SOA WebLogic Server will process the request and send the response back to the EM Web Client.&lt;/div&gt;&lt;div&gt;Before the EM Web Client receives the response, if the user choose not to wait for the response, the user may click other buttons in EM Web Client or another site so the browser is not longer in waiting for response. When the SOA WebLogic Server has the response and tries to send the response, it finds out that the browser is no longer in the waiting state for the response, so the SOA WebLogic Server throws this error”&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Usually seeing this error should not cause any alarms, however if you see many such errors you should talk to the EM Web client users to see if the SOA Weblogic server responds too slowly, if this is the case, you should decide if there is need to improve SOA Weblogic performance.”&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;In addition, the experts pointed that is should not cause the crash of the AdminServer, well, in our case if we see the logs again, the AdminServer did not crash, but seems that while it was generating the dump, the applications running on it(Weblogic Admin Console, SOA EM) were not available, so during that time we could not access to the consoles, but the AS was up and running, then we decided to stop and start again. To make sure about that, my proposal is, if we have the problem again in the future, as AdminServer is not business critical let’s wait to the AdminServer to finish to generate the dump and check after that if the consoles are accessible.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Below you have the error we extracted from our logs&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;####&amp;lt;Mar 1, 2011 5:21:24 PM GMT&gt; &amp;lt;Error&gt; &amp;lt;HTTP&gt; &amp;lt;server&gt; &amp;lt;AdminServer&gt; &amp;lt;[ACTIVE] ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)'&gt; &amp;lt;&amp;lt;WLS Kernel&gt;&gt; &amp;lt;&gt; &amp;lt;a0306302dbfb8417:6ff05d54:12c0925588a:-8000-0000000000057b39&gt; &amp;lt;1299000084317&gt; &amp;lt;BEA-101020&gt; &amp;lt;[ServletContext@407257383[app:em module:/em path:/em spec-version:2.5]] Servlet failed with Exception&lt;/div&gt;&lt;div&gt;java.lang.IllegalStateException: Cannot forward a response that is already committed&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:122)&lt;/div&gt;&lt;div&gt;        at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44)&lt;/div&gt;&lt;div&gt;       at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:267)&lt;/div&gt;&lt;div&gt;        at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:473)&lt;/div&gt;&lt;div&gt;        at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:141)&lt;/div&gt;&lt;div&gt;        at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:189)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:193)&lt;/div&gt;&lt;div&gt;        at oracle.sysman.emSDK.adfext.ctlr.EMViewHandlerImpl.renderView(EMViewHandlerImpl.java:150)&lt;/div&gt;&lt;div&gt;        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:205)&lt;/div&gt;&lt;div&gt;        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:97)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:421)&lt;/div&gt;&lt;div&gt;                                at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:421)&lt;/div&gt;&lt;div&gt;        at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:421)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.help.web.rich.OHWFilter.doFilter(Unknown Source)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.sysman.emSDK.license.LicenseFilter.doFilter(LicenseFilter.java:166)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.sysman.emas.fwk.MASConnectionFilter.doFilter(MASConnectionFilter.java:41)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:160)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.sysman.eml.app.AuditServletFilter.doFilter(AuditServletFilter.java:183)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.sysman.eml.app.EMRepLoginFilter.doFilter(EMRepLoginFilter.java:203)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.sysman.core.app.perf.PerfFilter.doFilter(PerfFilter.java:141)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.sysman.eml.app.ContextInitFilter.doFilter(ContextInitFilter.java:542)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)&lt;/div&gt;&lt;div&gt;        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)&lt;/div&gt;&lt;div&gt;                                at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)&lt;/div&gt;&lt;div&gt;        at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)&lt;/div&gt;&lt;div&gt;&gt;  &lt;/div&gt;&lt;div&gt;####&amp;lt;Mar 1, 2011 5:21:24 PM GMT&gt; &amp;lt;Notice&gt; &amp;lt;Diagnostics&gt; &amp;lt;server&gt; &amp;lt;AdminServer&gt; &amp;lt;[ACTIVE] ExecuteThread: '21' for queue: 'weblogic.kernel.Default (self-tuning)'&gt; &amp;lt;&amp;lt;WLS Kernel&gt;&gt; &amp;lt;&gt; &amp;lt;a0306302dbfb8417:6ff05d54:12c0925588a:-8000-0000000000057b3b&gt; &amp;lt;1299000084321&gt; &amp;lt;BEA-320068&gt; &amp;lt;Watch 'UncheckedException' with severity 'Notice' on server 'AdminServer' has triggered at Mar 1, 2011 5:21:24 PM GMT. Notification details:&lt;/div&gt;&lt;div&gt;WatchRuleType: Log&lt;/div&gt;&lt;div&gt;WatchRule: (SEVERITY = 'Error') AND ((MSGID = 'BEA-101020') OR (MSGID = 'BEA-101017') OR (MSGID = 'BEA-000802'))&lt;/div&gt;&lt;div&gt;WatchData: DATE = Mar 1, 2011 5:21:24 PM GMT SERVER = AdminServer MESSAGE = [ServletContext@407257383[app:em module:/em path:/em spec-version:2.5]] Servlet failed with Exception&lt;/div&gt;&lt;div&gt;java.lang.IllegalStateException: Cannot forward a response that is already committed&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:122)&lt;/div&gt;&lt;div&gt;        at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:267)&lt;/div&gt;&lt;div&gt;        at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:473)&lt;/div&gt;&lt;div&gt;        at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:141)&lt;/div&gt;&lt;div&gt;        at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:189)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:193)&lt;/div&gt;&lt;div&gt;        at oracle.sysman.emSDK.adfext.ctlr.EMViewHandlerImpl.renderView(EMViewHandlerImpl.java:150)&lt;/div&gt;&lt;div&gt;        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:205)&lt;/div&gt;&lt;div&gt;        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:97)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:421)&lt;/div&gt;&lt;div&gt;        at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:421)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)&lt;/div&gt;&lt;div&gt;        at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.help.web.rich.OHWFilter.doFilter(Unknown Source)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.sysman.emSDK.license.LicenseFilter.doFilter(LicenseFilter.java:166)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.sysman.emas.fwk.MASConnectionFilter.doFilter(MASConnectionFilter.java:41)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:160)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.sysman.eml.app.AuditServletFilter.doFilter(AuditServletFilter.java:183)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.sysman.eml.app.EMRepLoginFilter.doFilter(EMRepLoginFilter.java:203)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.sysman.core.app.perf.PerfFilter.doFilter(PerfFilter.java:141)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;        at oracle.sysman.eml.app.ContextInitFilter.doFilter(ContextInitFilter.java:542)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)&lt;/div&gt;&lt;div&gt;       at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)&lt;/div&gt;&lt;div&gt;        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)&lt;/div&gt;&lt;div&gt;        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)&lt;/div&gt;&lt;div&gt;        at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)&lt;/div&gt;&lt;div&gt;SUBSYSTEM = HTTP USERID = &amp;lt;WLS Kernel&gt; SEVERITY = Error THREAD = [ACTIVE] ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)' MSGID = BEA-101020 MACHINE = server TXID =  CONTEXTID = a0306302dbfb8417:6ff05d54:12c0925588a:-8000-0000000000057b39 TIMESTAMP = 1299000084317&lt;/div&gt;&lt;div&gt;WatchAlarmType: AutomaticReset&lt;/div&gt;&lt;div&gt;WatchAlarmResetPeriod: 30000&lt;/div&gt;&lt;div&gt;&gt;  &lt;/div&gt;&lt;div&gt;####&amp;lt;Mar 1, 2011 5:21:25 PM GMT&gt; &amp;lt;Alert&gt; &amp;lt;Diagnostics&gt; &amp;lt;server&gt; &amp;lt;AdminServer&gt; &amp;lt;oracle.dfw.dump.DumpManager - Dump Executor (created: Tue Mar 01 17:21:25 GMT 2011)&gt; &amp;lt;&amp;lt;WLS Kernel&gt;&gt; &amp;lt;&gt; &amp;lt;a0306302dbfb8417:6ff05d54:12c0925588a:-8000-0000000000057b40&gt; &amp;lt;1299000085085&gt; &amp;lt;BEA-320016&gt; &amp;lt;Creating diagnostic image in /app/prod/nwk_soa/Admin/nwk_soa_prod_dom/servers/AdminServer/adr/diag/ofm/nwk_soa_prod_dom/AdminServer/incident/incdir_5 with a lockout minute period of 1.&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-1884893880052748424?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/1884893880052748424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=1884893880052748424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/1884893880052748424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/1884893880052748424'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/03/avalangillegalstateexception-cannot.html' title='java.lang.IllegalStateException: Cannot forward a response that is already committed'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-8487018802865400160</id><published>2011-03-08T23:18:00.002Z</published><updated>2011-03-08T23:21:36.526Z</updated><title type='text'>WS-Security</title><content type='html'>The following are the standard (Pre-Defined) security policies available with weblogic.&lt;br /&gt;&lt;br /&gt;They are stored in the weblogic.jar file under&lt;br /&gt;weblogic/wsee/policy/runtime&lt;br /&gt;&lt;br /&gt;To use in Java code (taken from http://forums.oracle.com/forums/thread.jspa?messageID=2966292 )&lt;br /&gt;If you need (or want) to extract it and modify it to do something different, you'd put it in the same directory as the JWS. If you renamed the copy to MyAuth.xml, your @Policy annotation would look something like this:&lt;br /&gt;@Policy(&lt;br /&gt;  uri = "MyAuth.xml",&lt;br /&gt;  Policy.Direction.inbound&lt;br /&gt;&lt;div&gt;)&lt;br /&gt;&lt;br /&gt;to use the "provided by BEA" Auth.xml, do this:&lt;br /&gt;@Policy(&lt;/div&gt;&lt;div&gt;   uri = "policy:Auth.xml",&lt;br /&gt;  Policy.Direction.inbound&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;With the MyAuth.xml, you can also create a policies directory in JWS project's WebContent/WEB-INF and put it in there.&lt;br /&gt;WebContent/WEB-INF/policies/MyAuth.xml&lt;br /&gt;Then you can remove the @Policy annotation from the JWS altogether, and use the WebLogic Admin Console to associate the policy at runtime. It (policy:MyAuth) will show up in the selectable list, along side the other "provided by BEA" WS-Policy files.&lt;br /&gt;PreDefined policys&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Heres a list of some of the more popular policy files&lt;br /&gt;&lt;b&gt;Auth.xml&lt;/b&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;wsp:Policy&lt;br /&gt; xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"&lt;br /&gt; xmlns:wssp="http://www.bea.com/wls90/security/policy"&lt;br /&gt; &gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;wssp:Identity/&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/wsp:Policy&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Encrypt.xml&lt;/b&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;wsp:Policy&lt;br /&gt; xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"&lt;br /&gt; xmlns:wssp="http://www.bea.com/wls90/security/policy"&lt;br /&gt; &gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;wssp:Confidentiality&gt;&lt;br /&gt;   &amp;lt;wssp:KeyWrappingAlgorithm URI="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/&gt;&lt;br /&gt;   &amp;lt;wssp:Target&gt;&lt;br /&gt;     &amp;lt;wssp:EncryptionAlgorithm URI="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/&gt;   &lt;br /&gt;     &amp;lt;wssp:MessageParts Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part"&gt;wsp:Body()&amp;lt;/wssp:MessageParts&gt;&lt;br /&gt;   &amp;lt;/wssp:Target&gt;&lt;br /&gt;   &amp;lt;wssp:KeyInfo/&gt;&lt;br /&gt; &amp;lt;/wssp:Confidentiality&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/wsp:Policy&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;DefaultResliability.xml&lt;/b&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;wsp:Policy&lt;br /&gt;  xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"&lt;br /&gt;  xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"&lt;br /&gt;  xmlns:beapolicy="http://www.bea.com/wsrm/policy"&lt;br /&gt; &gt;&lt;br /&gt; &amp;lt;wsrm:RMAssertion &gt;&lt;br /&gt;   &amp;lt;wsrm:InactivityTimeout&lt;br /&gt;       Milliseconds="600000" /&gt;&lt;br /&gt;   &amp;lt;wsrm:BaseRetransmissionInterval&lt;br /&gt;       Milliseconds="3000" /&gt;&lt;br /&gt;   &amp;lt;wsrm:ExponentialBackoff /&gt;&lt;br /&gt;   &amp;lt;wsrm:AcknowledgementInterval&lt;br /&gt;       Milliseconds="200" /&gt;&lt;br /&gt;   &amp;lt;beapolicy:Expires Expires="P1D" optional="true"/&gt;&lt;br /&gt; &amp;lt;/wsrm:RMAssertion&gt;&lt;br /&gt;&amp;lt;/wsp:Policy&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;LongRunningReliability.xml&lt;/b&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;wsp:Policy&lt;br /&gt;  xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"&lt;br /&gt;  xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"&lt;br /&gt;  xmlns:beapolicy="http://www.bea.com/wsrm/policy"&lt;br /&gt; &gt;&lt;br /&gt; &amp;lt;wsrm:RMAssertion &gt;&lt;br /&gt;   &amp;lt;wsrm:InactivityTimeout&lt;br /&gt;       Milliseconds="86400000" /&gt;&lt;br /&gt;   &amp;lt;wsrm:BaseRetransmissionInterval&lt;br /&gt;       Milliseconds="3000" /&gt;&lt;br /&gt;   &amp;lt;wsrm:ExponentialBackoff /&gt;  &lt;br /&gt;   &amp;lt;wsrm:AcknowledgementInterval&lt;br /&gt;       Milliseconds="200" /&gt;&lt;br /&gt;   &amp;lt;beapolicy:Expires Expires="P1M" optional="true"/&gt;&lt;br /&gt; &amp;lt;/wsrm:RMAssertion&gt;&lt;br /&gt;&amp;lt;/wsp:Policy&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Sign.xml&lt;/b&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;wsp:Policy&lt;br /&gt; xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"&lt;br /&gt; xmlns:wssp="http://www.bea.com/wls90/security/policy"&lt;br /&gt; xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"&lt;br /&gt; xmlns:wls="http://www.bea.com/wls90/security/policy/wsee#part"&lt;br /&gt; &gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;wssp:Integrity&gt;&lt;br /&gt; &lt;br /&gt;   &amp;lt;wssp:SignatureAlgorithm URI="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/&gt;&lt;br /&gt;   &amp;lt;wssp:CanonicalizationAlgorithm URI="http://www.w3.org/2001/10/xml-exc-c14n#"/&gt;&lt;br /&gt; &lt;br /&gt;   &amp;lt;wssp:Target&gt;&lt;br /&gt;     &amp;lt;wssp:DigestAlgorithm URI="http://www.w3.org/2000/09/xmldsig#sha1" /&gt;&lt;br /&gt;     &amp;lt;wssp:MessageParts Dialect="http://www.bea.com/wls90/security/policy/wsee#part"&gt;&lt;br /&gt;       wls:SystemHeaders()&lt;br /&gt;     &amp;lt;/wssp:MessageParts&gt;&lt;br /&gt;   &amp;lt;/wssp:Target&gt;&lt;br /&gt; &lt;br /&gt;   &amp;lt;wssp:Target&gt;&lt;br /&gt;     &amp;lt;wssp:DigestAlgorithm URI="http://www.w3.org/2000/09/xmldsig#sha1" /&gt;&lt;br /&gt;     &amp;lt;wssp:MessageParts Dialect="http://www.bea.com/wls90/security/policy/wsee#part"&gt;&lt;br /&gt;       wls:SecurityHeader(wsu:Timestamp)&lt;br /&gt;     &amp;lt;/wssp:MessageParts&gt;&lt;br /&gt;   &amp;lt;/wssp:Target&gt;&lt;br /&gt; &lt;br /&gt;   &amp;lt;wssp:Target&gt;&lt;br /&gt;     &amp;lt;wssp:DigestAlgorithm URI="http://www.w3.org/2000/09/xmldsig#sha1" /&gt;&lt;br /&gt;     &amp;lt;wssp:MessageParts Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part"&gt;&lt;br /&gt;     wsp:Body()&lt;br /&gt;     &amp;lt;/wssp:MessageParts&gt;&lt;br /&gt;   &amp;lt;/wssp:Target&gt;&lt;br /&gt; &lt;br /&gt; &amp;lt;/wssp:Integrity&gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;wssp:MessageAge/&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/wsp:Policy&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;WSSP1.2-2007-HTTPS-BasicAuth.xml&lt;/b&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&gt;&lt;br /&gt;&amp;lt;wsp:Policy&lt;br /&gt; xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"&lt;br /&gt; xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"&lt;br /&gt; &gt;&lt;br /&gt; &amp;lt;sp:TransportBinding&gt;&lt;br /&gt;   &amp;lt;wsp:Policy&gt;&lt;br /&gt;     &amp;lt;sp:TransportToken&gt;&lt;br /&gt;       &amp;lt;wsp:Policy&gt;&lt;br /&gt;         &amp;lt;sp:HttpsToken&gt;&lt;br /&gt;           &amp;lt;wsp:Policy&gt;&lt;br /&gt;             &amp;lt;sp:HttpBasicAuthentication/&gt;&lt;br /&gt;           &amp;lt;/wsp:Policy&gt;&lt;br /&gt;         &amp;lt;/sp:HttpsToken&gt;&lt;br /&gt;       &amp;lt;/wsp:Policy&gt;&lt;br /&gt;     &amp;lt;/sp:TransportToken&gt;&lt;br /&gt;     &amp;lt;sp:AlgorithmSuite&gt;&lt;br /&gt;       &amp;lt;wsp:Policy&gt;&lt;br /&gt;         &amp;lt;sp:Basic256/&gt;&lt;br /&gt;       &amp;lt;/wsp:Policy&gt;&lt;br /&gt;     &amp;lt;/sp:AlgorithmSuite&gt;&lt;br /&gt;     &amp;lt;sp:Layout&gt;&lt;br /&gt;       &amp;lt;wsp:Policy&gt;&lt;br /&gt;         &amp;lt;sp:Lax/&gt;&lt;br /&gt;       &amp;lt;/wsp:Policy&gt;&lt;br /&gt;     &amp;lt;/sp:Layout&gt;&lt;br /&gt;     &amp;lt;sp:IncludeTimestamp/&gt;&lt;br /&gt;   &amp;lt;/wsp:Policy&gt;&lt;br /&gt; &amp;lt;/sp:TransportBinding&gt;&lt;br /&gt;&amp;lt;/wsp:Policy&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Wssp1.2-2007-Https-UsernameToken-Digest.xml&lt;/b&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&gt;&lt;br /&gt;&amp;lt;wsp:Policy&lt;br /&gt; xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"&lt;br /&gt; xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"&lt;br /&gt; &gt;&lt;br /&gt; &amp;lt;sp:TransportBinding&gt;&lt;br /&gt;   &amp;lt;wsp:Policy&gt;&lt;br /&gt;     &amp;lt;sp:TransportToken&gt;&lt;br /&gt;       &amp;lt;wsp:Policy&gt;&lt;br /&gt;         &amp;lt;sp:HttpsToken/&gt;&lt;br /&gt;       &amp;lt;/wsp:Policy&gt;&lt;br /&gt;     &amp;lt;/sp:TransportToken&gt;&lt;br /&gt;     &amp;lt;sp:AlgorithmSuite&gt;&lt;br /&gt;       &amp;lt;wsp:Policy&gt;&lt;br /&gt;         &amp;lt;sp:Basic256/&gt;&lt;br /&gt;       &amp;lt;/wsp:Policy&gt;&lt;br /&gt;     &amp;lt;/sp:AlgorithmSuite&gt;&lt;br /&gt;     &amp;lt;sp:Layout&gt;&lt;br /&gt;       &amp;lt;wsp:Policy&gt;&lt;br /&gt;         &amp;lt;sp:Lax/&gt;&lt;br /&gt;       &amp;lt;/wsp:Policy&gt;&lt;br /&gt;     &amp;lt;/sp:Layout&gt;&lt;br /&gt;     &amp;lt;sp:IncludeTimestamp/&gt;&lt;br /&gt;   &amp;lt;/wsp:Policy&gt;&lt;br /&gt; &amp;lt;/sp:TransportBinding&gt;&lt;br /&gt; &amp;lt;sp:SupportingTokens&gt;&lt;br /&gt;   &amp;lt;wsp:Policy&gt;&lt;br /&gt;     &amp;lt;sp:UsernameToken&lt;br /&gt;       sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient"&gt;&lt;br /&gt;       &amp;lt;wsp:Policy&gt;&lt;br /&gt;         &amp;lt;sp:HashPassword/&gt;&lt;br /&gt;         &amp;lt;sp:WssUsernameToken10/&gt;&lt;br /&gt;       &amp;lt;/wsp:Policy&gt;&lt;br /&gt;     &amp;lt;/sp:UsernameToken&gt;&lt;br /&gt;   &amp;lt;/wsp:Policy&gt;&lt;br /&gt; &amp;lt;/sp:SupportingTokens&gt;&lt;br /&gt;&amp;lt;/wsp:Policy&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Wssp1.2-2007-HTTPS.xml&lt;/b&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&gt;&lt;br /&gt;&amp;lt;wsp:Policy&lt;br /&gt; xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"&lt;br /&gt; xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"&lt;br /&gt; &gt;&lt;br /&gt; &amp;lt;sp:TransportBinding&gt;&lt;br /&gt;   &amp;lt;wsp:Policy&gt;&lt;br /&gt;     &amp;lt;sp:TransportToken&gt;&lt;br /&gt;       &amp;lt;wsp:Policy&gt;&lt;br /&gt;         &amp;lt;sp:HttpsToken /&gt;&lt;br /&gt;       &amp;lt;/wsp:Policy&gt;&lt;br /&gt;     &amp;lt;/sp:TransportToken&gt;&lt;br /&gt;     &amp;lt;sp:AlgorithmSuite&gt;&lt;br /&gt;       &amp;lt;wsp:Policy&gt;&lt;br /&gt;         &amp;lt;sp:Basic256/&gt;&lt;br /&gt;       &amp;lt;/wsp:Policy&gt;&lt;br /&gt;     &amp;lt;/sp:AlgorithmSuite&gt;&lt;br /&gt;     &amp;lt;sp:Layout&gt;&lt;br /&gt;       &amp;lt;wsp:Policy&gt;&lt;br /&gt;         &amp;lt;sp:Lax/&gt;&lt;br /&gt;       &amp;lt;/wsp:Policy&gt;&lt;br /&gt;     &amp;lt;/sp:Layout&gt;&lt;br /&gt;     &amp;lt;sp:IncludeTimestamp/&gt;&lt;br /&gt;   &amp;lt;/wsp:Policy&gt;&lt;br /&gt; &amp;lt;/sp:TransportBinding&gt;&lt;br /&gt;&amp;lt;/wsp:Policy&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-8487018802865400160?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/8487018802865400160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=8487018802865400160' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/8487018802865400160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/8487018802865400160'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/03/ws-security.html' title='WS-Security'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-6696489643019324060</id><published>2011-02-24T12:58:00.000Z</published><updated>2011-02-24T12:59:25.495Z</updated><title type='text'>access.log analysis</title><content type='html'>We're using awstat to analyse the access.log statistics.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-6696489643019324060?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/6696489643019324060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=6696489643019324060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6696489643019324060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6696489643019324060'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/02/accesslog-analysis.html' title='access.log analysis'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-3264873434439577154</id><published>2011-02-17T20:02:00.003Z</published><updated>2011-02-17T20:12:32.210Z</updated><title type='text'>Weblogic JMS pause and resume consumption</title><content type='html'>This program is an example of connecting to weblogic and manipulating the JMS queues.&lt;br /&gt;The example here, pauses and resumes the consumption of a selected queue.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt; * $Revision:  $&lt;br /&gt; * $Date:  $&lt;br /&gt; * $Author:  $&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;package com.test;&lt;br /&gt;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.Serializable;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.Collection;&lt;br /&gt;import java.util.Map;&lt;br /&gt;import java.util.Hashtable;&lt;br /&gt;import java.util.Set;&lt;br /&gt;import java.util.Vector;&lt;br /&gt;&lt;br /&gt;import javax.management.MBeanServerConnection;&lt;br /&gt;import javax.management.MalformedObjectNameException;&lt;br /&gt;import javax.management.ObjectName;&lt;br /&gt;import javax.management.remote.JMXConnector;&lt;br /&gt;import javax.management.remote.JMXConnectorFactory;&lt;br /&gt;import javax.management.remote.JMXServiceURL;&lt;br /&gt;&lt;br /&gt;import org.slf4j.Logger;&lt;br /&gt;import org.slf4j.LoggerFactory;&lt;br /&gt;&lt;br /&gt;public class QueueManipulator {&lt;br /&gt; Logger logger = LoggerFactory.getLogger(this.getClass());&lt;br /&gt; public static final String SYSTEM_OSB = "OSB";&lt;br /&gt;&lt;br /&gt; public static void main(String[] args) {&lt;br /&gt;  QueueManipulator qm = new QueueManipulator();&lt;br /&gt;  qm.run();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public void run() {&lt;br /&gt;  String[] queues = { "PurchaseRequisitionCreateQueue" };&lt;br /&gt;  // Pause&lt;br /&gt;  updatePauseStatus(queues, true);&lt;br /&gt;  // resume&lt;br /&gt;  updatePauseStatus(queues, false);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private Collection&lt;QueueInfo&gt; updatePauseStatus(String[] queueNames,&lt;br /&gt;   boolean pause) {&lt;br /&gt;  Vector&lt;QueueInfo&gt; updatedQueues = new Vector&lt;QueueInfo&gt;();&lt;br /&gt;  Collection&lt;Server&gt; serverList;&lt;br /&gt;  // Connection details&lt;br /&gt;  String jmsModuleName, username, password;&lt;br /&gt;  serverList = new ArrayList&lt;Server&gt;();&lt;br /&gt;  serverList.add(new Server("ms_soa1", "osb1tst2:7001"));&lt;br /&gt;  // serverList.add(new Server("ms_soa2" ,"soa2tst2:7001"));&lt;br /&gt;  jmsModuleName = "ApplicationModule";&lt;br /&gt;  username = "khyland";&lt;br /&gt;  password = "Password1";&lt;br /&gt;&lt;br /&gt;  for (Server server : serverList) {&lt;br /&gt;   JMXConnector jmxCon = null;&lt;br /&gt;   try {&lt;br /&gt;    jmxCon = getJMXConnector(server, username, password);&lt;br /&gt;    jmxCon.connect();&lt;br /&gt;    MBeanServerConnection con = jmxCon.getMBeanServerConnection();&lt;br /&gt;    String action = pause ? "pauseConsumption"&lt;br /&gt;      : "resumeConsumption";&lt;br /&gt;    Exception exception = null;&lt;br /&gt;    for (String queueName : queueNames) {&lt;br /&gt;     exception = null;&lt;br /&gt;     try {&lt;br /&gt;      ObjectName destination = findQueueObjectName(con,&lt;br /&gt;        jmsModuleName, queueName);&lt;br /&gt;      if (pause) {&lt;br /&gt;       Object pauseConsResult = con.invoke(destination,&lt;br /&gt;         action, null, null);&lt;br /&gt;       logger.info("Result from pauseConsumption: "&lt;br /&gt;         + pauseConsResult);&lt;br /&gt;      } else {&lt;br /&gt;       Object resumeConsResult = con.invoke(destination,&lt;br /&gt;         action, null, null);&lt;br /&gt;       logger.info("Result from resumeConsumption: "&lt;br /&gt;         + resumeConsResult);&lt;br /&gt;      }&lt;br /&gt;      updatedQueues.add(new QueueInfo(SYSTEM_OSB, queueName));&lt;br /&gt;     } catch (Exception e) {&lt;br /&gt;      exception = e;&lt;br /&gt;      logger.error("Queue not found name " + jmsModuleName&lt;br /&gt;        + ":" + queueName);&lt;br /&gt;      throw e;&lt;br /&gt;     } finally {&lt;br /&gt;      // Audit.getInst().msg(Audit.AuditAction.PauseQueue,&lt;br /&gt;      // action+" of "+jmsModuleName+":"+queueName+" "+(exception==null?"success":"failed"),&lt;br /&gt;      // null, exception);&lt;br /&gt;     }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;   } catch (Exception ioe) {&lt;br /&gt;    // TODO: review&lt;br /&gt;    // throw new RuntimeException("Error while pausing the queue",&lt;br /&gt;    // ioe);&lt;br /&gt;    // ignore the error and continue working with the rest of the&lt;br /&gt;    // nodes&lt;br /&gt;    logger.error("Error while pausing the queue on " + server, ioe);&lt;br /&gt;   } finally {&lt;br /&gt;    if (jmxCon != null)&lt;br /&gt;     try {&lt;br /&gt;      jmxCon.close();&lt;br /&gt;     } catch (IOException e) {&lt;br /&gt;      logger.error("Error while closing JMX connection", e);&lt;br /&gt;     }&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  return updatedQueues;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private static JMXConnector getJMXConnector(Server server, String username,&lt;br /&gt;   String password) throws IOException {&lt;br /&gt;  String fullServerURL = "service:jmx:iiop://" + server.getUrl()&lt;br /&gt;    + "/jndi/weblogic.management.mbeanservers.runtime";&lt;br /&gt;  JMXConnector jmxCon = null;&lt;br /&gt;&lt;br /&gt;  JMXServiceURL serviceUrl = new JMXServiceURL(fullServerURL);&lt;br /&gt;&lt;br /&gt;  Hashtable&lt;String, String&gt; env = new Hashtable&lt;String, String&gt;();&lt;br /&gt;  env.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES,&lt;br /&gt;    "weblogic.management.remote");&lt;br /&gt;  env.put(javax.naming.Context.SECURITY_PRINCIPAL, username);&lt;br /&gt;  env.put(javax.naming.Context.SECURITY_CREDENTIALS, password);&lt;br /&gt;&lt;br /&gt;  jmxCon = JMXConnectorFactory.newJMXConnector(serviceUrl, env);&lt;br /&gt;&lt;br /&gt;  return jmxCon;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private ObjectName findQueueObjectName(MBeanServerConnection con,&lt;br /&gt;   String jmsModuleName, String queueName)&lt;br /&gt;   throws MalformedObjectNameException, NullPointerException,&lt;br /&gt;   Exception {&lt;br /&gt;  ObjectName query_obj_name;&lt;br /&gt;  query_obj_name = new ObjectName(&lt;br /&gt;    "com.bea:Type=JMSDestinationRuntime,Name=" + jmsModuleName&lt;br /&gt;      + "!*" + queueName + "*,*");&lt;br /&gt;  Set&lt;ObjectName&gt; objectNames = con.queryNames(query_obj_name, null);&lt;br /&gt;  if (objectNames == null || objectNames.size() == 0) {&lt;br /&gt;   throw new Exception(&lt;br /&gt;     "NotFoundException: Error while getting a reference to the queue (queue "&lt;br /&gt;       + queueName + " not found)");&lt;br /&gt;  } else if (objectNames.size() &gt; 1) {&lt;br /&gt;   throw new Exception(&lt;br /&gt;     "DuplicateFoundException: Error while getting a reference to the queue (more than one queue found named "&lt;br /&gt;       + queueName + ")");&lt;br /&gt;  } else {&lt;br /&gt;   return objectNames.iterator().next();&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; class Server implements Serializable {&lt;br /&gt;  private static final long serialVersionUID = -466143988049844989L;&lt;br /&gt;&lt;br /&gt;  private String name;&lt;br /&gt;  private String url;&lt;br /&gt;&lt;br /&gt;  public Server() {&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public Server(String name, String url) {&lt;br /&gt;   setName(name);&lt;br /&gt;   setUrl(url);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void setName(String name) {&lt;br /&gt;   this.name = name;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public String getName() {&lt;br /&gt;   return name;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void setUrl(String url) {&lt;br /&gt;   this.url = url;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public String getUrl() {&lt;br /&gt;   return url;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  @Override&lt;br /&gt;  public String toString() {&lt;br /&gt;   return (new StringBuilder()).append(getName()).append(" [")&lt;br /&gt;     .append(getUrl()).append("]").toString();&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public class QueueInfo implements Comparable&lt;QueueInfo&gt; {&lt;br /&gt;&lt;br /&gt;  private String system;&lt;br /&gt;  private String queueName;&lt;br /&gt;  private String jndiName;&lt;br /&gt;  private Collection&lt;SingleServerQueueInfo&gt; serverQueueInfo = new Vector&lt;SingleServerQueueInfo&gt;();&lt;br /&gt;&lt;br /&gt;  public QueueInfo(String system, String queueName) {&lt;br /&gt;   this(system, queueName, "");&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public QueueInfo(String system, String queueName, String jndiName) {&lt;br /&gt;   this.system = system;&lt;br /&gt;   this.queueName = queueName;&lt;br /&gt;   this.jndiName = jndiName;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public String getQueueName() {&lt;br /&gt;   return queueName;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void setQueueName(String queueName) {&lt;br /&gt;   this.queueName = queueName;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public Collection&lt;SingleServerQueueInfo&gt; getServerQueueInfo() {&lt;br /&gt;   return serverQueueInfo;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void setServerQueueInfo(&lt;br /&gt;    Collection&lt;SingleServerQueueInfo&gt; serverQueueInfo) {&lt;br /&gt;   this.serverQueueInfo = serverQueueInfo;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void addSingleServerQueueInfo(String serverName,&lt;br /&gt;    SingleServerQueueInfo singleServerQueueInfo) {&lt;br /&gt;   serverQueueInfo.add(singleServerQueueInfo);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public String getJndiName() {&lt;br /&gt;   return jndiName;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void setJndiName(String jndiName) {&lt;br /&gt;   this.jndiName = jndiName;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  @Override&lt;br /&gt;  public int compareTo(QueueInfo o) {&lt;br /&gt;   return queueName.compareTo(o.getQueueName());&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  @Override&lt;br /&gt;  public boolean equals(Object o) {&lt;br /&gt;   if (o == null)&lt;br /&gt;    return false;&lt;br /&gt;   if (o instanceof QueueInfo)&lt;br /&gt;    return this.compareTo((QueueInfo) o) == 0;&lt;br /&gt;   return false;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  @Override&lt;br /&gt;  public int hashCode() {&lt;br /&gt;   return queueName.hashCode();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  @Override&lt;br /&gt;  public String toString() {&lt;br /&gt;   return getSystem() + ":" + getQueueName() + ":" + getJndiName();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public String getSystem() {&lt;br /&gt;   return system;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void setSystem(String system) {&lt;br /&gt;   this.system = system;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public class SingleServerQueueInfo {&lt;br /&gt;&lt;br /&gt;  private String serverName;&lt;br /&gt;  private String queueName;&lt;br /&gt;  private String jndiName;&lt;br /&gt;  private long messagesCurrent;&lt;br /&gt;  private long messagesHigh;&lt;br /&gt;  private long messagesPending;&lt;br /&gt;  private long consumersCurrent;&lt;br /&gt;  private long consumersHigh;&lt;br /&gt;  private boolean insertionPaused;&lt;br /&gt;  private boolean consumptionPaused;&lt;br /&gt;  private boolean productionPaused;&lt;br /&gt;&lt;br /&gt;  public String getQueueName() {&lt;br /&gt;   return queueName;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void setQueueName(String queueName) {&lt;br /&gt;   this.queueName = queueName;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public long getMessagesCurrent() {&lt;br /&gt;   return messagesCurrent;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void setMessagesCurrent(long messagesCurrent) {&lt;br /&gt;   this.messagesCurrent = messagesCurrent;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public long getMessagesHigh() {&lt;br /&gt;   return messagesHigh;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void setMessagesHigh(long messagesHigh) {&lt;br /&gt;   this.messagesHigh = messagesHigh;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public long getMessagesPending() {&lt;br /&gt;   return messagesPending;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void setMessagesPending(long messagesPending) {&lt;br /&gt;   this.messagesPending = messagesPending;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public long getConsumersCurrent() {&lt;br /&gt;   return consumersCurrent;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void setConsumersCurrent(long consumersCurrent) {&lt;br /&gt;   this.consumersCurrent = consumersCurrent;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public long getConsumersHigh() {&lt;br /&gt;   return consumersHigh;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void setConsumersHigh(long consumersHigh) {&lt;br /&gt;   this.consumersHigh = consumersHigh;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public boolean isInsertionPaused() {&lt;br /&gt;   return insertionPaused;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void setInsertionPaused(boolean insertionPaused) {&lt;br /&gt;   this.insertionPaused = insertionPaused;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public boolean isConsumptionPaused() {&lt;br /&gt;   return consumptionPaused;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void setConsumptionPaused(boolean consumptionPaused) {&lt;br /&gt;   this.consumptionPaused = consumptionPaused;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public boolean isProductionPaused() {&lt;br /&gt;   return productionPaused;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void setProductionPaused(boolean productionPaused) {&lt;br /&gt;   this.productionPaused = productionPaused;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public String getServerName() {&lt;br /&gt;   return serverName;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void setServerName(String serverName) {&lt;br /&gt;   this.serverName = serverName;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public String getJndiName() {&lt;br /&gt;   return jndiName;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void setJndiName(String jndiName) {&lt;br /&gt;   this.jndiName = jndiName;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  @Override&lt;br /&gt;  public String toString() {&lt;br /&gt;   return getServerName() + "::" + getQueueName();&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/14419533-3264873434439577154?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/3264873434439577154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=3264873434439577154' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/3264873434439577154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/3264873434439577154'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/02/weblogic-jms-pause-and-resume.html' title='Weblogic JMS pause and resume consumption'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-2392767738463901528</id><published>2011-02-14T21:07:00.002Z</published><updated>2011-02-14T21:09:24.991Z</updated><title type='text'>Weblogic JMS and Reporting action</title><content type='html'>One important fact to consider with the Reporting action is how it interacts with Transactions &lt;br /&gt;&lt;br /&gt;10g&lt;br /&gt;  Suspend all transactions before continuing&lt;br /&gt; &lt;br /&gt;11g&lt;br /&gt;  If datasource is XA then continue with transaction&lt;br /&gt;  If not. Suspend transaction, and run with local transaction.&lt;br /&gt;Therefore if you always want reporting to work you must use non-XA datasource.&lt;br /&gt; &lt;br /&gt;Check out jars in path below to decompile...&lt;br /&gt;&lt;br /&gt;Oracle\OSB_10_3_1\osb_10.3\lib\common\reporting-impl.jar\com\bea\wli\reporting\jmsprovider\init\&lt;br /&gt;JmsReportingDataHandler.class&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-2392767738463901528?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/2392767738463901528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=2392767738463901528' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/2392767738463901528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/2392767738463901528'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/02/weblogic-jms-and-reporting-action.html' title='Weblogic JMS and Reporting action'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-7078763776335647836</id><published>2011-02-14T21:03:00.002Z</published><updated>2011-02-14T21:10:21.766Z</updated><title type='text'>Weblogic Patch levels</title><content type='html'>To work out the patch level for weblogic&lt;br /&gt;All Weblogic level pathces are output to Admin console log.&lt;br /&gt;However OSB patches are not.&lt;br /&gt; &lt;br /&gt;For OSB&lt;br /&gt;Change to the MW_HOME /utils/bsu directory. Enter the bsu.sh command&lt;br /&gt; &lt;br /&gt;http://download.oracle.com/docs/cd/E14759_01/doc.32/e14143/quickrefax.htm&lt;br /&gt; &lt;br /&gt;Not sure how to run it from command line (possibly repoitn DISPLAY to desktop, and run X server)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-7078763776335647836?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/7078763776335647836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=7078763776335647836' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/7078763776335647836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/7078763776335647836'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/02/weblogic-patch-levels.html' title='Weblogic Patch levels'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-4117233125308617319</id><published>2011-02-13T08:41:00.002Z</published><updated>2011-02-13T08:42:40.592Z</updated><title type='text'>Magic Query</title><content type='html'>To me this query is magic.&lt;br /&gt; &lt;br /&gt;We were asked to summarize the number of requests going through our system for a month, but split into daytime (8am – 8pm), and nighttime (8pm – 8am).&lt;br /&gt; &lt;br /&gt;Immediately I was thinking about writing a program, but this handy query (Oracle) does it in one go, including backtracking to the last day of the previous month to get values. (i.e. For December, we must get the values from midnight November 30, to 8am Dec1)&lt;br /&gt; &lt;br /&gt;SELECT E.interface&lt;br /&gt;      , CASE WHEN TO_CHAR(time, 'HH24MISS') &lt; '080000' THEN TO_CHAR(time-1, 'YYYY/MM/DD') ELSE TO_CHAR(time, 'YYYY/MM/DD') END "REPORT_DATE"&lt;br /&gt;      , COUNT(CASE WHEN TO_CHAR(time, 'HH24MISS') &gt; '080000' AND TO_CHAR(time, 'HH24MISS') &lt;= '200000' THEN '1' ELSE NULL END) "08AM_08PM"&lt;br /&gt;      , COUNT(CASE WHEN TO_CHAR(time, 'HH24MISS') &gt; '200000' OR TO_CHAR(time, 'HH24MISS') &lt;= '080000' THEN '1' ELSE NULL END) "08PM_08AM"&lt;br /&gt;FROM   transactions     E&lt;br /&gt;      ,projects         P&lt;br /&gt;WHERE  E.project_name = P.Project_Name&lt;br /&gt;AND    P.seq          = 1&lt;br /&gt;AND    E.status       = 'Entry'&lt;br /&gt;AND    E.time         &gt; TO_DATE('20101201000000','YYYYMMDDHH24MISS')&lt;br /&gt;AND    E.time         &lt; TO_DATE('20101231235959','YYYYMMDDHH24MISS')&lt;br /&gt;GROUP BY E.interface&lt;br /&gt;       , CASE WHEN TO_CHAR(TIME, 'HH24MISS') &lt; '080000' THEN TO_CHAR(TIME-1, 'YYYY/MM/DD') ELSE TO_CHAR(TIME, 'YYYY/MM/DD') END&lt;br /&gt;ORDER BY 1,2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-4117233125308617319?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/4117233125308617319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=4117233125308617319' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/4117233125308617319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/4117233125308617319'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/02/magic-query.html' title='Magic Query'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-9018876609563579826</id><published>2011-01-21T07:25:00.001Z</published><updated>2011-01-21T07:26:30.845Z</updated><title type='text'>HTTP GET</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;Ran into a nasty problem with one of our webapps recently.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;We have some jobs that enable and disable a number of weblogic entities (OSB proxies/ JMS queue/ Soa Composites). We noticed that some of these were failing.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;The exception we saw was ERROR: Another session operation is in progress. Please retry later.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;As part of our process (to disable OSB proxies) we need to create and use a weblogic session. We only create one instance, and then activate the changes at the end. But in our logs a 2&lt;sup&gt;nd&lt;/sup&gt; session was been created.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;After careful inspection it turned out the second session was been generated by a different thread. Checking the access.log confirmed a 2&lt;sup&gt;nd&lt;/sup&gt; request arriving 30 seconds after the first. (This maybe certain versions of Firefox.. Need more investigation)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;This it appears is because we were using a HTTP Get (we should be using Post) for our request. Apparently on seeing no response/ ack etc, the browser was re-submiting the request on its own accord.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;So now we had 2 conflicting requests both trying to access the weblogic session. Obviously the 2&lt;sup&gt;nd&lt;/sup&gt; fails. This was then reported to the user.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;Meanwhile the original request succeeds silently.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;Our fix is to change the request to a post.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;Also adding a token to the post request to prevent against double submit.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;….&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;2011-01-18 20:51:21,335 [DEBUG] myClass:[ACTIVE] ExecuteThread&lt;span style="color: red; "&gt;: '3'&lt;/span&gt; for queue: 'weblogic.kernel.Default (self-tuning)':- Realizing changes in the session: WebAdminTool1295383871917&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;2011-01-18 20:51:21,759 [DEBUG] myClass:[ACTIVE] ExecuteThread:&lt;span style="color: red; "&gt; '3'&lt;/span&gt; for queue: 'weblogic.kernel.Default (self-tuning)':- Setting service OSBProxy::false to true&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;2011-01-18 20:51:28,551 [INFO ] ie.bge.middleware.jmswebtool.data.impl.jmx.QueuePersistenceJmxImpl:[ACTIVE] ExecuteThread: &lt;span style="color: red; "&gt;'4' &lt;/span&gt;for queue: 'weblogic.kernel.Default (self-tuning)':- Result from pauseConsumption: null&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;2011-01-18 20:51:28,554 [INFO ] ie.bge.middleware.jmswebtool.data.impl.jmx.QueuePersistenceJmxImpl:[ACTIVE] ExecuteThread&lt;span style="color: red; "&gt;: '4'&lt;/span&gt; for queue: 'weblogic.kernel.Default (self-tuning)':- Result from pauseConsumption: null&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;...&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;2011-01-18 20:51:28,644 [DEBUG] myClass :[ACTIVE] ExecuteThread: &lt;span style="color: red; "&gt;'4'&lt;/span&gt; for queue: 'weblogic.kernel.Default (self-tuning)':- &lt;span style="color: red; "&gt;Creating new Weblogic session WebAdminTool1295383888606&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;2011-01-18 20:51:48,669 [ERROR] myClass:[ACTIVE] ExecuteThread&lt;span style="color: red; "&gt;: '4'&lt;/span&gt; for queue: 'weblogic.kernel.Default (self-tuning)':- ERROR: Another session operation is in progress. Please retry later.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;...&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;2011-01-18 20:51:58,571 [DEBUG] myClass:[ACTIVE] ExecuteThread: &lt;span style="color: red; "&gt;'3' &lt;/span&gt;for queue: 'weblogic.kernel.Default (self-tuning)':-&lt;span style="color: red; "&gt; Activated changes in the session: WebAdminTool1295383871917&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-9018876609563579826?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/9018876609563579826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=9018876609563579826' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/9018876609563579826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/9018876609563579826'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/01/http-get.html' title='HTTP GET'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-1334955905547066824</id><published>2011-01-17T21:41:00.002Z</published><updated>2011-01-17T21:45:23.119Z</updated><title type='text'>Free memory Grid Control Agent</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;One problem we had with our Linux systems is: “where is all the memory gone?”&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;We’ve been there in the past and it looks like the Grid Control (GC) Agent suffers from exactly this misunderstanding.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;In our case we have:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 36pt; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;Each of our PROD boxes has 32 GB (GiB to be precise) of physical memory&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 36pt; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;They all have 16GB of swap space&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 36pt; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;None of them is really using the swap space&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 36pt; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;Two out of three report less than 1GB of free memory&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 72pt; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;&lt;span&gt;o&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;one     166MB&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 72pt; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;&lt;span&gt;o&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;two     720MB&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 72pt; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;&lt;span&gt;o&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;three   3978MB&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 36pt; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt; All three are using 20GB or more memory for caching&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 72pt; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;&lt;span&gt;o&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;one     23 GB&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 72pt; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;&lt;span&gt;o&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;two     21GB&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 72pt; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;&lt;span&gt;o&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;three     20GB&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;So, where is the memory gone? Caching of course!&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;Check memory using the free command or reading the MemFree line in /proc/meminfo is not good enough w/ Linux systems.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;If there is any memory available, the kernel will take it for I/O caching. If another process requests more memory, the kernel will take it out of the chunk used for I/O caching.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;Thus, in Linux systems, the memory available to applications is the memory reported to be free PLUS the memory used for I/O caching.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;So if we add the two values:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;grep ^MemFree /proc/meminfo | awk '{ print $2 }'&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;grep ^Cached /proc/meminfo | awk '{ print $2 }'&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;we get the effective memory available to applications (memory free).&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;Looks like this is the bit where the GC Agents gets confused.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;What can we do?&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 36pt; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;We could flush the I/O cache and monitor&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 36pt; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;We could check with Oracle what the GC Agents is supposed to be reporting (and/or report a bug)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 36pt; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;Just monitor MemFree and Cached and wait for the next GC alert (monitoring should be done by TSG, they already are flooding our system logs w/ SNMP daemon messages)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 36pt; font-size: 12pt; font-family: serif; "&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 11pt; color: rgb(31, 73, 125); "&gt;A combination of any of the above&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-1334955905547066824?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/1334955905547066824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=1334955905547066824' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/1334955905547066824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/1334955905547066824'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/01/free-memory-grid-control-agent.html' title='Free memory Grid Control Agent'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-5110573480809756958</id><published>2011-01-17T21:27:00.002Z</published><updated>2011-01-17T21:35:51.566Z</updated><title type='text'>HTTP Authentication</title><content type='html'>&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;Despite working with JEE for years I have always rolled my own Authentication solution. In my current position I inherited a FORM based security solution.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;This website give a nice overview.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;a href="http://onjava.com/pub/a/onjava/]2002/06/12/form.html"&gt;http://onjava.com/pub/a/onjava/]2002/06/12/form.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;Of particular note:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;Auth method is defined in the &lt;span class="Apple-style-span"&gt;web.xml&lt;/span&gt; in the following section&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&amp;lt;login-config&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&amp;lt;auth-method&gt;FORM&amp;lt;/auth-method&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&amp;lt;realm-name&gt;myrealm&amp;lt;/realm-name&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&amp;lt;form-login-config&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&amp;lt;form-login-page&gt;/login.jsp&amp;lt;/form-login-page&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&amp;lt;form-error-page&gt;/fail_login.html&amp;lt;/form-error-page&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&amp;lt;/form-login-config&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&amp;lt;/login-config&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;The login form must contain fields for entering username and password. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;These fields must be named &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;j_username and j_password, respectively. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;This form should post these values to j_security_check logical name. (Should use ssl to ensure passwords are protected)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;In our case we were using this on Welbogic, and using the default myrealm. This then uses the users/ groups and roles as defined in the weblogic domain.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-5110573480809756958?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/5110573480809756958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=5110573480809756958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/5110573480809756958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/5110573480809756958'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/01/http-authentication.html' title='HTTP Authentication'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-6551709462196080454</id><published>2011-01-17T21:26:00.000Z</published><updated>2011-01-17T21:27:07.540Z</updated><title type='text'>Oracle JCA and OSB</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;This is a right design cock up on Oracles part if you ask me.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Lets create a new OSB proxy to communicate with a Database table. In past projects we took the custom approach or rolling our own DB adapter, by creating a JAR resource, and accessing it via the OSB proxy.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Architecturally however this approach would have been frowned upon, so in my current position, where I’m inheriting a system built by Oracle consultancy they take the ‘approved’ design approach of using TopLink to create a DB adapter, and communicating with this via JCA.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Unfortunately it is a bit of a disaster.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Roadblock one:&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;To create/ edit the TopLink adapter we must use JDevelopper.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;To create/ edit OSB proxy we must use eclipse or the web front end.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;This, &lt;a rel="nofollow" target="_blank" href="http://blogs.oracle.com/middleware/2010/05/using_jca_adapter_with_osb_11113.html" style="color: blue; text-decoration: underline; "&gt;oracle owned blog entry&lt;/a&gt; even sounds exasperated, but was a life-saver in terms of getting the system up and running.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-6551709462196080454?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/6551709462196080454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=6551709462196080454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6551709462196080454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6551709462196080454'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/01/oracle-jca-and-osb.html' title='Oracle JCA and OSB'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-1095024792290065875</id><published>2011-01-17T21:08:00.005Z</published><updated>2011-01-21T07:40:04.088Z</updated><title type='text'>JMS lifecycle and Searching Filters (Message Selector)</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: sans-serif; font-size: 15px; "&gt;&lt;span class="answerbagvibrant"&gt;The JMS message lifecycle can be summarized as below with respect to the following two states:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="answerbagvibrant"&gt;1. A message sent by a JMS producer&lt;/span&gt;&lt;br /&gt;&lt;span class="answerbagvibrant"&gt;* Without any associated transaction:&lt;/span&gt;&lt;br /&gt;&lt;span class="answerbagvibrant"&gt;It is immediately current.&lt;/span&gt;&lt;br /&gt;&lt;span class="answerbagvibrant"&gt;* Within a JTA transaction or transacted JMS session:&lt;/span&gt;&lt;br /&gt;&lt;span class="answerbagvibrant"&gt;It remains pending until the transaction is committed or rolled back. If the transaction is committed, the message becomes available, and if the transaction is rolled back, the message is removed from the destination.&lt;/span&gt;&lt;br /&gt;&lt;span class="answerbagvibrant"&gt;* With a specified TimeToDeliver property:&lt;/span&gt;&lt;br /&gt;&lt;span class="answerbagvibrant"&gt;It remains pending until the TimeToDeliver period expires. This is expected because the purpose of the TimeToDeliver property is to keep the message unavailable to consumers until the specified time period.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="answerbagvibrant"&gt;2. A message received by a JMS consumer&lt;/span&gt;&lt;br /&gt;&lt;span class="answerbagvibrant"&gt;* Without any associated JTA transaction and in a non-transacted JMS session with an acknowledgement mode of NO_ACKNOWLEDGE or MULTICAST_NO_ACKNOWLEDGE:&lt;/span&gt;&lt;br /&gt;&lt;span class="answerbagvibrant"&gt;It is immediately removed from the destination.&lt;/span&gt;&lt;br /&gt;&lt;span class="answerbagvibrant"&gt;* Within a JTA transaction or transacted JMS session:&lt;/span&gt;&lt;br /&gt;&lt;span class="answerbagvibrant"&gt;It becomes pending until the transaction or session is committed or rolled back. On commit, the message is removed from the destination, and on rollback, the message becomes available again, unless a Redelivery delay is specified, in which case it continues to remain pending until the Redelivery delay.&lt;/span&gt;&lt;br /&gt;&lt;span class="answerbagvibrant"&gt;* Within a non-transacted JMS session with the acknowledgement mode of AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE, or CLIENT_ACKNOWLEDGE:&lt;/span&gt;&lt;br /&gt;&lt;span class="answerbagvibrant"&gt;It becomes pending until the acknowledgement is received.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Message Selector&lt;br /&gt;&lt;br /&gt;When searching for messages in JMS queue. There is an expression language for specifying parameters. This is known as Message Selector&lt;br /&gt;&lt;br /&gt;This is the format. This is an example from weblogic that I was using.&lt;br /&gt;JMSMessageId = 'ID:&lt;982769.1294675696539.0&gt;'&lt;br /&gt;&lt;br /&gt;What confused me was the ID section. I assumed that was the variable name, so I was changing the format to ID=&lt;&gt; etc.&lt;br /&gt;&lt;br /&gt;Note can also do logical operations, see http://download.oracle.com/javaee/6/api/javax/jms/Message.html&lt;br /&gt;e.g.&lt;br /&gt;"JMSType = 'car' AND color = 'blue' AND weight &gt; 2500"&lt;br /&gt;&lt;br /&gt;State String&lt;br /&gt;The current state of a message, which could be one of DELAYED, EXPIRED, ORDERED, PAUSED, RECEIVE, REDELIVERY_COUNT_EXCEEDED, SEND, TRANSACTION, or VISIBLE.&lt;br /&gt;&lt;br /&gt;Note with Weblogic Unit of Order&lt;br /&gt;We were having problems. A standalone utility program is used to display Jms message &lt;a href="http://khylo.blogspot.com/2010/10/weblogic-jms.html"&gt;see this post&lt;/a&gt; . It was having problems displaying some messages. One common theme appeared to be that they were in the Ordered state, as opposed to the visible state. This is due to the message using the Unit of Order to ensure ordered delivery.&lt;br /&gt;&lt;br /&gt;Another blog post noted (http://forum.springsource.org/showthread.php?t=69398 )that if the message is in the Receive State, then it may be caused by having 2 Weblogic servers with the same name, where one weblogic server is consuming from a queue serverd from another Weblogic server.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Note also the Xml manipulation required on the JMSMessage&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;private static final Integer JMS_ALL_STATES = new Integer(0x7fffffff);&lt;br /&gt; &lt;br /&gt;public JmsMessage[] getMEssages(){&lt;br /&gt;try {&lt;br /&gt; jmxCon = getJMXConnector(server, username, password);&lt;br /&gt; jmxCon.connect();&lt;br /&gt; MBeanServerConnection con = jmxCon.getMBeanServerConnection();&lt;br /&gt; ObjectName destination = findQueueObjectName(con, jmsModuleName, queueName);&lt;br /&gt; String newCursor = (String) con.invoke(destination, "getMessages", new Object[] { "JMSMessageID='"+msgId+"'", QueuePersistenceJmxImpl.BROWSE_TIMEOUT,  JMS_ALL_STATES}, OP_GET_MESSAGES_ALL_SIGNATURE);&lt;br /&gt; result.setCursor(newCursor);&lt;br /&gt; // Should only be one value so no need to sort&lt;br /&gt; //con.invoke(destination, "sort", new Object[] { newCursor, POSITION_UNDEFINED, DEFAULT_ORDERING_ATTRS, DEFAULT_ORDER }, OP_SORT_SIGNATURE);&lt;br /&gt; result.setNumMessages((Long) con.invoke(destination, "getCursorSize", new Object[] { newCursor }, OP_GET_CURSOR_SIZE_SIGNATURE));&lt;br /&gt; Long initialPosition =new Long(0);&lt;br /&gt; Integer pageSize=new Integer(100);&lt;br /&gt; data = (CompositeData[]) con.invoke(destination, "getItems", new Object[] { newCursor, initialPosition, pageSize }, OP_GET_ITEMS_SIGNATURE);                                                 &lt;br /&gt; if (data != null) {&lt;br /&gt;  JmsMessage[] ret = toJmsMessages(data, new CursorParam(destination, con, newCursor));                                                                     &lt;br /&gt;  if(ret!=null){&lt;br /&gt;   if(ret.length&gt;1)&lt;br /&gt;    logger.warn("findMessage (by messageId) returned more than one result"+JavaUtil.toString(ret));&lt;br /&gt;   return ret[0];&lt;br /&gt;  }             &lt;br /&gt;  return null;&lt;br /&gt; }&lt;br /&gt;} catch (Exception e) {&lt;br /&gt; // throw new RuntimeException("Error while browsing messages",&lt;br /&gt; // e);&lt;br /&gt; // ignore the error and try the next node&lt;br /&gt; logger.error("Error searching for message " + msgId + " on server " + server, e);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private static JMXConnector getJMXConnector(Server server, String username, String password) throws IOException {&lt;br /&gt; String fullServerURL = "service:jmx:iiop://" + server.getUrl() + "/jndi/weblogic.management.mbeanservers.runtime";&lt;br /&gt; JMXConnector jmxCon = null;&lt;br /&gt;&lt;br /&gt; JMXServiceURL serviceUrl = new JMXServiceURL(fullServerURL);&lt;br /&gt;&lt;br /&gt; Hashtable&lt;String, String&gt; env = new Hashtable&lt;String, String&gt;();&lt;br /&gt; env.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES, "weblogic.management.remote");&lt;br /&gt; env.put(javax.naming.Context.SECURITY_PRINCIPAL, username);&lt;br /&gt; env.put(javax.naming.Context.SECURITY_CREDENTIALS, CryptoUtilWrapper.decrypt(password));&lt;br /&gt;&lt;br /&gt; jmxCon = JMXConnectorFactory.newJMXConnector(serviceUrl, env);&lt;br /&gt;&lt;br /&gt; return jmxCon;&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;private JmsMessage[] toJmsMessages(CompositeData[] data, CursorParam params) {&lt;br /&gt; XPathUtils xpathUtils = null;&lt;br /&gt; Document d;&lt;br /&gt; JmsMessage[] ret = new JmsMessage[data.length];&lt;br /&gt; int i=0;&lt;br /&gt; MBeanServerConnection con = params.getConnection();&lt;br /&gt; ObjectName destination = params.getDestination();&lt;br /&gt; try {&lt;br /&gt;  for (CompositeData resItem : data) {&lt;br /&gt;   JmsMessage msg = new JmsMessage();&lt;br /&gt;   d = XMLUtils.stringToDocument((String) resItem.get("MessageXMLText"));&lt;br /&gt;   xpathUtils = new XPathUtils(d, QueuePersistenceJmxImpl.JMS_MESSAGE_NS_CTX);&lt;br /&gt;   xpathUtils.setDocument(d);&lt;br /&gt;   msg.setId(xpathUtils.findValue("/mes:WLJMSMessage/mes:Header/mes:JMSMessageID"));&lt;br /&gt;   msg.setTimestamp(new Date(Long.parseLong(xpathUtils.findValue("/mes:WLJMSMessage/mes:Header/mes:JMSTimestamp"))));&lt;br /&gt;   // Get BOdy&lt;br /&gt;   CompositeData body = (CompositeData) con.invoke(destination, "getMessage", new Object[] { params.getCursor(), msg.getId() }, OP_CURSOR_GET_MESSAGE_SIGNATURE);&lt;br /&gt;   d = XMLUtils.stringToDocument((String)body.get("MessageXMLText"));&lt;br /&gt;   xpathUtils = new XPathUtils(d, QueuePersistenceJmxImpl.JMS_MESSAGE_NS_CTX);&lt;br /&gt;   xpathUtils.setDocument(d);&lt;br /&gt;   msg.setBody(xpathUtils.findValue("/mes:WLJMSMessage/mes:Body/mes:Text"));&lt;br /&gt;   ret[i++]=msg;&lt;br /&gt;  }&lt;br /&gt;  return ret;&lt;br /&gt; } catch (Exception e) {&lt;br /&gt;     throw new RuntimeException("Error while transforming CompositeData to JmsMessage", e);&lt;br /&gt; }&lt;br /&gt;}             &lt;br /&gt;&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/14419533-1095024792290065875?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/1095024792290065875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=1095024792290065875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/1095024792290065875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/1095024792290065875'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/01/jms-searching-filters-message-selector.html' title='JMS lifecycle and Searching Filters (Message Selector)'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-131392350370870694</id><published>2011-01-17T20:26:00.002Z</published><updated>2011-01-17T20:34:01.613Z</updated><title type='text'>Oracle partitioning table</title><content type='html'>Just a note on how we partitioned a large table (Transaction) in Oracle into monthly partitions/. It involves creating a swap table to store existing data, then placing it into seperate partitions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Just a note on how we partitioned a large table (Transaction) in Oracle into monthly partitions/.&lt;br /&gt;&lt;br /&gt;DROP TABLE TRANSACTION_SWAP&lt;br /&gt;/&lt;br /&gt;ALTER TABLE TRANSACTION DROP CONSTRAINT TRANSACTION_PK&lt;br /&gt;/&lt;br /&gt;DROP INDEX TRANSACTION_IDX1&lt;br /&gt;/&lt;br /&gt;DROP INDEX TRANSACTION_IDX2&lt;br /&gt;/&lt;br /&gt;RENAME TRANSACTION TO TRANSACTION_SWAP&lt;br /&gt;/&lt;br /&gt;REM&lt;br /&gt;REM Now create new version of table, partitioned and with a different primary key&lt;br /&gt;REM&lt;br /&gt; &lt;br /&gt;CREATE TABLE TRANSACTION (&lt;br /&gt;    "ID"                     NUMBER NOT NULL ENABLE,&lt;br /&gt;    "ORIGINATOR"             VARCHAR2(4 BYTE),&lt;br /&gt;    "ORIGINATOR_INSTANCE_ID" VARCHAR2(100 BYTE),&lt;br /&gt;    "MESSAGE_REF"            VARCHAR2(512 BYTE),&lt;br /&gt;    "ENTITY_REF"             VARCHAR2(512 BYTE),&lt;br /&gt;    "TIME"                   TIMESTAMP(6),&lt;br /&gt;    "STATUS"                 VARCHAR2(5 BYTE),&lt;br /&gt;    "JMS_MESSAGE_ID"         VARCHAR2(30 BYTE),&lt;br /&gt;    "PROJECT_NAME"           VARCHAR2(384 BYTE),&lt;br /&gt;    "OPERATION"              VARCHAR2(150 BYTE),&lt;br /&gt;    "INTERFACE"              VARCHAR2(20 BYTE))&lt;br /&gt;Partition By Range(Time)&lt;br /&gt;(Partition P_2010_10_31 Values Less Than (To_Timestamp('2010-11-01','YYYY-MM-DD')),&lt;br /&gt; Partition P_2010_11_30 Values Less Than (To_Timestamp('2010-12-01','YYYY-MM-DD')),&lt;br /&gt; Partition P_2010_12_31 Values Less Than (To_Timestamp('2011-01-01','YYYY-MM-DD')),&lt;br /&gt; Partition P_2011_01_31 Values Less Than (To_Timestamp('2011-02-01','YYYY-MM-DD')),&lt;br /&gt; Partition P_High Values Less Than(Maxvalue));&lt;br /&gt;/* &lt;br /&gt;REM&lt;br /&gt;REM  Copy over all data before creating indexes - for efficiency reasons&lt;br /&gt;REM  Note in some environments, the time can be null on some entries in the table.&lt;br /&gt;REM&lt;br /&gt;REM  These rows will be placed in a distinct table&lt;br /&gt;REM&lt;br /&gt; &lt;br /&gt;INSERT INTO TRANSACTION&lt;br /&gt;   (ID&lt;br /&gt;   ,ORIGINATOR        &lt;br /&gt;   ,ORIGINATOR_INSTANCE_ID&lt;br /&gt;   ,MESSAGE_REF           &lt;br /&gt;   ,ENTITY_REF            &lt;br /&gt;   ,TIME                  &lt;br /&gt;   ,STATUS          &lt;br /&gt;   ,JMS_MESSAGE_ID        &lt;br /&gt;   ,PROJECT_NAME&lt;br /&gt;   ,OPERATION             &lt;br /&gt;   ,INTERFACE)&lt;br /&gt;SELECT&lt;br /&gt;    ID&lt;br /&gt;   ,ORIGINATOR        &lt;br /&gt;   ,ORIGINATOR_INSTANCE_ID&lt;br /&gt;   ,MESSAGE_REF           &lt;br /&gt;   ,ENTITY_REF            &lt;br /&gt;   ,TIME&lt;br /&gt;   ,STATUS          &lt;br /&gt;   ,JMS_MESSAGE_ID        &lt;br /&gt;   ,PROJECT_NAME&lt;br /&gt;   ,OPERATION             &lt;br /&gt;   ,INTERFACE&lt;br /&gt;FROM TRANSACTION_SWAP&lt;br /&gt;WHERE TIME IS NOT NULL&lt;br /&gt;/&lt;br /&gt;DROP TABLE TRANSACTION_ARC_NOTIME&lt;br /&gt;/&lt;br /&gt;CREATE TABLE TRANSACTION_ARC_NOTIME&lt;br /&gt;AS&lt;br /&gt;SELECT *&lt;br /&gt;FROM TRANSACTION_SWAP&lt;br /&gt;WHERE TIME IS NULL&lt;br /&gt;/&lt;br /&gt;/*&lt;br /&gt;REM&lt;br /&gt;REM Now create indexes&lt;br /&gt;REM&lt;br /&gt; */&lt;br /&gt;rem ALTER TABLE TRANSACTION ADD (CONSTRAINT "TRANSACTION_PK" PRIMARY KEY (TIME,ID));&lt;br /&gt;CREATE UNIQUE INDEX TRANSACTION_UID1 ON TRANSACTION(TIME,ID) LOCAL;&lt;br /&gt; &lt;br /&gt;ALTER TABLE TRANSACTION ADD (CONSTRAINT TRANSACTION_PK PRIMARY KEY (TIME, ID) USING INDEX TRANSACTION_UID1);&lt;br /&gt; &lt;br /&gt;CREATE INDEX TRANSACTION_IDX1 On TRANSACTION (ORIGINATOR_INSTANCE_ID, STATUS) LOCAL;&lt;br /&gt;REM&lt;br /&gt;REM And re-create a grant which is present on production. This may fail elsewhere&lt;br /&gt;REM&lt;br /&gt;GRANT SELECT ON TRANSACTION TO READONLY&lt;br /&gt;/&lt;br /&gt; &lt;br /&gt;REM&lt;br /&gt;REM  Create the archive table at the same time&lt;br /&gt;REM&lt;br /&gt;CREATE TABLE TRANSACTION_ARC (&lt;br /&gt;    "ID"                     NUMBER NOT NULL ENABLE,&lt;br /&gt;    "ORIGINATOR"             VARCHAR2(4 BYTE),&lt;br /&gt;    "ORIGINATOR_INSTANCE_ID" VARCHAR2(100 BYTE),&lt;br /&gt;    "MESSAGE_REF"            VARCHAR2(512 BYTE),&lt;br /&gt;    "ENTITY_REF"             VARCHAR2(512 BYTE),&lt;br /&gt;    "TIME"                   TIMESTAMP(6),&lt;br /&gt;    "STATUS"                 VARCHAR2(5 BYTE),&lt;br /&gt;    "JMS_MESSAGE_ID"         VARCHAR2(30 BYTE),&lt;br /&gt;    "PROJECT_NAME"           VARCHAR2(384 BYTE),&lt;br /&gt;    "OPERATION"              VARCHAR2(150 BYTE),&lt;br /&gt;    "INTERFACE"              VARCHAR2(20 BYTE))&lt;br /&gt;Partition By Range(Time)&lt;br /&gt;(Partition P_2010_10_31 Values Less Than (To_Timestamp('2010-11-01','YYYY-MM-DD')),&lt;br /&gt; Partition P_2010_11_30 Values Less Than (To_Timestamp('2010-12-01','YYYY-MM-DD')),&lt;br /&gt; Partition P_2010_12_31 Values Less Than (To_Timestamp('2011-01-01','YYYY-MM-DD')),&lt;br /&gt; Partition P_2011_01_31 Values Less Than (To_Timestamp('2011-02-01','YYYY-MM-DD')),&lt;br /&gt; Partition P_High Values Less Than(Maxvalue));&lt;br /&gt; &lt;br /&gt;REM&lt;br /&gt;REM  recreate any package body with a new version which defaults the time in the table,&lt;br /&gt;REM  to make sure there is always a value there&lt;br /&gt;REM&lt;br /&gt;@TrackingProcedureBody&lt;br /&gt; &lt;br /&gt;PROMPT *** OPERATION COMPLETE ***&lt;br /&gt;PROMPT&lt;br /&gt;PROMPT *** WHEN HAPPY WITH RESULTS, TRUNCATE THE TABLE TRANSACTION_SWAP&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-131392350370870694?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/131392350370870694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=131392350370870694' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/131392350370870694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/131392350370870694'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2011/01/oracle-partitioning-table.html' title='Oracle partitioning table'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-128405732594867704</id><published>2010-12-23T07:11:00.002Z</published><updated>2010-12-23T07:16:56.352Z</updated><title type='text'>Web Security (and Weblogic)</title><content type='html'>Web Security (and Weblogic)&lt;br /&gt;&lt;br /&gt;When defining security roles for a web app.&lt;br /&gt;&lt;br /&gt;1/ In your web.xml&lt;br /&gt;Declare how and where the authentication should occur.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;     &amp;lt;login-config&gt;&lt;br /&gt;           &amp;lt;auth-method&gt;FORM&amp;lt;/auth-method&gt;&lt;br /&gt;           &amp;lt;realm-name&gt;myrealm&amp;lt;/realm-name&gt;&lt;br /&gt;           &amp;lt;form-login-config&gt;&lt;br /&gt;                 &amp;lt;form-login-page&gt;/action/auth/login&amp;lt;/form-login-page&gt;&lt;br /&gt;                 &amp;lt;form-error-page&gt;/jsp/security/login-error.jsp&amp;lt;/form-error-page&gt;&lt;br /&gt;           &amp;lt;/form-login-config&gt;&lt;br /&gt;     &amp;lt;/login-config&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;2/ In your web.xml&lt;br /&gt;Declare your authorization roles&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;security-role&gt;&lt;br /&gt;           &amp;lt;role-name&gt;MessagePoster&amp;lt;/role-name&gt;&lt;br /&gt;     &amp;lt;/security-role&gt;&lt;br /&gt;     &amp;lt;security-role&gt;&lt;br /&gt;           &amp;lt;role-name&gt;MessageViewer&amp;lt;/role-name&gt;&lt;br /&gt;     &amp;lt;/security-role&gt;&lt;br /&gt;     &amp;lt;security-role&gt;&lt;br /&gt;           &amp;lt;role-name&gt;QueuePauser&amp;lt;/role-name&gt;&lt;br /&gt;     &amp;lt;/security-role&gt;&lt;br /&gt;     &amp;lt;security-role&gt;&lt;br /&gt;           &amp;lt;role-name&gt;ServiceEnabler&amp;lt;/role-name&gt;&lt;br /&gt;     &amp;lt;/security-role&gt;&lt;br /&gt;     &amp;lt;security-role&gt;&lt;br /&gt;           &amp;lt;role-name&gt;LogLevelManipulator&amp;lt;/role-name&gt;&lt;br /&gt;     &amp;lt;/security-role&gt;&lt;br /&gt;     &amp;lt;security-role&gt;&lt;br /&gt;           &amp;lt;role-name&gt;Resequencer&amp;lt;/role-name&gt;&lt;br /&gt;     &amp;lt;/security-role&gt;&lt;br /&gt;     &amp;lt;security-role&gt;&lt;br /&gt;           &amp;lt;role-name&gt;MessageRetrier&amp;lt;/role-name&gt;&lt;br /&gt;     &amp;lt;/security-role&gt;&lt;br /&gt;     &amp;lt;security-role&gt;&lt;br /&gt;           &amp;lt;role-name&gt;ErrorReportCloser&amp;lt;/role-name&gt;&lt;br /&gt;     &amp;lt;/security-role&gt;&lt;br /&gt;     &amp;lt;security-role&gt;&lt;br /&gt;           &amp;lt;role-name&gt;SystemSwitcher&amp;lt;/role-name&gt;&lt;br /&gt;     &amp;lt;/security-role&gt;&lt;br /&gt;     &amp;lt;security-role&gt;&lt;br /&gt;           &amp;lt;role-name&gt;OptionsSetter&amp;lt;/role-name&gt;&lt;br /&gt;     &amp;lt;/security-role&gt;&lt;br /&gt;   &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;For Weblogic.&lt;/b&gt;&lt;br /&gt;In the security realm different security models are possible. This is set from the&lt;br /&gt;Security Model Default: setting&lt;br /&gt;Options are `DD (Deployment Discriptor), Custom Roles, Custom Roles and Policies, Advanced..&lt;br /&gt;When deploying you can set mode&lt;br /&gt;Security&lt;br /&gt;What security model do you want to use with this application?&lt;br /&gt;DD Only: Use only roles and policies that are defined in the deployment descriptors.  Custom Roles: Use roles that are defined in the Administration Console; use policies that are defined in the deployment descriptor.  Custom Roles and Policies: Use only roles and policies that are defined in the Administration Console.  Advanced: Use a custom model that you have configured on the realm's configuration page.&lt;br /&gt;&lt;br /&gt;In your Weblogic.xml you can perform the role/ group/ user mappings&lt;br /&gt;(one entry per role)&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;wls:security-role-assignment&gt;&lt;br /&gt;     &amp;lt;wls:role-name&gt;ErrorReportCloser&amp;lt;/wls:role-name&gt;&lt;br /&gt;     &amp;lt;wls:principal-name&gt;WATSupportGroup&amp;lt;/wls:principal-name&gt;&lt;br /&gt;&amp;lt;/wls:security-role-assignment&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Or you can delegate the mapping back to the Weblogic admin console (better).. See my earlier post on defining Weblogic Roles&lt;br /&gt;(one entry per role)&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;wls:security-role-assignment&gt;&lt;br /&gt;     &amp;lt;wls:role-name&gt;MessageViewer&amp;lt;/wls:role-name&gt;&lt;br /&gt;     &amp;lt;externally-defined/&gt;&lt;br /&gt;&amp;lt;/wls:security-role-assignment&gt;&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/14419533-128405732594867704?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/128405732594867704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=128405732594867704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/128405732594867704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/128405732594867704'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/12/web-security-and-weblogic.html' title='Web Security (and Weblogic)'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-6178739087801845025</id><published>2010-12-23T07:07:00.002Z</published><updated>2010-12-23T07:07:53.559Z</updated><title type='text'>Oracke Soa Suite</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;(work in progress) I will fill this in as I progress&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Instructions for Soa Suite&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Best place to start is a tutorial&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;a rel="nofollow" target="_blank" href="http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10275/intro.htm" style="color: blue; text-decoration: underline; "&gt;http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10275/intro.htm&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;This tells you what you need to download&lt;/p&gt;&lt;p style="margin-right: 0px; margin-left: 36pt; font-size: 12pt; font-family: serif; margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span style="font-size: 10pt; font-family: Symbol; "&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a rel="nofollow" target="_blank" href="http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10275/intro.htm#BABEBBGD" style="color: blue; text-decoration: underline; "&gt;Task 1: Install Oracle JDeveloper Studio&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-right: 0px; margin-left: 36pt; font-size: 12pt; font-family: serif; margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span style="font-size: 10pt; font-family: Symbol; "&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a rel="nofollow" target="_blank" href="http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10275/intro.htm#BABGFDJF" style="color: blue; text-decoration: underline; "&gt;Task 2: Install the Fusion Order Demo Application&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-right: 0px; margin-left: 36pt; font-size: 12pt; font-family: serif; margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span style="font-size: 10pt; font-family: Symbol; "&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a rel="nofollow" target="_blank" href="http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10275/intro.htm#BABBAIJJ" style="color: blue; text-decoration: underline; "&gt;Task 3: Install Oracle SOA Suite&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-right: 0px; margin-left: 36pt; font-size: 12pt; font-family: serif; margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span style="font-size: 10pt; font-family: Symbol; "&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a rel="nofollow" target="_blank" href="http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10275/intro.htm#BABDJBFE" style="color: blue; text-decoration: underline; "&gt;Task 4: Create a Connection to an Oracle WebLogic Server&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Task1/&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Download from&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;a rel="nofollow" target="_blank" href="http://www.oracle.com/technetwork/developer-tools/jdev/overview/index.html" style="color: blue; text-decoration: underline; "&gt;http://www.oracle.com/technetwork/developer-tools/jdev/overview/index.html&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Then you need to download Extensions from (&lt;a rel="nofollow" target="_blank" href="http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/156082.xml" style="color: blue; text-decoration: underline; "&gt;http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/156082.xml&lt;/a&gt;)&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;a rel="nofollow" target="_blank" href="http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/156082.xml#oracle.sca.modeler" style="color: blue; text-decoration: underline; "&gt;Oracle SOA Composite Editor&lt;/a&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-6178739087801845025?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/6178739087801845025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=6178739087801845025' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6178739087801845025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6178739087801845025'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/12/oracke-soa-suite.html' title='Oracke Soa Suite'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-7380201500333256494</id><published>2010-12-23T07:05:00.001Z</published><updated>2010-12-23T07:05:56.881Z</updated><title type='text'>Pretty print Xml</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;If you want to format your Xml..theres lots of ways&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;This url uses Xerces&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;a rel="nofollow" target="_blank" href="http://stackoverflow.com/questions/139076/how-to-pretty-print-xml-from-java" style="color: blue; text-decoration: underline; "&gt;http://stackoverflow.com/questions/139076/how-to-pretty-print-xml-from-java&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;(it also uses jtidy which I could not get to work with pure XML.. (kept adding HTML tags).&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;If you want to avoid xerces and just stick to standard java then you need to use the Transformer.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span style="font-size: 12pt; "&gt;Just to note that top rated answer requires the use of xerces.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span style="font-size: 12pt; "&gt;If you don't want to add this dependency then you can simply use the standard jdk libraries.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span style="font-size: 12pt; "&gt;(Note if an error occurs this will return the original text)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span style="font-size: 10pt; "&gt;package ie.bge.middleware.tools;&lt;br /&gt;&lt;br /&gt;import java.io.ByteArrayInputStream;&lt;br /&gt;import java.io.ByteArrayOutputStream;&lt;br /&gt;&lt;br /&gt;import javax.xml.transform.OutputKeys;&lt;br /&gt;import javax.xml.transform.Source;&lt;br /&gt;import javax.xml.transform.Transformer;&lt;br /&gt;import javax.xml.transform.sax.SAXSource;&lt;br /&gt;import javax.xml.transform.sax.SAXTransformerFactory;&lt;br /&gt;import javax.xml.transform.stream.StreamResult;&lt;br /&gt;&lt;br /&gt;import org.xml.sax.InputSource;&lt;br /&gt;&lt;br /&gt;public class Test {&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        Test t = new Test();&lt;br /&gt;        System.out.println(t.formatXml("&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;d&gt;text D&lt;/d&gt;&lt;e value="'0'/"&gt;&lt;/b&gt;&lt;/a&gt;"));&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public String formatXml(String xml){&lt;br /&gt;        try{&lt;br /&gt;            Transformer serializer= SAXTransformerFactory.newInstance().newTransformer();&lt;br /&gt;            serializer.setOutputProperty(OutputKeys.INDENT, "yes");&lt;br /&gt;            Source xmlSource=new SAXSource(new InputSource(new ByteArrayInputStream(xml.getBytes())));&lt;br /&gt;            StreamResult res =  new StreamResult(new ByteArrayOutputStream());&lt;br /&gt;            serializer.transform(xmlSource, res);&lt;br /&gt;            return new String(((ByteArrayOutputStream)res.getOutputStream()).toByteArray());&lt;br /&gt;        }catch(Exception e){&lt;br /&gt;            //TODO log error&lt;br /&gt;            return xml;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-7380201500333256494?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/7380201500333256494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=7380201500333256494' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/7380201500333256494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/7380201500333256494'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/12/pretty-print-xml.html' title='Pretty print Xml'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-6380584736234545925</id><published>2010-12-23T07:01:00.000Z</published><updated>2010-12-23T07:02:01.112Z</updated><title type='text'>Weblogic DB issue</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Found on Weblogic 11g&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;I have a few DataSources defined. Some of which are on the same DB server just different SID’s (Oracle DB’s).&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;One of the DB instances was removed. Then all instances of DB’s on that server failed to start, (Even though the other DB was still running. When I untargeted the problem server and re-started, then the 2&lt;sup&gt;nd&lt;/sup&gt; DB started fine.)&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-6380584736234545925?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/6380584736234545925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=6380584736234545925' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6380584736234545925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6380584736234545925'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/12/weblogic-db-issue.html' title='Weblogic DB issue'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-9222756535517341544</id><published>2010-12-23T06:47:00.002Z</published><updated>2010-12-23T06:55:10.174Z</updated><title type='text'>Debugging Log4j issues</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;b&gt;Log4j&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Handy for log4j issues&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Set the following switch when you start the JVM to see what log4j is upto.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;-Dlog4j.debug&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Check for log4j output. This will tell where it is loading its configuration from.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Note be careful with multiple webapps having multiple log4j.xml or log4j.properties. These can override your settings.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;This next section is not true.. Its was actually caused by log4j delayed write to log file.. However I'm still including it because the detection techniques are useful.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;(My actual problem was incredibly simple, and I shoudl have checked this first, but I made an assumption, and as we all know &lt;a href="http://www.imdb.com/title/tt0114781/quotes"&gt;assumption is the mother of all F£$k ups&lt;/a&gt;.. The tool I was working on was using Simple Logging Facade for Java (SLF4J).. The developpers had simply included the slf4j-jdk.jar fil in the classpath instead of the slf4j-log4j.jar. Fixing my problem was simply a case of replacing the wrong jar. USing the log4j debugger was useful however in pinpointing what configuration files were ben picked up.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 36pt; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span class="Apple-style-span" &gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-9222756535517341544?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/9222756535517341544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=9222756535517341544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/9222756535517341544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/9222756535517341544'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/12/debugging-log4j-issues.html' title='Debugging Log4j issues'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-5100104655510933717</id><published>2010-11-08T21:11:00.005Z</published><updated>2011-01-17T21:39:14.409Z</updated><title type='text'>Weblogic’s many jar files...</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Heres some problems I encountered trying to run some applications using Weblogic.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;b&gt;1/&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;b&gt; java.lang.NoClassDefFoundError: weblogic/kernel/KernelStatus&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;I was banging my head against a wall with  a&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Exception in thread "Main Thread" java.lang.NoClassDefFoundError: weblogic/kernel/KernelStatus&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;While trying to write a simple standalone program to connect to a Weblogic instance via JNDI, and manipulate some JMX values. The solution was provided via this posting&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;a rel="nofollow" target="_blank" href="http://blogs.oracle.com/jamesbayer/2008/08/workshop_for_weblogic_103_jee.html" style="color: blue; text-decoration: underline; "&gt;http://blogs.oracle.com/jamesbayer/2008/08/workshop_for_weblogic_103_jee.html&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;To actually run the Main method class in Workshop, I right click on the class in the Project Explorer and select Run As-&gt;&lt;b&gt;Open Run Dialog&lt;/b&gt;.  In the classpath tab, be sure to add the wlclient.jar file located here &lt;server_home&gt;\wlserver_10.3\server\lib to the User Entries section and remove the WebLogic System Libraries from the Bootstrap Entries section.  If you forget to remove the WebLogic System Libraries, you will get a stack like this: &lt;span style="font-size: 10pt; "&gt;Exception in thread "Main Thread" java.lang.NoClassDefFoundError: weblogic/kernel/KernelStatus&lt;/span&gt;&lt;/server_home&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span style="font-size: 10pt; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;There is also a wlFullCLient.jar file that may be useful in other scenarios&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;b&gt;2/&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Just when you thought it was safe however, you get the following&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;ClassCastException: weblogic.jdbc.common.internal.ConnectionEnv&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Here &lt;a rel="nofollow" target="_blank" href="http://forums.oracle.com/forums/thread.jspa?threadID=1048084&amp;amp;tstart=118" style="color: blue; text-decoration: underline; "&gt;http://forums.oracle.com/forums/thread.jspa?threadID=1048084&amp;amp;tstart=118&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;the advice is as follows&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 36pt; font-size: 11pt; font-family: sans-serif; "&gt;&lt;i&gt;I would suggest you to remove the wlClient.jar from the classpath.&lt;br /&gt;Also make sure that there are no other jar files related to weblogic in the classpath.&lt;br /&gt;Add weblogic.jar in the classpath and make sure that this weblogic.jar is the same jar that is in the weblogic server classpath.&lt;br /&gt;&lt;br /&gt;This happens because of the difference in the jar used by the Client JVM and server JVM.&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;In fairness this does fix the problem.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Depending on what your client does, it may be necessary to include the Weblogic.jar (if its doing some funky stuff), to ensure it has all the correct classes. Be careful from oracle workshop (eclipse) however of attached bootstrap class loaders.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;b&gt;3/ Missing servlet jars/ JEE standard jars.&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;You may run into problems with missing J2EE standard jars. I for example was getting errors about HttpServletRequest etc from the Servlet Api. In previous versions of weblogic, the weblogic.jar file would contian all of these, but since 10.3.x they have stopped including it.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; font-size: 16px; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="WordSection1"&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;When looking up missing jars, try the following, check the following...&lt;/span&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;$WL_HOME/server/lib/api.jar&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;In there the MANIFEST.MF contains a list of jars that include the usual J2EE jars etc. These have been removed from Weblogic.jar so may be needed.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;Finally... I've mentioned this before but it is important when working with Ears and Wars on weblogic.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;If you start seeing exceptions such as &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;java.lang.ClassCastException: weblogic.xml.jaxp.RegistrySAXParserFactory cannot be cast to javax.xml.parsers.SAXParserFactory&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;deep in the Weblogic code, you have more than likely run into a dreaded classpath incompatibility. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; font-size: 16px; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;To avoid this use the following in your weblogic.xml&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: 10pt; color: teal; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: rgb(63, 127, 127); "&gt;wls:container-descriptor&lt;/span&gt;&lt;span style="font-size: 10pt; color: teal; "&gt;&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: 10pt; color: black; "&gt;    &lt;/span&gt;&lt;span style="font-size: 10pt; color: teal; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: rgb(63, 127, 127); "&gt;wls:prefer-web-inf-classes&lt;/span&gt;&lt;span style="font-size: 10pt; color: teal; "&gt;&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: black; "&gt;true&lt;/span&gt;&lt;span style="font-size: 10pt; color: teal; "&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; color: rgb(63, 127, 127); "&gt;wls:prefer-web-inf-classes&lt;/span&gt;&lt;span style="font-size: 10pt; color: teal; "&gt;&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size: 10pt; color: teal; "&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; color: rgb(63, 127, 127); "&gt;wls:container-descriptor&lt;/span&gt;&lt;span style="font-size: 10pt; color: teal; "&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;This will then result in a lot of ClassNotFoudn exceptions which may mean a hunt through your libs to add missing files&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;For instance heres the issues I ran into&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;java.lang.ClassCastException: weblogic.xml.jaxp.RegistrySAXParserFactory cannot be cast to javax.xml.parsers.SAXParserFactory&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;This means that we need a newer version of the SAXParserFactory than provided by Weblogic (we are using Bea jdk 1.6, so thast is picking up the lastest version of javax.xml.parsers.SAXParserFactory, but then weblogic.xml.jaxp.RegistrySAXParserFactory is been instantiated and this refers to an older version of SAXParserFactory)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;The problem in my case was un-resolvable. The incompatible jar was needed to perform translation of a binary Xml format, but unfortunately it also included a newer version of xmlparser. This newer version then started causing problems with taglibs in Jsps. Our fix was to move of deployment from 10.3.1 to 10.3.3&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;b&gt;&lt;span lang="EN-US"&gt;4/ &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: sans-serif; font-size: 15px; "&gt;&lt;a rel="nofollow" target="_blank" href="http://download.oracle.com/javase/6/docs/api/java/lang/NoClassDefFoundError.html" title="Java API" style="color: blue; text-decoration: underline; "&gt;java.lang.NoClassDefFoundError&lt;/a&gt;: weblogic/utils/NestedException&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span class="postbody"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span class="postbody"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span class="postbody"&gt;After trawling the web there are a lot of references to wlFullClient.jar&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span class="postbody"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span class="postbody"&gt;This refers to rolling your own version of all wl client jars.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span class="postbody"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span class="postbody"&gt;What might be simpler is to simply add the required jars.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span class="postbody"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span class="postbody"&gt;This is the list of client jars.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;webserviceclient+ssl.jar&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;webserviceclient.jar&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;wl-j2ee-client.jar&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;wlclient.jar&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;wljmsclient.jar&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;wljmxclient.jar&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;wlnmclient.jar&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;wlsafclient.jar&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;wlstestclient.ear&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;wseeclient.jar&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;For &lt;/span&gt;&lt;span class="postbody"&gt;NestedException the required jar is &lt;/span&gt;&lt;span lang="EN-US"&gt;wljmsclient.jar&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-5100104655510933717?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/5100104655510933717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=5100104655510933717' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/5100104655510933717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/5100104655510933717'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/11/weblogics-many-jar-files.html' title='Weblogic’s many jar files...'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-2688637607936346235</id><published>2010-11-04T07:49:00.002Z</published><updated>2010-11-04T07:54:22.085Z</updated><title type='text'>Tomcat deploy arbitrary dir</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;To deploy a webapp from a directory not in the appBase (the webapps directory by default) of Tomcat /Catalina, then its simple.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;At its most simple you simply create a file in the &lt;/span&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;$CATALINA_BASE/conf/[enginename]/[hostname] directory.&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;The name of the file is the webapp Context name you want.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;The contents must include the docBase attribute. This points the location of the webapp.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;This is very useful for development, so every change can be immediately realised on the webapp without restarting, or undeploying/ deploying (which is necessary if you deploy it using Tomcats manager, since it copies the apps into the webapp directory.)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;e.g. save SpringSchedule.xml in the &lt;/span&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;$CATALINA_BASE/conf/[enginename]/[hostname]&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; font-size: 16px; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;&amp;lt;Context docBase="F:/eclipse_workspace/SpringSchedule/www"&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;&amp;lt;/Context&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;/span&gt;&lt;/code&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt; &lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;&lt;context docbase="F:/eclipse_workspace/SpringSchedule/www"&gt;&lt;/context&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt; &lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;Note: If you add properties files, or update the web.xml you will need to reload the webapp from the tomcat manager console.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt; &lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;code style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;Ref&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; "&gt;&lt;a rel="nofollow" target="_blank" href="http://tomcat.apache.org/tomcat-7.0-doc/config/context.html" style="color: blue; text-decoration: underline; "&gt;http://tomcat.apache.org/tomcat-7.0-doc/config/context.html&lt;/a&gt;&lt;/span&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-2688637607936346235?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/2688637607936346235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=2688637607936346235' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/2688637607936346235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/2688637607936346235'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/11/tomcat-deploy-arbitrary-dir.html' title='Tomcat deploy arbitrary dir'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-7273097812687309875</id><published>2010-11-04T07:47:00.002Z</published><updated>2010-11-04T07:49:40.434Z</updated><title type='text'>Eclipse java command line</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;1/ You can generate the java command used by eclipse to run/ or debug an application, with all included classpaths etc. This can be useful if you want to later script the execution of the application.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;It is visible by debugging the application (debug as application). From the debug perspective, right click on the debug view, to get the context menu. Select properties. The command line is visible and can be copied.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;2/Also, its possible to run eclipse itself from the command line in headless mode.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; border-collapse: collapse; line-height: 18px; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; "&gt;eclipsec.exe -noSplash -data "D:\Source\MyProject\workspace" -application org.eclipse.jdt.apt.core.aptBuild&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; "&gt;It uses the jdt apt plugin to build your workspace automatically. This is also known as a 'Headless Build'. If you're not using a win32 exe, try this:&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; "&gt;java -cp startup.jar -noSplash -data "D:\Source\MyProject\workspace" -application org.eclipse.jdt.apt.core.aptBuild&lt;/p&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-7273097812687309875?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/7273097812687309875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=7273097812687309875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/7273097812687309875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/7273097812687309875'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/11/eclipse-java-command-line.html' title='Eclipse java command line'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-8731232212836546210</id><published>2010-10-30T17:54:00.001+01:00</published><updated>2010-11-03T23:06:43.469Z</updated><title type='text'>Quartz</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;I’ve been setting up a Quartz scheduler recently. We wanted it to store the jobs in a Database. Quartz helpfully comes with a set of sql scripts for virtually all DB’s to create and manage all jobs, triggers, schedules etc via a transaction and cluster aware scheduler, so there is no need to think about that aspect of it. The scripts are all stored in the Quartz distribution under docs/dbTables folder.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Once the tables are all set up you can use the example application provided with Quartz to test out the DB persistence (Example 13). Configure it to point to your database by updating the instance1.properties file&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;We then wanted to Spring-ify it. This was straightforward&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;e.g.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;public class RunSchedule {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;static Logger _log = LoggerFactory.getLogger(RunSchedule.class);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;public static void main(String[] args) throws Exception {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;BeanFactory springContext = new ClassPathXmlApplicationContext("Spring-Quartz.xml");&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;cleanUp((Scheduler)springContext.getBean("plannedDowntimeScheduler"));&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;public static void cleanUp(Scheduler inScheduler) throws Exception {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;_log.warn("***** Deleting existing jobs/triggers *****");&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;// unschedule jobs&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;String[] groups = inScheduler.getTriggerGroupNames();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;for (int i = 0; i &amp;lt;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;String[] names = inScheduler.getTriggerNames(groups[i]);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;for (int j = 0; j &amp;lt;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;inScheduler.unscheduleJob(names[j], groups[i]);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;// delete jobs&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;groups = inScheduler.getJobGroupNames();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;for (int i = 0; i &amp;lt;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;String[] names = inScheduler.getJobNames(groups[i]);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;for (int j = 0; j &amp;lt;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;inScheduler.deleteJob(names[j], groups[i]);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;And&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:jee="http://www.springframework.org/schema/jee"&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xmlns:jms="http://www.springframework.org/schema/jms"xmlns:util="http://www.springframework.org/schema/util"&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;xsi:schemaLocation="&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-2.5.xsd&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;bean id="runMeTask" class="ie.bge.middleware.RunMeTask" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;bean name="runMeJob"&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;class="org.springframework.scheduling.quartz.JobDetailBean"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;property name="jobClass" value="ie.bge.middleware.RunMeJob" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;property name="jobDataAsMap"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;map&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;entry key="runMeTask" value-ref="runMeTask" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;map&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;property&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;bean&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;bean id="simpleTrigger"&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;class="org.springframework.scheduling.quartz.SimpleTriggerBean"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;property name="jobDetail" ref="runMeJob" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;property name="repeatInterval" value="5000" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;property name="startDelay" value="1000" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;bean&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;bean id="cronTrigger"&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;class="org.springframework.scheduling.quartz.CronTriggerBean"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;property name="jobDetail" ref="runMeJob" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;property name="cronExpression" value="0/5 * * * * ?" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;bean&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;bean name="plannedDowntimeScheduler"&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;class="org.springframework.scheduling.quartz.SchedulerFactoryBean" init-method=”start”&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;property name="quartzProperties"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;util:properties location="/quartz.properties" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;property&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;property name="applicationContextSchedulerContextKey"&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;value="applicationContext" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;property name="waitForJobsToCompleteOnShutdown" value="true" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;bean&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;beans&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;All works as expected.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;N.B. Note the init-method attribute for SchedulerFactoryBean. This is to automate the starting of the scheduler after it is instantiated. It is better than having a code based startup, (which would implement the Spring InitializingBean)&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;When we integrated it into our main application however we started having issues.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Code:&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Caused by: org.quartz.SchedulerConfigException: Failure occured during job recovery. [See nested exception: org.quartz.impl.jdbcjobstore.LockException: Failure obtaining db row lock: ORA-00942: table or view does not exist&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;[See nested exception: java.sql.SQLException: ORA-00942: table or view does not exist&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;]]&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;The problem was due to autowiring. We had a datasource defined for a different purpose that was getting autowired into our SchedulerFactoryBean. (We were defining the datasource via the quartz.properties, and not injecting the datasource).&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Manually wiring the correct dataSource fixed the problem. (or turninng off autowiring should also work as suggested by jrsisson)&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;http://forum.springsource.org/showthread.php?p=326612&amp;amp;posted=1#post326612&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-8731232212836546210?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/8731232212836546210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=8731232212836546210' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/8731232212836546210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/8731232212836546210'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/10/quartz.html' title='Quartz'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-2101823108514909298</id><published>2010-10-30T13:07:00.001+01:00</published><updated>2010-10-30T13:07:44.624+01:00</updated><title type='text'>Spring</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="title" style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: serif; margin-top: 0px; margin-bottom: 0px; "&gt;&lt;tt style="font-family: 'Courier New'; "&gt;&lt;b&gt;&lt;span style="font-size: 10pt; "&gt;BeanFactory&lt;/span&gt;&lt;/b&gt;&lt;/tt&gt;&lt;b&gt; or &lt;/b&gt;&lt;tt style="font-family: 'Courier New'; "&gt;&lt;b&gt;&lt;span style="font-size: 10pt; "&gt;ApplicationContext&lt;/span&gt;&lt;/b&gt;&lt;/tt&gt;&lt;b&gt;?&lt;/b&gt;&lt;/p&gt;&lt;p class="title" style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: serif; margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="title" style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: serif; margin-top: 0px; margin-bottom: 0px; "&gt;Taken from Spring website&lt;/p&gt;&lt;p style="margin-right: 0px; margin-left: 0px; font-size: 12pt; font-family: serif; margin-top: 0px; margin-bottom: 0px; "&gt;Users are sometimes unsure whether a &lt;tt style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;BeanFactory&lt;/span&gt;&lt;/tt&gt; or an &lt;tt style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;ApplicationContext&lt;/span&gt;&lt;/tt&gt; is best suited for use in a particular situation. A &lt;tt style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;BeanFactory&lt;/span&gt;&lt;/tt&gt; pretty much just instantiates and configures beans. An&lt;tt style="font-family: 'Courier New'; "&gt;&lt;span style="font-size: 10pt; "&gt;ApplicationContext&lt;/span&gt;&lt;/tt&gt; also does that, &lt;em&gt;and&lt;/em&gt; it provides the supporting infrastructure to enable &lt;em&gt;lots&lt;/em&gt; of enterprise-specific features such as transactions and AOP.&lt;/p&gt;&lt;p style="margin-right: 0px; margin-left: 0px; font-size: 12pt; font-family: serif; margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="bold"&gt;&lt;b&gt;In short, favor the use of an &lt;/b&gt;&lt;/span&gt;&lt;tt style="font-family: 'Courier New'; "&gt;&lt;b&gt;&lt;span style="font-size: 10pt; "&gt;ApplicationContext&lt;/span&gt;&lt;/b&gt;&lt;/tt&gt;&lt;span class="bold"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-right: 0px; margin-left: 0px; font-size: 12pt; font-family: serif; margin-top: 0px; margin-bottom: 0px; "&gt;(For the specific details behind this recommendation, see &lt;a rel="nofollow" target="_blank" href="http://static.springsource.org/spring/docs/2.5.x/reference/beans.html#context-introduction-ctx-vs-beanfactory" title="3.8.1. BeanFactory or       ApplicationContext?" style="color: blue; text-decoration: underline; "&gt;this section&lt;/a&gt;.)&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-2101823108514909298?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/2101823108514909298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=2101823108514909298' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/2101823108514909298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/2101823108514909298'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/10/spring.html' title='Spring'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-8612353501722605710</id><published>2010-10-30T12:32:00.001+01:00</published><updated>2010-10-30T12:32:52.763+01:00</updated><title type='text'>CSS Javascript quickie</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;b&gt;Center (Centre) a div&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Its easy, but its not necessarily obvious. To centre a div you need to set the width, and the margin-left and right to auto,&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;e.g.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span style="font-size: 10pt; color: rgb(127, 0, 127); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: silver; background-position: initial initial; background-repeat: initial initial; "&gt;#div{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span style="font-size: 10pt; color: rgb(127, 0, 127); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: silver; background-position: initial initial; background-repeat: initial initial; "&gt;width: 500px; margin-left: auto ;  margin-right: auto ;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span style="font-size: 10pt; color: rgb(127, 0, 127); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: silver; background-position: initial initial; background-repeat: initial initial; "&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span style="font-size: 10pt; color: rgb(127, 0, 127); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: silver; background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;To center text within a div use.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span style="font-size: 10pt; color: black; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;span style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: silver; background-position: initial initial; background-repeat: initial initial; "&gt;text-align: center ;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;a rel="nofollow" target="_blank" href="http://www.thesitewizard.com/css/center-div-block.shtml" style="color: blue; text-decoration: underline; "&gt;http://www.thesitewizard.com/css/center-div-block.shtml&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;b&gt;Javascript&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Useful links explaining with nice and simple explanations of objects in javascript (I wonder how I never “got it” before considering how simply its described here)&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;a rel="nofollow" target="_blank" href="http://javascriptkit.com/javatutors/object3.shtml" style="color: blue; text-decoration: underline; "&gt;http://javascriptkit.com/javatutors/object3.shtml&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Also the prototype modifier. Basically it allows properties, and methods to be added to objects. Effectively making javascript OO, instead of purely functional.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;a rel="nofollow" target="_blank" href="http://www.javascriptkit.com/javatutors/proto4.shtml" style="color: blue; text-decoration: underline; "&gt;http://www.javascriptkit.com/javatutors/proto4.shtml&lt;/a&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-8612353501722605710?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/8612353501722605710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=8612353501722605710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/8612353501722605710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/8612353501722605710'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/10/css-javascript-quickie.html' title='CSS Javascript quickie'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-3585925578858210171</id><published>2010-10-16T08:12:00.000+01:00</published><updated>2010-10-16T08:13:45.963+01:00</updated><title type='text'>Recording a desktop demo video/ viewlet</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span lang="EN-US"&gt;Just a quick note about recording a desktop demo (viewlet). These are very handy for demo’s on using software etc. They allow you to record the screen activity, while adding voice over commentary, and popup overlays.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span lang="EN-US"&gt;One of the best freeware recorders is Wink&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span lang="EN-US"&gt;&lt;a rel="nofollow" target="_blank" href="http://www.debugmode.com/wink/" style="color: blue; text-decoration: underline; "&gt;http://www.debugmode.com/wink/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span lang="EN-US"&gt;Also some image compression stuff on here.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-3585925578858210171?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/3585925578858210171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=3585925578858210171' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/3585925578858210171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/3585925578858210171'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/10/recording-desktop-demo-video-viewlet.html' title='Recording a desktop demo video/ viewlet'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-6297276947607291786</id><published>2010-10-16T08:10:00.001+01:00</published><updated>2010-10-16T08:10:45.429+01:00</updated><title type='text'>Svn identity/ login</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;If subversion in eclipse is pestering you for login credentials every few seconds, then your credentials may have got corrupted.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;You can reset the stored credentials by deleting the auth directory.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;This is usually located at&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;b&gt;Unix (linux/ Osx)&lt;/b&gt;&lt;br /&gt;~/.subversion/auth&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;b&gt;Windows:&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;USER_HOME/Application Data/Subversion/auth&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Taken from &lt;a rel="nofollow" target="_blank" href="http://osdir.com/ml/version-control.subversion.subclipse.user/2006-08/msg00029.html" style="color: blue; text-decoration: underline; "&gt;http://osdir.com/ml/version-control.subversion.subclipse.user/2006-08/msg00029.html&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;br /&gt;.keyring file only used when JavaSVN adapter is selected.&lt;br /&gt;&lt;br /&gt;Also, your repository may allow anonymous read access, so browsing and&lt;br /&gt;update operation doesn't require you to log in. Supclipse only prompts for&lt;br /&gt;credentials when credentials are requested by Subversion server.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-6297276947607291786?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/6297276947607291786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=6297276947607291786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6297276947607291786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6297276947607291786'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/10/svn-identity-login.html' title='Svn identity/ login'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-1089348625774927798</id><published>2010-10-16T08:09:00.003+01:00</published><updated>2011-01-21T07:29:16.884Z</updated><title type='text'>Weblogic JMS</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Link for looking up all jms queues using jmx&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;a rel="nofollow" target="_blank" href="http://weblogic-zone.blogspot.com/2010/01/jms-resources-using-jmx.html" style="color: blue; text-decoration: underline; "&gt;http://weblogic-zone.blogspot.com/2010/01/jms-resources-using-jmx.html&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;You can use a JMX program, WLST, JConsole, or the console.&lt;br /&gt;&lt;br /&gt;See the documentation on using WLST&lt;br /&gt;&lt;br /&gt;&lt;a rel="nofollow" target="_blank" href="http://download.oracle.com/docs/cd/E15523_01/web.1111/e13715/toc.htm" style="color: blue; text-decoration: underline; "&gt;http://download.oracle.com/docs/cd/E15523_01/web.1111/e13715/toc.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;See the documentation on writing JMX clients&lt;br /&gt;&lt;br /&gt;&lt;a rel="nofollow" target="_blank" href="http://download.oracle.com/docs/cd/E15523_01/web.1111/e13729/toc.htm" style="color: blue; text-decoration: underline; "&gt;http://download.oracle.com/docs/cd/E15523_01/web.1111/e13729/toc.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;See the MBean reference documentation&lt;br /&gt;&lt;br /&gt;&lt;a rel="nofollow" target="_blank" href="http://download.oracle.com/docs/cd/E15523_01/apirefs.1111/e13951/core/index.html" style="color: blue; text-decoration: underline; "&gt;http://download.oracle.com/docs/cd/E15523_01/apirefs.1111/e13951/core/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The JMX distributed queue mbeans have type = weblogic.j2ee.descriptor.wl.DistributedQueueBean&lt;br /&gt;&lt;br /&gt;You can either walk down the hierarchy starting at the Domain MBean and into the JMSSystemResource MBean or you can query for specific MBean types.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms', verdana, arial, sans-serif; border-collapse: collapse; color: rgb(51, 51, 51); line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'times new roman', 'new york', times, serif; font-weight: normal; line-height: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms', verdana, arial, sans-serif; border-collapse: collapse; color: rgb(51, 51, 51); line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;JMS and OSB&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms', verdana, arial, sans-serif; border-collapse: collapse; color: rgb(51, 51, 51); line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; "&gt;One issue that I’ve seen on a client site.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms', verdana, arial, sans-serif; border-collapse: collapse; color: rgb(51, 51, 51); line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; "&gt;An OSB proxy is set up to consume from a JMS queue. Data is injected into the queue but the Proxy does not consume it.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms', verdana, arial, sans-serif; border-collapse: collapse; color: rgb(51, 51, 51); line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; "&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms', verdana, arial, sans-serif; border-collapse: collapse; color: rgb(51, 51, 51); line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; "&gt;(Only seen when custom dispatch policies were used)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms', verdana, arial, sans-serif; border-collapse: collapse; color: rgb(51, 51, 51); line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; "&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms', verdana, arial, sans-serif; border-collapse: collapse; color: rgb(51, 51, 51); line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; "&gt;This is a weblogic bug. The workaround is to go through the configuration of the proxy, and assign it a different Dispatch Policy. This would enable consuming of the queue. Then you can simply rollback the change in OSB, and consuming will continue.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms', verdana, arial, sans-serif; border-collapse: collapse; color: rgb(51, 51, 51); line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms', verdana, arial, sans-serif; border-collapse: collapse; color: rgb(51, 51, 51); line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;JMS Unit of Order &lt;/span&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href="http://download.oracle.com/docs/cd/E12840_01/wls/docs103/jms/uoo.html" style="font-weight: bold; color: rgb(51, 102, 204); font-size: 13px; "&gt;http://download.oracle.com/docs/cd/E12840_01/wls/docs103/jms/uoo.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;Message Unit-of-Order is a WebLogic Server value-added feature that enables a stand-alone message producer, or a group of producers acting as one, to group messages into a single unit with respect to the processing order.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;Note that it appears to cause problems with the JMS Api's for viewing message payloads.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-family: sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms', verdana, arial, sans-serif; border-collapse: collapse; color: rgb(51, 51, 51); line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;span class="Apple-style-span"&gt;Editied Note.. We found an MBean API for discovering these. It involves using the MBean operation getMessages (specifying a flag). I will blog about it later&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-1089348625774927798?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/1089348625774927798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=1089348625774927798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/1089348625774927798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/1089348625774927798'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/10/weblogic-jms.html' title='Weblogic JMS'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-3397494216547357765</id><published>2010-10-16T08:08:00.000+01:00</published><updated>2010-10-16T08:09:40.083+01:00</updated><title type='text'>Weblogic Roles</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Just a quick reminder for myself. This is easy but on initial inspection it seems like there is something missing. In fact it is easy, but appearance can be confusing.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;The high level is. You are using weblogic server to host your apps. You want some security policies for your apps. It therefore makes sence to use the weblogic security realm, and its roles, groups, users and policies to manage the entity.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; -. Create  new Role(s).&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; text-indent: 36pt; "&gt;From weblogic console, goto Security Realm, Select realm, select Roles and Policies.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; text-indent: 36pt; "&gt;&lt;b&gt;Now expand the global Roles&lt;/b&gt;, and click on the Roles link. This will allow you to create custom roles.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; -. Create/ edit Groups to include new Roles&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt;Assign users to groups&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; "&gt; &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-3397494216547357765?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/3397494216547357765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=3397494216547357765' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/3397494216547357765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/3397494216547357765'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/10/weblogic-roles.html' title='Weblogic Roles'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-154328270405790930</id><published>2010-10-16T08:05:00.003+01:00</published><updated>2010-10-16T08:08:27.349+01:00</updated><title type='text'>JSTL snippets</title><content type='html'>&lt;div&gt;Simple when you know how. Frustrating and time consuming when you don’t&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;b&gt;If/ else&lt;/b&gt; &lt;/div&gt;&lt;div&gt;Because of the xml format we can’t have a&lt;/div&gt;&lt;div&gt;&amp;lt;c:if test=”${actionBean.test}”&gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/c:if&gt;&lt;/div&gt;&lt;div&gt;&amp;lt;c:else&gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/c:else&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Instead we have to use choose, when and otherwise.&lt;/div&gt;&lt;div&gt;e.g.&lt;/div&gt;&lt;div&gt;&amp;lt;c:choose&gt;&lt;/div&gt;&lt;div&gt;      &amp;lt;c:when test="${actionBean.test}”&gt;&lt;/div&gt;&lt;div&gt;      &amp;lt;/c:when&gt;&lt;/div&gt;&lt;div&gt;      &amp;lt;c:otherwise&gt;&lt;/div&gt;&lt;div&gt;      &amp;lt;/c:otherwise&gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/c:choose&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;b&gt;Looping through lists&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Realated to above, I was trying to test if a list was populated.&lt;/div&gt;&lt;div&gt;&lt;div&gt;First attempt was&lt;/div&gt;&lt;div&gt;&amp;lt;c:choose&gt;&lt;/div&gt;&lt;div&gt;      &amp;lt;c:when test="${actionBean.result.size&gt;0}"&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;javax.el.PropertyNotFoundException: The class 'java.util.Collections$Synchronize&lt;/div&gt;&lt;div&gt;dCollection' does not have the property 'size'.&lt;/div&gt;&lt;div&gt;        at javax.el.BeanELResolver.getBeanProperty(BeanELResolver.java:547)&lt;/div&gt;&lt;div&gt;        at javax.el.BeanELResolver.getValue(BeanELResolver.java:249)&lt;/div&gt;&lt;div&gt;        at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)&lt;/div&gt;&lt;div&gt;        at com.sun.el.parser.AstValue.getValue(AstValue.java:118)&lt;/div&gt;&lt;div&gt;        at com.sun.el.parser.AstGreaterThan.getValue(AstGreaterThan.java:41)&lt;/div&gt;&lt;div&gt;        Truncated. see log file for complete stacktrace&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Solution is to use Not Empty&lt;/div&gt;&lt;div&gt;&amp;lt;c:when test="${not empty actionBean.result}"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-154328270405790930?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/154328270405790930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=154328270405790930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/154328270405790930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/154328270405790930'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/10/jstl-snippets.html' title='JSTL snippets'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-1332450718861593485</id><published>2010-10-11T19:46:00.001+01:00</published><updated>2010-10-11T19:46:44.902+01:00</updated><title type='text'>Weblogic (Oracle) JMX</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;Example code for interacting with Weblogic Server/ OSB , via JMX.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-right: 0cm; margin-left: 0cm; font-size: 11pt; font-family: sans-serif; margin-top: 0cm; margin-bottom: 0.0001pt; "&gt;&lt;a rel="nofollow" target="_blank" href="http://blogs.oracle.com/jeffdavies/ProxyServiceUtilJMX.html" style="color: blue; text-decoration: underline; "&gt;http://blogs.oracle.com/jeffdavies/ProxyServiceUtilJMX.html&lt;/a&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-1332450718861593485?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/1332450718861593485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=1332450718861593485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/1332450718861593485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/1332450718861593485'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/10/weblogic-oracle-jmx.html' title='Weblogic (Oracle) JMX'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-7457010737744734015</id><published>2010-08-17T10:58:00.002+01:00</published><updated>2010-08-17T11:01:20.831+01:00</updated><title type='text'>Getting version of Oracle WebLogic Portal Server</title><content type='html'>How to determine the exact version of Oracle Portal Server you are using?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="  -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:Tahoma, Arial, Helvetica, Geneva, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;You can determine the Portal version with the following query executed in the Portal MR database as a dba user.&lt;br /&gt;Substitute your schema name where you see &lt;/span&gt;&lt;portal&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;br /&gt;select VERSION from &lt;/span&gt;&lt;portal&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;.wwc_version$;&lt;/span&gt;&lt;/portal&gt;&lt;/portal&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-7457010737744734015?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/7457010737744734015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=7457010737744734015' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/7457010737744734015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/7457010737744734015'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/08/getting-version-of-oracle-portal-server.html' title='Getting version of Oracle WebLogic Portal Server'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-8627538523212302569</id><published>2010-06-16T12:46:00.003+01:00</published><updated>2010-06-16T12:53:10.810+01:00</updated><title type='text'>Mercurial behind a proxy server</title><content type='html'>I found some web resources that confused things when I was trying to figure this out so I thought I'd add a page.&lt;br /&gt;&lt;br /&gt;Mercurial (hg) stores its config information in an ini file. Type&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;hg help config &lt;/span&gt;&lt;br /&gt;to see the details.&lt;br /&gt;&lt;br /&gt;Based on this its possible to have a config file per repo with differetn setting (e.g. email addresses).&lt;br /&gt;&lt;br /&gt;The format of the config file is explained at&lt;br /&gt;&lt;a href="http://www.selenic.com/mercurial/hgrc.5.html"&gt;http://www.selenic.com/mercurial/hgrc.5.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So to set a proxy server I used the follwoing ini file&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[ui]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;username = My Name &amp;lt;my.name@myemail.com&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;verbose = True&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[http_proxy]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;host=http://&amp;lt;proxyhost&gt;:&amp;lt;proxyport&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;no=192.168.*&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;user=&amp;lt;optionalusername&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;passwd=&amp;lt;optionalpassword&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-8627538523212302569?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/8627538523212302569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=8627538523212302569' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/8627538523212302569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/8627538523212302569'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/06/mercurial-behind-proxy-server.html' title='Mercurial behind a proxy server'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-1947855376007978474</id><published>2010-05-26T11:32:00.002+01:00</published><updated>2010-05-26T16:45:49.131+01:00</updated><title type='text'>ScreenScraping with Groovy</title><content type='html'>I'm attempting to write a screen scraper for various websites, so I will document my findings here.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A quick search on the internet finds links to examples like the following&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://groovysnippets.blogspot.com/2008/11/groovy-screen-scraping-example.html"&gt;http://groovysnippets.blogspot.com/2008/11/groovy-screen-scraping-example.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 13px; color: rgb(51, 51, 51); line-height: 20px; "&gt;&lt;pre name="code" class="java"&gt;#!/usr/bin/env groovy&lt;br /&gt;// Depends on tagsoup library:&lt;br /&gt;//      http://ccil.org/~cowan/XML/tagsoup/&lt;br /&gt;def slurper = new XmlSlurper(new org.ccil.cowan.tagsoup.Parser())&lt;br /&gt;def url = new URL("http://fcd.mcw.edu/?module=faculty&amp;amp;func=view&amp;amp;id=1674")&lt;br /&gt;url.withReader { reader -&gt;&lt;br /&gt;       html = slurper.parse(reader)&lt;br /&gt;       //we should now have a parsed file&lt;br /&gt;       def value = html.body.div.div.div[2].ul.li&lt;br /&gt;       value.list().each { f -&gt;&lt;br /&gt;               println "\nPub : " &lt;&lt; f.toString()[0..80] &lt;&lt; "..."&lt;br /&gt;       }&lt;br /&gt;}&lt;/pre&gt;&lt;pre name="code" class="java"&gt;This is super simple and works really well.&lt;/pre&gt;&lt;pre name="code" class="java"&gt;My problem was I needed to also post data to the websites (e.g. to login, enter data etc).&lt;/pre&gt;&lt;pre name="code" class="java"&gt;For that you need to incorporate HttpClient. For Groovy there is a &lt;a href="http://groovy.codehaus.org/modules/http-builder/"&gt;HttpBuilder library&lt;/a&gt; that wraps HttpClient libraries with Groovy syntax. It also allows you to use GPath expressions to quickly identify locations in the response page.&lt;/pre&gt;&lt;pre name="code" class="java"&gt;I needed to go through a proxy and this proved the first hurdle. After much messing this code worked.&lt;/pre&gt;&lt;pre name="code" class="java"&gt;(Note I added an if statement to get the current IP address of the machine, so this script would work in work (where we use a proxy), and at home (where I don't have a proxy)&lt;/pre&gt;&lt;pre name="code" class="java"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;def http = new HTTPBuilder( 'http://www.twitter.com' ) def ip=java.net.InetAddress.getLocalHost().getHostAddress() println "IP = $ip" if(ip.startsWith("10.5.") || ip.startsWith("10.2.")){  def proxy = "10.5.0.250"  def proxyPort = 80  //Required for HttpClient  http.setProxy(proxy, proxyPort, "http")  //http.setProxy(proxy, proxyPort, "https")  http.auth.basic( proxy, proxyPort, System.properties["user.name"], System.getenv("user.password") ) } http.get( path: '/', query:[id:'httpbuilder'] ) { resp, xml -&gt;     println resp.status  println xml     xml.status.each {  // iterate over each XML 'status' element in the response:         println it.created_at.text()         println "  " + it.text.text()     } }&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre name="code" class="java"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Verdana, Helvetica, Arial, sans-serif; line-height: 16px; white-space: normal; font-size: small; "&gt;Like the simple example above (which used the TagSoup Sax Parser), the HttpBuilder parser includes an Xml Parser that can handle HTML &lt;/span&gt;&lt;/pre&gt;&lt;pre name="code" class="java"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Verdana, Helvetica, Arial, sans-serif; line-height: 16px; white-space: normal; font-size: small; "&gt;&lt;b&gt;&lt;i&gt;HTML&lt;/i&gt;&lt;/b&gt;&lt;i&gt; response data will also be parsed automatically, by using &lt;/i&gt;&lt;a class="externalLink" href="http://nekohtml.sourceforge.net/" style="text-decoration: none; color: rgb(51, 102, 170); background-image: url(http://groovy.codehaus.org/modules/http-builder/images/external.png); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; padding-right: 18px; background-position: 100% 50%; background-repeat: no-repeat no-repeat; "&gt;&lt;i&gt;NekoHTML&lt;/i&gt;&lt;/a&gt;&lt;i&gt; which corrects the XML stream before it is passed to the &lt;/i&gt;&lt;tt&gt;&lt;i&gt;XmlSlurper&lt;/i&gt;&lt;/tt&gt;&lt;i&gt;. The resulting behavior is that you can parse HTML as if it was well-formed XML.&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-1947855376007978474?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/1947855376007978474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=1947855376007978474' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/1947855376007978474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/1947855376007978474'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/05/screenscraping-with-groovy.html' title='ScreenScraping with Groovy'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-2014533025641831462</id><published>2010-03-22T10:21:00.001Z</published><updated>2010-03-22T10:22:47.889Z</updated><title type='text'>Web effects</title><content type='html'>I will use this post to pull together some neat effects I use. In general I will try to use jquery as the javacscript library.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Overlay&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.sohtanaka.com/web-design/fancy-thumbnail-hover-effect-w-jquery/"&gt;http://www.sohtanaka.com/web-design/fancy-thumbnail-hover-effect-w-jquery/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-2014533025641831462?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/2014533025641831462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=2014533025641831462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/2014533025641831462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/2014533025641831462'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/03/web-effects.html' title='Web effects'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-150453023629018047</id><published>2010-02-09T17:37:00.003Z</published><updated>2010-02-15T09:39:58.431Z</updated><title type='text'>Strange error from Sql Server</title><content type='html'>&lt;b&gt;ErrorMessage:&lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;While trying to extract DDL and Data sql scripts using the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=56E5B1C5-BF17-42E0-A410-371A838E570A&amp;amp;displaylang=en"&gt;Database publishing Wizard&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; color: rgb(51, 51, 51); font-size: 13px; line-height: 16px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Could not load file or assembly 'Microsoft.SqlServer.BatchParser, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. An attempt was made to load a program with an incorrect format.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"    style="font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:100%;color:#333333;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; font-weight: normal; line-height: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"    style="font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:100%;color:#333333;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 16px; "&gt;Solution:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"    style="font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:100%;color:#333333;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; font-weight: normal; line-height: 16px;"&gt;This is due to a problem with Microsoft.SqlServer.BatchParser.dll on Windows 64-bit.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"    style="font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:100%;color:#333333;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; font-weight: normal; line-height: 16px;"&gt;&lt;h1 href="http://social.msdn.microsoft.com:80/Forums/en-US/sqlsmoanddmo/thread/861b57bc-aa21-4b03-bd01-5c164e2bac4e" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-style: inherit; font-size: 22px; clear: both; color: rgb(58, 62, 67); line-height: 28px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; "&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"    style="font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:100%;color:#333333;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div&gt;&lt;div&gt;Download and install&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://download.microsoft.com/download/4/4/D/44DBDE61-B385-4FC2-A67D-48053B8F9FAD/SQLServer2005_XMO_x64.msi"&gt;X64 Package (SQLServer2005_XMO_x64.msi) - 14675 KB&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This installs the 64 bit smo objects.&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;ErrorMessage:&lt;br /&gt;&lt;/b&gt;&lt;div&gt;&lt;div&gt;com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '@P0'.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Solution&lt;/b&gt;&lt;/div&gt;&lt;div&gt;This was a simple one. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This was my JDBC call&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;PreparedStatement ps = dbConnection.prepareStatement("insert into master_key (key_value) values ?");&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;ps.setString(1, key);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;int id = ps.executeUpdate();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Problem was the missing '()' in the Sql&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;PreparedStatement ps = dbConnection.prepareStatement("insert into master_key (key_value) values &lt;b&gt;(?)&lt;/b&gt;");&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-150453023629018047?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/150453023629018047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=150453023629018047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/150453023629018047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/150453023629018047'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/02/strange-error-from-sql-server.html' title='Strange error from Sql Server'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-6226563048853535589</id><published>2010-01-15T16:39:00.001Z</published><updated>2010-01-15T16:39:44.206Z</updated><title type='text'>Setting up drupal</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', verdana, arial, helvetica, sans-serif; font-size: medium; color: rgb(51, 51, 51); "&gt;&lt;ul id="incomplete_items" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;li id="item_3763339" class="check" reorder_path="/lists/424341/items/3763339/reorder" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 0px; padding-bottom: 4px; padding-left: 0px; font-size: 16px; line-height: 1.3em; list-style-type: none; color: rgb(0, 0, 0); vertical-align: top; "&gt;&lt;form action="http://khylo.tadalist.com/lists/424341/items/3763339" class="edit_item" id="edit_item_3763339" method="post" onsubmit="new Ajax.Request('/lists/424341/items/3763339', {asynchronous:true, evalScripts:true, method:'put', parameters:Form.serialize(this)}); return false;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;input id="item_completed" name="item[completed]" onclick="this.form.onsubmit()" type="checkbox" value="1"&gt; Install drupal/ Db etc. Don't use command line for loading DB&lt;/form&gt;&lt;/li&gt;&lt;li id="item_3763371" class="check" reorder_path="/lists/424341/items/3763371/reorder" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 0px; padding-bottom: 4px; padding-left: 0px; font-size: 16px; line-height: 1.3em; list-style-type: none; color: rgb(0, 0, 0); vertical-align: top; "&gt;&lt;form action="http://khylo.tadalist.com/lists/424341/items/3763371" class="edit_item" id="edit_item_3763371" method="post" onsubmit="new Ajax.Request('/lists/424341/items/3763371', {asynchronous:true, evalScripts:true, method:'put', parameters:Form.serialize(this)}); return false;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/div&gt;&lt;input id="item_completed" name="item[completed]" onclick="this.form.onsubmit()" type="checkbox" value="1"&gt; install modules Nice Menu/ Views/ tinyMCE/ Image Assist&lt;/form&gt;&lt;/li&gt;&lt;li id="item_3763373" class="check" reorder_path="/lists/424341/items/3763373/reorder" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 0px; padding-bottom: 4px; padding-left: 0px; font-size: 16px; line-height: 1.3em; list-style-type: none; color: rgb(0, 0, 0); vertical-align: top; "&gt;&lt;form action="http://khylo.tadalist.com/lists/424341/items/3763373" class="edit_item" id="edit_item_3763373" method="post" onsubmit="new Ajax.Request('/lists/424341/items/3763373', {asynchronous:true, evalScripts:true, method:'put', parameters:Form.serialize(this)}); return false;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/div&gt;&lt;input id="item_completed" name="item[completed]" onclick="this.form.onsubmit()" type="checkbox" value="1"&gt; set up categories&lt;/form&gt;&lt;/li&gt;&lt;li id="item_3763375" class="check" reorder_path="/lists/424341/items/3763375/reorder" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 0px; padding-bottom: 4px; padding-left: 0px; font-size: 16px; line-height: 1.3em; list-style-type: none; color: rgb(0, 0, 0); vertical-align: top; "&gt;&lt;form action="http://khylo.tadalist.com/lists/424341/items/3763375" class="edit_item" id="edit_item_3763375" method="post" onsubmit="new Ajax.Request('/lists/424341/items/3763375', {asynchronous:true, evalScripts:true, method:'put', parameters:Form.serialize(this)}); return false;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/div&gt;&lt;input id="item_completed" name="item[completed]" onclick="this.form.onsubmit()" type="checkbox" value="1"&gt; Add content , this creates menu&lt;/form&gt;&lt;/li&gt;&lt;li id="item_3763378" class="check" reorder_path="/lists/424341/items/3763378/reorder" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 0px; padding-bottom: 4px; padding-left: 0px; font-size: 16px; line-height: 1.3em; list-style-type: none; color: rgb(0, 0, 0); vertical-align: top; "&gt;&lt;form action="http://khylo.tadalist.com/lists/424341/items/3763378" class="edit_item" id="edit_item_3763378" method="post" onsubmit="new Ajax.Request('/lists/424341/items/3763378', {asynchronous:true, evalScripts:true, method:'put', parameters:Form.serialize(this)}); return false;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/div&gt;&lt;input id="item_completed" name="item[completed]" onclick="this.form.onsubmit()" type="checkbox" value="1"&gt; Adjust setting/ Content Types to have correct defaults for adding content&lt;/form&gt;&lt;/li&gt;&lt;li id="item_3767476" class="check" reorder_path="/lists/424341/items/3767476/reorder" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 0px; padding-bottom: 4px; padding-left: 0px; font-size: 16px; line-height: 1.3em; list-style-type: none; color: rgb(0, 0, 0); vertical-align: top; "&gt;&lt;form action="http://khylo.tadalist.com/lists/424341/items/3767476" class="edit_item" id="edit_item_3767476" method="post" onsubmit="new Ajax.Request('/lists/424341/items/3767476', {asynchronous:true, evalScripts:true, method:'put', parameters:Form.serialize(this)}); return false;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/div&gt;&lt;input id="item_completed" name="item[completed]" onclick="this.form.onsubmit()" type="checkbox" value="1"&gt; Configure tinyMCE, and imageAssist. Follow install.txt in tinyMce modules dir&lt;/form&gt;&lt;/li&gt;&lt;li id="item_3767529" class="check" reorder_path="/lists/424341/items/3767529/reorder" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 0px; padding-bottom: 4px; padding-left: 0px; font-size: 16px; line-height: 1.3em; list-style-type: none; color: rgb(0, 0, 0); vertical-align: top; "&gt;&lt;form action="http://khylo.tadalist.com/lists/424341/items/3767529" class="edit_item" id="edit_item_3767529" method="post" onsubmit="new Ajax.Request('/lists/424341/items/3767529', {asynchronous:true, evalScripts:true, method:'put', parameters:Form.serialize(this)}); return false;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/div&gt;&lt;input id="item_completed" name="item[completed]" onclick="this.form.onsubmit()" type="checkbox" value="1"&gt; Create Admin role. administrator/ access control&lt;/form&gt;&lt;/li&gt;&lt;li id="item_3767542" class="check" reorder_path="/lists/424341/items/3767542/reorder" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 0px; padding-bottom: 4px; padding-left: 0px; font-size: 16px; line-height: 1.3em; list-style-type: none; color: rgb(0, 0, 0); vertical-align: top; "&gt;&lt;form action="http://khylo.tadalist.com/lists/424341/items/3767542" class="edit_item" id="edit_item_3767542" method="post" onsubmit="new Ajax.Request('/lists/424341/items/3767542', {asynchronous:true, evalScripts:true, method:'put', parameters:Form.serialize(this)}); return false;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/div&gt;&lt;input id="item_completed" name="item[completed]" onclick="this.form.onsubmit()" type="checkbox" value="1"&gt; Add tinyMCE permissions to different roles&lt;/form&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-6226563048853535589?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/6226563048853535589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=6226563048853535589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6226563048853535589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6226563048853535589'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/01/setting-up-drupal.html' title='Setting up drupal'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-4267881288223320905</id><published>2010-01-15T15:31:00.003Z</published><updated>2010-01-15T15:42:53.555Z</updated><title type='text'>Weblogic slow to start (and slow cryptography) on linux (unix),</title><content type='html'>This is a doozie.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Weblogic takes many minutes to start on unix.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Solution provided by &lt;a href="http://www.itonguard.com/20090313/weblogic-starts-slow/"&gt;http://www.itonguard.com/20090313/weblogic-starts-slow/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Note this would also apply for any java process that uses the random number generator such as cryptography.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: medium; "&gt;&lt;p&gt;&lt;mar&gt; &lt;info&gt; &lt;management&gt; &lt;bea-141107&gt; &lt;version:&gt;&lt;br /&gt;&lt;mar&gt; &lt;notice&gt; &lt;weblogicserver&gt; &lt;bea-000365&gt; &lt;server&gt;&lt;/p&gt;&lt;p&gt;Turns out Weblogic uses random number generator during start up. Because of the bug in java it reads ‘randomness’ from /dev/random. /dev/random is very good random numbers generators but it is extremely slow. It takes sometimes 10 minutes or more to generate one number. /dev/urandom is not that good, but it is instant.&lt;br /&gt;Java somehow maps /dev/urandom file to /dev/random. That’s why default settings in $JAVA_HOME/jre/lib/security/java.security are useless.&lt;/p&gt;&lt;p&gt;Possible solutions:&lt;br /&gt;1) Add  “-Djava.security.egd=&lt;a rel="nofollow" href="file:///dev/urandom" style="color: rgb(102, 119, 85); "&gt;file:/dev/./urandom&lt;/a&gt;” (/dev/urandom does not work) to java parameters.&lt;/p&gt;&lt;p&gt;Worse but working solution is:&lt;br /&gt;2) mv /dev/random /dev/random.ORIG ; ln /dev/urandom /dev/random&lt;/p&gt;&lt;p&gt;3) Best solution is to change $JAVA_HOME/jre/lib/security/java.security&lt;br /&gt;Replace securerandom.source with&lt;/p&gt;&lt;p&gt;securerandom.source=file:/dev/./urandom&lt;/p&gt;&lt;p&gt;This problem does not happen under windows because it uses different implementation of /dev/random.&lt;/p&gt;&lt;p&gt;It takes seconds to start weblogic server now.&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-4267881288223320905?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/4267881288223320905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=4267881288223320905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/4267881288223320905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/4267881288223320905'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/01/weblogic-slow-to-start-and-slow.html' title='Weblogic slow to start (and slow cryptography) on linux (unix),'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-4769208977204606239</id><published>2010-01-13T16:05:00.003Z</published><updated>2010-01-14T09:02:37.495Z</updated><title type='text'>Using AES from Java</title><content type='html'>The following exception&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;java.security.InvalidKeyException: Illegal key size or default parameters&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;at javax.crypto.Cipher.a(DashoA13*..)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;at javax.crypto.Cipher.a(DashoA13*..)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;at javax.crypto.Cipher.a(DashoA13*..)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;at javax.crypto.Cipher.init(DashoA13*..)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;at javax.crypto.Cipher.init(DashoA13*..)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Searching java forums reveals that I need to download the Unrestricted Policy Files from JDK Distribution Center.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After much searching I found it at&lt;/div&gt;&lt;div&gt;&lt;a href="http://java.sun.com/javase/downloads/index.jsp"&gt;http://java.sun.com/javase/downloads/index.jsp&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Under Additional Resources/ Other Downloads.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Simply copy the jars included in it into %JRE_HOME%/lib/security overwriting what is there&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On my system that means doing it in multiple locations (eclipse JRE/ Oracle JRE etc.)  to make &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-4769208977204606239?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/4769208977204606239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=4769208977204606239' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/4769208977204606239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/4769208977204606239'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2010/01/using-aes-from-java.html' title='Using AES from Java'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-1211466891549685951</id><published>2009-12-14T17:43:00.003Z</published><updated>2010-11-13T22:07:29.276Z</updated><title type='text'>Keytool keystore Cannot store non-PrivateKeys</title><content type='html'>&lt;div&gt;Don't believe the error, or a lot of websites....&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have a requirement to encrypt passwords in a file. I figured I'd use the java security tools to store the encryption key.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 1/ Generate  the secret key (Using AES as encryption algorithm)&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family:'courier new';"&gt;.\keytool -genseckey -alias aestest -keyalg AES -keysize 192&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This results in error&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family:'courier new';"&gt;keytool error: java.security.KeyStoreException: Cannot store non-PrivateKeys&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After much searching, and some incorrect pointers (Keytool cannot generate symmetric keys, keytool cannot generate AES keys etc.), I found the solution. The problem is the default Keystore type is JKS. This cannot store symmetric keys. However if you change the keystore type to JCEKS then it works.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;e.g.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family:'courier new';"&gt;.\keytool -genseckey -alias aestest -keyalg AES -keysize 192 -storetype JCEKS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One side effect of this is that you then need to specify the storeType in every command there-after.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;e.g. &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family:'courier new';"&gt;keytool -list&lt;/span&gt;&lt;/div&gt;&lt;div&gt;keytool error: java.io.IOException: Invalid keystore format&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family:'courier new';"&gt;keytool -list -storetype JCEKS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Your keystore contains 3 entries&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family:'courier new';"&gt;aestest, 14-Dec-2009, SecretKeyEntry,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family:'courier new';"&gt;aestest2, 14-Dec-2009, SecretKeyEntry,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family:'courier new';"&gt;test, 14-Dec-2009, SecretKeyEntry,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-1211466891549685951?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/1211466891549685951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=1211466891549685951' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/1211466891549685951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/1211466891549685951'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2009/12/keytool-keystore-cannot-store-non.html' title='Keytool keystore Cannot store non-PrivateKeys'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-158437751510288223</id><published>2009-11-10T15:13:00.002Z</published><updated>2009-11-10T15:13:45.380Z</updated><title type='text'>Xquery to mask CreditCard number</title><content type='html'>&lt;div&gt;declare function local:maskString($input as xs:string, $numClearDigits as xs:int)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;as xs:string{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;let $len := fn:string-length($input)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;let $maskLen := $len - $numClearDigits&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;let $clearText := fn:substring($input, $maskLen+1)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;let $mask := fn:string-join (&lt;/div&gt;&lt;div&gt;       (for $i in (1 to $maskLen) return "X", $clearText)&lt;/div&gt;&lt;div&gt;       ,'')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;return&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$mask&lt;/div&gt;&lt;div&gt;};&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-158437751510288223?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/158437751510288223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=158437751510288223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/158437751510288223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/158437751510288223'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2009/11/xquery-to-mask-creditcard-number.html' title='Xquery to mask CreditCard number'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-3238005940870922098</id><published>2009-11-10T14:42:00.001Z</published><updated>2009-11-10T15:08:47.929Z</updated><title type='text'>Detect Java method name from code</title><content type='html'>&lt;a href="http://www.rgagnon.com/javadetails/java-0420.html"&gt;http://www.rgagnon.com/javadetails/java-0420.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;JDK1.4&lt;/b&gt;&lt;/div&gt;&lt;div&gt;public class MyTest {&lt;/div&gt;&lt;div&gt;    public static void main(String args[]) {&lt;/div&gt;&lt;div&gt;      new MyTest().doit();&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;    public void doit() {&lt;/div&gt;&lt;div&gt;      System.out.println&lt;/div&gt;&lt;div&gt;         (new Exception().getStackTrace()[0].getMethodName());&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;b&gt;The output&lt;/b&gt;&lt;/div&gt;&lt;div&gt;doit&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;JDK1.5&lt;/b&gt;&lt;/div&gt;&lt;div&gt;While the above snippet is not bad, it is expensive since we need to create an Exception.&lt;/div&gt;&lt;div&gt;With JDK1.5, a new technique is available.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;public class Test {&lt;/div&gt;&lt;div&gt; public static void main(String args[]) {&lt;/div&gt;&lt;div&gt;    trace(Thread.currentThread().getStackTrace());&lt;/div&gt;&lt;div&gt;    new Test().doit();&lt;/div&gt;&lt;div&gt;    trace(Thread.currentThread().getStackTrace());&lt;/div&gt;&lt;div&gt; }&lt;/div&gt;&lt;div&gt; public void doit() {&lt;/div&gt;&lt;div&gt;    trace(Thread.currentThread().getStackTrace());&lt;/div&gt;&lt;div&gt;    doitagain();&lt;/div&gt;&lt;div&gt;  }&lt;/div&gt;&lt;div&gt; public void doitagain() {&lt;/div&gt;&lt;div&gt;    trace(Thread.currentThread().getStackTrace());&lt;/div&gt;&lt;div&gt;  }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; public static void trace(StackTraceElement e[]) {&lt;/div&gt;&lt;div&gt;   boolean doNext = false;&lt;/div&gt;&lt;div&gt;   for (StackTraceElement s : e) {&lt;/div&gt;&lt;div&gt;       if (doNext) {&lt;/div&gt;&lt;div&gt;          System.out.println(s.getMethodName());&lt;/div&gt;&lt;div&gt;          return;&lt;/div&gt;&lt;div&gt;       }&lt;/div&gt;&lt;div&gt;       doNext = s.getMethodName().equals("getStackTrace");&lt;/div&gt;&lt;div&gt;   }&lt;/div&gt;&lt;div&gt; }&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Output&lt;/b&gt;&lt;/div&gt;&lt;div&gt;main&lt;/div&gt;&lt;div&gt;doit&lt;/div&gt;&lt;div&gt;doitagain&lt;/div&gt;&lt;div&gt;main&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-3238005940870922098?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/3238005940870922098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=3238005940870922098' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/3238005940870922098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/3238005940870922098'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2009/11/detect-java-method-name-from-code.html' title='Detect Java method name from code'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-650502154058765503</id><published>2009-10-20T18:13:00.005+01:00</published><updated>2009-10-20T18:22:40.004+01:00</updated><title type='text'>Mvn Mojo architype type</title><content type='html'>Quick note.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This maven page (on your first mojo) has a typo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When creating a default mojo project using the architype the instruction says run&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;mvn archetype:create -DgroupId=quinn -DartifactId=maven-loop-task  -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-mojo&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This fails. In fact you need to include the version attribute like so&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;mvn archetype:create -DgroupId=quinn -DartifactId=maven-loop-task  -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-mojo -DarchetypeVersion=1.0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&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/14419533-650502154058765503?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/650502154058765503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=650502154058765503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/650502154058765503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/650502154058765503'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2009/10/mvn-mojo-architype-type.html' title='Mvn Mojo architype type'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-6996011756270687101</id><published>2009-09-04T22:09:00.002+01:00</published><updated>2009-09-04T22:20:54.083+01:00</updated><title type='text'>USB drive won't go</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 12px; color: rgb(17, 17, 17); line-height: 18px; "&gt;&lt;div&gt;I was been particularly stupid one day, trying to repartition my backup USB drive without first backing it up.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yes I know I was stupid ,and frankly I probably deserved to lose everything, but  I was lucky. The drive woulldn't appear on my laptop, and yet after running all the windows diagnostics , I could find no problems.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Running the following prog solved the problem&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;diskmgmt.msc&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:Verdana;font-size:100%;color:#111111;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:Verdana;font-size:100%;color:#111111;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 18px;"&gt;Select a drive letter and away you go.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-6996011756270687101?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/6996011756270687101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=6996011756270687101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6996011756270687101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/6996011756270687101'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2009/09/usb-drive-wont-go.html' title='USB drive won&apos;t go'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-7937262468197729186</id><published>2009-07-08T15:25:00.013+01:00</published><updated>2010-04-29T15:32:48.651+01:00</updated><title type='text'>Grails cheatsheet</title><content type='html'>&lt;div&gt;&lt;b&gt;Getting Started&lt;/b&gt;&lt;/div&gt;&lt;div&gt;grails set-proxy   (if necessary to set proxy)&lt;/div&gt;grails create-app AppName&lt;div&gt;cd AppName&lt;/div&gt;&lt;div&gt;grails create-domain-class Domain&lt;/div&gt;&lt;div&gt;grails generate-all Domain&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Install Acegi&lt;/b&gt;&lt;/div&gt;&lt;div&gt;grails install-plugin acegi&lt;/div&gt;&lt;div&gt;&lt;div&gt;grails create-auth-domains&lt;/div&gt;&lt;div&gt;grails generate-manager&lt;/div&gt;&lt;div&gt;grails generate-registration&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Tools&lt;/b&gt;&lt;/div&gt;&lt;div&gt;grails schema-export    (Export a DDL sql script for the domain classes)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#333333;"&gt;&lt;span class="Apple-style-span" style=" line-height: 17px;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;grails generate-hbm-xml  (Generate hibernate mapping file (From grails 1.3)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#333333;"&gt;&lt;span class="Apple-style-span" style=" line-height: 17px;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;grails install-templates (Install base scaffolding files. Can then update them before generating scaffolding. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#333333;"&gt;&lt;span class="Apple-style-span" style=" line-height: 17px;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;e.g. I update list default size to 50 (from 10)),   Increase number of columns displayed in list tables (max by defauilt is 6 columns), changing  &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#999999;"&gt; if (i &amp;lt; 6){&lt;/span&gt; { allows you to increase this (change in 2 places)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#333333;"&gt;&lt;span class="Apple-style-span" style=" line-height: 17px;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#333333;"&gt;&lt;span class="Apple-style-span" style=" line-height: 17px;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;b&gt;DB-Plugin&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;grails install-plugin db-stuff&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;&lt;div&gt;grails create-db&lt;/div&gt;&lt;div&gt;grails export-data&lt;/div&gt;&lt;div&gt;grails export-data-diff&lt;/div&gt;&lt;div&gt;grails export-ddl&lt;/div&gt;&lt;div&gt;grails load-data&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#333333;"&gt;&lt;span class="Apple-style-span" style=" line-height: 17px;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#333333;"&gt;&lt;span class="Apple-style-span" style=" line-height: 17px;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;b&gt;Maven integration&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#333333;"&gt;&lt;span class="Apple-style-span" style=" line-height: 17px;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;b&gt;&lt;a href="http://www.grails.org/Maven+Integration"&gt;http://www.grails.org/Maven+Integration&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#333333;"&gt;&lt;span class="Apple-style-span" style=" line-height: 17px;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;Build a new grails project with maven.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#333333;"&gt;&lt;span class="Apple-style-span"  style="line-height: 17px; font-size:medium;"&gt;mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-4:generate -DarchetypeGroupId=org.grails -DarchetypeArtifactId=grails-maven-archetype  -DarchetypeVersion=1.2.0 -DgroupId=example -DartifactId=my-app&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#333333;"&gt;&lt;span class="Apple-style-span"  style="line-height: 17px; font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#333333;"&gt;&lt;span class="Apple-style-span"  style="line-height: 17px; font-size:medium;"&gt;mvn initialize&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#333333;"&gt;&lt;span class="Apple-style-span"  style="line-height: 17px; font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#333333;"&gt;&lt;span class="Apple-style-span"  style="line-height: 17px; font-size:medium;"&gt;&lt;b&gt;Misc&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;&lt;b&gt;GORM Non numeric ID field&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;See my question, and someone elses helpful answer on the grails mailing list for how to create a non-numeric ID field, and rename it to something other than ID. Its a bit sneaky but works perfectly.  &lt;/span&gt;&lt;a href="http://grails.1312388.n4.nabble.com/Non-numeric-ID-tt2073698.html#none"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;http://grails.1312388.n4.nabble.com/Non-numeric-ID-tt2073698.html#none&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;&lt;b&gt;Dependency Injection.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;Ran into a stupid problem with Dependency injection. I was trying to inject the DataSource into a Service (and into a Java library). It appeared the Data source was not getting injected into grails Service class. Dependency injection was not working!! &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;As usual it was working fine, and the problem was mine...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;Dependency Injection (DI) is configured by default to occur by name. If you create a property in your Domain/ Controller/ Service class with the same name as another Service or property you want injected, then it will automatically get injected. See this article &lt;span class="Apple-style-span"  style="color: rgb(0, 0, 0);  line-height: normal; font-family:Georgia, serif;"&gt;&lt;a href="http://www.grails.org/Services"&gt;http://www.grails.org/Services&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;To inject the DataSource into your Service, All you need to do is add the line&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#999999;"&gt;def dataSource&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;to your Service. Thats all.. nothing else is needed.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt; I also had to add the following to initialize the  java libraries dataSource, so I also needed&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#999999;"&gt;class BenefitService implements InitializingBean{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px; "&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#999999;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#999999;"&gt;void afterPropertiesSet() {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#999999;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#999999;"&gt;println "Initializing BenefitService "+dataSource&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#999999;"&gt;        BenefitWrapper.setDataSource(dataSource)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#999999;"&gt;    }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;This all would work. My problem was I (helpfully) added an accessor method for the dataSource&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#999999;"&gt; def getDataSource(){return dataSource)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;This simple method modifies the groovy class dataSource property, effectively making the  setter of the dataSource unavailable, thus effectively blocking dependency injection.&lt;/div&gt;&lt;div&gt;Moral: Groovy is designed to help reduce the number of code lines you write. Don't add unneccessary lines or there may be unexpected side-effects.&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-7937262468197729186?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/7937262468197729186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=7937262468197729186' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/7937262468197729186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/7937262468197729186'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2009/07/grails-cheatsheet.html' title='Grails cheatsheet'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-8534660408720258867</id><published>2009-06-15T11:01:00.000+01:00</published><updated>2009-06-15T11:15:39.408+01:00</updated><title type='text'>Shutdown hook in Groovy... Inner Classes in Groovy</title><content type='html'>Groovy doesn't support Inner classes directly. I was in a hurry to implement a shutdown hook in Java so I came accross the groovy workaround&lt;br /&gt;http://groovy.codehaus.org/Groovy+Alternatives+to+Inner+Classes&lt;br /&gt;&lt;br /&gt;I had to tweak the script slightly to get it to work for the shutdown hook (see below).&lt;br /&gt;&lt;br /&gt;To implement the shutdown hook in Java a Thread instance is passed to the addShutdownHook() method of the Runtime instance. &lt;br /&gt;&lt;br /&gt;In Java we could create an Inner class that extends Thread, or that implements Runnable.&lt;br /&gt;&lt;br /&gt;In Groovy we must create a Map. The Map contains a list of key/ values. These correspond to method names (key), and method implementations (closure). For this case the closure will represent the Thread that we pass to the Runtime.addShutdownHook() method. Therefore we are implmenting the run() method, so the key in the map must be run().&lt;br /&gt;&lt;br /&gt;The ProxyGenerator is then used to dynamically add the interface to the close. Finally since Runtime.addShutdownHook() expects a Thread instance (not simply a class that implements Runnable) ,we must add the Thread.class to the call to ProxyGenerator.instantiateAggregate(). &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;def shutdownClosureMap = [run: {&lt;br /&gt;    outputFile.close();&lt;br /&gt;    println "Shutting down";&lt;br /&gt;  }&lt;br /&gt;]&lt;br /&gt;def interfaces = [Runnable]&lt;br /&gt;def shutdownListener = ProxyGenerator.instantiateAggregate(shutdownClosureMap, interfaces, Thread.class)&lt;br /&gt;&lt;br /&gt;Runtime.getRuntime().addShutdownHook((Thread)shutdownListener);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14419533-8534660408720258867?l=khylo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://khylo.blogspot.com/feeds/8534660408720258867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14419533&amp;postID=8534660408720258867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/8534660408720258867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14419533/posts/default/8534660408720258867'/><link rel='alternate' type='text/html' href='http://khylo.blogspot.com/2009/06/shutdown-hook-in-groovy-inner-classes.html' title='Shutdown hook in Groovy... Inner Classes in Groovy'/><author><name>k</name><uri>http://www.blogger.com/profile/07330868626323303509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14419533.post-4941059568543219650</id><published>2009-06-12T11:52:00.006+01:00</published><updated>2009-06-17T11:35:30.915+01:00</updated><title type='text'>Groovy GString/ STring</title><content type='html'>A few Gotchas that I've been getting stung with in Groovy.&lt;br /&gt;&lt;br /&gt;GStrings and Strings&lt;br /&gt;&lt;br /&gt;Be careful with Groovy Strings and Sql.&lt;br /&gt;&lt;br /&gt;Make sure you know the rules of when Strings become GStrings, and therefore can support dynamic variable replacements.&lt;br /&gt;&lt;br /&gt;GString docs can be found&lt;br /&gt;&lt;a href="http://docs.codehaus.org/display/GROOVY/Strings+and+GString"&gt;http://docs.codehaus.org/display/GROOVY/Strings+and+GString &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;These rules are listed here: (Note this doc is aproposal for changnig GString)&lt;br /&gt;&lt;a href="http://docs.codehaus.org/display/GroovyJSR/Groovy+String+Handling"&gt;http://docs.codehaus.org/display/GroovyJSR/Groovy+String+Handling&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For example in the code below, if you simply use "def" to declare your variable, you will not see explicitly which types get converted to GStrings and which get converted to plain Strings.&lt;br /&gt;&lt;br /&gt;By been explicit in your definitions however you can see that sql6 will not cast by default to a GString. This is becausei t is a multiline java.lang.String (see rules in link above). You will get this exception.&lt;br /&gt;&lt;br /&gt;org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object "..." with class 'java.lang.String' to class 'groovy.lang.GString'&lt;br /&gt;&lt;br /&gt;To fix it.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Date startDate = new Date() -1;     &lt;br /&gt;Date endDate = new Da
