Wednesday, December 30, 2009

Troubleshooting ORABPEL-05215 errors

The ORABPEL-05215 is annoying to troubleshoot. Advice online is pretty generic, and when I ran into this, I decided to once and for all get to the bottom of it.


My Scenario




1. I used ANT to compile the BPEL process.

ant --noconfig -buildfile build.xml compile
Compilation successful. The JAR file was successfully created in the ~/output directory.

HelloWorld/output/bpel_HelloWorld_1.0.jar

2. I used ANT to deploy the BPEL process.

ant --noconfig -buildfile build.xml deployProcess
Deployment failed. The output was as follows:

Buildfile: build.xml



deployProcess:

[echo]

[echo] --------------------------------------------------------------

[echo] | Deploying bpel process HelloWorld on sawftdev, port 7777

[echo] --------------------------------------------------------------

[echo]

[deployProcess] Deploying process /u01/deploy/code/SVN/HelloWorld/output/bpel_HelloWorld_1.0.jar



BUILD FAILED
/u01/deploy/code/SVN/HelloWorld/build.xml:124: A problem occured while connecting to server "sawftdev" using port "7777": bpel_HelloWorld_1.0.jar failed to deploy. Exception message is: ORABPEL-05215

Error while loading process.

The process domain encountered the following errors while loading the process "HelloWorld" (revision "1.0"): Failed to compile classes.

Failed to compile the generated BPEL classes for "HelloWorld".

.

If you have installed a patch to the server, please check that the bpelcClasspath domain property includes the patch classes.
Not enough information is provided unfortunately.



Deploying the JAR file manually via the BPEL Console produced the same result:

* bpel_AccSusResPortalProvABCSImpl_1.0.jar failed to deploy.

Error while loading process. The process domain encountered the following errors while loading the process "HelloWorld" (revision "1.0"): Failed to compile classes. Failed to compile the generated BPEL classes for "HelloWorld". . If you have installed a patch to the server, please check that the bpelcClasspath domain property includes the patch classes.
3. I restarted the OC4J_SOA container. No luck. I changed some of my JVM memory settings. No luck.



The Discovery




1. My server already had output and error logs separated for the OC4J_SOA container.



opmn.xml had the following configuration for the log files for the OC4J_SOA container:

<data id="oc4j-options" value="-out /u01/app/oracle/product/10.1.3/soa_1/opmn/logs/soa_group_1~oc4j_soa~soa_group_1~1.out -err /u01/app/oracle/product/10.1.3/soa_1/opmn/logs/soa_group_1~oc4j_soa~soa_group_1~1.err">
So basically, output and errors are contained in separate logs.



2. The soa_group_1~oc4j_soa~soa_group_1~1_2009_12_30_16_04_34.out log file showed:


<2009-12-30> Error while invoking bean "domain manager": [com.collaxa.cube.engine.deployment.ProcessLoaderException: Error while loading process.

The process domain encountered the following errors while loading the process "HelloWorld" (revision "1.0"): Failed to compile classes.

Failed to compile the generated BPEL classes for "HelloWorld".

.

If you have installed a patch to the server, please check that the bpelcClasspath domain property includes the patch classes.

]

ORABPEL-05215



Error while loading process.

The process domain encountered the following errors while loading the process "HelloWorld" (revision "1.0"): Failed to compile classes.

Failed to compile the generated BPEL classes for "HelloWrld".

.

If you have installed a patch to the server, please check that the bpelcClasspath domain property includes the patch classes.
This is similar to the output I received during deployment.



3. But the soa_group_1~oc4j_soa~soa_group_1~1_2009_12_30_16_04_34.err showed something different:

09/12/30 16:06:13 /u01/app/oracle/product/10.1.3/soa_1/bpel/domains/default/tmp/.bpel_HelloWorld_1.0_fc0bd0106b3c9d6a8abf672e863c8d72.tmp/BPEL-INF/src/bpel/helloworld/Execute6.java:3: Package com.sawft.util not found in import.


09/12/30 16:06:13 import org.w3c.dom.Element;import java.util.Properties;import java.io.FileInputStream;import com.sawft.util.*;import com.sawft.*;


09/12/30 16:06:13 ^


09/12/30 16:06:13 1 errors
Now we're getting somewhere.



This BPEL process apparently has embedded Java code and was importing packages that where not included in the bpelcClasspath on the server.


The .bpel file contained import statements such as:
<bpelx:exec import="com.sawft.*"></bpelx:exec&gt
My Solution



1. I added the necessary JARs to the classpath in $ORACLE_HOME/bpel/domains/default/config/domain.xml
(the bpelcClasspath parameter).



What you should do



Leverage the OPMN logs when troubleshooting this issue. As a developer, you may need to reach out t the application administrator.

8 comments:

BradW said...

Question? What should the default classpath be set to?

Ahmed said...

I believe that 'bpelcClasspath' is defaulted to:

/u01/app/oracle/product/10.1.3/OracleAS_1/bpel/system/classes:/u01/app/oracle/product/10.1.3/OracleAS_1/bpel/lib/j2ee_1.3.01.jar:/u01/app/oracle/product/10.1.3/OracleAS_1/bpel/lib/xmlparserv2.jar

Anonymous said...

My bpelcClasspath is essentially the same as yours. I can deploy from jdev 10.1.3.4 but I get the error on jdev 10.1.3.5

C:\Oracle\10.1.3.1\OraBPEL_1\bpel/system/classes;C:\Oracle\10.1.3.1\OraBPEL_1\bpel/lib/j2ee_1.3.01.jar;C:\Oracle\10.1.3.1\OraBPEL_1\bpel/lib/xmlparserv2.jar

Ahmed said...

Check your OPMN logs on the server (under $ORACLE_HOME/opmn/logs) and see what error shows up there.

Angel said...

When I try to deploy with a JDev 10.1.3.5, I face the same problem with a .jpr developed in JDev 10.1.3.3.

I'll download JDev 10.1.3.3 and try again.

Keep you posted

Ahmed said...

Angel, please keep me posted. Good luck.

Anoop said...

When you get this error make sure your SOA suite version matches with your Jdev version
~Anoop Kuruvila

Anonymous said...

Hi Ahmed,

I felt this post very helpful for BPEL developers.
Even we have the same Business Requirement.

If you dont mind, Could you please provide me the step by step process how to include.

the necessary JARs to the classpath in $ORACLE_HOME/bpel/domains/default/config/domain.xml (the bpelcClasspath parameter).

Steps I followed while developing the process:

1)Asychoronous BPEL Process.
2)Included the jar under the librares in project properties.
3) Added the java embedding activity in the bpel process. Accessed the functions of the java class, which is present in the jar.
4)When I'm deploying through jdeveloper, I'm not getting any errors and working fine.\
5) but when I'm deploying through antscripts,
It is throwing the following errors.

"If you have installed a patch to the server, please check that the bpelcClasspath domain property includes the patch classes."