On the basis of my experience till date I am sharing some of the best practices, for improving performance of a BPEL process. I am not sure how much will these impact the performance but I think the system performance will get improved at least by some milliseconds.
Below are some of the key points which I have explored during my day today tasks.
Below are some of the key points which I have explored during my day today tasks.
- We all usually use databases for our configurations like we create a configuration databases and create some tables to store error logs, some name value mappings etc. to avoid hard coding in our code. I have also used the same during my projects, but If we use DVM's (for those records for which there are very less chances to be changed) inspite of database will improve the performance of the BPEL Process, as there is reduction in Partner link call. The Function which we usually use for DVM's is orcl:lookup-dvm().
- Cleanup/Purging of instances from BPEL console and dehydration database at regular Interval of time like we can have the backup of the schema and use Oracle API's to clean up instances in dehydration database.
- There are some XSLT functions, which improve the processing of BPEL processes. Below are some of those.
- Use of "for-each-group" in place of for-each
- Very less use of "if" conditions and use of conditional statements under square brackets "[]"
- One of the important point I have noticed is removal of comments provided in starting of XSLT but then the design view of xsl is not visible.
- For the situations where one for-each condition is been used for multiple mappings, inspite of having similar for-each statement multiple times, use of multiple mapping statements in a single for-each. Like
<xsl:for-each test="">
<A>
<xsl:value-of select="">
</A>
<B>
<xsl:value-of select="">
</B>
</xsl:for-each>
- Use of Assign activities, inspite of Transformation (wherever possible) will also improve the performances. If we use ora:processXSL() function in assign for transformation rather than using transformation activity will improve the performance.
There are many more best practices which will improve the performance, which I will include those later on....
Hi Ankit,
ReplyDeleteWhere would we specify connection URL for orcl:lookup-dvm().
Thanks
Neeraj
Hi Neeraj,
ReplyDeleteDVM's are created in ESB and we can use them by providing the name of the DVM. I dont think any connection URL is required for that.
Regards,
Ankit
hi,
ReplyDeletehow to increase performance increase in bpel(BD adapter/file adapter)
with regards
srinu
Hi Srinu,
ReplyDeleteFor DB adapter we can increase the performance by using "Execute SQL Option" using a tuned custom sql query rather than using DB adapter inbuilt functionality of select/insert/update/merge operations.
Hope this will be helpful to you and regarding file adapter i will surely get back to you.
Greetings,
Ankit Chhabra