No BPEL Process Deployed Is Visible In BPEL Console On Container Restart

Friday, January 29, 2010

Symptoms
You have deployed one or more BPEL projects which runs successfully.
You restart the BPEL container and you do not see any previously deployed projects in BPEL Console.
The BPEL domain log has following error:


<2008-11-20 12:42:36,099>
*****************************************************************************
Loading processes for BPEL domain "default" ...

08/11/20 12:42:36 java.lang.IncompatibleClassChangeError
08/11/20 12:42:36 at com.collaxa.cube.engine.deployment.DeploymentManager.loadAllProcesses(DeploymentManager.java:227)
08/11/20 12:42:36 at com.collaxa.cube.engine.CubeEngine.loadAllProcesses(CubeEngine.java:957)
08/11/20 12:42:36 at com.collaxa.cube.admin.ServerManager.loadProcesses(ServerManager.java:313)
08/11/20 12:42:36 at com.collaxa.cube.admin.ServerManager.loadProcesses(ServerManager.java:279)
08/11/20 12:42:36 at com.collaxa.cube.ejb.impl.ServerBean.loadProcesses(ServerBean.java:273)
08/11/20 12:42:36 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
08/11/20 12:42:36 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
08/11/20 12:42:36 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
08/11/20 12:42:36 at java.lang.reflect.Method.invoke(Method.java:585)
08/11/20 12:42:36 at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
08/11/20 12:42:36 at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
08/11/20 12:42:36 at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
08/11/20 12:42:36 at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
08/11/20 12:42:36 at com.evermind.server.ejb.interceptor.system.JAASInterceptor$1.run(JAASInterceptor.java:31)
08/11/20 12:42:36 at com.evermind.server.ThreadState.runAs(ThreadState.java:693)
08/11/20 12:42:36 at com.evermind.server.ejb.interceptor.system.JAASInterceptor.invoke(JAASInterceptor.java:34)
2008-11-20 12:42:36,102> Failed to load processes for domain default

Changes
You apply any MLR patch to upgrade BPEL.

Cause
You have some classes in the classpath, whose class definition is not compatible with the currently executing method. This is likely if you have in the past applied any test patch provided by development under $ORACLE_HOME/bpel/system/classes directory. The class files placed in this directory overrides the same class in other location causing the incompatibility.

Solution
1.Stop the container running BPEL
2.Delete the classes under $ORACLE_HOME/bpel/system/classes
3.Start the BPEL container.

Read more...

BPEL Console isn't accesible if the BPEL domain name has mixed or upper case

Symptoms
When a BPEL domain is created using mixed or upper case in his name, the BPEL Console is inaccesible for the user.

Cause
The problem is caused because BPEL don't support the creation of domains using mixed or upper case in names. Since the domain names are used in the directory structure, and different Operating Systems handle case differently (Windows is case insensitive, while Unix and Linux are case sensitive), it is not possible to allow mixed or upper case names.

Some additional information about errors:

1.- Create two domains using capital letters, for example, 'DEV' and 'QA', then login to BPEL console,the following error occurs (Metalink Note 428317.1).

ERROR
OracleJSP: java.io.FileNotFoundException

2.- Created a new domain, with a domain name beginning with UPPERCASE letters.
When attempting to log into the BPEL Console the login failed and received the following error in the domain.log (Metalink Note 423058.1):

(Note the domain name searched is "dave" when the actual domain created was "DAVE")


<2007-04-10 13:52:58,453> GOT CONNECTION 3 Autocommit = false
<2007-04-10 13:52:58,468> CLOSE CONNECTION 2
<2007-04-10 13:53:14,890> Error while invoking bean "finder": Cannot lookup BPEL domain.
The BPEL domain "dave" cannot be found; the domain may not have initialized properly.
Please verify that the BPEL domain loader has a valid set of initialization properties in the application properties file.

ORABPEL-02052

