Controlling the processing of threads(MDB) simultaneously in BPEL

Hi all,
i have a BPEL process which hits an Oracle API.While doing stress testing(making 1000 calls to the API simultaneously), the EBS workflow goes down.
This bulk testing is required so we cannot ignore it.
Kindly give us solutions so that we can control the number of threads in BPEL which are calling the API simultaneously.
Regards
ayush

Hi Ayush,
Here are few options you can try:
1) Instead of directly sending data from Siebel, you can store that data on some staging DB tables on Siebel side OR can create file(s) out of that. Then, BPEL process can use inbound adatper to poll these data. Here, BPEL PM can use minimumDelayBetweenMessages to control the input to the BPEL PM. The overall effect would be the less simultaneous API calls.
2) You can reduce the number of threads for the domain as Rod suggested to throttle the processing. Again, the effect would be the same.
3) If a single process instance makes multiple API calls in fire-and-forget fashion in a loop, then after each call use Wait activity to wait for some fixed amount of time. This will allow the previous call to complete or nearly complete before making another call and hence reducing the number of simultaneous API calls.
Hope this helps.
Regards,
http://www.ibiztrack.com
http://www.ibiztrack.com/html/oraclel-soa11g-bpel-esb-training.html

Similar Messages

  • How to control the processing of the request?

    I have something like this:
    <h:inputText value="#{sessionController.currentRowData.settlementId}"/>
    <h:inputText value="#{sessionController.currentRowData.remark}"/>
    <h:inputText value="#{sessionController.currentRowData.fromDate}">
         <f:convertDateTime pattern="yyyy-MM-dd"/>
    </h:inputText>
    The currentRowData object is the currently selected row of a data model.
    Problem is, the model is updated with the value of the components whenever the form is submitted,
    and regardless of whether the value of the components has changed or not.
    (Actually, the behaviour depends on the type of the property, as ie. Date is treated differently from String or int.)
    This causes unwanted changes to the model, and, if a new row is selected, it will at once
    be updated with the values of the previous row (from the current state of the components).
    I want the above components to update the model only if the user wants to, ie. only if a
    specific command button is pressed.
    How to control this?
    Let a PhaseListener check the request, and do renderResponse on the FacesContext if
    the "selectRow" request is found in the request parameter map?
    This is not very elegant, and it does not seem to work either. If setting PhaseId to APPLY_REQUEST_VALUES, the action itself (selecting row)
    will not be executed, and if using UPDATE_MODEL_VALUES, the value of the components is set from the request (even if unchanged), and not updated according the the new data in the model (the rendered values does not reflect the values of the properties of the object the components are bound to)
    Another solution might be to let the "disabled"-attribute of the inputText tags be dependent on whether
    a specific "edit"-button has been pressed (disabled inputText tags are rendered correctly after a row change).
    But a better solution would to have the ability to control the behaviour, something like
    "for these components, no updating of state should be done unless the condition c is true"
    (I'm not sure what condition this could be, though).
    Whatever solution I may end up with, the real problem seems to be that the state (and hence the model)
    is updated from the request also in the case where the value in the request is the same as the current value of the component.
    Or maybe there is something I have missed here?
    erik

    This one is a tricky problem - a side-effect of JSF doing a lot of things automatically is that sometimes it does too much.
    I don't have a great solution, but here's a couple of ideas:
    (1) Try using multiple <h:form>s on your page (not nested one inside the other, but separate). Data will only get updated in the form that contains the button that got pressed.
    (2) Use an intermediate model layer, and discard updates as appropriate.
    Neither of these are beautiful solutions - the second is way ugly - but they might help. Long-range, I'd love to see something like "subforms" supported in JSF that can provide finer grained control over what gets processed (validations, model pushes, etc.) and what doesn't without resorting to the blunt hammer of multiple HTML forms.
    I'm a little confused about "the model is updated with the value of the components whenever the form is submitted, and regardless of whether the value of the components has changed or not.", because JSF is checking the old value and using ".equals()" to see if its changed. Note, however, that it's not caching the old value across the request, but simply going back to the model on the subsequent request, which may (or may not) explain the behavior you're seeing.
    -- Adam Winer (EG member)

  • How to Stop the process of Thread

    Hi,
    A process is running in a thread, which will create a file with records in it.
    I have a cancel button and if I click the button, the process should be stopped i.e. it should not allow to create the file. Is it possible to do this?
    If so, how to achieve this? Please help me in this regard...
    Thanks in Advance

    Hi,
    A process is running in a thread, which will create a
    file with records in it.
    I have a cancel button and if I click the button, the
    process should be stopped i.e. it should not allow to
    create the file. Is it possible to do this?
    If so, how to achieve this? Please help me in this
    regard...
    Thanks in AdvanceThere is no (safe) way of just stopping the thread. What you can do is have a flag in your Runnable/Thread object that you flip when you click the Cancel-button. Then in your run() method you check every now and then if the flag has been flipped. If the flag has been set you stop what you are doing and do necessary cleanup.
    Something along these lines should do it (this is just a skeleton code that won't compile, but the general idea should hopefully be clear):
    class FileCreator implements Runnable {
        private File file;
        private boolean cancelled = false;
        // Method to call when you click the Cancel-button
        public synchronized void cancel() {
            cancelled = true;
        public void run() {
            // Do whatever it is you need to do. On suitable places in the code you check if
            // the job has been cancelled. E.g.:
            try {
                if( cancelled ) {
                    return;
                // Create the file
                file = new File(...);
                if( cancelled ) {
                    return;
                // Add the records to the file:
                for( Record rec : getRecords() ) {
                    if( cancelled ) {
                        return;
                    addRecordToFile(rec, file);
                // etc, etc
            finally {
                // Do necessary cleanup if the job was cancelled, e.g.:
                if( cancelled ) {
                    if( file != null ) {
                        // The file was created before the job was cancelled. Delete it:
                        file.delete();
                    // etc, etc
    // Somewhere else in your code:
    FileCreator fc = new FileCreator();
    new Thread(fc).start();
    JButton btnCancel = new JButton("Cancel");
    btnCancel.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            fc.cancel();
    ...Hope this helps!

  • How do I control the number of threads?

    I'm currently writing parts of a GUI front-end in Swing for an extremely resource-hungry C back-end. I built the thing out on the basic two-thread (main and event) protocol that all of the literature talks about. The initial plan was to have a number of somewhat different versions of this thing being called independently to serve as micro-GUIs for different parts of the back end. It was working pretty well by itself, but it caused some noticeable slowdown in the main program once I tried to bring up two of them, and some thread-tracking software has informed me that each of these calls is costing me on the order of 27-28 threads. Is there anything I can do about this thread count? Is it normal? Would building all of the versions into a single .jar with internal switching at least limit the damage? If it's not normal, what should I be looking for to bring it back down? I have not explicitly spawned or dealt with any threads other than main and event.
    If it is any help, the basic format is a JFrame containing a number of JPanels, some of which have a few subpanels. Some of the panels are swapped in and out of visibility by button presses. If the JPanels are somehow automatically creating event threads for themselves, is there any way I can limit that, perhaps by forcing them to use the event thread of the parent?
    Thank you for your time.
    Fibula

    IF you're talking GUI, and you were, yes you can definitely reduce thread count by running everything in the same jvm

  • How to control the process?

    Hi, I have a question here. I use try{ } catch{}, and hope the program will go back to continuously execute the for loop after the catch block. But I don't know how could I do that. Anybody know?
    Thanks a lot!
    try {
    for(i=0;i<tokenArray.length;i++) {
    tokenArray=tokens.nextToken();
    // System.out.println("Element #"+i+"="+Integer.parseInt(tokenArray[i]));
    numOperands[size++]=Integer.parseInt(tokenArray[i]);
    System.out.println("Element #"+i+"="+numOperands[size-1]);
    }catch (Exception e) {
    strOperands[strSize++]=tokenArray[i];
    System.out.println("Element #"+i+"="+strOperands[strSize-1]);

    try this
    try {
    yoman: //add yoman: before for() , u can use anything here with:
    }/end try
    catch(){}//catch complete
    continue yonam: //
    i think this will work cos i never tried this
    add some blocks to get results
    but the loop will continue for ever in your case

  • How to update the HTML file so that we can Control our process in real time

    After installing following three steps as per the lookout 4 online help I am unable to Monitor and control the Process in HTML format, which was exported manually in lookout server.
    1) Creating a Web Client Page in Lookout
    2) Download a Lookout Web Client
    3) Setting Up Own Web Server
    My browser shows only the instance, which I have uploaded manually without any update
    Problem: How to automatically update/refresh the HTML file so that we can Monitor/Control our process in real time/bi-directional mode.

    Hi,
    It seems like your process is not updating. When you create a Web Client, it uses ActiveX which lets you control the Lookout process fully. Make sure that you run the process. You can do this by pressing CTRL+Spacebar which puts it in Run-mode. Perhaps then you may see your graphs, etc updating.
    Also, please refer to page 11-1 of the Users Manual linked below:
    http://www.ni.com/pdf/manuals/322390a.pdf
    What kind of Web Server are you using? Make sure all the settings in it are done properly. If you have LabVIEW, you can use the LabVIEW Web Server.
    Hope this information is helpful. Please let us know if you have any further questions.
    Regards,
    A Saha
    Applications Engineer
    National Instruments
    Anu Saha
    Academic Product Marketing Engineer
    National Instruments

  • Weblogic work manager - Control min./max. threads & fair share

    I have an application which is running on Weblogic 10.3.2. I need to be able to control the number of threads the server assigns to this application. The application has 3 MDBs and for each of these MDBs, we need to assign a weight so that that the available threads are distributed among the 3 MDBs according to the weight.
    After going through the Weblogic documentation, it looks like I could create 3 work managers with the min. threads, max. threads and fair share. These work managers could be assigned to each of the MDBs. But, this does not control the total number of threads the server assigns to the application.
    Question:
    Is there a way we can create a work manager with the min. threads and max. threads and assign it to the whole application? This could be used to control the min./max. threads assigned to the application. Then we could define 3 work managers with the fair share and assign them to the individual MDBs.

    Hi ,
    You can create a work manager with min. threads and max. threads constraints defined. Check this:
    http://www.oracle.com/technetwork/articles/entarch/workload-management3-087769.html
    Thanks,
    Sharmela

  • Controlling the processsing of multiple IDOCS

    Hi
    Their is a situation where multiple IDOCS are coming from XI to SAP.  Can anyone suggest the way in which we can control the processing of these IDOCs so that only one IDOC is processed at a time.

    see:
    http://help.sap.com/saphelp_sm32/helpdata/en/0b/2a6688507d11d18ee90000e8366fc2/content.htm
    regards,darek

  • In the closure of Adobe, the process remains active and takes too much resource processor.   Expected results:The process AdobRd32.exe has to be correctly closed.

    In the closure of Adobe, the process remains active and takes too much resource processor.
    Expected results:The process AdobRd32.exe has to be correctly closed.

    I'm not sure on a Mac, but when I have this issue, I simply kill the thread (task-manager/processes/select the process, kill thread)
    I have had no ill effects doing this.
    It is my belief, it is the cloud, since they have a dcc connection, you can disconnect from the cloud, close everything, and the cloud is still connected to you. This is a feature of their update process I suppose.(speculation)  Additionally, I remember reading somewhere this issue was due to applying administrative permission at the instigation of the installation. (which I do allow *some* trusted companies to have this so updates can be applied during my downtime. ) 
    I have never had any overt issues after killing the thread and I have done that many times.
    Hope this helps

  • Multiple UUT Testing Over Temp - Which Thread or Process Should Control the Chamber?

    I am using TestStand 3.5 to write an automated system that can test up to 4 UUTs inside a temperature chamber.  If any of the UUT's fail, the user will have the option to abort the UUT test and either leave the test socket empty or add a new UUT in it's place.  Each UUT must pass 6 cycles of hot and cold testing before temperature testing is complete.  Each UUT may be in a different cycle than the UUT's in the other test sockets.  The parallel process model seems to work best due to the fact that individual UUT tests can be stopped and started at any time.
    I am trying to determine which part of the software should have control over the temperature chamber.  When all UUT's have completed testing at each hot or cold interval, the chamber must be commanded to proceed to the next temperature set point.  My first idea was to have a seperate software module (or TestStand sequence) that only controlled the chamber and gave start test commands to each UUT, but a NI apps engineer told me that this would be like writing my own test engine and not taking advantage of TestStand's capabilities.  He then advised me to let whatever test socket has an index of 0 control the chamber.  I know there will always be a 0-index socket, but I am not sure which order the sockets will run (maybe it doesn't matter). 
    Has anyone ever dealt with this situation before?  What is the architecture for this scenario?

    Instead of modifying the process model you could just override the ProcessSetup and ProcessCleanup sequence file callbacks in your client sequence file (go to the edit menu and choose sequence file callbacks). Then you can just add code to the ProcessSetup to launch the new thread or execution, and then add code to ProcessCleanup to tell it to exit. Unless you want a drastically different or simpler model from what is supplied I wouldn't recommend starting from scratch.
    If you don't want to add code to the client sequence then editing the existing model might be your best approach. Make sure you copy the entire TestStandModels directory from components\ni\Models into components\user\Models first and modify the version under the user subdirectory. For the parallel model you would likely want to add code to the ProcessSetup and ProcessCleanup in the model itself, or to the Test UUTs sequence itself where you want your new thread to be created and exited.
    Hope this helps.
    -Doug

  • After thread abort in Sandbox solution, the process is triggered again

    Hi,
    I am facing a problem of the process being triggered again, after thread abort of sandbox solution webpart on SharePoint 2013 Online.
    I have created a sandboxed solution webpart and deployed it on SharePoint 2013 Online. The webpart contains two buttons. The click event of the buttons is added in CreateChildControls methods.
     On the click of the first button, the process completes in 1 second.
    On click of the second button, the process takes more than 30 seconds to complete. As a result, the thread aborts and the process being aborted is triggered again. This creates duplicate processing.
    If I deploy the same solution on a SharePoint 2010 environment, the process is not triggered again after being aborted.
    I am fine with the thread being aborted, but I am not able to understand why the process is being triggered again.
    I want to stop the process from being triggered again after getting aborted.
    Any help would be appreciated.

    Hello !
           If no workflows are associated with the business object BUS2081 and the event POSTED, deactivate it at SWE2.
           Otherwise, you should resolve the cause for dump.To know the reason for dump, following transactions would be helpful : ST22,ST01,ST05 and ST12.
           Instead of checking at SWEQDEL transaction, check at SWEQADM transaction.
    Regards,
    S.Suresh.

  • Kill process and count the number of threads

    Hi,
    I have an RMi Server and it is running perfect, my question is, how can I count how many threads of this server are running, "i.e. If I did run it once or twice or ...", and how to get pid of the process, because I want to restart it after closing the running.

    I will give you a clue on how to get a process ID
    From a Linux system, the command pgrep <process> lists the pid of the process specified. For instance,
    [root@iss arthur]# pgrep java
    14428
    [root@iss arthur]# is what is displayed on my server.
    Now, using Runtime.getRuntime().exec() methods, you may run the command and pipe back the results to your app. So that,
    if i use the above example,
    [root@iss arthur]# kill 14428
    [root@iss arthur]# will kill the java process.
    Over to you

  • Control recipe cretaion if the process inst categories assigned in Order

    Hi, As i understand you can assign the process instruction category either in o10c or in process order- opertion - phase, it self. my doubt is if it is assigned in phase of the order, there is no fileds like general scope, filter etc which is there in o10c. in case if we assign the proc inst cat in order, how system creats the control recipe without those fields? please advise.

    Hi All, i think my question is not clear. my question is in o10c we have fields like general scope. if you enter here cons_1 (consumpltion), against this we need to enter general scope as "for all reservations", then only in pi sheet it will display cells to enter the values for all components. if we enter cons_1 in recipe, i could not find this general scope field where i need to specify that this process inst category is for all items in reservation. i hope this explanation will clear my doubt.
    Thanks.

  • Volume keys not working, what was the name of the process which controlled it?

    Well because I hate programs that minimize my current window or stop what I'm currently doing.... I got really angry when HP support assistant minimized my tf2 window to tell me it was downloading updates.
    As a result, I opened up the task manager and started ending almost every process which began with "hp"
    Along with the the process which was probably in control of the very useful volume control buttons on my keyboard, so I was hoping if someone could give me the name of the process I ended so I can get these keys working again.
    This question was solved.
    View Solution.

    The program is called Quick Launch. It might be something like QLBCTRL.exe.
    I am an HP employee.
    Regards,
    Vidya
    Make it easier for other people to find solutions, by marking my answer “Accept as Solution” if it solves your problem.
    ***Click on "Thumbs up" button to the bottom right side of my post to say thanks!***

  • How to make a Thread alive througout the process like Listener threads

    Dear Friends ,
    How to make a Thread stay alive throughout the process i.e even after the completion of the execution .
    My requirement is to create a Listener...in Java Listener threads will stay alive throughout the process(Ex: MouseListener..whenever we move mouse on a particular button some code will be executed, so some thread is running) . What kind o Thread is this . Is it possible to create a Tread like this in our programs .
    Thanks ,
    Rajesh Reddy

    My requirement is to create a Listener...in Java Listener threads will stay alive throughout the process(Ex: MouseListener..whenever we move mouse on a particular button some code will be executed, so some thread is running) . What kind o Thread is this . MouseListener is not a thread. Any thread can invoke the methods of MouseListener, although typically the UI thread will invoke it when an event happens.
    Is it possible to create a Tread like this in our programs .It is not a thread, but I almost definitely, depending on what you are trying to do
    >
    Thanks ,
    Rajesh Reddy

Maybe you are looking for

  • Read only filesystem problem

    Hi, I have a strange problem. After some time of running archlinux the root filesystem suddenly becomes read-only. It happened 3 times yet. I'm using LVM and the root volume is /dev/mapper/VG0-archlinux2 and filesystem type is reiserfs. If i tried to

  • Time Machine NOT automatically backing up - Help

    Running 10.5.2 on my MBP and MB. Have a TC 500 installed yesterday. Did the initial backup on both. Seems that Time Machine will not backup to TC unless I click on TC in my finder (to mount). If I restart or sleep the computer or switch networks (and

  • External Hard Drive and Time Machine questions

    Hello, I am new here to the forums and I have looked all over for the answers to two questions that I have regarding external hard drives and the time machine feature. For some background, I recently had a scare (water spill but luckily I had a keybo

  • Stereo Audio channel turns to mono when I close and re-open the project

    Hi there, when I import a random video file with stereo audio channels and put it to the timeline (after peaking), everything works allright - the recording level window shows me the left and the right audio channel. But when I save and close the pro

  • ITunes Crashed when attempting to access Music Store

    hello. I am using iTunes 6.0.5.20 as of today, and continue to have a problem carried over from the previous version... when I attempt to access the iTunes music store in the regular manner the program closes without any error messages, the icon rema