ProcessControlExceptions in Asynchronous Services

I have built an asynchronous web service (jws) that invokes a synchronous process (jpd) via a process control (jcx). I'm having trouble with my exception handling.
My JPD has a global exception handler, which throws a SoapFaultException wrapping the exception that was caught. My JWS file has a try-catch block around the call to the process control, which catches a ProcessControlException, and extracts the relevent information from the contained SoapFaultException. I do not rethrow any exceptions.
Despite the fact that I handle the exception in the JWS, it seems that once the method completes (in its entirety) if an exception was caught, the transaction is rolled back, and - since this method starts the conversation - the conversation is not created. This is a major problem, since polling the service will throw a ConversationNotFoundException.
I have done some testing, and the issue only occurs when an exception is thrown from a process control within my jws method. My best guess is that since the transaction is passed to the control, and the control throws an exception, the transaction is set to be rolled-back, even though the exception is being handled at the JWS level. Am I doing something wrong? Is there a way for me to prevent the transaction from rolling back? Any help would be greatly appreciated.
Thanks.
-Brian

Information at the following link may be helpful:
http://forums.bea.com/bea/thread.jspa?messageID=600034865&#600034865
Regards,
Rommel Sharma

Similar Messages

  • How to make use of asynchronous service in CAF development

    Hello SDNs,
    How can we make use of asynchronous service in CAF development;
    Actually i am new to CAF development; my business requirement suites for the service provided by SAP. But the service provided is asynchronous; is it not possible to use the asynchronous service in my CAF application? if it is possible, can any one please tell me the drawbacks of using it!
    You help would be highly appreciated.
    Thanks,
    Sireesha.B

    Hi,
    >> I have some portal service and how to use that in the web dynpro application.
    Yes. U can use Portal service in webdynpro. Check the link given by subathra.
    >> and also what is the main diff between Portal Component and web dynpro application
    Portal Components are components designed to run in portal server while webdynpro application can run in J2EE WebAS.
    >> do we required portal to run web dynpro application.
    No for general cases. Just WebAS is sufficient to run webdynpro appl. But if u use portal service in ur webdynpro appl, then make sure both (portal service and webdynpro appl) run on same J2EE engine. That is mandatory.
    Regards,
    Vijai

  • How to make a Mediator deal with calling an external Asynchronous Service

    Hi,
    Using TP 4.
    I want my Mediator to invoke an Asynchronous Service that is external to the composite application. But I do not know how to get the reply from that service back into my Mediator.
    I have worked with the sample of calling an asynch BPEL component within the same composite - that is fairly easy to accomplish.
    What how can I tell the external service to invoke a callback porttype on my Mediator. Can the SCA container work out the correlation between the external service and the correct instance of the SCA composite? Should the Mediator publish the callback interface as an external service at the SCA Composite level? If so - how would the correlation work? If not, how does it work?
    Any suggestions - even the statement that I always need a BPEL component in between that will support correlation with external asynch services, if that is the case - will help.
    Thanks.
    Lucas

    Kylie, welcome to the discussion area!
    Cable modems behave differently than DSL modems in that they will "remember" the last device that they have associated with. Your modem is "remembering" your MacBook and when you connect the TC, the modem won't connect because it "remembers" the MacBook.
    You need to make the modem "forget" a previous device whenever you make a change in the device that is directly connected to the modem. Here's how:
    Push the reset button on the modem if it's present
    Pull the power cable on the modem
    Pull the battery from the modem if it is easily accessible
    Leave the modem powered down for 25-30 minutes
    Power down the rest of your network as well
    After the wait period, connect the modem to the WAN port on the TC with an ethernet cable
    Power up the modem first and let it run for 3-4 minutes by itself
    Then power up the TC the same way
    Power up the rest of your network the same way
    Depending on how you had your TC configured with the DSL modem previously, you may need to make a few changes in the settings.
    Post back on your progress.
    Message was edited by: Bob Timmons
    null

  • BPEL and Axis2 Asynchronous service

    Does anybody have develope Oracle BPEL Asynchronous process and Axis2 Asynchronous service.
    Can somebody share their expreince??
    Thanks
    Gopal

    I have looked at BPELCallingAsyncAXIS sample it works fine with Axis 1.3, I was using this sample to start with Axis2.
    But BPELCallingAsyncAXIS sample required otn-jaxrpc.jar libaray which implement ws-addressing and asynchronous service call to BPEL for Axis 1.3.
    And otn-jaxrpc.jar library require all jaxrpc classes specific dependency.
    I am not sure whether this library otn-jaxrpc.jar is production ready and how stable it is
    Axis2 already have ws-addressing and asynchronous webservice implementation so I don't need to rely on otn-jaxrpc.jar
    And I think for future webservice (document style) development we will be using axis2 b'cos of WS-* support , Asynchronous webservice
    Thanks
    Gopal

  • Unable to receive message from an Asynchronous service - BPEL

    Hi
    I had developed a simple asynchronous BPEL Composite that takes in two parameters(firstName, lastName) and returns back fullName.
    I had used a wait activity(for 30 seconds) in the BPEL , after which the two inputs are concatenated, and returned finally. I could test this successfully thru EM, and check the response in the Flow Trace.
    The problem is occuring when I'm using this async service in another BPEL.
    In another BPEL(which is synchronous), i wanted to use this service, so I used an invoke activity to invoke it, and receive activity to get the response.
    But, I'm not getting the final response. Instead, getting the following error after some time(defenitely longer than 30 seconds which is the wait for the async service. Trace given at last)
    I think the problem is with the correlation of the response with the req, but the documentation says correlation is automatically enforced with ws-addressing and no need to correlate seperately. So, I haven't done anything extra for correlation. I tried with both transaction properties of BPEL (required and requiresNew), but none could solve. Please help me in this
    I checked the flow trace, and it is stopping after the async service invocation activity.
    Here is the BPEL Flow Trace
    ReceiveAsyncResp (pending)
    Waiting for the expiry time "9/20/12 4:55 PM".
    Waiting for "callback" from "FullNameAsyncService". Asynchronous callback.
    The transaction was rolled back. The work performed for bpel instance "310002" was rolled back, but the audit trail has been saved for this instance.If this is a sync request, please resubmit the request from the client. If it is an async request, please recover from the recovery console by resubmitting the invoke message.The transaction was rolled back. The work performed for bpel instance "310002" was rolled back, but the audit trail has been saved for this instance.If this is a sync request, please resubmit the request from the client. If it is an async request, please recover from the recovery console by resubmitting the invoke message
    Here is the log message(highlighted for easy readability)
    [2012-09-20T16:53:33.718+05:30] [soa_server1] [NOTIFICATION] [] [oracle.integration.platform.blocks.tenant] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0:2] [WEBSERVICE_PORT.name: BPELProcessForAsyncUsage_pt] [APP: soa-infra] [composite_name: UsingAsyncService] [J2EE_MODULE.name: fabric] [component_instance_id: 310002] [component_name: BPELProcessForAsyncUsage] [J2EE_APP.name: soa-infra] [WEBSERVICE.name: bpelprocessforasyncusage_client_ep] [TARGET: /Farm_soa_domain/soa_domain/soa_server1/soa-infra] [TARGET_TYPE: oracle_soainfra] NM or Event does not contain property, apps.context.header or fabric.enterpriseId
    [2012-09-20T16:54:19.453+05:30] [soa_server1] [ERROR] [] [oracle.soa.bpel.engine.delivery] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0:2] [WEBSERVICE_PORT.name: BPELProcessForAsyncUsage_pt] [APP: soa-infra] [composite_name: UsingAsyncService] [J2EE_MODULE.name: fabric] [J2EE_APP.name: soa-infra] [WEBSERVICE.name: bpelprocessforasyncusage_client_ep] [TARGET: /Farm_soa_domain/soa_domain/soa_server1/soa-infra] [TARGET_TYPE: oracle_soainfra] No response found for the reply for conversation id urn:9B8F42F0031511E2BFF01541EF21AC0F
    [2012-09-20T16:54:19.812+05:30] [soa_server1] [NOTIFICATION] [] [oracle.wsm.agent.WSMAgent] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0:2] [WEBSERVICE_PORT.name: BPELProcessForAsyncUsage_pt] [APP: soa-infra] [composite_name: UsingAsyncService] [J2EE_MODULE.name: fabric] [J2EE_APP.name: soa-infra] [WEBSERVICE.name: bpelprocessforasyncusage_client_ep] [TARGET: /Farm_soa_domain/soa_domain/soa_server1/soa-infra] [TARGET_TYPE: oracle_soainfra] Message Type is normalized, exiting agent.processFault()
    [2012-09-20T16:54:19.812+05:30] [soa_server1] [NOTIFICATION] [] [oracle.wsm.agent.WSMAgent] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0:2] [WEBSERVICE_PORT.name: BPELProcessForAsyncUsage_pt] [APP: soa-infra] [composite_name: UsingAsyncService] [J2EE_MODULE.name: fabric] [J2EE_APP.name: soa-infra] [WEBSERVICE.name: bpelprocessforasyncusage_client_ep] [TARGET: /Farm_soa_domain/soa_domain/soa_server1/soa-infra] [TARGET_TYPE: oracle_soainfra] Message Type is normalized, exiting agent.processFault()
    [2012-09-20T16:54:19.812+05:30] [soa_server1] [NOTIFICATION] [] [oracle.integration.platform.blocks.tenant] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0:2] [WEBSERVICE_PORT.name: BPELProcessForAsyncUsage_pt] [APP: soa-infra] [composite_name: UsingAsyncService] [J2EE_MODULE.name: fabric] [J2EE_APP.name: soa-infra] [WEBSERVICE.name: bpelprocessforasyncusage_client_ep] [TARGET: /Farm_soa_domain/soa_domain/soa_server1/soa-infra] [TARGET_TYPE: oracle_soainfra] NM or Event does not contain property, apps.context.header or fabric.enterpriseId
    [2012-09-20T16:54:20.312+05:30] [soa_server1] [ERROR] [OWS-04086] [oracle.webservices.service] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0:2] [APP: soa-infra] [composite_name: UsingAsyncService] [TARGET: /Farm_soa_domain/soa_domain/soa_server1/soa-infra] [TARGET_TYPE: oracle_soainfra] javax.xml.rpc.soap.SOAPFaultException: *Waiting for response has timed out. The conversation id is null. Please check the process instance for detail.[[*
         at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.generateSoapFaultException(WebServiceEntryBindingComponent.java:1193)
         at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.processIncomingMessage(WebServiceEntryBindingComponent.java:971)
         at oracle.integration.platform.blocks.soap.FabricProvider.processMessage(FabricProvider.java:113)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:1187)
         at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:1112)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:581)
    [2012-09-20T16:54:20.421+05:30] [soa_server1] [ERROR] [OWS-04115] [oracle.webservices.service] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0:2] [APP: soa-infra] [composite_name: UsingAsyncService] [TARGET: /Farm_soa_domain/soa_domain/soa_server1/soa-infra] [TARGET_TYPE: oracle_soainfra] An error occurred for port: FabricProvider: javax.xml.rpc.soap.SOAPFaultException: Waiting for response has timed out. The conversation id is null. Please check the process instance for detail..
    [2012-09-20T16:54:20.500+05:30] [AdminServer] [ERROR] [] [oracle.webservices.jaxws] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: weblogic] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0] [APP: em] [TARGET: /Farm_soa_domain/soa_domain/AdminServer/em] [TARGET_TYPE: j2ee_application] Error while invoking endpoint "http://ravi:8001/soa-infra/services/Partition4MrPai/UsingAsyncService/bpelprocessforasyncusage_client_ep" from client; Security Subject: Administrators
    [2012-09-20T16:54:20.531+05:30] [AdminServer] [NOTIFICATION] [] [oracle.sysman.emSDK.webservices.wsdlapi.dispatch.DispatchUtil] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: weblogic] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0] [APP: em] [TARGET: /Farm_soa_domain/soa_domain/AdminServer/em] [TARGET_TYPE: j2ee_application] Dispatch.invoke failed.Exception stack trace written to trace file.
    [2012-09-20T16:54:20.578+05:30] [AdminServer] [ERROR] [EM-00453] [oracle.sysman.emas.model.wsmgt.WSTestModel] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: weblogic] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0] [APP: em] [TARGET: /Farm_soa_domain/soa_domain/AdminServer/em] [TARGET_TYPE: j2ee_application] Failed to invoke operation
    [2012-09-20T16:54:20.578+05:30] [AdminServer] [ERROR] [EM-00453] [oracle.sysman.emas.view.wsmgt.WSView] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: weblogic] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0] [APP: em] [TARGET: /Farm_soa_domain/soa_domain/AdminServer/em] [TARGET_TYPE: j2ee_application] Failed to invoke operation

    RaviKiran,
    I agree that the explanation oracle provided in the attach link, is a bit confusing. The main goal there is to describe the behavior of processes, when there is a need to combine, or split the transactions within those processes (or in some cases the processes themselves).
    The thing is - The default transaction for a synchronous process is requiresNew. That was until version 11.1.1.6. On this last version, you are asking to enter a Transaction parameter when creating a new synchronous bpel process. The default value being prompt is required and that's what causing the problem – You automatically accept the default.
    The assumption is, that developing bpel processes, should come with understanding of all those behaviors.
    The problem for my understanding is that some of those behaviors were not so cleared until now.
    Arik

  • BPEL Callback issue in Asynchronous service

    Hi,
    I’m sporadically getting Callback service issue with Asynchronous BPEL service. (SOA version is 11.1.14)
    Appreciate inputs to resolve it.
    The service is working as expected in most cases and is able to make a callback to the parent service, but random few instances give error – “Unable to access endpoint”
    <remoteFault xmlns="http://schemas.oracle.com/bpel/extension">
    <part name="summary">
    <summary>
    oracle.fabric.common.FabricInvocationException: Unable to access the following endpoint(s): https://xxxxx.com:14002/soa-infra/services/default/POServices!1.0*soa_2c3cea4d-8791-453c-aed1-0569a86fa268/WorkFlowSvc%23POProcess/WorkFlowSvc
    </summary>
    The endpoint URI opens up in browser, so endpoint exists; and as mentioned above, many instances have completed successfully too.
    The service continues to be in running state and hence the parent process also remains in running state, unlike in success case when both get completed..
    Now, one observation is that the binding port and endpoint location given in code is http uri; not https
    So not sure why the deployed service is pointing to https uri for callback to parent service.
    In success cases, I’m not able to see the endpoint uri for callback, only the message is seen.
    So I’m not able to confirm if it uses the same https uri when it completes successfully..
    -     Could the issue be related to https access/ owsm policy?
    -     How to check the endpoint point uri for async/ callback service in success case? The SOA logs don’t indicate it either, except in error cases (log level is development/ Trace32 fine)

    Hi,
    FabricInvocationException exception mostly occurs when process is trying to connect WS/Partnerlink service which is not accesible.
    I fixed this issue,
    1. After setting external WS certificate(Keystore) information in my weblogic server.
    2. I have made my weblogic url as public, after which wsdl url is accessible to my destination service.
    Hope this would help in fixing your issue.
    Regards,
    Ajay

  • Ws-addressing, callbacks, asynchronous services

    Do callbacks in BEA 9.2.2 look in the SOAP header at the replyTo element to see where to callback to? If not what exactly is it looking at to know where to callback to?
    Also, if not, does a web service programmed using asynchronous request-response use the replyTo element in the SOAP header to know where to callback to?
    Thanks,
    Brittany

    Hi amo,
    I thank you for your reply, but correlation was not the problem for me. I have been trying "109.CorrelationSets" example and it worked fine: it doesn't use WS-Addressing for correlation but I have observed (through a TCP monitor) that it still uses WS-Addressing for the "ReplyTo" address. So (once again):
    Is there some way of receiving callbacks without the need of WS-Addressing?
    Can I "hard wire" the return address to P1 in the second BPEL process (P2)?
    Say P1 is initiated through operation "op1" in port type "pt1". Is it possible to receive the asynchronous callback from P2 in other operation (say "op2") in the same port type (pt1)?
    Best regards and many thanks in advance,
    Manuel

  • Implementing synchronous request/response for an asynchronous service (JMS)

    Hi,
              <br>I've to consume soap/jms service from an external application.
              <br>The requirement is to consume it synchronous, meaning, the thread should wait for response.
              <br>
              I.e :
              <p>
              <i>void service(){
              <br> String id = generateCorrelationID();
              <br> Message msg = createRequest(id,...);
              <br> // send the message to the request queue
              <br> sendMesageToRequestQueue(msg);
              <br> Message responseMsg = null;
              <br> // search for the response, if is not found suspend the thread, then search again ...
              <br> do {
              <br> responseMsg = searchMessageInResponseQueue(id);
              <br> if(responseMsg == null) {
              <br> <Thread>.sleep(xxx)
              <br> }
              <br> } while (<messageIsNotFound>)
              <br> }</i>
              <p>
              <br>my application is J2EE 1.3.
              <br>Is it reasonable? am I going to face with deadlocks? locking issues? ...
              <p>
              Thanks,

    Assuming synchronous receipt is absolutely necessary, I would rather use JMS synchronous call with timeout on QueueReceiver to receive message rather than spinning in a loop.
              receive(long timeout)

  • System ack in Asynchronous service

    Hello friends,
    when i get an Asynchronous call in an inbound proxy through XI,i want to trigger
    an system ack to notify the message has reached the consumer,can any one provide
    a sample code to do this.
    thanx
    kaushik

    Hi Sanju,
    Thank you so much for responding. The user was actually created new in the workflow and there were some missing authorisations. The Basis team fixed the authorisation and the issue is now resolved.
    Really appreciate the help.

  • OSB -How to communicate with a Asynchronous SOAP Service using OSB

    Hi,
    I am new to OSB and I need some help in working with Asynchronous SOAP Service.
    Test Case : OSB --> Proxy Service --> Business Service-->External Service pointing to Asynchronous service WSDL.
    While testing the proxy service using sb console i don't get a response back.
    After some googling I found out the following:
    ->We need to create another Proxy service for listening to callback from that Asynchronous service.
    ->Setting the "WS-replyTo" in header variable while sending the initial request to Business Service(pointing to Asynch wsdl).
    Even after this I am not getting some response.
    Questions :
    1. Can someone let me know in detailed way(end to end) what has to be done to achieve this ?
    2. The Asynch wsdl exposes only one port in the <service> tag ie., which is haing the binding related to "process" operation. ( but not processCallback operation)
    So in this case how do i make my responseProxy service listen to callback port ? When I try to do I just see the process binding only.
    Thanks and Regards,
    Sridhar.

    Vernetto,
    I am not sure about the publish, but yes we can do this without JMS also. Please refer to this post which is quite helpful which routes back to a proxy service.
    http://eelzinga.wordpress.com/2010/03/23/oracle-service-bus-invoke-asynchronous-webservices/
    Regards,
    Sridhar.

  • Creating a Document type Asynchronous Web Services

    Hi,
    I am trying to create a Document typ Asynchronous webservice, following the request/reply pattern. Can anyone point me to some tutorial which explains this, or explain the way the service implementation has to be.
    I want to know how to do the call back or polling faclity in the service implementation.

    Hello,
    The OracleAS Core Web Service stack currently (10.1.3 and earlier) does not have any API/DevModel, to create an Asynch service.
    However you can still use JAX-RPC/SAAJ APIs to manipulate the WS-Addressing information to faciliate the call back. For the implementation itself you will have to choose what fits you the best, for example using JMS under the cover to process the event that will do the call back.
    It is also true that today, we have lot of customers that use Oracle BPEL to create asynchronous services since it is 100% declarative.
    Regards
    Tugdual Grall

  • Implementation of Asynchronous Web Services using JDeveloper

    Various articles and tutorials, which I have read, are talking about asynchronous BPEL processes. These asynch BPEL processes are result of the orchestration of different synch and asynch atomic services (web services in specific). There are even tutorials as part of Oracle SOA Suite and JDeveloper explaining how to consume asynchronous services in a BPEL process. Well and good.
    But unfortunately I haven’t seen any tutorial or article talks about the implementation of asynchronous web services (How to implement an asynchronous service?). All what they talk about is the consumption side of it and the applicability of WS-Addressing or Correlation ID for the consumption of the Service.
    As part of my research, I delved further into the sample BPEL processes comes out with Oracle BPEL Process Manager. For example; I have had a look into the Asynchronous Loan Processor process, where it is orchestrating a Synch Credit Rating Service and three asynch services namely Star Loan, United Loan and American Loans. But as I delved down into those, I realized that these services are simply BPEL Processes where it is implemented as a sequence of Receive, Assign and Invoke activities, where each of the activities does the following.
    Receive -- Receives the request from the client
    Assign -- Does some manipulation on the Input variable and set the output variable
    Invoke -- Invokes the client back (call back)
    These kinds of asynch services are pretty fine to demonstrate theory.
    But if we put ourselves more into practical scenarios, where we invoke a service from some application and the result of that invocation shall happen after some time (minutes to hours) in the form of a callback. In that case we WON’T be able to realize the service simply by a simple BPEL Process, rather we will have to implement as a Web Service with two port types implemented, where one port type is for the request and another one for the callback.
    I do understand these kinds of services can be implemented using JAX-WS.
    Question Here: How I do it using Oracle JDeveloper and Oracle Application Server???
    If anyone have done it, the REAL implementation of ASYNCH Web Services *(NOT BY USING BPEL or BPEL Wrapper)* using JDeveloper to deploy on Oracle Application Server or on Oracle SOA Suite, please post the know-how. If someone else is interested in taking it forward, we can take it further together.
    -Sudheer
    P.S: I am NOT at all interested in theory, as I had enough. Here I don’t want to be Conceptual; rather I am talking about hands-on.

    Hi Sudheer,
    I am not sure if this will help you
    If you take Oracle SOA Suite Order Booking Tutorial and go to Chapter 5 Creating the CreditService Project ( http://download.oracle.com/docs/cd/B31017_01/core.1013/b28937/creditservice.htm ), you learn how to create a synchronous Web service from a WSDL file.
    If you take the wsdl and delete output and fault tags (you can see it below) and follow the steps you'll generate an asynchronous web service.
    The generated Java method will be a void method
    public class ValidateCreditCardImpl {
    public void verifyCC(CreditCard creditCard) {
    Inside this void method you can try to call to a Receive BPEL Activity.
    I hope this will be useful . Regards,
    J
    <definitions targetNamespace="http://www.globalcompany.com/ns/credit"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://www.globalcompany.com/ns/credit"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:types="http://www.globalcompany.com/ns/credit.xsd">
    <types>
    <schema targetNamespace="http://www.globalcompany.com/ns/credit.xsd"
    xmlns="http://www.w3.org/2001/XMLSchema"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
    <complexType name="CreditCard">
    <sequence>
    <element name="ccType" type="string"/>
    <element name="ccNum" type="string"/>
    </sequence>
    </complexType>
    <element name="CreditCard" type="types:CreditCard"/>
    <element name="valid" type="boolean"/>
    <element name="error" type="string"/>
    </schema>
    </types>
    <message name="CreditCardValidationRequestMessage">
    <part name="CreditCard" element="types:CreditCard"/>
    </message>
    <message name="CreditCardValidationResponseMessage">
    <part name="valid" element="types:valid"/>
    </message>
    <message name="CreditCardValidationFaultMessage">
    <part name="error" element="types:error"/>
    </message>
    <portType name="ValidateCreditCard">
    <operation name="VerifyCC">
    <input message="tns:CreditCardValidationRequestMessage"
    name="CreditCardInfo"/>
    </operation>
    </portType>
    <binding name="ValidateCreditCardSoapHttp" type="tns:ValidateCreditCard">
    <soap:binding style="document"
    transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="VerifyCC">
    <soap:operation soapAction="http://www.globalcompany.com/ns/credit/VerifyCC"/>
    <input name="CreditCardInfo">
    <soap:body use="literal" parts="CreditCard"/>
    </input>
    </operation>
    </binding>
    <service name="CreditService">
    <port name="ValidateCreditCardServiceSoapHttp"
    binding="tns:ValidateCreditCardSoapHttp">
    <soap:address location="http://localhost:8888/CreditService"/>
    </port>
    </service>
    </definitions>
    Edited by: user10262974 on 30-mar-2009 16:19

  • Getting Timed out exception while calling a web service

    Hi,
    when i am invoking a web service(using routing), the osb proxy is getting timed out before receiving the response from routed service.
    Also we are not aware of how much response time the routed service will take. so apart from increasing the connection time is there any alternate solution?
    can any one suggest.

    I do not think there is any other way apart from increasing timeouts to call a web service from OSB synchronously which is taking a long time.
    Other alternatives are either to make the service asynchronous delyed request response type, which will mean a change at the backend webservice.
    Ideally synchronous web services are designed to respond within a few seconds and not take minutes for processing. I would say that if the backend web service is taking more than a minute then they need to either tune their service performance better so it responds faster OR change it to an asynchronous service.

  • Synchronous vs Asynchronous

    Hi
    I am getting request timed out exception when invoking an asynchronous BPEL service from a synchrnous BPEL service.
    Am in the learning stage and created a async bpel with a wait of only 5 seconds and invoked it using a synchronous BPEL but still am getting a timedout error
    The invoked async process has completed after waiting for 5 seconfs but even then the sync process is waiting for response
    While invoking the the same asynchronous service using another async bpel service its working fine.
    why am getting this error while a async bpel service is invoked using a sync service
    Please help me understand

    that was helpful, i googled to find few links that would give a detailed understanding but not convincing.
    1. Sync Process with requiresNew starts in a new transaction .
    2. Invoke Async (async.persist, which causes to execute in a new transaction/thread) , the current sync thread/transaction is suspended on its receive activity and the new async thread starts
    3.When the async process is done, the call back(basically a invoke activity) invokes the caller
    What if sync process config is set to requires, since there is no transaction the BPEL service engine always starts a new transaction right?

  • How to develop Ping Service in Oracle Service Bus

    Hi all,
    I want to develop a ping service in OSB which will ping all the End-point URLs and Databases ( i.e It will do the health check of the end point URLs ) .
    when it is found any End Point URL is not reachable it should shutdown all the Osb Projects(or Proxy's) which is using the End-point URL and when ever the
    End-point URL is up it should Bring the Osb Project( or proxy) up to get the requests .
    I want to implement this for Asynchronous services or JMS services.
    Can we shutdown any Proxy or OSB project like BPEL process ??
    Thanks
    Phani

    I want to implement this for Asynchronous services or JMS services. For jms transport, instead of disabling the proxy you can make a java callout to pause the queue for consumption. This should a very small piece of java code using jmx api to pause the consumption.. So instead of designing a 'ping' service, what you can do is when an error occurs on the route node, do the following in the route error handler -
    - Configure an 'alert' action to notify to the support about the issue, This could be done in different ways depending on how your osb is integrated to the problem management system.
    - Pause the queue for consumption using the java callout.
    Support can manually come and resume the consumption on the queue after the issue is fixed.

Maybe you are looking for