Picture 1: Simple check box config for send, transformation and receiver determination steps For individual process steps, this behavior is available for the send, transformation and receiver determination step. However, as you can see in picture 2, you can also configure this for an entire block and define the start of end of the block as the beginning of a new transaction.
Picture 2: Configuration of a block start and end If a process instance at run time fails within a block, you will be able to restart the process from the beginning of the block if you created a transaction at the beginning of the block. While you have to balance the use of longer running transactions with the need of memory, this new capability will improve ccBPM performance significantly.
Picture 3: Message transformations before and after the ccBPM process Building application logic - As my colleagues report, they have seen ccBPMs in the field where it was used for building rather complex application logic as an alternative to changing legacy backend systems. In one example, multiple synchronous lookups were made either back to the sending system or to the target system unnecessarily. Of course, the performance will suffer significantly! And either you scale your XI system accordingly or you have to move some of this logic back into the legacy systems. Synchronous user interface scenarios - A synchronous user interface expects quick response time for the benefit of the user. Such a scenario is not recommended for ccBPM, especially if you are performing a data update on the backend system. Another issue are connection time outs what could result in compromising the data integrity in your systems. An example is when a user creates a purchase order and the confirmation for creation fails to reach the user due to time-outs for example. As a result, he may create a second duplicate PO. Single message loops - Do not use loops and process single messages at a time. Instead, collect your messages first and combine into one large message with several business documents inside. Large messages - Do not use ccBPM for processing of large messages, especially in collect and split patterns. Start paying close attention to resource consumption when using messages above a size of 20 MB; remember this is highly dependent on your available hardware resources. - And while XSLT mappings should be avoided for large messages in general, this applies especially for ccBPM. Small changes can make the difference - The last example shows a real live ccBPM process improvement in picture 4. Even though this example is not interesting at first sight, the performance difference is significant. In the original implementation, two separate JCBC calls were made to retrieve a sales order document header and the line items. This data then was transformed to the iDoc format of the receiving application using a transformation. Then, using a loop step, one iDoc at a time was sent to the backend application. - This sub optimal design resulted in poor performance caused by following design flaws:
Picture 4: ccBPM scenario improved by 20x In the improved version below, both the JDBC call and the transformation were removed from the ccBPM. The retrieval of the source messages is done via a synchronous call with two mappings in the integration engine of XI that generate the required format for the receiving system. Therefore, it is not necessary to add an additional transformation step in the ccBPM. Additionally, the iDoc adapter connecting to the target system is used to handle multiple iDocs inside one XI message. Therefore, it is not necessary to add a loop operation within the ccBPM either. In this particular implementation, the described changes resulted in a 20x performance improvement! Note: A detailed how-to-guide describing this example in more detail is currently in the editorial review process. The title is How To Implement a High Volume Process Integration Scenario and this example is covered in section 4.2. You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 545 | |
| 337 | |
| 235 | |
| 233 | |
| 216 | |
| 212 | |
| 179 | |
| 163 | |
| 152 |