Cannot lookup BPEL domain.
The BPEL domain "dave" cannot be found; the domain may not have initialized properly.
Please verify that the BPEL domain loader has a valid set of initialization properties in the application properties file.

at com.collaxa.cube.engine.CubeEngineHolder.getStatus(CubeEngineHolder.java:41)
at com.collaxa.cube.engine.CubeEngineHolder.getEngine(CubeEngineHolder.java:52)

Solution
Create your domain using lower case.
It was determined that instead of trying to make a generic fix for all platforms, it would be much safer to pull patch 5851215, and require that all domains only be created in lower case.

Read more...

BPEL Process - Operation "Initiate" Does Not Appear In BPEL Console

Symptoms
When you upgrade or update MLR patchsets to SOA suite you might encounter this problem, where some of the already deployed BPEL processes may not show the "Initiate" operation in the Operation drop-down of the BPEL Console.

Cause
The cause for this issue could be due to the runtime WSDL files in the WSDL cache were corrupted during the upgrade.

Solution
Clear the WSDL cache.

Follow the steps below:
1. Stop the SOA server.
2. Navigate to \bpel\domains\<Domain>\tmp\
3. Delete all the .<Directories>. (There will be a dot in front of all these directories)
4. Start SOA Server.

You can also achieve the above from the BPEL console. Navigate to Administration tab --> Actions --> Press the "Clear WSDL Cache" button.

Read more...

BPEL Process Unable To Render HTML Or XML Form In Initiate Tab Of BPEL Console, When Using anySimpleType Element Type In Schema

Symptoms
You have a BPEL process that uses a schema with a element type anySimpleType. When you try to initiate the process from the BPEL console, the Initiate tab does not render the HTML or the XML input fields or form.

Solution
Apply Patch.8763870

Read more...

XMLDOMException when using database adapter and bpel java embeded activity

Symptoms
BPEL Process Manager - Version: 10.1.3.1
When using a database adapter with a bpelx:exec activity, the following error message occurs when running the process.




error thrown
oracle.xml.parser.v2.XMLDOMException: invalid namespace for prefix xmlns
at oracle.xml.util.XMLUtil.validateQualifiedName(XMLUtil.java:520)
at oracle.xml.parser.v2.XMLDocument.createAttributeNS(XMLDocument.java:2166)
at oracle.xml.parser.v2.XMLAttr.xdkCopyNode(XMLAttr.java:1322)
at oracle.xml.parser.v2.XMLElement.xdkCopyNode(XMLElement.java:3527)
at oracle.xml.parser.v2.XMLDocument.xdkCopyNode(XMLDocument.java:1222)
at oracle.xml.parser.v2.XMLNode.cloneNode(XMLNode.java:879)


This error occurs when bpelx:exec is added to BPEL process.

Cause
The problem is due to a bug. The XML format in which the database adapter generated an XML message was not correct. The database adapter used DOM API Level 1. The fix included a change to API level 2.

Solution
Apply Patch 5664594.

Read more...

Error While Inserting Data into Database, BPEL Reading Data From CSV File

Symptoms
Using BPEL, reading a CSV file and inserting the data read from CSV file into any database and you notice errors such as below:


Caused by: org.collaxa.thirdparty.apache.wsif.WSIFException:
file:/F:/product/10.1.3.1/OracleAS/bpel/domains/default/tmp/.bpel_LegalBInbound_1.2_a9794a68a9df7003
9198a32c72b8581c.tmp/InsertData_To_F58LEGAL.wsdl
[InsertData-To-F58LEGAL_ptt::insert(F58legalCollection) ] - WSIF JCA Execute of operation 'insert'
failed due to: DBWriteInteractionSpec Execute Failed Exception.
insert failed. Descriptor name: [InsertDataToF58LEGAL.F58legal]. [Caused by: [SQL7008] F58LEGAL in
TNPIDTA not valid for operation.]
; nested exception is:
ORABPEL-11616
DBWriteInteractionSpec Execute Failed Exception.
insert failed. Descriptor name: [InsertDataToF58LEGAL.F58legal]. [Caused by: [SQL7008] F58LEGAL in
TNPIDTA not valid for operation.]
Caused by Exception [TOPLINK-4002] (Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)):
oracle.toplink.exceptions.DatabaseException
Internal Exception: java.sql.BatchUpdateException: [SQL7008] F58LEGAL in TNPIDTA not valid for
operation.Error Code: -7008.

at
oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeRequestResponseOperation(WSIFOperation_JCA.j
ava:623)
at
oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeInputOnlyOperation(WSIFOperation_JCA.java:72
6)
at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIFInvocationHandler.java:425)


Steps to reproduce
1. Write a simple SQL statement such as:
insert into emp (empno, empname) values(123,'Ranajit,Sahoo')
and try executing the statement with BPEL SQL worksheet.
This should work fine.
2. Create a simple BPEL process with a receive, invoke, database adapter and reply nodes
3. In the database adapter wizard choose simple SQL statement as your option and use the above SQL statement.
4. Click OK in the database adapter wizard, compile, deploy and initiate the process.
You get the ORABPEL-11616 error.

Cause
The problem might be that the CSV file has single quotes around the alphanumeric fields. This problem here has nothing to do with how the database is setup.

According to CSV file standards, BPEL does not count single quotes as the wrapper for the fields. BPEL considers double quotes as the field wrapper.

Example of how BPEL interprets Quotes:

Input ---> output or result
'rs123'---> read as 'rs123'. Not that the single quotes stick with the value.
'rs,123'---> read as 'rs and 123' these are considered to be two different fields.
"rs123"---> read as rs123. Note that the double quotes do not stick with the value.
"rs,123"--->read as rs,123 this is one field, here it does not read the value as tow different fields.

Solution
The solution is not to use single quotes as the field wrapper instead use double quotes to wrap the field, If required in the CSV file.

Read more...

Custom JSP Fails To Execute BPEL Process

When running a custom application with a jsp calling a bpel processs, got 500 Internal Server Error..


"ejb/collaxa/system/DomainManagerBean" bean; exception reported is:
"javax.naming.NameNotFoundException: ejb/collaxa/system/DomainManagerBean not found
at com.evermind[Oracle Application Server Containers for J2EE 10g
(10.1.2.0.2)].server.rmi.RMIContext.lookup(RMIContext.java:164)
at com.evermind[Oracle Application Server Containers for J2EE 10g
(10.1.2.0.2)].server.ApplicationContext.lookup(ApplicationContext.java:333)
at com.evermind[Oracle Application Server Containers for J2EE 10g
(10.1.2.0.2)].server.ApplicationContext.lookup(ApplicationContext.java:120)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at com.oracle.bpel.client.util.BeanRegistry.lookupDomainManagerBean(BeanRegistry.java:218)
at com.oracle.bpel.client.auth.DomainAuthFactory.authenticate(DomainAuthFactory.java:83)
at com.oracle.bpel.client.Locator.(Locator.java:140)
at com.oracle.bpel.client.taglibs.LocatorTag.doStartTag(LocatorTag.java:73)
at _Vacation__Request__Submit._jspService(Vacation_Request_Submit.jsp:2)
[/Vacation_Request_Submit.jsp]


Cause
Custom application does not have permission to access bpel engine because bpel engine is not specified as a parent application.

Solution
To implement the solution, please execute the following steps:

1. stop oc4j container.
2. In the sever.xml change from
<application name="your_application" path="../applications/your_application.ear" />
to <application name="your_application" path="../applications/your_application.ear" parent="orabpel" auto-start="true" />

3. save the file and run
dcmctl updateconfig -ct oc4j

4. delete the your_application folder under both
OC4J_BPEL/applications and
OC4J_BPEL/applications-deployments

