This week I came across a good overview of Java Web Frameworks:

http://www.flickr.com/photos/mraible/4378559350/
The presentation (that will be given at TSSJS Las Vegas 2010) this time-line originates from, can be found here. The overview was created by Matt Raible of Raible Designs.
For a lot of us the migration to Windows7 will be the first time we get easy access to a 64-bit desktop OS. One of the first things after an upgrade like that is to get your tools, like in my case JDeveloper, working again. First step is to download the jdevinstall jar, and the Sun JDK. The installation worked fine:
1
| java -jar jdevstudio11112install.jar |
Running JDeveloper on 64-bit JVM
Running JDeveloper with the 64-bit JVM resulted in an error:
1
2
3
| Unable TO launch the Java Virtual Machine
located at path:
C:\Java\jdk1.6.0_18\jre\bin\server\jvm.dll |
A solution is to use the 32-bit JVM. To do this change the SetJavaHome in thejdev.conf that is located in the {JDEV_HOME}\jdev\bin\jdev.conf.
1
| SetJavaHome C:\Java\jdk1.6.0_18_x86 |
Where the jdk1.6.0_18_x86 is a 32-bits JVM version.
After installing JDeveloper 11G successfully, we encountered the following error while starting JDeveloper:
Unable to create an instance on the Java Virtual Machine located on c:\jdeveloper11g\Middleware\jdk160_05\jre\bin\client\jvm.dll

Using Google and Oracle Support showed us that the virtual memory for the PC was not set to level that allowed the JVM to initialise.
The solution is to increase the virtual memory or swap area. To do this on Vista:
My Computer > Properties > Advanced System Settings > tab Advanced > Performance - Settings > tab Advanced > Virtual memory - Change
The webcast of the SOA and Integration strategy was a few days later available as the overall strategy. You can find the entire webcast here.
SOA Platform
The combined Oracle Sun solution focus boils down to the following bullets:
- Oracle SOA Suite continues as the strategic product.
- Sun JCAPS continues to be supported and maintained
- GlassFish ESB continues as an open source project
- A bridging technology is planned to support collaboration between JCAPS and Oracle SOA Suite.
- Key functions from the Sun SOA products will be incorporated in the Oracle SOA products.
Portal technologies
Oracle WebCenter stays the strategic portal offering. Support for both GlassFish Web Space Server and Sun Portal Server will be continued. An upgrade path to WebCenter is planned for both. The IP (Intellectual Property) for Sun’s Web Space Server will be released into the Liferay open source community.
Categories: Oracle, SOA Suite, Service Bus, WLS Tags: Fusion Middleware, integration, Java, Java CAPS, Open Source, Oracle, SOA Suite, Sun, WebLogic, WLS
This evening while playing with WinDirStat (using the Portable Apps version) I took the following screenshot:

JDeveloper Stats
It shows the growth of
Oracle JDeveloper in size, number of files, and subdirectories. The most recent version is more than twice as big as 10.1.3.3. Also notice the difference between a 11.1.1.0 with and without the
SOA Suite extension (marked with FMW).
SQL Developer also shows some growth. A large part of this is because the JDK has been expanded.
This post describes how to change the JDK for an Oracle Application Server 10.1.3.x installation. To check which JDK versions are supported with Application Server releases, check Metalink note 258833.1.
- Stop all running Application Server processess.
- Rename the current JDK directory:
1
2
| cd $ORACLE_HOME
mv jdk jdk.old |
- Install or copy the JDK version you need into $ORACLE_HOME/jdk
- Start the Application Server processess.
You can check the JDK version:
1
| $ /jdk/bin>./java -version |
AIX 5L specials
If your systems are running AIX 5L there is some patching to be done. Assuming you’re using JDK 1.5 you have to apply patch 5261515.
After upgrading to a IBM JDK it is very well possible to run into the JAVAX.NET.SSL.SSLKEYEXCEPTION:RSA PREMASTER SECRET ERROR. In that case you have to modify the $ORACLE_HOM/jdk/jre/lib/security/java.security to
1
2
3
4
5
| security.provider.1=com.ibm.jsse2.IBMJSSEProvider2
security.provider.2=com.ibm.crypto.provider.IBMJCE
security.provider.3=com.ibm.security.jgss.IBMJGSSProvider
security.provider.4=com.ibm.security.cert.IBMCertPath
security.provider.5=com.ibm.security.sasl.IBMSASL |
and create a symbolic link (or copy the jar) from the directory $ORACLE_HOME/jre/lib/ext/ibmjsseprovider2.jar to $ORACLE_HOME/jdk/jre/lib/ibmjsseprovider2.jar as described in Metalink note 746423.1.
One of the projects I’m involved in, uses Oracle ESB (from SOA Suite 10.1.3.3 MLR 18) running on AIX 5.3. Instead of using the default in-memory JMS the ESB is configured to use Oracle Advanced Queueing (AQ). Although there were tuning efforts before, the performance wasn’t up to par. AQ seemed to be the bottleneck, especially the dequeueing part. During the day we saw the number of messages queue up. Generally these numbers would decrease after business hours. This should have been a big problem if the number of messages wasn’t going to be tripled or quadrupled in the next month(s).
Upgrade the JVM
Previous attempts in cooperation with Oracle Consulting hadn’t done the trick, yet. To get a fresh view and some out-of-the-box thinking Marc joined the team. He performed a scan of the systems settings. Researching Oracle’s knowledge system resulted (searching on AIX & ESB & DB Adapter) in the clue to upgrade the JVM (6848406 – SLOW PERFORMANCE ON AIX ESB USING FILE AND DB ADAPTER). Although we were skeptic at first, because why tried a similar path before, we decided to give it a shot. The previous attempt resulted in errors in our code without enhancing the performance of the system.
With the AIX system a Java 5 is delivered in /usr/java5, to be more precise:
1
2
3
4
5
6
7
8
| $:/jdk/bin>./java -version
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build pap32dev-20080315 (SR7))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 AIX ppc-32 j9vmap3223-20080315 (JIT enabled)
J9VM - 20080314_17962_bHdSMr
JIT - 20080130_0718ifx2_r8
GC - 200802_08)
JCL - 20080314 |
To change this stop the SOA Suite and:
1
2
3
| cd $ORACLE_HOME
mv jdk jdk.orginal # rename jdk directory
ln –s /usr/java5 jdk # Creates symbolic link |
and the start the SOA Suite. With this newer Java version we had a significant performance improvement.
Remaining issue
If the change is performed as described above Enterprise Manager doesn’t allow you to browse the oc4j_soa anymore. This will result in the following error message:
Unable to make a connection to OC4J instance oc4j_soa on Application Server someserver.local. A common cause for this failure is an authentication error. The administrator password for each OC4J instance in the Cluster must be the same as the administrator password for the OC4J instance on which Application Server Control is running.
This can be solved by applying the patch for base bug 5261515. The patch adds some security jars and properties that are not in the AIX Java5 version.
Since this patch introduces issues in our code, we are working around the Em problems for now, while trying to resolve the issue.
This week few initiatives to find sample code caught my eyes.
Oracle Sample Code Repository
Although there was already a sample code page on Oracle’s Technet. There probably were more… Oracle has created a Sample Code Repository. Like any repository this one should centralize and consolidate the large pile of samples that is available, both from Oracle product specialist, consultant, partners and customers.
Actually this could make it easier to find samples. To make this a success, there has to be a spirit of reuse. And as the major part of developers and architects out there can testify that’s not always easy part. It boils down to the same willingness for reuse of code that is required for a successful long term Service Oriented approach of software development within an organization.
Anyway some good examples are already available. A good introduction on samplecode at Oracle Technet can be found in this podcast (m4v) that features Duncan Mills. By the way, more podcasts can be found on the techcast page.
Google Code Search
Google Code Search is not exactly new, but it caught my attention because of some blogpost and comments I saw this week. To give it a try I did some queries with it and have mixed feelings so far. Asking around co-workers did not raise and enthusiastic crowd. Leaving me with the question whether any of you out there uses Google Code Search on a regular basis? And, do you have any examples for what kind of queries this works for you?
Thanks in advance for your comments.
There should be no problem running Oracle Fusion Middleware 11g on a laptop. However if it’s memory is on the low end of the spectrum, it can be challenging. One of the changes you can make, is reducing the memory allocated to the Java process for the WLS domain running the SOA Suite. These memory settings can be altered in the following file:
<your_WLS_home>\user_projects\domains\soa_domain\bin\setSOADomainEnv.cmd
Change the memory settings to:
set DEFAULT_MEM_ARGS=-Xms512m -Xmx512m
Off course the values are dependent on the resources of your machine, and shoud be altered accordingly.
This year Oracle organized their first OTN Virtual Developer Day . A virtual hands-on training in Java and Rich Enterprise Applications. The screencasts and “Hands-On Labs” are still available. The latter require an AWS (Amazon Web Services) account and charges can apply. The following sessions are interesting from an Application Server point of view:
Oracle WebLogic Server: Introduction and Roadmap
This session provides an overview of Oracle WebLogic Server concepts, and discusses the road map for the Oracle Fusion Middleware Application Server infrastructure, explaining Oracle’s current offerings post-BEA-acquisition and where the product is headed. The screencast can be viewed: Part 1 Part 2
or downloaded:
Top 10 Productivity Tools for Java Developers on Oracle WebLogic Server 10gR3
This session highlights the top 10 capabilities that will improve a Java developers working on WebLogic Server include features such as deep Spring framework integration and support, fast Java class swapping, deployment plans, HTTP pub-sub capabilities for Web 2.0 development, sophisticated debugging and end-to-end updates for Java EE 5.0 development. Learn what’s new and see it in action in this demonstration centric session. View the screencast: Part 1 Part 2
or download it: