Force Human Intervention from BPEL catch all

Hello! I am fairly new to SOA and ....
I have a BPEL with a catch all and I would like to force the BPEL process to go into a human Intervention ( restartable ) state when this is hit. I have been looking at fault policies but the seem to only take affect when you inoke another service etc. They do work and set the process to humant intervention but when I use the Catch all etc. form inside the BPEL I cannot find how to force the BPEL to a human intervention state.
What I need to do is that anytime the BPEL process fails to be able to restart it.
Thanks for any help.

Ok, so in this case the service call succeeded but the data caused a problem later.
In this case I would try and make the processing logic able to gracefully handle the lack of data but I understand the use case now.
Unfortunately in order to implement this it will be somewhat of a workaround.
You could move all of your logic into a subprocess that throws a fault to the main process from its catch all. In the main process you could then use a fault policy to make the entire sub-process retryable.

Similar Messages

  • BPEL catch all block doesn't catch fault

    Hi,
    I have a catch all block in my BPEL process. One instance tried to write to the Oracle database without success throwing a fault which wasn't taken by BPEL's catch all. I see an error on invoke but it does not go to catch all block.
    Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'merge' failed due to: DBWriteInteractionSpec Execute Failed Exception. merge failed. Descriptor name: [writeCountry.Country]. Caused by java.sql.SQLRecoverableException: No more data to read from socket. Please see the logs for the full DBAdapter logging output prior to this exception. This exception is considered retriable, likely due to a communication failure. Because the global transaction is rolling back the invoke must be retried in a new transaction, restarting from the place of the last transaction commit. To classify it as non-retriable instead add property nonRetriableErrorCodes with value "17410" to your deployment descriptor (i.e. weblogic-ra.xml). ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
    Global retry rollback fault thrown.
    The current JTA transaction is aborting due to an user rollback fault being thrown. The upstream component should retry in a new JTA transaction upon catching this fault.
    This exception was caused by a global retry fault being thrown from downstream component. The user had directed the BPEL engine to roll back the current JTA transaction and retry within new JTA transactions for the specified number of times and retry interval.
    There is no action recommended.
    Ah, I have one more question, I have a BPEL process wich write to the database to the table X. Some time ago i extended the table X and add one more column. Why does BPEL lost all data in dbadapter and does not sygnalize any error when invoked adapter? Usually when I drop or alter table i get an error message. This time I see that the transformation which was before invoke to dbadapter was done correctly but I can see no data in invoke which should be written
    All environment is on 11.1.1.6, BPEL 2.0
    Edited by: 863909 on 2012-08-29 01:05

    Aye. My catch all block is defined for a parent scope. Just some arrors are not catch by catch all block (the same as for OutOfMemoryError for java - which will never be catched). I just wonder, because my red invoke activity in the EM sygnalizes error and throw error message but catch all block does not get it. Process stoped on error invoke and not go into catch all.
    Change table aspect. I don't have a problem, because i deleted old and implemented new adapter. It works. I just wonder why when I deleted an atribute (column) from DB I got en error and process stops, but when I extended a table, my process were runing to the end and was marked as finished completely. Something is wrong here, because adapter didnt write all data it should write. Process were going and was finished without throwing an error.
    Edited by: 863909 on 2012-08-29 04:14

  • Mail 4.5 not retrieving catch-all mail from Pop Server.

    I use email fowarding for a domain (hosted at Godaddy) to forward to my verizon email account. For example: [email protected], [email protected], and [email protected] are forwarded to [email protected]  The Mail 4.5 client on my MacBook Pro (OSX 10.6.8) retrieves all this forwarded email correctly from the Verizon Pop3 server.
    I also have one of the domain email aliases setup as a catch-all account. For example [email protected] is configured as the catch all. Mail addressed to [email protected] is also retrieved from the Pop3 server correctly.
    But any mail directed to the catch-all account because the email address is invalid such as [email protected] is not retrieved by Mail 4.5 client.
    The 'catch-all' email is being forwarded correctly to my Verizon Pop server. If I log in to Verizon Webmail I can see the forwarded 'catch-all' emails in the Webmail Inbox. Also if I use Outlook 2010 on my PC to retrieve my Pop mail, it correctly brings down the 'catch-all' email.
    It certainly appears like something internal to Apple Mail is filtering the 'catch-all' email and not retrieving it from the Pop3 Server.
    If you can understand what I'm trying to report - can you help me figure out what is wrong?

    I now do want to catch all email as it has become my lives work to report spam.
    So I figured out an easier way to catch all email using simply the serveradmin command-line tool (this only takes email that would otherwise bounce):
    sudo serveradmin settings mail:imap:lmtp_luser_relay_enabled = yes
    sudo serveradmin settings mail:imap:lmtp_luser_relay = catchallusername
    sudo postfix reload

  • Can error handling framework use fault policies and BPEL catch blocks

    As part of an integrated customer solution that makes substantial use of SOA Suite (including OSB, BPEL, Mediator, etc) we are in the process of designing an “Error Hospital” subsystem to expose a web service API specifically for BPEL services and/or the OSB layer to call whenever they encounter an exception which they cannot handle so that the appropriate user is notified of the error (via email) and the error is recorded (in an appropriate common fault format, with error codes elaborated into more meaningful descriptions, etc) within OEM, immediately prior to returning the exception to the caller.
    The problem we have experienced in our design is as follows:
    •     We have an error handling service to be called, inside the BPEL catch blocks, when an error occurs to notify the appropriate user, via email, that an error has occurred;
    •     We also use the error handling XML fault-policies so that we can recover from an error using OEM (via human intervention);
    •     The error service needs to be called before the process is suspended (waiting for human intervention) so the email notification and error message formatting occurs BEFORE the recovery action. Unfortunately the fault policies trigger BEFORE the error handler is able to transform the error into the appropriate format and notify the user so the error recorded is not the reformatted one and the user is never notified.
    The key question is how can a BPEL, upon catching an exception, invoke the error handling service and AFTER that send the error to OEM (and have the process suspended).
    It seems the two mechanisms "cannot play nicely together"

    As part of an integrated customer solution that makes substantial use of SOA Suite (including OSB, BPEL, Mediator, etc) we are in the process of designing an “Error Hospital” subsystem to expose a web service API specifically for BPEL services and/or the OSB layer to call whenever they encounter an exception which they cannot handle so that the appropriate user is notified of the error (via email) and the error is recorded (in an appropriate common fault format, with error codes elaborated into more meaningful descriptions, etc) within OEM, immediately prior to returning the exception to the caller.
    The problem we have experienced in our design is as follows:
    •     We have an error handling service to be called, inside the BPEL catch blocks, when an error occurs to notify the appropriate user, via email, that an error has occurred;
    •     We also use the error handling XML fault-policies so that we can recover from an error using OEM (via human intervention);
    •     The error service needs to be called before the process is suspended (waiting for human intervention) so the email notification and error message formatting occurs BEFORE the recovery action. Unfortunately the fault policies trigger BEFORE the error handler is able to transform the error into the appropriate format and notify the user so the error recorded is not the reformatted one and the user is never notified.
    The key question is how can a BPEL, upon catching an exception, invoke the error handling service and AFTER that send the error to OEM (and have the process suspended).
    It seems the two mechanisms "cannot play nicely together"

  • Unable to deploy BPM projects with human tasks from BPC

    I’m trying to edit and deploy a BPM process from Business Process Composer (web based tool). To do it, I followed the steps below:
    1.     I created I project in JDeveloper
    2.     I created the Human task from using the “Auto-generate task form” option
    3.     I converted it to a template
    4.     I published it to BPM MDS
    5.     On Business Process Composer I created I new project based on my published template
    6.     And I finally I deployed it with no errors.
    When I ran the BPM it creates I human task but I’m not able to access its form on Business Process Workspace.
    On Business Process Workspace I can see the task created by my BPM process, but when I click on it to access its form I get a 404 message (message below).
    Error 404--Not Found
    From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
    10.4.5 404 Not Found
    The server has not found anything matching the Request-URI. No indication is given of whether the condition is temporary or permanent.
    If the server does not wish to make this information available to the client, the status code 403 (Forbidden) can be used instead. The 410 (Gone) status code SHOULD be used if the server knows, through some internally configurable mechanism, that an old resource is permanently unavailable and has no forwarding address.
    I think this error occur because my Task form project was not deployed. To fix it I undeployed all the applications and then I deployed the BPM application with all its tasks forms from JDeveloper. It worked fine (I can actually access the task form on Business Process Workspace), but now I’m not able to edit the BPM process on Business Process Composer anymore.
    Then I finally repeated the steps 3 to 6 on top of this post in order to make the BMP process editable on Business Process Workspace but this time I receive the error at the end of this post taken from server log.
    No matters if I publish the project on MDS BMP repository as a template project or as non template project. I always have the same problem.
    So, how can I use a BPM project that contains Human Tasks forms on Business Process Composer?
    I’m using:
    •     JDevelopper: 11.1.1.5
    •     Oracle Soa Suite 11.1.1.5
    Error:
    <Error> <ServletContext-/soa-infra> <AUSDCCMTPRF03> <soa_server1> <[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <daba687c30fc2ae1:5f5821e2:131915bbc92:-8000-000000000001c442> <1312478914395> <BEA-000000> <Error during deployment
    oracle.fabric.common.FabricException: Deployment Failed: Error occurred during deployment of component: AssignVendorETATask to service engine: implementation.workflow, for composite: AlertBPMProject: ORABPEL-30123
    Error while deploying task metadata.
    The task namespace http://xmlns.oracle.com/AlertBPMApplication/AlertBPMProject/AssignVendorETATask is already used as a template namespace.
    Check if the project you are deploying now is a template project. Please avoid deploying template projects. Use a different namespace for the task definition to fix the problem or set the suffixNamespace flag to true.
    : Error while deploying task metadata.
    The task namespace http://xmlns.oracle.com/AlertBPMApplication/AlertBPMProject/AssignVendorETATask is already used as a template namespace.
    Check if the project you are deploying now is a template project. Please avoid deploying template projects. Use a different namespace for the task definition to fix the problem or set the suffixNamespace flag to true.
         at oracle.integration.platform.blocks.deploy.StandaloneCompositeDeploymentCoordinatorImpl.coordinateCompositeDeployment(StandaloneCompositeDeploymentCoordinatorImpl.java:62)
         at oracle.integration.platform.blocks.deploy.servlet.BaseDeployProcessor.deployNewComposite(BaseDeployProcessor.java:378)
         at oracle.integration.platform.blocks.deploy.servlet.BaseDeployProcessor.deploySARs(BaseDeployProcessor.java:226)
    Caused By: oracle.fabric.common.FabricException: Error occurred during deployment of component: AssignVendorETATask to service engine: implementation.workflow, for composite: AlertBPMProject: ORABPEL-30123
    Error while deploying task metadata.
    The task namespace http://xmlns.oracle.com/AlertBPMApplication/AlertBPMProject/AssignVendorETATask is already used as a template namespace.
    Check if the project you are deploying now is a template project. Please avoid deploying template projects. Use a different namespace for the task definition to fix the problem or set the suffixNamespace flag to true.
    : Error while deploying task metadata.
    The task namespace http://xmlns.oracle.com/AlertBPMApplication/AlertBPMProject/AssignVendorETATask is already used as a template namespace.
    Check if the project you are deploying now is a template project. Please avoid deploying template projects. Use a different namespace for the task definition to fix the problem or set the suffixNamespace flag to true.
         at oracle.integration.platform.blocks.deploy.CompositeDeploymentConnection.deployComponents(CompositeDeploymentConnection.java:244)
         at oracle.integration.platform.blocks.deploy.CompositeDeploymentConnection.deploy(CompositeDeploymentConnection.java:93)
    Caused By: oracle.fabric.common.FabricDeploymentException: ORABPEL-30123
    Error while deploying task metadata.
    The task namespace http://xmlns.oracle.com/AlertBPMApplication/AlertBPMProject/AssignVendorETATask is already used as a template namespace.
    Check if the project you are deploying now is a template project. Please avoid deploying template projects. Use a different namespace for the task definition to fix the problem or set the suffixNamespace flag to true.
    : Error while deploying task metadata.
    The task namespace http://xmlns.oracle.com/AlertBPMApplication/AlertBPMProject/AssignVendorETATask is already used as a template namespace.
    Check if the project you are deploying now is a template project. Please avoid deploying template projects. Use a different namespace for the task definition to fix the problem or set the suffixNamespace flag to true.
    {rootCauses=[]}
         at oracle.bpel.services.workflow.fabric.WorkflowServiceEngine.deploy(WorkflowServiceEngine.java:908)
         at oracle.bpel.services.workflow.fabric.WorkflowServiceEngine.deploy(WorkflowServiceEngine.java:368)
         at oracle.integration.platform.blocks.deploy.CompositeDeploymentConnection.deployComponents(CompositeDeploymentConnection.java:239)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Caused By: ORABPEL-30123
    Error while deploying task metadata.
    The task namespace http://xmlns.oracle.com/AlertBPMApplication/AlertBPMProject/AssignVendorETATask is already used as a template namespace.
    Check if the project you are deploying now is a template project. Please avoid deploying template projects. Use a different namespace for the task definition to fix the problem or set the suffixNamespace flag to true.

    I came across the same issue, and now resolved it like this.
    Firstly, you shouldn't deploy QuoteProcessLab with other UILabs like ApproveDealUILab and so on. So, if you already did it, then go to Weblogic EM and undeploy it.
    Secondly, you should deploy each of UILab separately as standalone application. So, deploy EnterQuiteUILab, BUsinessPracticesUILab, and so on each. These will run independently behind and when your project created based on template in the Composer runs, it will link each of these on human task.
    Thirdly, publish you QuoteProcessLab. And follow the book about how to create a project based on template in the Composer.
    Just one thing you should be careful with is, when you do auto-generation for human task, it sometimes doesn't work fully, unfinished halfway through. So, make sure that the icon 'go to existing business form taskflow' in .task file takes you to the human taskflow.
    If it fails, do another auto-generation. Sometimes DataBindings.cpx can get corrupted by JDev, but let's not go too far for now.
    Mostly, it will work.
    Sung

  • Problem in calling order import concurrent program from BPEL

    Hi all,
    Iam doing a sales order creation in oracle apps using Apps Adapter.
    I have successfully inserted the order into the interface tables using an Apps adapter.
    Now I need to run Order Import program from BPEL to move the data from interface tables to the base tables for which i use another Apps Adapter.
    When I invoke the OEIMP concurrent program from BPEL ,request id is returned.But the concurrent program fails showing incomplete parameters.
    But it works when I invoke it from the front end in oracle apps.
    I think the problem lies in passing the inputs to the concurrent program from the BPEL.
    Any help to solve the issue will be appreciated.
    Thanks,
    goutam

    Previously, I was passing the values to the concurrent program variables through ASSIGN component,which resulted in some namespace issues.Then I replaced it with TRANSFORM component.
    Also,First I assigned the values to the concurrent program variables as 'Vision Operations'(operating_unit), 'Online'(order_source) ,No (validate_only), No (validate_desc_flex) which are mandatory and just left non mandatory variables without assigning values.
    I changed those values as *'204','0','N','N'*. And also set non mandatory variables value as EMPTY.
    After doing all these I found the concurrent program catches all the parameter values correctly, and the records got imported from interface tables to the base tables.Thus the sales order got created successfully.
    Thanks,
    goutam

  • Fault information from bpel process when exception happens

    How to extract all the fault information from bpel process when exception happens?
    Are there any other methods other than "ora:getFaultName(), ora:getFaultAsString()"
    When I use "ora:getFaultName(), ora:getFaultAsString()", I get the below message,so I am wondering whether
    I can get any more information about the exception as mentioned below - "detailed root cause described in the exception message" -> how do I get it?
    Check the detailed root cause described in the exception message text and verify that the XPath query is correct.

    Hi,
    As far as I know, it's not possible to get the exception message with a catch all. You need to catch each exception separately, and the you will be able to get each message.
    Regards
    Gustavo

  • Ora-human-intervention How to assign it defined user

    Hi All,
    I am working on fault handler framework in SOA composite. In fault-policies.xml, there is option to assign it for human intervention if any fault has been occured using below tag
    <Action id="ora-human-intervention">
    <humanIntervention/>
    </Action>
    But here there is no option, to which user you want to assign it. By default it is assigning to weblogic user(Administrator). Is there any way to assign it on run time. Means for some exceptions i want to assign it to user A and for some other i want to assign it to User B. Fault handler user names will be available in My bepl process.
    Please help
    Regards,
    Sunil

    Hi:
    I think that ora-human-intervention is at the Enterprise Manager level.
    So even if u want to assign it to an specific user, u will still need to enter to the EM, and manage the manual recovery from there. IS that what u r looking for?
    Or u are expecting a user to enter to the Worklist and manage this type of errors from there?
    thx
    best

  • Calling Shell Script from BPEL

    I hav a requirement of calling a shell script (.sh) from BPEL. Can anybody help me out....how can i achieve this?

    For embedding Java:
    http://download.oracle.com/docs/cd/B31017_01/integrate.1013/b28981/java.htm#sthref1282
    For Java:
    http://forum.java.sun.com/thread.jspa?threadID=635568&messageID=3700440
    try
    String execString = "ls -all"
    Runtime rt = Runtime.getRuntime();
    Process proc = rt.exec(execString);
    /* handle you process from here..
    outputstreams, inputStreams and such
    catch (Exception e)
    e.printStackTrace()
    }

  • BPEL deleted all emails form Inbox

    Hello
    I configured Actionable Email for BPEL Human workflow. I gave all my email server details inside the ns_emails.xml file. ( Under <IncomingServerSettings> )
    But upon restart of BPEL server I saw that my email Inbox folder became empty and I believe BPEL server's email listener have read all my emails and deleted them from Inbox folder.
    Well good news is its reading but bad part is I lost my all email :(
    Is there a way we can tell BPEL server not to delete the incoming emails while listening on particular email account ? I can see that there are some options inside the <IncomingServerSettings>.
    Like , <PostReadOperation>
    <MarkAsRead/>
    </PostReadOperation>
    What is the significance of PostReadOperation ? What could be the possible values ? I had hard to find ANY documentation on this.
    Thanks
    /Mishit

    Yeah you are correct, I am using POP3. I have heard about IMAP protocol too but I was not aware of the difference between POP3 and IMAP.
    So this means with IMAP BPEL server doesn't delete the emails from Inbox and so at the same time we should be able to see those emails through any client application.
    Thanks for your reply.
    /Mishit

  • Error while invoking the WSDL service of EBS from BPEL process

    Hi Team,
    when we are calling webservice client to call WSDL service which is published in Oracle EBS integrated SOA Gateway from BPEL process.
    After invoking, we are getting the below error
    <bpelFault><faultType>0</faultType><remoteFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>FND_SOA_SERVICE_EXECUTION_ERR:oracle.apps.fnd.soa.util.SOAException: ServiceExecutionError: Error while executing the service Exception returned from JCA Service Runtime. Exception returned from JCA Service Runtime. null :Please see service monitor logs for full error trace</summary></part><part name="detail"><detail>oracle.j2ee.ws.client.jaxws.JRFSOAPFaultException: Client received SOAP Fault from server : FND_SOA_SERVICE_EXECUTION_ERR:oracle.apps.fnd.soa.util.SOAException: ServiceExecutionError: Error while executing the service Exception returned from JCA Service Runtime. Exception returned from JCA Service Runtime. null :Please see service monitor logs for full error trace</detail></part><part name="code"><code>{http://schemas.xmlsoap.org/soap/envelope/}Server</code></part></remoteFault></bpelFault>
    API Name : OE_ORDER_PUB.PROCESS_ORDER
    could you please let me know the exact problem and provide the solution.
    Thanks
    Phani Ch.

    Hi Phani,
    Are you able to reproduce issue as below:
    1. Login to Application as sysadmin.
    2. Navigate to Intergrated SOA Gateway > Integration Repository.
    3. Click on search on right hand side of the page.
    4. In the Internal Name type "FND_USER_PKG" and click Go.
    5. Click on the User link.
    6. Under the "Web Service - SOA Provider", click in the "View WSDL". Copy the complete URL "http://test:8003/webservices/SOAProvider/plsql/fnd_user_pkg/?wsdl"
    7. Open the soapUI.
    8. Click File > new soapUI Project.
    9. Test the web service.
    If yes,
    I think you might be need to execute a patch:
    solution:
    To implement the solution, please execute the following steps:
    1. Download and review the readme and pre-requisites for iAS Patch 18855074.
    Note: Above Merge Label Request (MLR) is build for EBS 12.1.3 having OC4J 10.1.3.5.
    2. Enable the profile option "EBS Adapter for BPEL, Function Security Enabled".
    a. Login as SYSADMIN user and Navigate to System >Profile  and Search for "EBS Adapter for BPEL, Function Security Enabled" (Internal name :EBS_ADAPTER_FUNCTION_SEC_ENABLED)
    b. Set the Value to 'Y' at SITE level . This means  function security feature is enabled and all API calls for PL/SQL APIs, Oracle e-Commerce Gateway, and concurrent programs will be checked for user security before they are invoked.
    3. Retest the issue by Generating and Deploying the required package.
    4. Migrate the solution as appropriate to other environments.
    Thanks
    Ranjan

  • Error while invoking web service from BPEL 11g

    Hello All,
    I am creating a webservice using java.
    I created service using java and deployed it on the SOA server 11g.
    I am able to test it from the weblogic console.
    When i am trying to invoke it from BPEL, i am getting the remote fault:
    Error Message: {http://schemas.oracle.com/bpel/extension}remoteFault
    Fault ID default/TestADWebServiceBPEL!1.0soa_d7638bee-192e-419e-9b1a-2f356c13712c/TestADServiceBPEL/80015-BpInv0-BpSeq0.3-3*
    Fault Time Sep 28, 2010 1:31:01 PM
    Non Recoverable System Fault :
    <bpelFault><faultType>0</faultType><remoteFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>oracle.fabric.common.FabricInvocationException: Unable to access the following endpoint(s): http://10.6.61.93:7001/TestApplication-ADUserManagement-context-root/ActiveDirectoryUserPort</summary></part><part name="detail"><detail>Unable to access the following endpoint(s): http://10.6.61.93:7001/TestApplication-ADUserManagement-context-root/ActiveDirectoryUserPort</detail></part><part name="code"><code>200</code></part></remoteFault></bpelFault>
    Does anyone has any idea, what can be the reason.
    Is it realted to some proxy server settings. Where these settings can be made in the weblogic server.
    Thanks and Regards,
    Saurav Singla

    Hi Suresh & Mukesh,
    Suresh:
    I started the service by going through the following path System Administrator > System Configuration > Service Configuration > Application > <SERVICE_NAME> in system configuration of portal
    Mukesh: Here I don't have any proxy settings.
    Can you please let me know where I'm going wrong.
    Thanx,
    Dheeram

  • 401 Unauthorized:HTTP transport error while calling external WSDL from BPEL

    Hi,
    I have simple BPEL process whic calls siebel WSDL file through partner link.
    I have successfully compiled and deployed BPEL process, when i initiate the Process, instace got errored out at invoke activity.
    Error Goes like this
    "<remoteFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>
    exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException:
    java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 401 Unauthorized</summary>
    </part></remoteFault>"
    Can anybody help on this issue, Could you please give me possible solution.
    Thank youl.

    we have not provided any authentication credentials to XMLSpy, we have just uploaded siebel WSDL file then sent the SOAP request with some customer Id then we have received proper response with all desired customer data.
    In the same way we tried to call same siebel WSDL file from BPEL process throgh partner link. errored instance has created with 401 unauthorised HTTP transport error..
    Do you think is this probem at siebel application side?
    We have deployed our BPEL process to SOA server which is having HTTP port 7777.
    as per my investigation,i found that we have to open port from siebel side (which WSDL file we are calling) which matches with above HTTP port number.
    Do you have any idea on this above clue? Please let us know more details on this.

  • 10g: Invoking a web service asynchronously from BPEL

    Hello,
    I am trying to figure out a good, generic method for making a previously synchronous web service asynchronous and changing the way in which it is invoked from BPEL. I am using SOA Suite 10g (10.1.3.5)
    As I understand, one possible method to achieve this is to use IDeliveryService.post() to deliver the web service's response to the BPEL process. For this route, the standard practice of correlation seems to be to supply a correlation Id when invoking the web service and returning the same correlation id as a part of the web service's response message. However, I want to avoid this since it would mean that all response messages from the web service (10+) would have to be modified to include a correlationId, which is problematic in the special case of this web service. Including a correlationId in the request message is possible, however.
    I have tried the approach of using the conversation Id directly instead of the correlation Id, by reading the value of ora:getConversationId(), passing this to the web service and setting the property CONVERSATION_ID of the response NormalizedMessage to the same value when returning. However, I cannot seem to get this approach right. Is this possible at all?
    An alternative might be to use WS-Addressing, but I do not know if I can make the web service support this - it is written using the EJB WebService-Annotations feature and runs on OC4J as well.
    Do you have any suggestions on how this problem could be resolved?
    Edited by: 901765 on 12.12.2011 06:01

    I have found the following tutorial that implements something similiar to what I am trying to do: http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/odi/10g/10135/odiscenario_bpelcallback/odiscenario_bpelcallback.htm#t3
    Because of this, I am now confident that the conversation IDs can be used to achieve correlation. I have implemented the pattern by performing
    an invoke activity on the web service, passing the result of ora:getConversationId() as part of the message. The conversation Id returned is of UUID-Form.
    After the invoke activity, I have added a pick activity to receive the response message supplied by the web service through IDeliveryService.post(...). I can see that the message is received correctly by loooking at the contents of DLV_MESSAGE. However, the pick activity times out every time (after 10m). Looking at DLV_SUBSCRIPTION reveals that the conversation_id for the pick/receive activity is set to a value of the form bpel://localhost/default/MyBpelProcessName~1.0/7610001-BpInv0-BpSeq2.7-2. As far as I know, this should instead be set to the UUID that ora:getConversationId() returned before performing the invoke activity. What is going wrong here?
    Thanks for your help!

  • Invoking ODI Scenario from BPEL

    Hi,
    I tried invoking a scenario from BPEL. I started the agent before invoking the scenario. However I am getting the following error in the Agent
    java.lang.NullPointerException
    at com.sunopsis.dwg.dbobj.SnpScen.getObjectLst(SnpScen.java)
    at com.sunopsis.dwg.dbobj.SnpScen.getScenarionByCodeAndVersion(SnpScen.java)
    at com.sunopsis.dwg.cmd.DwgCommandScenario.b(DwgCommandScenario.java)
    at com.sunopsis.dwg.cmd.DwgCommandScenario.treatCommand(DwgCommandScenario.java)
    at com.sunopsis.dwg.cmd.DwgCommandBase.prepare(DwgCommandBase.java)
    at com.sunopsis.dwg.cmd.e.t(e.java)
    at com.sunopsis.dwg.cmd.h.y(h.java)
    at com.sunopsis.dwg.cmd.e.run(e.java)
    at java.lang.Thread.run(Thread.java:595)
    java.lang.NullPointerException
    at com.sunopsis.dwg.cmd.DwgCommandScenario.treatCommand(DwgCommandScenario.java)
    at com.sunopsis.dwg.cmd.DwgCommandBase.prepare(DwgCommandBase.java)
    at com.sunopsis.dwg.cmd.e.t(e.java)
    at com.sunopsis.dwg.cmd.h.y(h.java)
    at com.sunopsis.dwg.cmd.e.run(e.java)
    at java.lang.Thread.run(Thread.java:595)
    And i am getting the following error in BPEL Console
    <remoteFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: oracle.j2ee.ws.saaj.ContentTypeException: Not a valid SOAP Content-Type: text/html; charset=iso-8859-1</summary>
    </part></remoteFault>
    I am not able to solve the issue. Request you all to help
    Thanks and Regards.
    Edited by: user10714505 on May 12, 2009 11:06 PM

    Hi,
    Thanks its working now. I am facing another issue. I do not use parameters in my Scenario. Now when i run my scenario i m getting the following error. I think its because i have not assigned anything to the Variable element. I guess its taking null value for Variable element here and cheking if such a variable exists. Have you come accross such an issue? If so, please sugest remedy.
    java.lang.Exception: Specified variable not found in the Repository : null
         at com.sunopsis.dwg.dbobj.SnpSession.a(SnpSession.java)
         at com.sunopsis.dwg.dbobj.SnpSession.y(SnpSession.java)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSessionPreTrt(SnpSession.java)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandScenario.treatCommand(DwgCommandScenario.java)
         at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
         at com.sunopsis.dwg.cmd.e.i(e.java)
         at com.sunopsis.dwg.cmd.h.y(h.java)
         at com.sunopsis.dwg.cmd.e.run(e.java)
         at java.lang.Thread.run(Thread.java:619)
    Edited by: silas.john on May 13, 2009 1:29 AM

Maybe you are looking for

  • How do you share photos from a Mac Book Pro to an iMac?

    How do you share photos from a Mac Book Pro to an Imac?

  • Running RoboHelp 10 and RoboHelp 11 on the same system

    Background Windows 7, 64-bit operating system. Upgraded RoboHelp 10 to RoboHelp 11 this week. Upgraded my RH10 WebHelp Proj project (released with our 2.0 application) to start editing for release with 3.0 application next June . The upgrade did not

  • HT1933 Failure to download a TV episode

    Using iTunes I bought a TV series and the first 8 episodes downloaded successfully using "check for available downloads". Now the latest two episodes will not download using the same process. I go to my "Purchase History" and click on "Report a Probl

  • Start up issue help!

    I have a year old ibook g4. When I try to start it up it gets past the gray screen and then goes to the next page with the loading bar. It then loads very slowly gets to the end and freezes. I have tried reseting the pmu, and nothing. It will not let

  • No volume on youtube & iMac volume controller

    I recently updated to OS X Yosemite 10. 10. 1 Now I don't have sound when adjusting volume controller. I don't have sound watching youtube through Safari. I do however have sound listening to music through iTunes and watching videos through sites suc