5. Restart OC4J_BPEL container.
At this moment both folders should be recreated and this approach should resolve
"javax.naming.NameNotFoundException: ejb/collaxa/system/DomainManagerBean not found" error.

Read more...

Changing Password For Bpel Console User Oc4jadmin

You attempted to change the password for BPEL Console user oc4jadmin by clicking the Setup link in the top right corner of the Application Server Control screen but you cannot connect to the BPEL Console with the new password.

How do you change the password for BPEL Console user oc4jadmin?

Solution
The Setup link is used to change the password for the oc4jadmin user for Application Server Control.

You change the BPEL Console oc4jadmin user password as follows:

1. Connect to Application Server Control.
2. Click OC4J instance name where bpel is running. For example, oc4j_soa for an advanced
installation.
3.Click Administration link.
4. Click Go to Task icon for Security Providers task.
5. Click Instance Level Security.
6. Click Realms link.
7. Click number link under Users.
8. Now search for oc4jadmin in list and click it to change the password for BPEL Console.

The user bpeladmin can be changed here as well.

Read more...

Deploying BPEL Process Using Ant Script Throws Error: java.lang.OutOfMemoryError: PermGen space

Symptoms
When deploying BPEL processes via 'Ant' throws error:
java.lang.OutOfMemoryError: PermGen space

Cause
When running Ant task, Ant runs on a separate JVM to that of OC4J container. Therefore any tuning performed via opmn.xml file does not come into effect.

Solution
set the environment variable ANT_OPTS as below before running Ant script:

Linux: ANT_OPTS=”-XX:MaxPermSize=128m –Xms64m –Xmx512m”; export ANT_OPTS

Windows: Set ANT_OPTS=”-XX:MaxPermSize=128m –Xms64m –Xmx512m”

Read more...

ORABPEL-09903 Error Occurs When Deploying BPEL Process With an Oracle Apps Adapter

Symptoms
On JDeveloper 10.1.3.3 When attempting to deploy a BPEL process with an Oracle Apps Adapter in it,the following error occurs:


BUILD FAILED
C:\Source\BPEL\ERPDEV_Test\build.xml:79: A problem occured while connecting to server "test01"
using port "8889": bpel_ERPDEV_Test_1.0.jar failed to deploy. Exception message is: ORABPEL-09903
Could not initialize activation agent.
An error occured while initializing an activation agent for process "Test", revision "1.0".
Please ensure that the activation agents are configured correctly in the bpel deployment
descriptor (bpel.xml).
oracle.tip.adapter.fw.agent.jca.JCAActivationAgent: java.lang.reflect.InvocationTargetException

Steps To Reproduce
The issue can be reproduced at will with the following steps:
Using JDeveloper 10.1.3.3 create a BPEL Process that uses an Oracle Apps Adapter to capture EBS Events. Design time is fine, It connects to the Integration Reporitory and allows you to select the correct Business Event. During deployment however you receive an Activation Agent Error message

Cause
The apps adapter that comes with JDeveloper 10.1.3.3 adds a new jca property called
AppsEventSchema, this property is not recognized in BPEL 10.1.3.1. So deployment fails when using JDeveloper 10.1.3.3 to deploy on 10.1.3.1 BPEL Server.

Solution

1. Download and review the readme and pre-requisites for Patch 6148874 (patchset 10.1.3.3)
2. Ensure that you have taken a backup of your system before applying the recommended patch.
3. Apply the patch in a test environment.
4. Download and review the readme and pre-requisites for Patch 6267726
5. Apply Patch 6267726 in a test environment.
6. Retest the issue.
7. Migrate the solution as appropriate to other environments.

Read more...

ORABPEL-12517 Endpoint Activation Error When Deploying a BPEL Project via JDeveloper

Symptoms
You encounter this error while deploying a BPEL Project via JDeveloper


Error while notifying observer class com.collaxa.cube.admin.adaptors.platform.PlatformAdaptor_oc4j_10g$1 with aspect class com.collaxa.cube.admin.observer.DomainInitAspect
oracle.classloader.util.AnnotatedNoClassDefFoundError:

