Performance tuning in objects involving Integration process (BPM)

Hi,
We are facing a performance problem in one of our objects having integration process. The messages are getting processed sequentially instead of parallel processing within the integration process. As a result, the messages are getting queued up in the queue waiting for processing. Thus by the time all messages get processed, the time taken would have been alarmingly high. There is no correlation involved in the int process. My questions are
1. Is there any performance related best practices/checklist/config steps available for BPM related implementation. If so, please furnish/provide the links if any.
2. If it is not related to BPM , but related to tuning up of the queues, please provide the guidelines for queue tune up.
3. How to ensure that the messages are processed in-parallel within BPM ?
Regards
Ganesh

Hi,
Am not sure whether this would help you.  By any chance did u use For Each instead of Par For Each.
Cos, when u use For each in an container step, all messages would be processed sequentially.
Do let me know if it helps you!
Regards,
B.Anandh

Similar Messages

  • Not able to integration process(BPM) objects in ID

    hi,
    I have created one integration process(BPM) in IR part but I am not able to see it in my ID part.
    when I tried to import it thru IR its not showing me in list.
    Please let me know.
    Thanks,
    Bhupesh

    Check:
    1) If BPM is activated in IR
    2) If the Cache Status Overview of IR is showing any error entry....normally even when you activate the objects you may not view them in ID when there is an error in the cache update.
    Regards,
    Abhishek.

  • Alerts in Integration Process (BPM)?

    We are just beginning to use Alerts in PI 7.1.  If an error occurs in an integration process (BPM), will it trigger an alert if the Alert Rule is defined wide open?  Or do you actually have to trigger the alert in the integration process with an additionl step to trigger the alert?

    The Alert has to be defined in ALRTCATDEF.....no matter where the alert comes from (IE, AE, BPE)
    If an error occurs in BPM and you have not mainatined proper exception handling for it then....and if the processing shows in red in SXMB_MONI then the alert will be raised as IE alert
    However if you have implemented exception handling for a step and then in that exception branch you raise an alert then your BPM will raise alert....the subject of your alert email will be Process <ProcessID>
    BPM related alert can be either with static text (using Alert Container Variables) or Dynamic text (using some value from payload)
    Please note that to raise an alert from BPM it is not compulsory to only raise it as a Dynamic Alert......static alert can also be raised.
    The documents which are available for lower releases are still applicable in alert creation.....so existing blogs/ docs should work
    Regards,
    Abhishek.

  • Handling fault messages in an Integration Process (bpm)

    I have a bpm in PI 7.11 which performs a synch call to an external webservice. In addition to the request/response, that webservice can also generate two faults: ObjectNotFoundFault and generalfault.  I am having trouble handling these faults - when a fault occurs my handler is not being invoked and thus the bpm process stops/errors. When I look at the underlying process (via txn swi1), I see the exact error text:
    "No exception defined for fault message ObjectNotFoundFault http://www.companyb.com/services/olsa_v1_0/"
    From what I understand within the bpm synch call step to the webservice I need to do the following to handle the exception/fault:
    - put the synch call (to the webservice) into a block
    - add an exception branch to that block named let's say A & set the exception handler of that block to be A
    - in the exception setting of that synch step, select A
    In my case, I don't care about the fault details other than to ensure it does not stop the whole Integration Process, so in my exception branch I don't do anything. I did try adding a control step within it too (as per SAP Press text book).
    Is there anything else I need to do here?  I am not mapping the returned fault - does the fault need to be mapped (not sure how I would do this given that the synch step uses an abstract interface and therefore to my knowledge no fault mapping can be done)? 
    There are 2 Notes that describe my issue exactly:
    https://service.sap.com/sap/support/notes/1484903
    https://service.sap.com/sap/support/notes/1158699 <-- this one refers more to me, but we already have in 7.11
    Can anyone let me know exactly the steps I would perform to handle these faults - does the exception name / handler A above need to be named the actual exception / fault ObjectNotFoundFault?
    Any help appreciated.
    Thanks,
    Keith)?
    Any help appreciated.
    Thanks,
    Keith

    Thanks - my scenario I guess is #2 of that blog. But is your take that even if I don't care what is in the fault message, i.e. I don't care about the contents of it but rather I just want to continue on from it, that I still need to perform this java coding?  It's not clear to me from what he says - it seems to me he does the java coding to actually capture the contents of the message.  I am in fact using the soap axis adapter too, as he is. The screen shot showing the exception branch is basically what I have.
    Regards,
    Keith

  • About Container Category in Integration Process (BPM)

    Hi Friends
    Can any one  explain me abut Process container variable ReceiverList which is defined as a type "Receiver"
    and How to use in Integration Process With Examples
    Message was edited by:
            Viswanadh Vadde

    Hi Vishwanadh,
    The Receiver type container variable is used to determine the receiver in the send step.
    The Simple type container variable are xsd data type variable which may be xsd:string / xsd:integer / xsd:date / xsd:time. These variables are used as process control elements such as counters in the IP.
    Regards
    Santhosh
    Remember to set the thread to solved when you have received a solution

  • Integration process in File to BPM Scenario

    hi,
         gud morning. i got a problem while designing a BPM. in designing the integration process in IR, i am not able to get both the abstract interfaces to select from,  while defining the container. plz post a solution for this. thank u.

    Hi,
    In this blog, I have used Business <b>Service</b> created in the integration directory.. This is an abstract . So I need to specify , the Sender and Receiver Interfaces explicitly in the business service. and it doesnot have any entry in the SLD.
    But if you create the Business System in the SLD and if you import that into the Integration Directory-->Assign this into your configurations scenario, then this step is not required.
    Regd. Importing Integration Process- BPM is kind of Abstract Service.. i.e BPM is acting as a Receiver Service and Sender service both..
    i,e Source to BPM ( here BPM is a Receiver)
        BPM to Target( here BPM is a Sender Service)
    Hope this clarifies..
    Regards,
    Moorthy

  • Difference between Workflow and Integration Process

    Hi Experts,
    Can someone please explain, what is the difference between the workflow and integration process(BPM).
    Thanks
    Sree

    Hi Sree,
    Integration Processes are :-
    --Message based
    --Interface focused
    --Cross component
    --Have no support for human interaction
    --Enabled with SAP XI
    Workflows are:-
    --Object based
    --Human focused
    --Intra-application
    --Have no support for mapping, routing or message transformations
    --Enabled with the SAP Web AS
    However, most automated business processes involve a combination of the two.
    I hope this clear your doubt.
    Regards.
    Praveen

  • Line Split Interface to feed Integration Process - Performance Issues

    Hi All
    We have a scenario whereby we receive an XML message from a 3rd Party through an exposed SOAP Adapter service. The XML Message has multiple lines that need to be split up and processed as individual messages. We need to create a Line Splitting interface in order to achieve this. The Line Split interface would feed different Integration Processes depending on a specific payload value. The Integration Processes would then perform certain specific logic & Rules as well as transformations to specific message formats (e.g. idoc, xml, flatfile). The Line Split interface also maps from an xml structure that caters for multiple lines, to a flatened xml structure which only contains one line. The uper range of a message we may need to split into individual messages is 30 000 lines.
    We first used an Interface Map and used SplitByValue to achieve this, however we ran into the constraint that we could not feed the output split messages to an Integration Process - you can only feed it to Adapters that reside on the J2EE engine.
    We then decided to build a seprate Integration Process thats sole purpose was to split the message and route the indvidual messages to other integration processes to perform the logic, business rules and specific transformations. However, the performance of the ccBPM line splitting Integration Process was nowhere near the Interface Map.
    e.g. Interface Map Split 1000 Lines = 13 seconds - BPM Integration Process 1000Lines = 100 seconds.
    Does anybody have any suggestions on how we can perform the line split outside of BPM, or how we can improve ther performance of the line splitting within BPM?
    Thanks for your assistance.
    Edited by: CostaC on Aug 24, 2009 11:53 AM

    hi,
    >>>We first used an Interface Map and used SplitByValue to achieve this, however we ran into the constraint that we could not feed the output split messages to an Integration Process - you can only feed it to Adapters that reside on the J2EE engine.
    the easiest (not the only) way :
    do the split as you did here and post the results in different folders (file adapter)
    then set up scenarios that will get the files from those folders
    (many additional objects but will be much much faster and better then a BPM)
    you could also split the messages in the adapter module but this is more advanced
    and officially SAP does not recommend it - even though it's possible
    Regards,
    Michal Krawczyk

  • BPM 11g Performance Tuning

    HI Experts,
    Can some one help me to tune a oracle bpm engine 11g (11.1.1.5)
    Any tuning recommendation for a mid-size engine
    (if some one really implemented which gives some significant performance improvement)
    Tried almost everything but engine is really slow with 5 concurrent user.
    Please don’t give url to middleware performance tuning guide. 
    Configuration:
    Hardware
    Sparc-t3-2
    1.65 GHz
    2 Core virtual
    Memory 16 GB
    Setting – Total 2 containers. 1 manage server each, 1 Admin.
    Heap space 4 GB, Perm Space – 1gb
    Client :
    50 Concurrent User.
    10 BPMN Process (each process got around 10-12 activity), 8 BPEL Process,
    1000-1500 Live Instances as of now. Need to cater more in future. (around 50,000))

    Oracle Support Document 1456488.1 (Slow startup of WebLogic Servers on SPARC Series: T1000, T2000, T5xx0 and T3-* ) can be found at:
    https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?id=1456488.1

  • Integration Process in BPM's

    Hi 
      I'm new to BPM's ... my scenario is I'm doing Multiple files to Single file scenario.. i have two sender files.. and  one receiver file... for this i need to use BPM for merging the message.. 
    I created  all the objects as specified by the blogs..(Message Interfaces ,Message mappings )
    but in integration process i stucked... can any one give me the  steps.. whta i need to do .. I mena.. what are the options can i select...
    <b>Start -> Receiver- Sender1 -
    Sender2 -
    Stop</b>
    like this.. can you plz give me the  flow.. based on that i will  create...
    thanks
    babu

    Hi,
    Check below links for BPM concept.
    /people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
    /people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers
    /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
    /people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
    /people/michal.krawczyk2/blog/2005/09/04/xi-do-you-realy-enjoy-clicking-and-waiting-while-tracing-bpm-steps
    /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/daea5871-0701-0010-12aa-c3a0c6d54e02
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/e8515171-0701-0010-be98-e37bec4706cc
    Regards,
    Phani
    Reward points if Helpful

  • Reg: Process Chain, query performance tuning steps

    Hi All,
    I come across a question like,  There is a process chain of 20 processes.out of which 5 processes are completed at the 6th step error occured and it cannot be rectified. I should start the chain again from the 7th step.If i go to a prticular step i can do that particular step, How can i start the entair chain again from step 7.i know that i need to use a function module but i dont know the name of FM. Please somebody help me out.
    Please let me know the steps involved in query performance tuning and aggregate tuning.
    Thanks & Regards
    Omkar.K

    Hi,
    Process Chain
    Method 1 (when it fails in a step/request)
    /people/siegfried.szameitat/blog/2006/02/26/restarting-processchains
    How is it possible to restart a process chain at a failed step/request?
    Sometimes, it doesn't help to just set a request to green status in order to run the process chain from that step on to the end.
    You need to set the failed request/step to green in the database as well as you need to raise the event that will force the process chain to run to the end from the next request/step on.
    Therefore you need to open the messages of a failed step by right clicking on it and selecting 'display messages'.
    In the opened popup click on the tab 'Chain'.
    In a parallel session goto transaction se16 for table rspcprocesslog and display the entries with the following selections:
    1. copy the variant from the popup to the variante of table rspcprocesslog
    2. copy the instance from the popup to the instance of table rspcprocesslog
    3. copy the start date from the popup to the batchdate of table rspcprocesslog
    Press F8 to display the entries of table rspcprocesslog.
    Now open another session and goto transaction se37. Enter RSPC_PROCESS_FINISH as the name of the function module and run the fm in test mode.
    Now copy the entries of table rspcprocesslog to the input parameters of the function module like described as follows:
    1. rspcprocesslog-log_id -> i_logid
    2. rspcprocesslog-type -> i_type
    3. rspcprocesslog-variante -> i_variant
    4. rspcprocesslog-instance -> i_instance
    5. enter 'G' for parameter i_state (sets the status to green).
    Now press F8 to run the fm.
    Now the actual process will be set to green and the following process in the chain will be started and the chain can run to the end.
    Of course you can also set the state of a specific step in the chain to any other possible value like 'R' = ended with errors, 'F' = finished, 'X' = cancelled ....
    Check out the value help on field rspcprocesslog-state in transaction se16 for the possible values.
    Query performance tuning
    General tips
    Using aggregates and compression.
    Using  less and complex cell definitions if possible.
    1. Avoid using too many nav. attr
    2. Avoid RKF and CKF
    3. Many chars in row.
    By using T-codes ST03 or ST03N
    Go to transaction ST03 > switch to expert mode > from left side menu > and there in system load history and distribution for a particual day > check query execution time.
    /people/andreas.vogel/blog/2007/04/08/statistical-records-part-4-how-to-read-st03n-datasets-from-db-in-nw2004
    /people/andreas.vogel/blog/2007/03/16/how-to-read-st03n-datasets-from-db
    Try table rsddstats to get the statistics
    Using cache memoery will decrease the loading time of the report.
    Run reporting agent at night and sending results to email.This will ensure use of OLAP cache. So later report execution will retrieve the result faster from the OLAP cache.
    Also try
    1.  Use different parameters in ST03 to see the two important parameters aggregation ratio and records transferred to F/E to DB selected.
    2. Use the program SAP_INFOCUBE_DESIGNS (Performance of BW infocubes) to see the aggregation ratio for the cube. If the cube does not appear in the list of this report, try to run RSRV checks on the cube and aggregates.
    Go to SE38 > Run the program SAP_INFOCUBE_DESIGNS
    It will shown dimension Vs Fact tables Size in percent.If you mean speed of queries on a cube as performance metric of cube,measure query runtime.
    3. --- sign is the valuation of the aggregate. You can say -3 is the valuation of the aggregate design and usage. ++ means that its compression is good and access is also more (in effect, performance is good). If you check its compression ratio, it must be good. -- means the compression ratio is not so good and access is also not so good (performance is not so good).The more is the positives...more is useful the aggregate and more it satisfies the number of queries. The greater the number of minus signs, the worse the evaluation of the aggregate. The larger the number of plus signs, the better the evaluation of the aggregate.
    if "-----" then it means it just an overhead. Aggregate can potentially be deleted and "+++++" means Aggregate is potentially very useful.
    Refer.
    http://help.sap.com/saphelp_nw70/helpdata/en/b8/23813b310c4a0ee10000000a114084/content.htm
    http://help.sap.com/saphelp_nw70/helpdata/en/60/f0fb411e255f24e10000000a1550b0/frameset.htm
    4. Run your query in RSRT and run the query in the debug mode. Select "Display Aggregates Found" and "Do not use cache" in the debug mode. This will tell you if it hit any aggregates while running. If it does not show any aggregates, you might want to redesign your aggregates for the query.
    Also your query performance can depend upon criteria and since you have given selection only on one infoprovider...just check if you are selecting huge amount of data in the report
    Check for the query read mode in RSRT.(whether its A,X or H)..advisable read mode is X.
    5. In BI 7 statistics need to be activated for ST03 and BI admin cockpit to work.
    By implementing BW Statistics Business Content - you need to install, feed data and through ready made reports which for analysis.
    http://help.sap.com/saphelp_nw70/helpdata/en/26/4bc0417951d117e10000000a155106/frameset.htm
    /people/vikash.agrawal/blog/2006/04/17/query-performance-150-is-aggregates-the-way-out-for-me
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/1955ba90-0201-0010-d3aa-8b2a4ef6bbb2
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/ce7fb368-0601-0010-64ba-fadc985a1f94
    http://help.sap.com/saphelp_nw04/helpdata/en/c1/0dbf65e04311d286d6006008b32e84/frameset.htm
    You can go to T-Code DB20 which gives you all the performance related information like
    Partitions
    Databases
    Schemas
    Buffer Pools
    Tablespaces etc
    use tool RSDDK_CHECK_AGGREGATE in se38 to check for the corrupt aggregates
    If aggregates contain incorrect data, you must regenerate them.
    Note 646402 - Programs for checking aggregates (as of BW 3.0B SP15)
    Thanks,
    JituK

  • Business Process Performance Tuning

    Hi Pals,
    I would like to request your help and inputs regarding tuning performance of Business process for my scenario.
    I have created a synchronous Process with 3 message mapping transformation steps. ( inbetween Sync Receive and Sync Send steps). So its pretty simple process.
    I am able to execute only 3500 processes per hour.
    The SAP Netweaver Server m/c configuration is 2 dual core processors with 12 GB RAM.
    Business process - Without buffering with multiple queues (content specific).
    IE Logging - No sync logging, logging level - 0 ( so logging turned off )
    I have tried out all the configurations mentioned in below weblogs, but with very less improvement in my case.
    Performance Tuning Checks in SAP Exchange Infrastructure(XI): Part-III
    Performance Tuning Checks in SAP Exchange Infrastructure(XI): Part-II
    Performance Tuning Checks in SAP Exchange Infrastructure
    I think something else is choking the execution, as the CPU or memory usage is not more than 10-20%.
    Please pour in your inputs.
    Thank you!
    Best Regards,
    Saravanan N

    Thank you very much Bhavesh!
    In my BPM, all the steps are set for "No New Transaction". So as to avoid any performance issue. But there is no  improvement.
    Even I have deleted all the work-items from Trxn: SWWL before the test.
    From ST03N, for each process instance executed, four function modules takes the maximum time.
    Function Module--No. of Calls--
    Execution Time/RFC Call
    TRFC_QIN_DEST_SHIP-- 1--
    995 milliseconds
    TRFC_QIN_ACTIVATE--1--
    1077 milliseconds
    ARFC_DEST_SHIP--2--
    280 milliseconds
    ARFC_RUN_NOWAIT--2--
    402 milliseconds
    Best Regards,
    Saravanan N

  • How to Achieve Performance Tuning In BPM Studio

    Please Tell me how to achieve performance Tuning in BPm Project . let me know do have any documentation for this .
    Thanks in Advance .

    *5. Group Automatic Activities in a Single Transactional Boundary*
    When you have several automatic activities in a sequence, recognize this as a potential performance improvement opportunity. The default behavior of Oracle BPM is during each Automatic activity's execution:
    1. Initiate the transaction
    2. Read the work item instance's variable information from the Engine's database
    3. Execute the logic in the Automatic activity
    4. If no system exception occurs, commit the transaction and write the instance variable information back to the Engine's database
    Many times you'll instead want to speed execution when there are several Automatic activities in a sequence. If three Automatic activities are in a sequence, then the four items listed above will occur three times. By grouping these into a single transactional boundary, instead of 12 steps you would have:
    1. Initiate the transaction
    2. Read the work item instance's variable information from the Engine's database
    3. Execute the logic in the first Automatic activity
    4. Execute the logic in the second Automatic activity
    5. Execute the logic in the third Automatic activity
    6. If no system exception occurs, commit the transaction and write the instance variable information back to the Engine's database
    This grouping of Automatic activities into a single transactional boundary can be done in one of these three ways:
    1. Create a Group around the sequence of Automatic activities (lasso the three activities) -> right mouse click inside the dotted line -> click "Create a Group with Selection" -> click "Runtime" in the upper left corner -> click the checkbox "Is Atomic".
    2. Instead of placing the Automatic actiivities in the process, add them in a Procedure and then call the Procedure from a new Automatic activity in the process.
    3. In Oracle BPM 10g you can enable "Greedy" execution for the process by right mouse clicking the process's name in the Project Navigator tab -> click "Properties" -> click the "Advanced" tab -> click the "Enable Greedy Execution" radio button.
    Dan

  • BPM Performance tuning

    Hi,
    I have a synchronous BPM that has
    1.receive (open s/a bridge)
    2.transform
    3.sync send
    4.transform
    5.sync send
    6.transform
    7.send (close s/a bridge)
    working (except for some merge issues in step 4). The BPM takes too long (up to a minute) to execute. How do I optimize the performance? Where can I find tips on how to tune the performance of a Bpm?
    I have to use the BPM in this scenario because I need stateful processing where I have to merge messages from step 1 and step 3.
    Thanks and Regards,
    Suresh.

    Hi,
    I don't think you can tune the BPM a lot as the must time would be used in the receiving system to post data etc.
    In SXMB_ADM you can set the time out higher for the sync processing.
    Go to Integration Processing in SXMB_ADM and add parameter SA_COMM CHECK_FOR_ASYNC_RESPONSE_TIMEOUT to 120 (seconds). You can also increase the number of parallel processes if you have more waiting now. SA_COMM CHECK_FOR_MAX_SYNC_CALLS from 20 to XX. All depends on your hardware but this helped me from the standard 60 seconds to go to may be 70 in some cases.
    Make sure that your calling system does not have a timeout below that you set in XI otherwise yours will go on and finish and your partner may end up sending it twice.
    Cheers
    Stefan

  • Performance tuning of BPEL processes in SOA Suite 11g

    Hi,
      We are working with a customer for performance tuning of SOA Suite 11g, one of the areas is to tune the BPEL processes. I am new to this and started out with stress testing Hello World process using SOAPUI tool. I would like help with the below topics -
    1. How do I interpret the statistics collected during stress testing? Do we have any benchmark set that can indicate that the performance is ok.
    2. Do we need to run stress tests for every BPEL process deployed?
    2. Is there any performance tuning strategy documentation available? Or can anybody share his/her experiences to guide me?
    Thanks in advance!
    Sritama

    1. How do I interpret the statistics collected during stress testing? Do we have any benchmark set that can indicate that the performance is ok.
    You need
    pay attention to:
    java heap usage vs java heap capacity
    java eden usage vs java eden capacity
    JDBC pool initial connections vs JDBC pool capacity connections
    if you are using linux: top
    if you are using aix: topas
    2. Do we need to run stress tests for every BPEL process deployed?
    yes, you need test each BPEL. You can use "Jmeter" tool.
    Download Jmeter from here: Apache JMeter - Apache JMeter&amp;trade;
    Other tools:
    jstat
    jstack
    jps -v
    Enterprise Manager
    WebLogic Console
    VisualVM
    JRockit Mission Control
    3. Is there any performance tuning strategy documentation available? Or can anybody share his/her experiences to guide me?
    I recommend "Oracle SOA Suite 11g Performance Tuning Cookbook" http://www.amazon.com/Oracle-Suite-Performance-Tuning-Cookbook/dp/1849688842/ref=sr_1_1?ie=UTF8&qid=1378482031&sr=8-1&keywords=oracle+soa+suite+11g+performance+tuning+cookbook

Maybe you are looking for