Guranteed delivery from OSB to multiple BPEL

Hi, I am looking for architectural solution for a scenario :
I am receiving a JMS message from a queue in foreign domain that needs to be sent to multiple BPEL processes. (SOA Suite 11g)
Suppose one of the BPEL process is using 2 webservices for data enrichment and one of those web-service is down. so I want transaction to rollback and re-tired automatically on defined interval/attempts. therefore BPEL throws an rollback fault in such scenario.
To achieve this, I created a proxy service in OSB for that queue. Now I have 2 solutions:
1. I use for-each in message flow and send message to each business service one by one. (for me business service is ultimately a BPEL process). OR
2. I send message to multiple queue
Here I am not able to figure out if -
- 1st scenario will work for rollback case. it should rollback only the failed BPEL business service not all others got processed successfully. (I don't know how to achieve this and whether its feasible)
- 2nd solution will surely work but I don't want to put additional component unless first solution is not feasible.
Also to call a BPEL whether we should use direct binding or WSDL binding between OSB and SOA Composite? Direct binding is meant to be more efficient but I don't see any benchmark comparison in both approach.

Hello Anu,
you can only split  Purchase Order if user have selected multi warehouse with different location.because there may will be different shipping address or tax configuration.
ex.  if user selected two warehouse in Purchase order then SAP make 2 PO with segment 1 and 2 , original become cancel  with different shipping address.
And if user want to same in Delivery document then how it possible  both address  single document print out.
Thanks
Manvendra

Similar Messages

  • Server name, port from OSB proxy and BPEL processes

    How do I read the server name, port and any other server related information from OSB proxy and BPEL processes?

    http://www.experts-exchange.com/Software/Server_Software/Application_Servers/Java/BEA_WebLogic/Q_24480613.html
    ObjectName service = new ObjectName("com.bea:Name=RuntimeService,Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean");
    InitialContext ctx = new InitialContext();
    MBeanServer server = (MBeanServer)ctx.lookup("java:comp/env/jmx/runtime");
    ObjectName rt = (ObjectName)server.getAttribute(service,"ServerRuntime");
    System.out.println("Server Name : "+server.getAttribute(rt,"Name"));
    System.out.println("Server Address : "+server.getAttribute(rt,"ListenAddress"));
    System.out.println("Server Port : "+server.getAttribute(rt,"ListenPort"));
    ctx.close();
    By the way, it tool 10 seconds on google ...

  • Error while calling a bpel service from OSB

    Hi
    I try to call a BPEL service from OSB 10.3 and use these bpel url's
    ormi://<hostname>:<rmi port>/<domain name>/<process name>
    opmn://<hostname>:<opmn port>/<oc4j instance name>/<domain name>/<process name>
    and I create a static service account with ocj4admin
    when I try to run the BusinessService then I got this error
    WARNING: Exception returned by remote server: {0}
    com.evermind.server.rmi.RMIConnectionException: Disconnected: javax.xml.namespace.QName; local class incompatible: stream classdesc serialVersionUID = -91204487
    54896609940, local class serialVersionUID = -916876369326528164
    at com.evermind.server.rmi.RmiCallQueue.notifyQueuedThreads(RmiCallQueue.java:70)
    at com.evermind.server.rmi.RMIClientConnection.notifyQueuedThreads(RMIClientConnection.java:208)
    at com.evermind.server.rmi.RMIClientConnection.resetState(RMIClientConnection.java:147)
    at com.evermind.server.rmi.RMIConnection.receiveDisconnect(RMIConnection.java:236)
    at com.evermind.server.rmi.RMIClientConnection.receiveDisconnect(RMIClientConnection.java:176)
    at com.evermind.server.rmi.RMIConnection.handleOrmiCommand(RMIConnection.java:208)
    Please help me out.I am using SOA Server 10.1.3.4 with jdk 1.4.
    Regards
    Ayush
    Edited by: Ayush fujitsu on Apr 6, 2010 3:36 AM

    Hi i have followed the following steps which is specified in this thread
    You need to follow below steps...
    add a java parameter to the OSB server. Go to domains\osb_domain\bin folder and edit the setDomainEnv file and add this line to this file. set JAVA_PROPERTIES=-Dplatform.home=%WL_HOME% -Dwls.home=%WLS_HOME% -Dweblogic.home=%WLS_HOME% -Dcom.sun.xml.namespace.QName.useCompatibleSerialVersionUID=1.0
    Step 2 is to replace the bpel jars in the bpel transport ear. Go folder osb_10.3\lib\transports and open bpel10gtransport.ear and replace the following jar files orabpel.jar, orabpel-common.jar , xmlparserv2.jar and oc4jclient.jar with the ones you can find in the soa suite 10.1.3 home.
    But still i am getting the error.
    I am using WLS (10.0).Is it compatible with bpel-10g protocol, because i have already called a sync BPEL process with http protocol and it worked?This thread talks about WLS(9.2)
    Regards
    Ayush

  • Single delivery from multiple Sales Orders

    Can you let me know how to create a Single DN if there are different parts to be shipped if the below satisfies,
    same ship-to-party
    same ship date
    thx,

    Hi Pri,
    To have single delivery from multiple Sales Orders you have 2 waysto do it.
    The prerequisites are,
    A. All sales orders should have same ship to Party
    B. Delivery due dates should be same.
    C. Incoterms should also be same.
    D. Shipping Point should be same.
    Once this is ensured, you can either
    1. Go to Tr. Code VL10A and execute the delivery document creation for the list of sales orders
    Or,
    2. Go to VL01N. Give 1st order no. enter into the overview screen
    Here, go to main menu, Outbound Delivery ---> Collective Processing- Del. Creation
    This will also take u to the same VL10A screen.
    Hope, this is helpful. Award points if found helpful.
    Regards,
    Niketan

  • Format of location of deployed bpel process - to access from osb

    We have oracle 11g Soa suite installed. I deployed a sample BPEL process in the server. I want to call this BPEL from OSB.
    For this, wsdl of the bpel process should have http url specified in "wsdl:service" element
    What is the format of http url for the BPEL process wsdl to specify in wsdl:service-->soap:address location

    If you want to call 11g bpel from osb 10.x you can't use the bpel10g transport. So for as far i know you just use the wsdl of the bpel process and use http transport to call it from osb.
    The wsdl-url of the bpel service you can just find in the 11g console

  • Propogating SAML tokens from OSB to BPEL and the reverse

    Hi
    Is there a way to propogate SAML tokens from OSB to BPEL and vise-versa. There are lots of references on using OWSM policies. Can I achieve passing tokens and asserting without them?
    Thanks
    Suman

    Starting from 11gR1 (11.1.1.3) Release, we have new feature to start transaction. OSB proxy can be configured to start a transaction.Refer to message flow transaction http://download.oracle.com/docs/cd/E14571_01/relnotes.1111/e10132/osb.htm#CJACHEHJ
    So with this feature, all we need a create a proxy say HTTP and enable this feature. OSB will start a transaction before your pipeline is invoked. Let me know if you need clarification.
    Manoj
    Edited by: Manoj Neelapu on Jun 22, 2010 8:39 AM
    Edited by: Manoj Neelapu on Jun 22, 2010 8:39 AM

  • Dynamic Service Invocation from OSB

    Hi,
         I have around 50 services in SOA Suite.  I have to invoke these 50 services dynamically from OSB service based on the input parameters.
         For example, The OSB proxy service will receive the input in the below format
                           <ServiceName>POService</ServiceName>
                          <OperationName>CreatePO</OperationName>
                           <ServiceURL>http://hostA:8011/PO/POService</POService>
                            <Payload>{XML Payload}</Payload>
         Based on the input, it will invoke the  POService using the ServiceURL, OperationName and the XML Payload.
         To implement this, i created proxy based on WSDL for the above message structure. I also created one BS based on Any SOAP.  The proxy will do the below activity
                         1) Extract all the details (url, payload, operation name) from the input
                         2) Replace the XMLpayload with $body
                         3) Use Route action to route it to BS. In the Route Request, i'm doing the below
                                  a) Using Routing Option to Set the URI using <ServiceURL>
                                  b) Using Insert Action setting the OperationName in $outbound/service/operation
    When i tested the service, i'm able to dynamically invoke the target BPEL services whichever has only one operation in the WSDL. But it is failing when i invoke the services which has multiple operation in the wsdl. The request is going to BPEL service and failing with "Operation Unknown" error though i could see in the trace the operation is set correctly in the $outbound
    Pls. let me know if anybody has done this or any idea on what is the issue here
    Thanks!
    Suresh

    $operation is mapped into HTTP SOAPAction header (for SOAP 1.1) in business services. Biz service uses the associated WSDL to do the mapping.
    Hence, if the $operation contains something that is not in the Biz WSDL, the SOAPAction header is not formed, and the backend service cannot figure our the operation.
    The backends that have only one operation, may not check the SOAPAction header, hence those do work.
    You'll have to form SOAPAction HTTP header manually, based on some mapping table that you'll have to create for those services.
    Vlad @ genericparallel.com

  • Multiple BPEL Process Managers in one environment?

    Hi,
    I'm quite new to the Oracle SOA product line, so please be gentle when my question doesn't make sense.
    I’m in the process of designing a new enterprise architecture based on service orientation. I’m looking at the Oracle SOA Suite software to get a better understanding of what things will look like when getting to the actual implementation.
    Some internal projects are moving fast, so I’m trying to get an understanding on how things will work out in the future. One case has my current attention, related to the BPEL Process Manager.
    A 3rd party vender is offering a specific solution which is using or based on the BPEL Process Manager. This solution can be purchased as a black-box. From the perspective of my new architecture I would like to purchase the SOA suite as a whole. New developments will most likely be using the BPEL Process Manager for orchestration. But when purchasing the black-box application, the environment will be extended with an extra BPEL Process Manager. My first thought is to try and incorporate the BPEL processes from the 3rd party vendor onto one single BPEL Process Manager. But I also think two BPEL Process Managers can have advantages.
    I’m not sure how to go forward with this. How should I handle this? Is it common to have multiple BPEL Process Managers in one environment or should I pursue maximum integration and only go for one BPEL Process Manager?

    Hi,
    We have similar situation at my current client site and we are going with two seperate BPEL PM installs for various reasons. One of the main driver in our case is conflicting in timelines of two seperate projects.
    But my suggestion is to go with single enterprise install if that's not breaking the 3rd-party vendor supporting contracts. This has obviously benefits of redecued infrastructure/administrative and other related costs. How many processes does the vendor has as part of their solution? If they are handful you know it doesn't justify having seperate environments.
    On the otherhand having two seperate installs isn't bad either depending on how big or small your SOA service/process orchestration footprint is. We don't have complete handle on the performance/scalability aspects of BPEL PM based on number of processes deployed. But as you can see that may be one of drivers to have redundancy in BPEL PM servers.
    End of the day there is no clear cut answer. If you have funding and resources, go with two seperate instances. But from architectural perspective better to have single install with clustering for better performance/scalability.
    HTH
    Regards,
    Rajesh

  • OSB 10r3 and BPEL business services

    Hi
    I try to call a BPEL service from OSB 10.3 and use these bpel url's
    ormi://XPCND7010XMP.work.local:12403/orabpel/default/mhs_bpel/
    opmn://XPCND7010XMP.work.local:6003/OC4J_SOA/orabpel/default/mhs_bpel/
    mhs_bpel is the name of my BPEL instance
    and I create a static service account with ocj4admin
    everything went well except when I try to run the BS then I got this error
    what can it be . By the way my SoaSuite server is 10.1.3.4
    thanks Edwin
    27-okt-2008 12:09:13 oracle.j2ee.rmi.RMIMessages EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER
    WARNING: Exception returned by remote server: {0}
    com.evermind.server.rmi.RMIConnectionException: Disconnected: javax.xml.namespace.QName; local class incompatible: stream classdesc serialVersionUID = -91204487
    54896609940, local class serialVersionUID = -916876369326528164
    at com.evermind.server.rmi.RmiCallQueue.notifyQueuedThreads(RmiCallQueue.java:70)
    at com.evermind.server.rmi.RMIClientConnection.notifyQueuedThreads(RMIClientConnection.java:208)
    at com.evermind.server.rmi.RMIClientConnection.resetState(RMIClientConnection.java:147)
    at com.evermind.server.rmi.RMIConnection.receiveDisconnect(RMIConnection.java:236)
    at com.evermind.server.rmi.RMIClientConnection.receiveDisconnect(RMIClientConnection.java:176)
    at com.evermind.server.rmi.RMIConnection.handleOrmiCommand(RMIConnection.java:208)

    I know but I want to test if the javax.xml.namespace.QName; local class incompatible problem is solved by changing the jdk.
    There is java library problem between osb and bpel
    it has something to do with the jdk of soa suite 10.1.3.4 ( I use the standard jdk) and jdk1.6 of osb10r3 ( I use the standard jdk) , I tried to use -Dcom.sun.xml.namespace.QName.useCompatibleSerialVersionUID=1.0 parameter. this only changed the error serailuid a little bit.
    But this is the right direction.
    Edited by: biemond on Oct 29, 2008 11:21 AM

  • BPEL async calls OSB which calls BPEL async

    In this scenario, I use the bpel-10g transport with an opmn ULR to call the back-end BPEL process. The bpel-10g transport seems to be the only way to include the callback address. I'm getting an error like this:
    <fault><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: Message transmission failure, response code: 500</summary>
    </part></remoteFault></fault>
    What must be done to correctly connect the back-end async BPEL process from OSB?
    Are there any tricks which must be used to connect the front-end async BPEL process to the OSB as well?
    I'm using OSB 10gR3 and BPEL 10.1.3.4.

    Hi ,
    Please provide us solution to resolve this issue..
    Any Updates or clues ...............

  • HTTP connection from OSB web service to external system via a Proxy Server

    Dear experts,
    May I know has anyone tried to use HTTP protocol to send a request from OSB web service to external system via a proxy server? Heard that we need to establish some sort of tunnel (socket) to talk to Proxy Server. Can you please any have sample code or configuration steps to share?
    Thank you very much!!

    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/consolehelp/global_resources.html#wp1137294
    Adding Proxy Servers
    Use the Summary of Proxy Servers page to add and configure Proxy Server resources and make them available in Oracle Service Bus as a system resource. You must be in an active session to configure or reconfigure Proxy Server resources.
    1. If you have not already done so, click Create to create a new session or click Edit to enter an existing session. See Using the Change Center.
    2. Select System Administration > Proxy Servers.
    3. Click Add.
    4. In the Name field, enter a name for the Proxy Server resource. This is a required field.
    5. In the Description field, enter a short description for the Proxy Server resource.
    6. In the Host-Port Parameters section, enter the following information:
    1. In the Server Host field, enter the host name or IP address of the Proxy Server. This is a required field.
    The Server Host name for the Oracle Service Bus proxy server must be identical to the server host name of the actual proxy server.
    2. In the Clear Text Port field, enter the Proxy Server clear-text port number.
    3. In the SSL Port field, enter the Proxy Server SSL port number. You must enter either a clear text or SSL port number.
    4. Click Add.
    You can configure multiple Proxy Servers for each Proxy Server resource. This enables Oracle Service Bus to perform load balancing and offer fault tolerance features for the Proxy Server resource.
    7. If the Proxy Server performs proxy authentication, enter a user name in the User Name field, and the associated password in the Password and Confirm Password fields.
    These fields are optional, and required only if the Proxy Server is secured.
    8. Click Save to create and save the Proxy Server resource in the current session.
    9. To end the session and deploy the configuration to the run time, click Activate under Change Center.

  • Invoking EJB from OSB

    I am trying to invoke an EJB from OSB.
    For this i found 2 options.
    1 .exposing the ejb as webservice and configure the service end point in business service.(exposing the ejb as webservice is simple with annotations)
    2.Or in OSB there is a provision to configure the business service with transport type as ejb .(calling the ejb directly)
    both of them are simple.But in my requirement the OSB service would be deployed on multiple servers.
    Could any of you tell me which is the best way to implement this ,in the performance lines.
    Thanks in advance,
    Chandra

    Personally would prefer using 2 approach.
    Advantage of approach 2 is more pronounced if JTA XA transctions are involved in your pipeline which are not possible with WSDL over HTTP approach.
    Performance wise, approach 2 should be better.IF the EBJ is deployed in same weblogic as OSB , then we can avoid the http over head of papraoch 1 by using 1.
    My two cents
    Manoj

  • How to restrict more than one delivery from one sales order.

    Hi Guys,
    We have a requirement that is, system should not allow more than one delivery from one sales order no even if when there is some line item still to be delivered.
    We want only one delivery for one sales order and rest of line items should be treated as rejected.
    Kindly help
    Thanks in advance,
    Balu

    Hi MP,
    Its also not working as we have the requirement is that once sales order is saved and one delivery is created then again if we are adding some more item inthe same sales order then system should not allow to create delivery document as one delivery already created.
    Thanks,
    Balu.
    Edited by: Balu Sajja on Aug 30, 2010 1:29 PM

  • 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

  • PS: WBS is not flowing for a Material, while creating delivery from Project

    Hi,
    While creating delivery from Project thro CNS0, WBS is not flowing for a Material in delivery, in turn WBS is not flowing in Billing document for same material, in turn not allowing to Post the Billing document to Accounting.
    Error while releasing Billing to the Accounting: Accounting Entry is not generated. Error Message:Assign Condition type
    YMRG in COPA.
    Pls let me know, what can be the reason ?
    Thanks.
    Amit.

    Hi Kuldeep,
    Check this note,
    Note 159387 - Message BP603: incorrect line item is displayed
    Its valid only till 4.6. Might give you some idea but.
    Regards,
    Gokul

Maybe you are looking for