The missing class is available from the following locations:

1. Code-Source: HOME/lib/dms.jar (from (ignore manifest Class-Path) in META-INF/boot.xml in HOME/j2ee/home/oc4j.jar)
This code-source is available in loader oracle.dms:3.0.

java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
Caused by: ORABPEL-12517
AdapterFrameworkImpl::endpointActivation - Endpoint Activation Error.
The Resource Adapter was unable to activate the endpoint :{} due to the following reason: ORABPEL-12510
Unable to locate the JCA Resource Adapter via WSDL port element jca:address.

ORABPEL-09903

Could not initialize activation agent.
An error occured while initializing an activation agent for process.Please ensure that the activation agents are configured correctly in the bpel deployment descriptor (bpel.xml).
oracle.tip.adapter.fw.agent.jca.JCAActivationAgent: java.lang.reflect.InvocationTargetException


Cause
<import-shared-library name="oracle.dms"/> tag was missing in the ORACLE_HOME\j2ee\oc4j_soa\config\server.xml file.

Solution
Add <import-shared-library name="oracle.dms"/>to shared-library section in ORACLE_HOME\j2ee\oc4j_soa\config\server.xml file.

Read more...

Calls to SOA Services Show Timeout Errors and no more BPEL Instances are Created

Symptoms
When using SOA Suite Services like Applications Adapters and Database Adapters, after some running time all services stop and the application that make calls to these SOA services start to show timeout error.When checking the BPEL console, you can observed that no instance is generated.

Using AS Control you can observe that in the metrics of connection pool "Threads waiting connections" values are increasing and no more new connection is possible.

Checking the data-sources.xml file we can see that the connection pools define for several of these connections have the following attributes defined:



....


Restarting the SOA Suite solves the issue.

Cause
The issue is caused by JDBC Bug 5842387 - THREADS LEAK WHEN CONNECTION CACHE ABANDON TIMEOUT IS ENABLED

The issue happens when the abandon time thread is locked while trying to close a connection (which is in use).
All subsequent threads which are requesting a connection will be locked. And, the oc4j container will have an increase of number of threads waiting to get a connection.

Solution
Option I
Implement the workaround which suggest NOT using attribute abandoned-connection-timeout for the data source.
Option II
Apply the patch 3438755.

Read more...

How to set a timeout for a Partner Link / WebService in a BPEL

Modify partnerLinkBinding section in bpel.xml as follows



5
false


Read more...

BPEL Server hangs due to "java.lang.OutOfMemoryError"

Symptoms
The BPEL server hangs and a java.lang.OutOfMemoryError is displayed in the domain.log file.

You will see the following stack trace in the domain.log



failed to handle message
javax.ejb.EJBException: Transaction was rolled back: java.lang.OutOfMemoryError; nested
exception
is: java.rmi.RemoteException: ; nested exception is:
java.lang.OutOfMemoryError
java.rmi.RemoteException: ; nested exception is:
java.lang.OutOfMemoryError
at com.evermind.server.ejb.EJBUtils.makeException(EJBUtils.java:886)
at

ICubeDeliveryLocalBean_StatelessSessionBeanWrapper16.handleInvoke(ICubeDeliveryLocalBean_StatelessSe
ssionBeanWrapper16.java:1846)
at

com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMe
ssageHandler.java:37)
...
.....
Message handle error.
An exception occurred while attempting to process the message
"com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the exception is:
Transaction was rolled back: java.lang.OutOfMemoryError; nested exception is:
java.rmi.RemoteException: ; nested exception is:
java.lang.OutOfMemoryError

ORABPEL-05002

Message handle error.
An exception occurred while attempting to process the message
"com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the exception is:
Transaction was rolled back: java.lang.OutOfMemoryError; nested exception is:
java.rmi.RemoteException: ; nested exception is:
java.lang.OutOfMemoryError


