Asynchronous client call - WS-Addressing

Hi,
I’m trying to initiate an asynchronous BPEL process from an external SOAP client i.e. the client calls the BPEL process and it calls back with a response.
I can see from the Dev Guide that a WS-Addressing ReplyTo is required within the client request but from experimenting it seems that this must contain not just the mandatory Address but also the optional PortType and ServiceName elements (filled out with the QNames for the portType and service within the WSDL). Otherwise I get SOAP Faults back indicating Null pointers or Class Not Found. Once these are included the callback to the client works fine. Can you confirm that these elements are in fact required?
Also why should the ServiceName be necessary as the physical callback endpoint is supplied by the client via the Address Element (the service in the WSDL just has a placeholder http://set.by.caller)? For that matter, shouldnt the BPEL process already know the callback portType already (as it'll be part of its invoke settings)?
Many thanks,
James
www.magoosoft.com

The ServiceName and PortType can be figured out at BPEL engine side. This is acutally a bug that we fixed for 10.1.2 GA.
Thanks for your feedback.
- Rakesh

Similar Messages

  • How  to Hold the client ip from the client calls made to the ejbweb servic?

    Hi
    I am working on Ejb3 web services.I want to hold the client ip from the client calls made to the web service.I deployed this service in jboss AS 4.2.1
    In the service implementation i started using
    @Resource
    SessionContext sessionCtx;
    My idea is to get the MessageContext from this SessionContext and finally to get the HttpServletRequest.
    I got the sessionCtx(BaseSessionContext) object.When i am trying to access the MessageContect using the below syntax
    System.out.println(sessionCtx.getMessageContext());
    I got ---ERROR [SOAPFaultHelperJAXWS] SOAP request exception
    javax.ejb.EJBException: java.lang.IllegalStateException: No message context found
    Please provide me with correct solution to this problem.Please also suggest if there is any alternate approach to get the client ip in the service implementation.
    Thanks
    Adinarayana

    Hi,
    Assuming that you are using Form 6i or greater, one way to do is to embedd a java bean in the form, this bean would get you the ip address and in the form you can get_custom_property( ) to get the value from the bean to the oracle form.
    There is one demo example in OTN site to get the ClientIP address, check out if that helps you.
    Regards,
    Dinesh

  • FDK Framemaker Server: How to properly disconnect an asynchronous client

    Description: We developed an asynchronous client DLL that starts up and connects to FrameMaker using a registered prog id. Everything works fine but we have the following problem: When the DLL disconnects from the FrameMaker process, FrameMaker can not be stopped but makes the FrameMaker process and the application hang. When the DLL is unloaded after disconnecting, then FrameMaker can be stopped normally. We like to know how to disconnect from the FrameMaker process in such a way that FrameMaker can be stopped normally without the requirement to unload the DLL first. This way we also want to be able to stop FrameMaker using the DLL.
    Details:
    To connect and start-up the FrameMaker process we use the F_ApiWinConnectSession() function.
    To disconnect we call the F_ApiDisconnectFromSession() function.
    We tried different options with initializing COM and intializing the message filter using FDK and the F_ApiShutDown() function.
    Regards,
    Edwin Walter

    I've always shut down the projector, and the computer reacts by reverting to single built-in monitor mode. Then I diconnect the cable.

  • Asynchronous RFC call from R/3

    I need to make an asynchronous RFC call from R/3. I receive an error message in R/3 stating that my RFC destination can only be of type I (Internal) or type 3 (R/3 system). In order for it to reach XI I need it to be of type T (TCP/IP). Any help would be appreciated.
    Here is the function call.
    CALL FUNCTION 'Z_B2B_R3_FUNCTIONAL_ACK' starting new task 'SESSION1'
       destination 'RFC2XMBSERVICE'
          EXPORTING
               MSG_TYPE            = msg_type
               ORDER_HEADER_RETURN = order_header_return
          TABLES
               RETURNCODE          = i_return.
    the RFC desitnation RFC2XMBSERVICE is of type TCP/IP which by default makes it synchronous.
    Thanks,
    Jim

    hi,
    have you tried:
    CALL FUNCTION 'Z_B2B_R3_FUNCTIONAL_ACK'
    in background task
    destination 'RFC2XMBSERVICE'
    EXPORTING
    MSG_TYPE = msg_type
    ORDER_HEADER_RETURN = order_header_return
    TABLES
    RETURNCODE = i_return.
    commit work.
    Regards,
    michal

  • Error with Asynchronous RFC call to JDBC

    Hi all,
    We are working on a scenarion where in we have to make an asynchronous RFC call to JDBC.
    We have configured RFC sender adapter following this weblog
    /people/michal.krawczyk2/blog/2005/03/29/configuring-the-sender-rfc-adapter--step-by-step
    We have created data types only for the database as RFC does not require any data types.
    And also we have created message types,message interfaces accordingly.
    In Message Mappping,we mapped the export parameters of RFC to the access fields of database message type.
    Also we have created sender agreement,interface determinations etc.... accordingly
    And for sending RFC request asynchronously we followed this weblog
    /people/swaroopa.vishwanath/blog/2006/12/28/send-rfc-to-sap-xi-150-asynchronous
    Once done with all the above steps we could able to trigger the RFC call and caught with the following errors in SXMB_MONI and no errors are seen in communication monitoring
    SOAP Error:
    +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>+
    +- <!--  Request Message Mapping+
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>Application</SAP:Category>
       <SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>
      <SAP:P1>com/sap/xi/tf/_curr_exg_mm2_</SAP:P1>
    <SAP:P2>com.sap.aii.utilxi.misc.api.BaseRuntimeException</SAP:P2>
      <SAP:P3>RuntimeException in Message-Mapping transformatio~</SAP:P3>
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" /> <SAP:Stack>com.sap.aii.utilxi.misc.api.BaseRuntimeException thrown during application mapping com/sap/xi/tf/_curr_exg_mm2_: RuntimeException in Message-Mapping transformatio~</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Also trace shows the following error thogh the interface determinations are properly configured
    <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">--start sender interface action determination</Trace>
      <Trace level="1" type="T">select interface BAPI_EXCHRATE_GETCURRENTRATES*</Trace>
      <Trace level="1" type="T">select interface namespace urn:sap-com:document:sap:rfc:functions</Trace>
      <Trace level="1" type="T">no interface found</Trace>
      <Trace level="1" type="T">--start receiver interface action determination</Trace>
      <Trace level="1" type="T">Loop 0000000001</Trace>
      <Trace level="1" type="T">select interface *</Trace>
      <Trace level="1" type="T">select interface namespace</Trace>
      <Trace level="1" type="T">no interface found</Trace>
      <Trace level="1" type="T">--no sender or receiver interface definition found</Trace>
      <Trace level="1" type="T">Hence set action to DEL</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-PERSIST_READ_MESSAGE" />
      <Trace level="1" type="T">Note: the following trace entry is written delayed (after read from persist)</Trace>
      <Trace level="1" type="B" name="SXMS_ASYNC_EXEC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">----</Trace>
      <Trace level="1" type="T">Starting async processing with pipeline CENTRAL</Trace>
    the above errors are shown as part of request mapping..
    Can any one please let me know what other configurations do we need to do?
    I did not map the RFC import parameters,do we need to do that
    Any help in this regard is really appreciated
    Rgds,
    Santhosh

    Hi,
    I am really happy to hear that the problem with mapping is resolved.
    Now as per your requirment It needs to be aynschornous RFC--> XI ---> JDBC call. In XI you should map the RFC Export parameters to the traget structure of JDBC.
    then the question is to how to trigger the RFC Function Module in R/3 to XI.
    Plesae follow below steps to trigger it from SAP R/3
    1. Create a RFC in the R/3 system
    2. Configure the SM59 and Sender Communication channle as given in the Michal's blog. Also test if it is succesful.
    /people/michal.krawczyk2/blog/2005/03/29/configuring-the-sender-rfc-adapter--step-by-step
    3. Import the RFC in XI
    4. Do the mapping to the target strucutre
    5. Configure the JDBC receiver adapter
    /people/sameer.shadab/blog/2005/10/24/connecting-to-ms-access-using-receiver-jdbc-adapter-without-dsn
    6. You can trigger the RFC from R/3 sytem by using
    Async Call - in ABAP program use below syntax to call RFC. Here the export parameters will be passed on to XI which further have mapped to JDBC.
    CALL Function "RFC Name" IN BACKGROUND TASK destination <sm59 destination>
    COMMIT WORK.
    Sync Call
    CALL Function "RFC Name" destination <sm59 destination>
    Thanks
    Swarup
    Edited by: Swarup Sawant on Jan 27, 2008 9:14 AM

  • JCD - making a web service client call from a jcd

    Hi,
    We would like to make web service client calls from our jcd's in Java CAPS 5.1.2 to an external web services running under a Tomcat 5.5 servlet.
    What is the recommended method of calling web services from a jcd?
    We attempted to import a WSDL and use the wsdl object but that failed.
    One alternative I thought of is generating the client classes from Axis 1.3 and importing an external .jar file with those classes plus the necessary jar to run Axis.
    Our external web services are typed as docment/literal, wrapped.
    Thanks

    The recommended way to make Web Services calls from a Java Collaboration is to use the support for this feature in JCaps 5.1.2. This means using the WSDL as an OTD and linking it to an external web service on the connectivity map.
    If you have trouble using the WSDl as an OTD you can open a support case with Sun support (http://goldstar.stc.com/support).
    Regards,
    Frederik

  • Asynchronous function calls in Java?

    I need to write a class whose functions i could call asynchronously. How do we do this? Is this part of the Java API or do i need something else?
    Thank you in advance.

    I am actually very surprised that this is not part of
    the regular API. I always thought this would be built
    into the languageLet's see...
    C, Objective-C, C++, C#, Perl, Basic, Pascal, Fortran, Cobol, Forth, Algol, Snobol, Lisp, Smalltalk, SQL, JavaScript, VBScript, PerlScript, Plato(sp?), a number of script languages on different OSes and a number of mini-languages as well...
    And not a single one that provides anything for doing asynchronous method calls.
    So it doesn't surprise me that Java doesn't have it.
    Now there might be some experimental language that does this but main stream languages do not.
    Of course most of those languages do provide a way to start a thread and add processing logic to it. Although some of the ones I used did not even do that.

  • Get the client (caller) IP in a RESTFul web service resource

    Hello,
    How i can get the client (caller) IP inside a RESTFul web service resource?
    Something like for SOAP Web Services
              MessageContext msgCtxt = wsCtxt.getMessageContext();
              HttpServletRequest req = (HttpServletRequest) msgCtxt.get(MessageContext.SERVLET_REQUEST);
              String clientIP = req.getRemoteAddr();
    Thank You

    1) Are you trying to create a RESTful web service in LabVIEW?
    or
    2) Are you wondering about creating a thin client to consume the web service?
    A1) Web Services in LabVIEW
    A2) LabVIEW WebUI Builder  You can create a VI to act as a client for your web services, but not a thin client (i.e. running in the browser)
    Chris
    Certified LabVIEW Architect
    Certified TestStand Architect

  • Count Number of WebService Client Calls

    Hi erverybody,
    I want to write an Webservice that return a String, after a certain number of clients (MaxClients=20) have called the webservice. After the String has been returned, the Clients continue their work, but they have to wait until all the clients called that service
        int MaxClients=20;
        int CurrentNoOfClients=0;
         * Web service operation
        @WebMethod(operationName = "count20Calls")
        public String count20Calls(@WebParam(name = "X")
        String parameter) {
            this.CurrentNoOfClients=this.CurrentNoOfClients+1;
            System.out.println("Number of Clients Client :"+this.CurrentNoOfClients);
            //Here is the code I am looking for
            return "This method has been called "+MaxClients+" times. You can continue";
        }Has anybody an idea
    Thanks in advance!

    Hi Amit
    I think this could be done with a calculated keyfigure.Try this solution. Create a calcuated keyfigure Ex "Count", go to edit mode for this KF and write a formula "('Amount'==0) and this outputs "1" for the KF if the condition is true.
    Now to get the count for each countries which have amount "0" filter the query on the basic of Country or just give the user option to pick the country while executing the report
    Assign points if helpful
    Thanks
    VRV

  • Making an asynchronous method call in Oracle Weblogic Workshop 10.3.2

    Hi,
    Need to make a non blocking asynchronous method call from my application.
    There is an http url which i need to call but in asynchronous way.
    example:
    URL myPage = new URL("http://www.mypage.com/");
    URLConnection yc = myPage.openConnection();
    but the method to be invoked in non blocking or asynchronous way, so that the thread doesn't get stuck when the server of the target url ( http://www.mypage.com) is not working.
    regards
    pramod
    mumbai/India.

    Hi Pramod,
    Well in generally all the Synchronous call only if you want to achieve asynchronous method calls use Web-services method call.
    Here is link which help you to achieve your task.
    http://docs.oracle.com/cd/E11035_01/wls100/webserv_adv/asynch.html
    Regards,
    kal

  • What is synchronous and asynchronous FM calls

    Hi All,
       Can you tell me that what is synchronous and asynchronous FM calls?
       Full points will be rewarded for the answer of this simple question !!
    Best Regards,
    Chandan Dubey

    Hi Chandan,
         You can refer the below document for a good explanation.
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f078394a-4469-2910-c4bf-853c75674694
    Thnaks,
    Siva.

  • Client with IP address is not allowed to access the server

    While trying to connect to the SQL Database on Windows Azure via SQL Server Data Tools 2012 (from local), it gives me a message "Client with IP address 'X.X.X.X' is not allowed to access the server". And in the message it also gives you the direction
    on how to fix this.
    So, going back to the Windows Azure Management Portal, I have included the current IP address in to the existing firewall rule. I tried to connect to the sql database on azure via SSDT it worked properly.
    Next day.. when I open the tool and trying to connect, it gave the same error, so I checked in the portal and this time it was showing different IP, then I added this IP to the firewall list, and I was able to connect.
    Question:  Is this a normal behaviour for adding IP each day to the firewall rule? (OR, I am using the "Free Trial" subscription, is this the issue?), or is there anything more I need to do to avoid adding the IP each day?
    Please let me know.
    Thank you.

    Hello,
    To workaround your requirement, you can try to use the New- SqlAzureFirewallRule command line in PowerShell to configure the firewall rule  allow your current IP automatically.
    Reference:
    Update Azure DB Firewall Rules with PowerShell
    http://social.msdn.microsoft.com/Forums/windowsazure/en-us/67540278-1f54-491b-9dd2-73587cf51cef/configure-allowed-ip-addresses?forum=ssdsgetstarted
    Regards,
    Fanny Liu
    Fanny Liu
    TechNet Community Support

  • Using ADDRESS PARAGRAPH to call International address ??

    HI Experts,
    I have an existing Sapscript to modify.
    I need to extract/retrieve the address of the customer by using the International Version address maintained by the user.
    However - in the existing Sapscript, it uses the ADDRESS PARAGRAPH to call formating address.
    Is it possible to extract the international version address using the ADDRESS PARAGRAPH function in Sapscript?
    Kindly advice.
    Thank You.
    Best Regards,
    CW
    Edited by: CW LIM on Oct 21, 2009 6:06 AM

    Close Postage

  • JCo  client calls as background processes (avoiding timeouts)

    Hi Guys!
    Could you please assist us to resolve a simple issue:
    Our JCo Client call takes sometimes longer than the given timout for sap dialog processes (so, it's now clear,  the jco client simply uses the dialog processes and not something smarter/more flexible).
    My question is, ho to entice the jco client call to run without runtime timeout and take as long time as necessary. If the only possibility is, to use the tRFC, does anybody have an example for tRFC usage from JCo Client?
    Is also a JCo server component  needed to implement some callback functionality from SAP system by using the tRFC, or it could be enough to poll the server and implement the timeout on the client level (it could be for us the best solution if we realy must use the tRFC).
    Once again, we want to run the JCo client calls unlimited time (as long as needed) without the annoying dialog process timeout. The tRFC is not necessary by use cases now.
    Any help would be      appreciated!
    Many thanks, Gena

    Hi Gena,
    so, it's now clear, the jco client simply uses the dialog processes and not something smarter/more flexible
    Well, that's a feature of the underlying RFC protocol: All RFC calls are executed in dialog work processes, thus also the runtime limitations for dialog processes apply.
    My question is, ho to entice the jco client call to run without runtime timeout and take as long time as necessary. If the only possibility is, to use the tRFC, does anybody have an example for tRFC usage from JCo Client?
    The JCo client cannot do anything about it, it's a profile parameter in SAP, i.e. rdisp/max_wprun_time. But as this parameter applies to all dialog processes (so dialog users and RFC calls), so it shouldn't be changed to make a single RFC application work. Anyhow, tRFC won't help you in this case, because all RFC calls are processed in a dialog process no matter of the type of RFC.
    Once again, we want to run the JCo client calls unlimited time (as long as needed) without the annoying dialog process timeout.
    Impossible without making any changes in SAP. In theory one could modify the RFC function so that it resets the "runtime counter" and thus having the capability to run longer than rdisp/max_wprun_time. I'd recommend though not to do that, especially since a very long running RFC seems rather questionable. Long running tasks should be processed in background.
    Cheers, harald

  • Client Call back and socket permissions

    Hi,
    Im thinking of a client call back from the server. I dont know much about the RMI under a firewall.
    Do I need to make an entry in the firewall proxy server so that the RMI Server make a call back to the client?
    Or the client can directly call a server behind a fire wall and a server can make a client which is behind a fire wall too.
    Any suggestions, please let me know.
    Thanks,
    ananth

    Servers cannot "call back" to clients behind firewalls. Period.
    Clients can call servers behind firewalls, but you will probably have to provide a custom socket factory so that a fixed port - rather than a random port - is used for remote method calls.

Maybe you are looking for