Monday, December 22, 2008

Installing Weblogic server 10.3 on Ubuntu Jeos

I've been having some compatibility issues with weblogic server 10.0 and sun jdk 1.6. The issues are encountered when I was trying to create new jms server and modules. So after a bit of investigation, I decided to upgrade to 10.3 and stay with jdk 1.6.

1. Download server103_generic.jar file.
2. Follow the same steps described in the previous post, but this time, choose custom installation. I had to tell installer not to install any workshop related stuff, otherwise it would ask for home directory of Eclipse.
3. I installed 10.3 into a different bea home than the one used before.

Didn't have any other issues during installation and after 15 mins, I had weblogic 10.3 running in sun jdk1.6 on ubuntu jeos 8.04.1!

Thursday, December 18, 2008

Getting Weblogic server 10 running on Ubuntu Jeos

I recently had a play with Weblogic server 10 on Ubuntu Jeos 8.04. I was surprised with how easy it was to install weblogic onto ubuntu, especially after working with heavy weight opmn managed oracle oc4j server. Here are the steps:

1. Install Ubuntu Jeos.
2. Install Samba
sudo apt-get install samba
configure your ubuntu account to be samba account.
3. Install Sun JDK 6.
sudo apt-get install sun-java6-jdk (This automatically set the env variables and configure your path).

4. Download weblogic installation file. Make sure you download the generic version (server1001_generic.jar).
5. Refer to the installation document.
http://e-docs.bea.com/common/docs100/install/console.html
6. I install weblogic into my user home folder. This is the easy option as the permissions on files are alreay configured.

7. To create a new weblogic domain, run sudo WEBLOGIC_HOME/common/bin/config.sh. Make sure that the script is run as a root user, otherwise it will hang.

The whole experience was very smooth. And the installation was very very easy.

Have to give a big thumb to the support of weblogic on Linux!

Monday, December 15, 2008

Configure http connection timeout in CXF

CXF is a great open source web service engine. The things that I like most are

1. Strong integration with Spring framework.
2. Solid support for maven.
3. Highly configuratble.

When we develop web services with cxf, quite often, we want to be able to control the http timeout settings in the web service engine. It's very easy to do this in CXF. what you need is:

1. Create a cxf.xml file and put it on your classpath.
2. Add the following configurations:

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
xsi:schemaLocation="http://cxf.apache.org/transports/http/configuration
http://cxf.apache.org/schemas/configuration/http-conf.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">

<http-conf:conduit
name="{urn:transurban:glide:accountgateway:readtokens}ReadTokensPort.http-conduit">
<http-conf:client ConnectionTimeout="30000" ReceiveTimeout="6000"/>
</http-conf:conduit>
</beans>

Note that the configuration is based on the port type defined in wsdl. This way, you can have different timeout settings for different web services. The most important setting here is "ReceiveTimeout". This indicates how long the engine will wait for http response before it throws exceptions.

Oracle BPEL - Synchronous web service invocation timeout

There seems to be a default http timeout configured in Oracle BPEL for synchronous web service calls. According to the docs, there are a few places where you can make changes that might affect the timeout used at runtime. The end results of my testing seem to be dependent on the BPEL PM versions. The followings are what I have done to set the timeout for 10.1.3.3.0

A few posts you might want to have a look first

http://forums.oracle.com/forums/thread.jspa?messageID=2827600�
http://acevedodamian.blogspot.com/2008/11/synchronous-invocation-timeout-not.html

With 10.1.3.3.0, to get it to work, add the timeout settings to the partnerlink. This determines how long the process receive will wait for the response before throwing timeout exceptions. "timeout" property seems to be the only thing that dictates the timeout time. The syncMaxWaitTime is ignored.