Cause
The BPEL OC4J container uses 512 MB of memory by default 512MB, which is not enough if you are running BPEL in a high load environment.

You need to increase the JVM settings. Here is are some recommendations for a Linux Box with 4GB of memory and 2 CPUs. (If you are using a different platform from Linux, these parameters may not apply.)


-Xms2048m –Xmx2048m –Xmn1024m –XX:SurvivorRatio=6 –XX:MaxPermSize=256m

-Xmn1228m
Garbage collector (Oracle recommends sizing the Eden space to be 60 to 70 percent of the total heap size.)

-Xms2048m
Iniatial heapsize. The heap size controls the amount of memory the JVM uses

-Xmx2048m
Maximum heapsize

Solution
To implement the solution, please execute the following steps:
1. Shut down your application server
2. Backup the \opmn\conf\opmn.xml
3. Increase the BPEL JVM settings. Edit the file \opmn\conf\opmn.xml :

3.1 Look for the OC4J_BPEL process type section
Look for the entry
-server -Xms256M -Xmx512M
and replace it with
-server -Xms2048m –Xmx2048m –Xmn1024m –XX:SurvivorRatio=6 –XX:MaxPermSize=256m

Read more...

How to purge BPEL process instances manually?

Please follow the steps below to purge BPEL instances.
1. Make a back up of your dehydration store.
2. Create the script purge_instances.sql


CREATE OR REPLACE PROCEDURE purge_instances (p_older_than IN TIMESTAMP)
AS
CURSOR c_cube_instance (p_date TIMESTAMP)
IS
SELECT cikey
FROM cube_instance
WHERE state >= 5 AND modify_date < p_date;

CURSOR c_invoke_message (p_date TIMESTAMP)
IS
SELECT message_guid
FROM invoke_message
WHERE state > 1 AND receive_date < p_date;

CURSOR c_dlv_message (p_date TIMESTAMP)
IS
SELECT message_guid
FROM dlv_message
WHERE state > 1 AND receive_date < p_date;
BEGIN
-- Delete all closed instances older than specified date
--
FOR r_cube_instance IN c_cube_instance (p_older_than)
LOOP
collaxa.delete_ci (r_cube_instance.cikey);
END LOOP;

-- Purge all handled invoke_messages older than specified date
--
FOR r_invoke_message IN c_invoke_message (p_older_than)
LOOP
DELETE FROM invoke_message_bin
WHERE message_guid = r_invoke_message.message_guid;

DELETE FROM invoke_message
WHERE message_guid = r_invoke_message.message_guid;
END LOOP;

-- Purge all handled callback messages older than specified date
--
FOR r_dlv_message IN c_dlv_message (p_older_than)
LOOP
DELETE FROM dlv_message_bin
WHERE message_guid = r_dlv_message.message_guid;

DELETE FROM dlv_message
WHERE message_guid = r_dlv_message.message_guid;
END LOOP;
END purge_instances;
/

3. Connect to SQLPlus as user orabpel and run the script
For Example:

Declare
P_OLDER_THAN Timestamp;
Begin
P_OLDER_THAN := '01/SEP/09 09:05:00 PM';

PURGE_INSTANCES(P_OLDER_THAN => P_OLDER_THAN);
End;

Read more...

Invoking ESB Service From BPEL Fails With Error "exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException"-Metalink ID 427452.1

Symptoms
When attempting to invoke an ESB Service from BPEL. BPEL Process fails at the step of invoking ESB service.

exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException:
java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed:
Connection refused: connect


Steps to reproduce
The issue can be reproduced at will with the following steps:
1. Go the URL: http://www.oracle.com/technology/products/integration/esb/index.html
2. Download ESB Example codes
3. Follow Lesson: BPEL ESB Loan Router
4. It works for SOA Basic install, but failed for advanced install

