Oracle® BPEL Process Manager Developer's Guide
10g Release 2 (10.1.2) B14448-02 |
|
Previous |
Next |
This appendix describes Oracle BPEL Process Manager troubleshooting methods.
This appendix contains the following topics:
The following sections describe possible issues and solutions.
If you have complex processes with validation errors (for example, assign activities with multiple copy rules that are embedded inside several scopes), the recommended method for accessing and correcting these errors is as follows:
Right-click the error and select Go to Source to access the source code that errored.
Review the source code to identify the error.
Click Diagram View and go to the graphical view of the error.
Make corrections in the graphical view.
When a process has long-standing activity and the server time-out value is set to less than the time that has elapsed since the previous dehydration point has been reached, you can see exception messages similar to the following in the Oracle BPEL Server window.
Message handle error. An exception occurred while attempting to process the message "com.collaxa.cube.engine.dispatch.message.invoke.InvokeIns tanceMessage"; the exception is: Transaction was rolled back: timed out; nested exception is: java.rmi.RemoteException: No Exception - originate from:java.lang.Exception: No Exception - originate from:; nested exception is: java.lang.Exception: No Exception - originate from:
As a workaround, increase the transaction-config timeout
value in the Oracle_Home
\integration\orabpel\system\appserver\oc4j\j2ee\home\server.xml
file.
<transaction-config timeout="30000"/>
Oracle Application Server Integration Installation Guide for a detailed description on setting this parameter.
If you create an empty project (which is common with adapter endpoint projects) and import an XSD file, you cannot deploy the project without editing the project_name
.bpel
file.
As a workaround, perform the following steps:
Create an asynchronous project.
Leave the client partner link alone (it enables you to import XSDs because it refers to the process_name
.wsdl
file that has the necessary imports).
Edit the receiveInput receive activity of the client partner link and have it point to the new adapter inbound endpoint in the Partner Link field.
The following sections describe possible issues and solutions.
Problem
Due to a bug, you can experience poor JMS performance when creating or destroying connections. This can cause a slowdown in the execution of BPEL processes that have JMS data publishers associated with them.
Solution
Use the rollup patch included on the software CD. See the readme file.
Problem
The custom data publisher is not working.
Solution
Make sure that the class
file has been generated and that it is in the system classpath. See the obsetenv.bat
file for this definition, or the BPEL suitcase.
Ensure that you have implemented the data publisher interface.
If you compile your data publisher into the system classpath, then you must restart Oracle BPEL Process Manager. You may have made changes to the data publisher without restarting Oracle BPEL Process Manager.
It is possible that an exception is being thrown in your data publisher. Check the log file for any exceptions, or temporarily add a try
/catch
block around all your code. In the catch
, print the stack trace. These messages display on the text window that opens when you start Oracle BPEL Process Manager.
Problem
The data publisher works fine, but the business process runs very slowly.
Solution
There are a couple of options.
First, you can attempt to profile your code. The do-user-sensor-callback statistic in Oracle BPEL Console records how much time is spent publishing sensor data.
Second, you can switch from a custom data publisher to a JMS Publisher. Then, you can deploy a message-driven bean to the application server to publish data whenever data is sent to that particular JMS destination. This decouples data publishing from process execution.
Problem
To improve performance, I want to cache data in my data publisher. Is this supported?
Solution
This is not supported. Data publishers must be stateless.
Problem
My data publisher works fine most of the time, but sometimes I get a weird error.
It is possible that your data publisher is experiencing concurrency issues.
Solution
Data publishers must be coded in a thread-safe manner. This means that the Java code must be thread safe as well as the utilization of resources, such as databases or files.
Problem
The data I extract is complex XML. It is difficult to work with. Can I do anything to make it simpler?
Solution
While the W3C DOM model is somewhat cumbersome, there are third-party models (such as DOM4J) that make things easier. It is easy to create a DOM4J object from its corresponding W3C DOM object. Another option is to generate JAX-B objects or schema objects for the data you extract. Then you can use the generated Java classes to manipulate data more easily.
The following sections describe possible issues and solutions.
You cannot log in to the Worklist Application if your information is not available in the identity service. Check with an administrator to verify that your user information is present in the identity system (a file based on LDAP, such as Oracle Internet Directory).
The Worklist Application gets a user's language (locale) preferences from the identity service and displays the information in that locale. If information is displayed in the wrong language, make sure that the user's preference is set to a supported locale. See "Accessing the Worklist Application in Local Languages" for more information.
The Worklist Application gets a user's timezone preference from the identity service and displays the information in this timezone. Also, the date and time is formatted to suit the language (locale) preference. Make sure that these preferences are correctly specified in the identity service. See "Identity Service" for more information.
You may see an error message that says something like:
"User jcooper is not permitted to perform the action Update on task Loan application for John with id...."
Check if the user has permission to perform the action or if the action can be performed on the task in its current state. You can also check for the following:
The task expired between the time the user loaded the page and actually performed the action.
The task was updated by another user (such as a manager, owner, or admin) between the time the user loaded the page and actually performed the action.
On the Worklist Application home page, under the Title column, if you do not see a task listed that you expected to see, then it may have been modified by another user or by the system.
Another user, such as a manager or group member, may have modified the task by performing any of the following actions:
Complete
Suspend
Request More Information
Also, the filer of the task may have withdrawn (cancelled) the task.
The system can modify a task in the following situations:
If the process instance associated with a task was purged or archived, the task is also purged or archived and may not be accessible.
If a task expires
If a task encounters a system error such as an incorrect assignee
In most of the preceding cases, you can view the task by changing the filters to a broader category (such as Any or All).