PI synchronous webservice performance

- Ever stuck with the question of ways to reduce the response times of XI webservices calls??
- Need better performnace
- Need better response times........
<u><b>Just Published</b></u>
/people/community.user/blog/2007/07/09/pi-beef-up-the-performance-of-synchronous-webservices
Cheers,
Naveen

Hello Michal,
Currently direct connection is only for the adatper. Since abap proxies don't recide on adapter framework this cannot be done. But you never know. For the first time SAP is using the term Service Bus  in the presentation. This opens up a whole new space. if SAP is moving away from a central hub design to a more ESB(enterprise service bus) then there are new features to be explored.
Cheers,
Naveen

Similar Messages

  • Error in the workflow which executes background synchronous webservice task

    Hi,
    I am very new to SAP Workflows. I created a workflow with one activity step in it. The activity step actually executes a task TS77000300 (synchronous calculation - its an SAP task). When I test it. I get an error "Error when starting the service" with exception 8987, area SWF_HTTP and message 125 - Object WEBSERVICE method PROCESSBATCH cannot be executed.
    I checked in WF_EXTSRV tcode, there is an entry for the background synchronous webservice task.
    I checked in SWLWPTSSID table, there is an mapping between task-id and service id from WF_EXT SRV.
    I am not sure where its going wrong. Any help resolving this issue is appreciated. Thanks a lot.
    Regards,
    Raja

    Gurprit/All
    Thanks Gurprit for the direction.
    Even if I execute the the workflow( WS77000647 from SAP). The first step invokes Process Dialog which asks for three numbers and two operands. When I input all the input params and click calculate button, the second step which is actually the background synchronous task, results in the same error in the workflow log and in the Process Dialog page browser it says "Entries sent for calculation" with the same input screen.
    Am I missing anything here to run background synchronous task? Any help regarding this is appreciated.
    Thanks & Regards,
    Raja

  • Restart synchron webservice in bpm

    Hallo,
    how it is possible to restart a synchron WebService in sxmb_moni within a integration process?
    Thanks in advance,
    Frank

    Michal,
    From a BPM, you sure can I have tried this. Dont remember the exact transaction.
    This has been documented in this thread as well, am i missing something?
    System Error u0096 Restart is Not Possible!
    Regards
    Bhavesh

  • Synchronous webservice-Acknowledgement

    Hi Experts,
    I have a scenario where I need to communicate between a synchronous webservice and an Idoc(async).
    Webservice Interface:(Sync)
    Sender Message: Webservice Response
    Reciever Message: Acknowledgement
    Reciever Interface:(Async)
    IDOC: ACC_DOCUMENT
    The Webservice response message will be mapped to the IDOC.
    The acknowledgement message also needs to be sent to the webservice as a response and that ack depends on the value of the webservice response field value.
    Please suggest any design to execute the same.
    Regards,
    Akhil

    U can design in two manners
    1. The webservice execution could be done before message processing at XI, and directly webservice response is sent to XI to be mapped to the Idoc data. Here no ack handling would be required.
    2. Use a SOAP client which sends data to XI. Make a sync call to webservice to fetch its data (Again 2 options exists, use BPM or use SOAP lookup). Now the response received can be mapped to Idoc structure.
    Regards,
    Prateek

  • Synchronous Webservice

    Hi all,
    I need to have a synchronous webservice to communicate with a synchronous send step in BPM.the output message of the webservice is defined and its of more relevence but cant specify the input message of the webservice.whether i need to make a dummy message type or aquery string.please anyone help me.
    Regards,
    Paul

    HI,
    If your sender or receiver is Synchronous Webservice and another side is Async then you have to go for Async to Sync or vice versa BPM bridge.
    Please Refer
    Demonstrating Use of Synchronous-Asynchronous Bridge to Integrate Synchronous and Asynchronous systems using ccBPM in SAP Xi
    Demonstrating Use of Synchronous-Asynchronous Bridge to Integrate Synchronous and Asynchronous systems using ccBPM in SAP Xi
    Demonstrating Use of Synchronous-Asynchronous Bridge to Integrate Synchronous and Asynchronous systems using ccBPM in SAP Xi - Use of Synch - Asynch bridge in ccBPM
    https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken] - Use of Synch - Asynch bridge in ccBPM
    Thanks
    Swarup

  • Timeout issues in synchronous webservices

    Hi Everybody,
    I am working on a synchronous webservice Interface in which sender is a Webservice and receiver is BAPI (RFC) and I need to handle the time out issue when i dont get the response from the receiver SAP system.Also need to raise an alert.
    Can anybody help me out on this.
    Helpful answers will be rewarded points.
    Regards,
    RK

    Hi,
    For the timeout issue look at these:
    Web Service Timeout Configuration
    SOAP adapter - Module options...
    For the alert I think you should take a look at these:
    Does XI support standard SOAP Fault exceptions?
    SOAP Fault message (***)
    Handling Web Service SOAP Fault Responses in SAP NetWeaver XI
    Hope it helps.
    Best Regards,
    Arman
    (Please mark your question as answered when it is solved)

  • SAP PI 7.4 SOAP - ABAP Proxy Synchronous Webservice

    Hi Everyone,
    I am developing the following scenario:
    3rd party makes a SOAP call to SAP (via PI) to determine whether a vendor exists or not in the SAP system. The link for the call is provided by us from the Integrated Configuration.
    The request comes in, calls an ABAP Proxy to check if a vendor exists and sends a response back to the SOAP call with a 'Y' or an 'N'.
    I've read a lot about various scenarios but I'm having trouble connecting the dots as I'm fairly new to PI. I'd appreciate any help.
    I've made the following set-up based on assuming I need separate Service Interfaces for the SOAP Request & Proxy Response
    ESR
    1. Message Types
         SOAP (MT_SOAP_REQ & MT_SOAP_RESP) - PROXY (MT_PRXY_REQ & MT_PRXY_REQ)
    2.  Message Mappings
         MM_REQUEST    which maps MT_SOAP_REQ   to  MT_PRXY_REQ)
         MM_RESPONSE which maps MT_PRXY_RESP   to MT_SOAP_RESP)
    3. Service Interfaces (Synchronous)
        (SOAP Request)
        SI_IN (Inbound Interface)       with Request = MT_SOAP_REQ and Response = MT_SOAP_RESP
       (Proxy Response)
        SI_OUT (Outbound Interface) with Request = MT_PRXY_REQ and Response  = MT_PRXY_RESP 
    4. Operation Mapping
        OM_LOOKUP which maps SI_IN to SI_OUT with Request    (MT_SOAP_REQ  to MT_PRXY_REQ)
                                                                        and  Response (MT_SOAP_RESP to MT_PRXY_RESP)
    I create the ABAP Proxies for each Service Interface. SI_IN contains the required coded method to check if there is a vendor.
    I create the webservice and binding for SI_IN in SOAMANAGER
    At this point I'm somewhat unsure - what do I need to do for SI_OUT ? Do I need to create a logical port ? how is SI_OUT associated to SI_IN (apart from the Operation)  to get the response.
    ID
    In the Integration Directory I've created a SOAP_SENDER communication channel for System A and SOAP_RECEIVER channel for SAP.  For the SOAP Receiver I need to specify a URL - what should this be ? Is it meant to point to the web service for SI_IN in SICF or just to the generic http://host:8000/sap/xi/engine?type=entry 
    Do I need to use the HTTP_AAE adapter for the receiver instead of SOAP ?
    I created an Integrated Configuration for the SI_IN Service Interface with comm channel SOAP_SENDER from System A and SOAP_RECEIVER for SAP backend.  I then got the WSDL for this to provide to the 3rd Party to test (via SOAP UI)  . Again my concern is how is the SI_IN linked to the SI_OUT to achieve the response ?
    I appreciate you taking the time to go through this .  Any help is greatly appreciated.
    Thanks very much
    Gary

    I create the webservice and binding for SI_IN in SOAMANAGER
    At this point I'm somewhat unsure - what do I need to do for SI_OUT ? Do I need to create a logical port ? how is SI_OUT associated to SI_IN (apart from the Operation)  to get the response.
    >>>>No need to do anything in SOAMANAGER
    Do I need to use the HTTP_AAE adapter for the receiver instead of SOAP ?
    >>> No. Soap adapter is fine. Configure your receiver channel as explianed in the below blog (section 4.3)
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/70066f78-7794-2c10-2e8c-cb967cef407b?overridelayout=t…
    Again my concern is how is the SI_IN linked to the SI_OUT to achieve the response ?
    >>>>Your receiver determination and interface determination takes care of this.(receiver interface  & outbound processing tabs in ICo)

  • Using Synchronous webservice without using SAP XI

    Hi,
    I have a requirement of wherein which my client has provided me a dot net webservice which needs to be consumed in SAP R/3 using which i have to build an interface between SAP R/3 and the legacy system. This interface needs to be synchronous in nature.
    Please let me know how to handle this in ABAP and is this possible without using SAP XI / PI.
    Step 1:
    SAP r/3 ( sends data )------> (Webservice) Legacy system
    Step 2:
    (Webservice) Legacy system -
    > SAP R/3 (recives response from legacy system)
    Regards
    Joel

    Hi Joel,
    You can use the webservie (SOAP or WS[if it is PI7.1server] adapter).
    By calling the webservice from the ABAP.
    http://help.sap.com/saphelp_srm40/helpdata/EN/2d/64d023e74911d6b2e400508b6b8a93/frameset.htm
    or by using PI also it is possible
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/c00ca32e-f991-2b10-f5be-97114bd2b08f?quicklink=index&overridelayout=true
    Read page no 26th onwards.
    > Step 1:
    > SAP r/3 ( sends data )------> (Webservice) Legacy system
    you can use Proxy to PI to SOAP/WS scenario.
    http://help.sap.com/saphelp_nw04/helpdata/en/29/5bd93f130f9215e10000000a155106/frameset.htm
    > Step 2:
    > (Webservice) Legacy system -
    > SAP R/3 (recives response from legacy system)
    you can use SOAP to PI to Proxy scenario.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/8e/464442c1a1c253e10000000a1550b0/content.htm (For SOAP)
    /people/siva.maranani/blog/2005/04/03/abap-server-proxies  (for proxy)
    Regards
    Ramesh

  • Webservices Performance impact Vs. JCo

    Hi,
    We are about to begin development and we are evaluating about developing with Webservices in the Back End following this instructions
    /people/sridhar.k2/blog/2006/09/12/creating-and-exposing-bapi-as-web-service-and-using-it-in-web-dynpro
    or using JCo, one of the issues we are worried about is performance, has some one messured the Performance degradation from using Webservices instead of JCo?
    Kind Regards!
    Gerardo J

    Hello,
    I was just looking for the same information. I was in kind of the same trouble as you.
    Exactly, according to what I managed to find, which is not much, about performance, rfc is better, but it involves more time in development.
    The article which the other contributor refers to is :
    u201CWeb services or RFCs u2014 choosing the right technology for your SAP integration challengesu201D by Prof. Dr. Willi Nüßer, May 15, 2006, available in SAP Professional Journal.
    Unfortunately, I have no access to this source. If you would have further information about this topic, I would appreciate a lot if you could refer it to me.

  • Synchronized scope/performance confusion

    I have a servlet that takes the path to an image and the desired size and resizes it and writes it back out through the response.
    In it there are a couple of lines that need to be throttled or the server quickly becomes overloaded when several people are looking at different pages of thumbnails that are being rendered from large images. To do this I started playing around with synchronizing them. This caused a larger then expected performance decrease for two methods and actually increased performance in the third. So the question is what on earth is the difference between the following three examples
    //the servlets doPost do get calls doPost.
        protected void doPost(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {
             java2D(request, response);
    EXAMPLE 1 - This was just horrible I understands it locks the whole method
         private synchronized void java2D(HttpServletRequest request, HttpServletResponse response) {
                            BufferedImage thumbImage = null; //the shrunken image
                            Image smallImage;
                   Graphics2D g = thumbImage.createGraphics();
                   g.drawImage(smallImage,0,0,null);
    EXAMPLE 2 - This really did not behave any different then the above example.
         private void java2D(HttpServletRequest request, HttpServletResponse response) {
                            BufferedImage thumbImage = null; //the shrunken image
                            Image smallImage;
                       synchronized(this){
                   Graphics2D g = thumbImage.createGraphics();
                   g.drawImage(smallImage,0,0,null);
    EXAMPLE 3 - This time I created a static inner class to do the work and it performs great (on our integration server). I am suspect that some how I am not preventing it from only being run once at a time but it seems that it should only run once as it is synchronized.
    //The inner class
         static class ImageRender {
              public static synchronized void drawImage(BufferedImage thumbImage, Image smallImage) {
                   Graphics2D g = thumbImage.createGraphics();
                   g.drawImage(smallImage,0,0,null);
         private void java2D(HttpServletRequest request, HttpServletResponse response) {
                            BufferedImage thumbImage = null; //the shrunken image
                            Image smallImage;
                   ImageRender.drawImage(thumbImage, smallImage);
             }Thanks for any discussion

    The difference between 2) and 3) is what monitor it synchronizes on. In case 3) it synchronizes on the Class object representing the inner class. My guess is that something in your server's processes is synchronizing on the servlet instance (and is therefor being blocked).
    Try creating a monitor just for this purpose as
    private static Object monitor = new Object();
      synchronized(monitor) {
         Graphics2D g = thumbImage.createGraphics();
          g.drawImage(smallImage,0,0,null);
       }But you probably ought to consider being a bit more sophisticated, like allowing up to a certain number of these things to run simultaneously and, probably, caching the results.

  • Synchronized Block - Performance Issue

    Hi All,
    In my java class contains lot of synchronized methods...which in turn leads to performance issue....
    If i try to remove the synchronized methods...it leads to deadlock problem...
    Is there a way without removing the synchronized methods..to improve the performance...
    Please suggest any solution

    In my java class contains lot of synchronized methods...which in turn leads to performance issue....It causes sequentialization of critical sections of code so that they will execute correctly. You can't describe that as a performance problem unless you can show that a faster and correct implementation exists. It might: for example you could make yor synchronized blocks smaller, use concurrent data structures, etc. But what you can't do is compare it to the same code without synchronization and say it's slower. It is, but the observation has no meaning as the unsynch version isn't correct.
    If i try to remove the synchronized methods...it leads to deadlock problem...That isn't possible unless you didn't remove them all. Deadlocks result from acquiring locks in different orders.
    Is there a way without removing the synchronized methods..to improve the performance...Almost certainly. Post some code.

  • Synchronized session performance issue with Linux

    Hi,
    I have some code (in a Struts Action) that streams out a BufferedImage object from a user's session object and then removes it.
    I remove the BufferedImage object from session in a synchronized block.
    When testing on my Windows 2000 laptop performance is fantastic, however, when I scale up to our Linux test servers, it is much slower, 5 secs. compared to 1 sec. before.
    Both platforms running identical JVMs and versions of Tomcat - anyone else experience this?
    Best Regards

    The fact that the block is synchronized should not impact performance unless multiple clients access the same session (and I don't see how that could happen). What object are you synchronizing on?
    How big is the BufferedImage? How are you testing the application? You say you are streaming the image as output -- do you test with a web browser pointing at localhost in both cases? A large BufferedImage being transferred over the ethernet as opposed to the local loopback would certainly cause the extra delay you're seeing. What are the specs of your Win2k laptop and Linux test servers? You really need to do more investigation before you start making claims like "Java is slower on Linux than Windows" (which is effectively what you're suggesting).

  • Not able to get the data from synchronous Webservice To BPEL process

    Hi All,
    My requirement is : Third party has some webservice.They are pushing data to that Webservice(Wsdl).
    Third part WSDL example : http://ipaddress:port/name/Service.svc?wsdl ( This is just example format of their WSDL)
    After that I need to get that data into my BPEL process and update my system.
    When I built My Snchronous BPEL process I imported third party WSDL(http://ipaddress:port/name/Service.svc?wsdl) through 'import WSDL' in dialog.After that I automatically got the (request and response schema elements) parameters from that WSDL.I gave input and output of the BPEL process from those elements.
    I pasted that third party URL iin SOAPUI and I got their operations and schemas.Based on that I had choosen the elements for 'input' and 'output' of the BPEL processes.I am also getting the schema structures in 'Assign' or 'Transform' activity.
    I built the whole process.
    I have the Process.
    Now Client is pushing data to their WSDL(http://ipaddress:port/name/Service.svc?wsdl) as it is their data pushing interface.But that data is not coming to my BPEL process and instance is not being created in EM console.
    As I have imported their WSDL into my BPEL process,I need to get the data.But I am not getting the data.
    Is there any problem in MY BPEL process?
    (or)
    DO I need to use 'Webservice' Adapter in 'Exposed Services' Swimlane in Composite Editor to have the third party URL, so that they Can push the data to that WSDL in turn that data comes into my BPEL process?
    Can anybody help me this case?
    once again my requirement is :
    Client pushes the data through their WSDL url -----> I need to get that data into MY BPEL process --> I have my own WSDl to take that details into my system.

    I will explain the requirement in small paragraph:
    There are two applications.One is our application(X) and another one is third party application(Y).
    I need to update in my application(X) based on data coming from application(Y).
    I am using SOA as a middle tier to have communication between Y and X.
    (Ex: if they send some info like event type 'event1' from Y ,I need to update that 'event1' data in my X application)
    The work at third party application is :
    According their info,They will push data from their end to their WSDL( http://ipaddress:port/name/Service.svc?wsdl ).
    They are telling they can only send the data to their WSDL( http://ipaddress:port/name/Service.svc?wsdl ).
    They will not consume our BPEL process(I think they might be wrong at this point of time).They have one WSDL to send or push the data from their end.
    The work at from our side(SOA & X application)
    From that point ,our BPEL process has to receive that data and update that data into my application(X).
    I hope You understand my requirement.
    Can you guide me through how to achieve this task as they are telling they have to use their WSDL to push the data?
    (or)
    Do I need to take 'Webservice' adapter into Exposed Services Swimlane in Jdeveloper to have their webservice(third party WSDL),If it is So Can you tell me the details how to take 'input' and 'output' for BPEL process?
    (or)
    Can YOu suggest me to talk to them to consume my BPEL process directly?
    Thanks
    Edited by: 899283 on Aug 17, 2012 4:55 AM

  • Multimapping synchronous webservice and async idoc

    Experts,
    I have a scenario where the sender is webservice (soap) and receiver is IDOC (async) + SOAP (sync)
    When a webservice sends order to PI, i need to  create an idoc in SAP as well as send back response message to webservice. (webservice is expecting to send data using the response payload)
    We have to generate few values from the request and manipulate them (using message mapping) and send response back. (similar to sync webservice interface)
    What is the best way to achieve this? can we integrate both async and sync interface in one interface without using BPM?
    Map 1 -> SOAP <-> PI <-> IDOC
    Map2 -> SOAP <-> PI <-> SOAP
    Best Regards,
    Pavan

    However if i do make use of BPM then the idoc that will be returned from SAP to PI will be different since the same idoc
    cannot send data back.
    No problem if the sending and receiving IDOCs are different. The only thing that you need to take care is the IDOC_Request and IDOC_Response should have one field which contains the same value....for correlation in the BPM.
    Is there a way we can setup some sort of correlation to make sure that the new idoc that is triggered after the sales order
    creation is indeed related to the one that is sent from PI initially.
    As mentioned above the IDOC that BPM sends and receives (from ECC) should have a field which has same value.
    Regards,
    Abhishek.

  • Synchron webservice call?

    Hi,
    the webservices call are implemented asynchron, so if you
    call method A, the result will be received by method B. But maybe
    it's possible to wait in method A, until the result comes?
    something like that
    private function load():void
    service.getItems();
    wait somehow
    the result is received
    continue

    No. You must use events.
    Resistance is futile.
    Tracy

Maybe you are looking for

  • Stacked canvas behaviour 6i c/s

    hi, My form has two canvases. 1. content in own window 2. stacked content in own window( which is only 5 cm by 5cm wide and does not cover content when called. COntent canvas and window are maximised in when-new-form-ins trig. The problem i am gettin

  • How to avoid Time Machine deleting my previous backups?

    I´ve been using Time Machine on my MacBook Pro with Lion to back it up in a WD My Book Live network drive. So far everything had gone smooth, and my files were incrementally backing up. But recently I got a message that said the following (translatin

  • How do I get my Adobe Digital book read out loud.

    I am disabled and need to use text to speech. I purchased an ebook which is an Adobe Digital Edition. I have really enjoyed using Adobe Reader with the Read Out Loud feature and was shocked when I discovered I could not use this feature on the Digita

  • Sets of unknown string is displayed after flash update program

    We have HP laserjet 1213nf MFP printer installed in network. But for some reason after updating HP flash update program related to the printer and after restarting the printer. We have came accross different error displayed on screen.Hence we are una

  • I get a prompt "the computer 192.168.1.70 is attempting to access nmbd on your computer"

    I get a prompt "the computer 192.168.1.70 is attempting to access nmbd on your computer".  This has happened before, different ip address, am I being hacked?