Thursday, April 17, 2008

ESB : Sending Email notification

Information regarding this can be found under these URLs:

1) Oracle Forum: http://forums.oracle.com/forums/thread.jspa?messageID=1531686

2) http://www.oracle.com/technology/obe/obe_as_10g/wireless/wirelessmessaging/mesg.htm

ESB : ESB Support an Inbound Email Adapter??

Not in the version 10.1.3. Oracle ESB does not currently support the activation agent framework required for this.

Workaround:
A somewhat simple workaround is to write a J2EE servlet that uses JavaMail to poll a mail server and generate a JMS message that Oracle ESB receives using the JMS adapter.

BPEL : Exception ORA-01691

Exception looks like:

<2008-04-15 16:05:59,168>

Error while invoking bean "delivery": Cannot update lob column.
The process domain was unable to update the lob column "7" in the datastore.
The exception reported is: ORA-01691: unable to extend lob segment ORABPEL.SYS_
LOB0000069158C00007$$ by 128 in tablespace ORABPEL

Solution:

For overcoming this exception, you can do either of the things mentioned below:

** Clean up the dehydration store

or

** Increase orabpel tablespace size by running a script similar to the following mentioned below:


alter tablespace orabpel add datafile
'/oracle/product/oradata/orcl/orabpel02.dbf'
size 1024M
autoextend on
next 512M
maxsize 12040M;


Note:- This script is already included in the default IRCA tool of Oracle
BPEL Process Manager for 10.1.3.

Oracle SOA Suite 10.1.3.3: Best Practice guide

Link for Best practice guide on Oracle SOA 10.1.3.3

http://www.oracle.com/technology/tech/soa/index.html

Hope it helps everyone.

BPEL: Exception ORABPEL-05002

This post is in continuation to my post dated 27th september 07 on exception ORABPEL-05002. I have found some real good points to deal with such exceptions.

The exception looks like this,
Failed to handle dispatch message ... exception ORABPEL-05002
Message handle error.
An exception occurred while attempting to process the message "com.collaxa.cube.engine.dispatch.message.instance.PerformMessage"; the exception is: An exception occurred during transaction completion: ; nested exception is: javax.transaction.RollbackException: Timed out.

Solution:
You need to follow the steps mentioned below:

1.) Goto $Oracle_Home\j2ee\home\config\transaction-manager.xml:
change the transaction-timeout parameter, say 'x'

2.) Goto $Oracle_Home\j2ee\home\application-deployments\orabpel\ ejb_ob_engine\orion-ejb-jar.xml:
change the transaction-timeout parameter, say 'y' (i.e. y < x)

3.) Goto BPELConsole:
Change the syncMaxWaitTime in all domains, where you need a bigger timeout

4.) Restart the application server (SOA Server)

While setting the parameter values, be careful because by doing so you will block threads by using long-running synchronous invokes. So as a result, it can affect the performance of BPEL engine.

Thursday, January 31, 2008

BPEL:Invoking Partner Web Service through a Proxy Server

For invoking a partner Web Service through a proxy server, we need to configure our BPEL Process Manager. Following are the assumptions made before configuring it:-
1) Assume that BPEL PM is installed on host -> host123.company.com
2) Assume that one of your deployed BPEL processes must invoke a synchronous Web service hosted outside the fire wall at ->http://partner123.services.com
3) All the outbound HTTP traffic must be routed thro' an HTTP proxy server located at -> proxy123.company.com on port 8090.

Now perform the following steps to configure ant task and BPEL PM to invoke the partner Web service thro' an HTTP proxy server:

1) Open obsetenv.bat(for Windows)/obsetenv.sh(For Linux) file located under:
SOA_Oracle_Home\bpel\bin -> For Windows
SOA_Oracle_Home/bpel/bin -> For Linux

2) Modify the line set OB_JAVA_PROPERTIES as under:

set OB_JAVA_PROPERTIES="-Dhttp.proxySet=true"
"-Dhttp.proxyHost=proxy123.company.com"
"-Dhttp.proxyPort=8090" "-Dhttp.nonProxyHosts=host123.company.com"

We are setting the http.proxySet =true, to activate the client proxy and redirect all the outbound trafiic thro' the http.proxyHost and http.proxyPort.
By setting the http.nonProxyHosts to the server that hosts Oracle BPEL Server,
you prevent the local request from going through the proxy.