Troubleshooting BPS
This topic provides detailed guidance, helpful hints and solutions for troubleshooting WSO2 Business Process Server (BPS) related issues. It includes solutions for critical issues and recommendations for handling them.
Item | Log | Possible cause(s)/recommendation(s) |
Debugging a BPEL process | Debug a BPEL process using the event table provided for each BPEL instance or the message tracer. | Either of the following can be used to debug a BPEL process:
|
Enable message tracing
| Get a message trace for a particular BPEL invocation. |
|
Cannot find DeploymentUnitDAO instance for package: Recover from inconsistencies of BPEL database against the registry | ERROR - TenantProcessStoreImpl - Cannot find DeploymentUnitDAO instance for package CustomerInfo-2. ERROR - BPELDeployer - Error deploying BPEL package: org.wso2.carbon.bpel.ode.integration.store. at at org.wso2.carbon.bpel.ode.integration.store.TenantProcessStoreImpl. at org.wso2.carbon.bpel.ode.integration.store.TenantProcessStoreImpl. at org.wso2.carbon.bpel.BPELDeployer. at org.apache.axis2.deployment.repository.util.DeploymentFileData. at org.apache.axis2.deployment.DeploymentEngine. | To recover, follow the steps mentioned below.
|
Deployment Descriptor | The deploy.xml file acts as the deployment descriptor for a BPEL package. | It maps configuration information (partner links, WSDL service and port) for processes in a BPEL archive. |
Does not contain a deploy.xml file
| TenantProcessStoreImpl - Directory BPS_HOME/repository/bpel/-1234/FunctionProcess-4 does not contain a deploy.xml file! | The following issues are common: 1. Missing deploy.xml file in the process archive (BPEL zip package). OR 2. Invalid package structure. The BPEL archive structure should be similar to the structure shown below.
|
BPEL Compilation Failure: Invalid QName value | BpelC - info: [CompilingProcess] Compiling BPEL process. |
|
Cannot find Process definition for type | BPELDeployer - Error deploying BPEL package: TestCounter.zip org.wso2.carbon.bpel.ode.integration.store.BPELDeploymentException: Aborting deployment. Cannot find Process definition for type {http://www.apache.org/ode/schemas/dd/2007/03}test_name. |
|
BPEL Deployment Failure: Invalid boolean value | org.apache.xmlbeans.impl.values.XmlValueOutOfRangeException: Invalid boolean value | The Check for |
Cannot find WSDL definition for provide service | org.apache.ode.bpel.iapi.ContextException: Cannot find WSDL definition for provide service {http://wso2.org/bps/samples/CustomerInfo}CustomerInfoService1. Required resources not found in the BPEL package CustomerInfo-12. |
|
Cannot find provide port in the given service | org.apache.ode.bpel.iapi.ContextException: Cannot find provide port in the given service {http://wso2.org/bps/samples/CustomerInfo}CustomerInfoService. Error in deploy.xml | The port name given in the deploy.xml file and the WSDL should match. E.g.: |
Reference to unknown partner link | org.apache.ode.bpel.iapi.BpelEngineException: Error in deployment descriptor for process {http://wso2.org/bps/samples/CustomerInfo}CustomerInfo-12; reference to unknown partner link CustomerInfoPL1 | The partner link name(s) given in the deploy.xml file and the BPEL configuration (.bpel) file should match. E.g.: |
BPEL Process Configurations | It represents activities carried out within a business process written using WS-BPEL. There are two types of Activities as follows:
|
|
Attempt to reference undeclared variable | BpelC - null:60: error: [UndeclaredVariable] Attempt to reference undeclared variable "tmpVar" | Declare variables by specifying a name and one of the three type attributes such as type, messageType or element. E.g.: <variable name="tmpVar1" type="xsd:string"/> <variable name="tmpVar2" messageType="myNS:myWSDLMessageDataType" /> <variable name="tmpVar3" element="myNS:myXMLElement" />
|
bpel:Compilation Failure | cvc-complex-type.2.4.d: Invalid content was found starting with element 'from'. No child element is expected at this point cvc-complex-type.2.4.a: Invalid content was found starting with element 'from'. One of '{"http://docs.oasis-open.org/wsbpel/2.0/process/executable":documentation, WC[##other:"http://docs.oasis-open.org/wsbpel/2.0/process/executable"], "http://docs.oasis-open.org/wsbpel/2.0/process/executable":targets, | The Assign activity is faulty. E.g.: The error line starts from 'from'. Error is due to a missing child element The corrected assign operation is shown below. E.g.: <assign name="assign1"> <copy> <from variable="myVar" part="TestPart"/> <to variable="tmpVar"/> </copy> </assign> The assign activity contains one or more copy operations. Each copy operation has a from–spec and a to–spec, indicating the source and target elements where data gets copied from and to, respectively. |
bpel:selectionFailure Fault: 01
| INFO - ASSIGN - Assignment Fault: {http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure, |
Namespace Definition: xmlns:abc="http://www.abc.com/xyz/test_Session_Service/" use namespace qualified xpath expression as "$createSessionRequest.parameters/abc:session/abc:forCustomerId" OR "$createSessionRequest.parameters/abc:session/*[local-name() = 'forCustomerId']". (use local-name = 'someString' to avoid namespaces verification) |
bpel:selectionFailure Fault: 02 | selectionFailure: No results for expression: {OXPath10Expression TestNumber} | Specify the namespace of the TestNumber element. E.g.: xmlns:sample="http://www.sample.org/namespace" <bpel:to part="parameters" variable="AuthRequest"> <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"> <![CDATA[sample:TestNumber]]> </bpel:query> </bpel:to> |
Couldn't validate properly expression doXslTransform | XPath20ExpressionCompilerBPEL20 - Couldn't validate properly expression doXslTransform("HelloXslWorld.xsl", $myVar.TestPart, 'middle', $otherVar) | Add the namespace prefix to the assign activity. Namespace Definition: xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable" Assign operation: <assign validate="no" name="XSLT"> <copy> <from> <![CDATA[bpws:doXslTransform ("transform.xslt", $requestLoanRequest.request)]]> </from> <to> <![CDATA [$riskAssessmentRequest.request]]> </to> </copy> </assign>
|
UndeclaredPropertyAlias:propertyAlias with correlation sets | [UndeclaredPropertyAlias] The property "{http://tempuri.org/services/loanApproval}correlatorProp" does not have an alias for message type "OMessageVarType#41 | If there are two places where correlation is used, there should be at least two "propertyAlias" definitions, unless you use the same wsdl message in both places. I.e.:
You need to have an element per message to map the correlation property. The type of the element of the message should be similar to the type of the correlation property. A sample configuration for correlation initialization is shown below: <invoke> <correlations> <correlation set="correlator" initiate="yes" pattern="response"> </correlation> </correlations> </invoke> |
Service already used by another process | ERROR - TenantProcessStoreImpl - Service: {http://wso2.org/bps/samples/LoanProcess}LoanProcessService already used by another process. Try again with a different service name | Either of the following can be the reason.
Solution is to use different service names. |
Engage WS-Addressing | WS-Addressing module is engaged by default. It is mandatory to use WS-Addressing when invoking services. | Define the ‘ <soap:operation soapAction="urn:getCustomerSSN" /> |
Datasources Configurations | The datasources.properties file holds data which is required to create a datasource. | A sample datasources configuration is shown below. synapse.datasources=bpsds synapse.datasources.icFactory=com.sun.jndi.rmi.registry.RegistryContextFactory ## If following property is present , then assumes that there is an external JNDI provider and will not start a RMI registry #synapse.datasources.providerUrl=rmi://localhost:2199 synapse.datasources.providerPort=2199 synapse.datasources.bpsds.registry=JNDI synapse.datasources.bpsds.type=BasicDataSource synapse.datasources.bpsds.driverClassName=org.h2.Driver synapse.datasources.bpsds.url=jdbc:h2:file:repository/database/jpadb;MVCC=TRUE synapse.datasources.bpsds.username=wso2carbon synapse.datasources.bpsds.password=wso2carbon synapse.datasources.bpsds.dsName=bpsds synapse.datasources.bpsds.maxActive=100 synapse.datasources.bpsds.maxIdle=20 synapse.datasources.bpsds.maxWait=10000 |
Empty password for datasource | ERROR - BPELServerImpl - Error creating BPELDatabaseCreator [Known Issue] | The datasource password value cannot be empty.
|
Cannot find DeploymentUnitDAO instance for package | WARN - ProcessStoreImpl - Cannot find deployment unit information on DB for deployment unit LoanService-4 | You might have initially started the server with invalid datasource configurations and later tried to restart the server by modifying the configurations. In that case, the server will throw a BPEL package deployment error. To recover, follow the steps mentioned below.
|
Wrong user name or password in registry dbConfig:Failed to create database tables for registry resource store | FATAL - DatabaseCreator - Failed to create database tables for registry resource store. Cannot create PoolableConnectionFactory (Wrong user name or password [8004-140]) |
|
Cannot create JDBC driver of class | Cannot create JDBC driver of class 'com.mysql.jdbc.Driver' for connect URL 'mysql://localhost:3306/bps' | To recover, follow the steps mentioned below:
|
Failed to resolved external DataSource at.. | ERROR - Database - Failed to resolved external DataSource at "bpsds". |
|