Cause
Virtualhost and port are not setup correctly for the ESB system where services are registered. This can be verified by examining the ESB service wsdl , as shown below

1. go to ESB Console -> Click ESB Service -> Definition
2. Open the Concrete WSDL URL, then verify the SOAP location and make sure it is valid.
3. If it is not setup correctly, you will get "HTTP transport error: javax.xml.soap.SOAPException"

Solution
Option I
1. Click the ESB system then configure Virtual host and Port number,
Set Virtual host to ESB Runtime Server's hostname
Set Port to ESB Runtime Server's http listening port
2. Apply the change

Option II
Use ESB bindings to invoke ESB services.
1. Login to ESB console, and click the Routing Service which BPEL is attempting to invoke.
2. Go to "Definition" tab, and uncheck "Can be invoked from an external service"
3. Click apply.
4. Go to BPEL Console and clear the WSDL Cache.
5. Restart SOA suite

Read more...

BPEL / Oracle XE: ORA-12516, TNS:listener could not find available handler with matching protocol stack(Metalink ID 431422.1)

Symptoms
You are using Oracle XE database for the orabpel schema, but BPEL fails frequently with the following error:
java.sql.SQLException: Listener refused the connection with the following error:
ORA-12516, TNS:listener could not find available handler with matching proto stack

Cause
The Oracle XE Database is configured by default to run only 20 or 40 PROCESSES; the maximum load for dedicated connections is determined by the PROCESSES parameter. When the listener believes the current number of connections has reached maximum load, it may set the state of the service handler for an instance to "blocked" and begin refusing incoming client connections with the error:

TNS-12516 TNS:listener could not find instance with matching protocol stack

Solution
To implement the solution, please execute the following steps to increase the number processes and sessions:

1) Connect to the XE database using the sys or system user:
sqlplus system/
2) To confirm the PROCESSES and SESSIONS values, run the following script:
sql> col name format A30
sql> col value format A30
sql> select name, value from v$parameter where name in ('processes','sessions');
3) SQL> alter system set processes=300 scope=spfile;
4) SQL> alter system set sessions=300 scope=spfile;
5) Bounce the database to reflect the changes
6) To confirm new values run the script (2).

Read more...

How to avoid BPEL errors due to adapters response time

If BPEL adapter response is slow then you may notice follwing error in the container logfile from ORACLE_HOME\opmn\logs\.

ORABPEL-05002
ORABPEL-02182
JTA transaction is not present the transaction is not in active state
Message handle error


Cause:
The adapter response time is greater than the predefined waiting time for a BPEL instance, therefore the BPEL instance does not get dehydrated in due time and fails by throwing above mentioned errors.

Solution:
Option I
Explicitely dehydrate your BPEL instance before invoking the adapter.
This can be done by inserting a Java_embedded activity before the Invoke, with this tiny java code: checkpoint();. This will dehydrate the BPEL instance after its initiation without waiting it to complete And you will see it in the BPEL Console in pending status(waiting for the adapter response).

Option II
Increase the transaction timeout values in order to make the BPEL instance to wait more time until a response returns from the adapter.

Step I: Go to Oracle_Home\j2ee\\config\transaction-manager.xml and set transaction-timeout for example to 7200 or more (default is 30).

Step II: Go to Oracle_Home\j2ee\\application-deployments\orabpel\ejb_ob_engine\orion-ejb-jar.xmla and set all transaction-timeout to 3600 or more (but less than value set in step I)

Step III: Go to Oracle_Home\bpel\domains\\config\domain.xml and set syncMaxWaitTime to 240 or more (but less than above 3600, step II, current default is 45)

Step IV (Optional): Add following properties to the partnerlink in your BPEL project, in order to make the adapter retriable:

retryInterval --30
retryMaxCount -- 20

Step V: Redeploy the BPEL project

Step VI: Restart SOA server & verify.

Read more...

  © Blogger templates Newspaper by Ourblogtemplates.com 2008

Back to TOP