OSB Dynamic service call or dynamic route and transactions

Hello,
I've got the following problem in my OSB architecture for asynchronous incomming services.
OSB version is 10.3.1
ConnectionFactory is XA
Problem domain:
Dynamic service call or dynamic route within transaction boundary
Elements within transaction:
1.     JMS Queue ->
2.     Upper Proxy Service (De-queue) ->
3.     Lower Proxy Service (Canonical Service) ->
4.     Business Service (Data Service) ->
5.     Database Adapter->
6.     Database
Dynamic element
Upper Proxy Service (De-Queue) must be able to determine which Lower Proxy Service (Canonical Service) has to be called on the basis of the message taken from the JMS Queue without losing the transaction (this doesn’t work yet).
Already tried possible solutions:
•     Make a service call dynamic by setting the $inbound name attribute. This results in a this property is read-only error.
•     Use a Dynamic route instead of a service-call. This results in a loss of transaction. The message is deleted from the Queue without taking failure or success into account.
•     Use a Dynamic route with a quality of service set to exactly once in the header. This seems to be ignored, results in a loss of transaction.
•     Use a Dynamic route with an explicit reply with failure for errors. Results in a loss of transaction.
•     Use a Dynamic Publish. This doesn’t fit the required flow because it has no response.
I hope someone can shed some light on this because I'm at a total loss. I found some references in the forum to what seems to be the same problem but without definite answers. A work-around is also a viable answer.
Regards,
Bas Mul

Hi,
I'll try to clarify.
Upper proxy dequeues a message.
Depending on a value of a specific tag within the message a canonical proxy service (out of 5 at the moment but this numer could increase) has to be called (and be dynamic transform transformed to the format of the specific canonical).
The canonical service must then pass the message to a database adaper's business service which is responsible for the database insert/update/read.
If something in the chain from dequeue to database action goes wrong the message may not dissapear from the queue.
Somehow a dynamic route in the message flow between dequeue proxy and canonical proxy breaks the transaction.
Bas

Similar Messages

  • OSB Dynamic Routing and Transaction Rollback

    Hi,
    I have implemented dynamic routing to different jms business services.
    That's the flow:
    1. I have a proxy service which is invoked via a message delivered to a jms queue(XA connection factory), this queue is configured with
    Error Destination, expiration policy redirect, redelivery limit 5 and redelivery delay override 100
    2. I use a dynamic routing action
    <ctx:route isProxy="false">
    <ctx:service>
    $businessServiceXXX
    </ctx:service>
    </ctx:route>
    where $businessServiceXXX is a variable to hold my target jms business service, its value depends on some incoming inbound headers.
    3. if the endpoint is not correct(business service endpoint is dynamic) I catch the error in a Error handler, I raise an Error but :
    THE MESSAGE IS NOT REDIRECTED TO THE ERROR QUEUE.
    I know I could solve the issue with another approach like an external table to capture(fix) the endpoints, but it won't be so flexible in terms of deployment capability.
    Any Ideas ?
    Thanks,
    T.

    Hi Tony,
    Tested this in ALSB 2.5 . Transaction rollbacks fine when error in dynamic routing. I am attaching the test JMS proxy we have used for this.
    We had XA enabled CF for JMS proxy service and target JMS BS. The dynamic route was configured in route node with no route error handler or service error handler. The test case was to pause the target JMS queue for production. We could see messages rolling back to the source queue and getting redelivered.
    Attaching the Sbconfig for this proxy. Proxy Name: Dynamic Routing
    <?xml version="1.0" encoding="UTF-8"?>
    <xml-fragment name="DynamicRouting">
    <ser:coreEntry isEnabled="true" isProxy="true" name="DynamicRouting" isAutoPublish="false" xmlns:ser="http://www.bea.com/wli/sb/services">
    <ser:description/>
    <ser:binding type="abstract XML"/>
    </ser:coreEntry>
    <ser:endpointConfig xmlns:ser="http://www.bea.com/wli/sb/services">
    <tran:provider-id xmlns:tran="http://www.bea.com/wli/sb/transports">jms</tran:provider-id>
    <tran:inbound xmlns:tran="http://www.bea.com/wli/sb/transports">true</tran:inbound>
    <tran:URI xmlns:tran="http://www.bea.com/wli/sb/transports">
    <env:value xmlns:env="http://www.bea.com/wli/config/env">jms://localhost:7001/XACF/InputQueue</env:value>
    </tran:URI>
    <tran:inbound-properties xmlns:tran="http://www.bea.com/wli/sb/transports"/>
    <tran:all-headers xmlns:tran="http://www.bea.com/wli/sb/transports">false</tran:all-headers>
    <tran:provider-specific xsi:type="jms:JmsEndPointConfiguration" xmlns:jms="http://www.bea.com/wli/sb/transports/jms" xmlns:tran="http://www.bea.com/wli/sb/transports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <jms:is-queue>true</jms:is-queue>
    <jms:is-secure>false</jms:is-secure>
    <jms:inbound-properties>
    <jms:response-required>false</jms:response-required>
    </jms:inbound-properties>
    <jms:request-encoding>UTF-8</jms:request-encoding>
    </tran:provider-specific>
    </ser:endpointConfig>
    <ser:router xmlns:ser="http://www.bea.com/wli/sb/services">
    <con:pipeline name="PipelinePairNode1_request" type="request" xmlns:con="http://www.bea.com/wli/sb/pipeline/config">
    <con:stage name="Configuration">
    <con:comment/>
    <con:context/>
    <con:actions>
    <con1:assign varName="input" xmlns:con1="http://www.bea.com/wli/sb/stages/transform/config">
    <con1:expr>
    <con:xqueryText xmlns:con="http://www.bea.com/wli/sb/stages/config"><![CDATA[<root>
    <type value="jms">
              <service>DynamicRouting/BusinessService/JMS</service>
         </type>
         <type value="http">
         <service>DynamicRouting/BusinessService/HTTP</service>
         <operation>Test</operation>
         </type>
    </root>]]></con:xqueryText>
    </con1:expr>
    </con1:assign>
    </con:actions>
    </con:stage>
    </con:pipeline>
    <con:pipeline name="PipelinePairNode1_response" type="response" xmlns:con="http://www.bea.com/wli/sb/pipeline/config"/>
    <con:flow xmlns:con="http://www.bea.com/wli/sb/pipeline/config">
    <con:pipeline-node name="PipelinePairNode1">
    <con:request>PipelinePairNode1_request</con:request>
    <con:response>PipelinePairNode1_response</con:response>
    </con:pipeline-node>
    <con:route-node name="DynamicRoute">
    <con:comment/>
    <con:context/>
    <con:actions>
    <con1:dynamic-route xmlns:con1="http://www.bea.com/wli/sb/stages/routing/config">
    <con1:service>
    <con:xqueryText xmlns:con="http://www.bea.com/wli/sb/stages/config">&lt;ctx:route>
         &lt;ctx:service isProxy="false">{data($input/*:type[@value=$body/*:body/*:type/text()]/*:service)}&lt;/ctx:service>
              if($input/*:type[@value=$body/*:body/*:type/text()]/*:operation) then
                   &lt;ctx:operation>{data($input/*:type[@value=$body/*:body/*:type/text()]/*:operation)}&lt;/ctx:operation>
    else()
    &lt;/ctx:route></con:xqueryText>
    </con1:service>
    <con1:outboundTransform>
    <con2:routing-options xmlns:con2="http://www.bea.com/wli/sb/stages/transform/config">
    <con2:uriExpr>
    <con:xqueryText xmlns:con="http://www.bea.com/wli/sb/stages/config">$body/*:body/*:url/text()</con:xqueryText>
    </con2:uriExpr>
    </con2:routing-options>
    </con1:outboundTransform>
    <con1:responseTransform/>
    </con1:dynamic-route>
    </con:actions>
    </con:route-node>
    </con:flow>
    </ser:router>
    </xml-fragment>
    Regards,
    Atheek
    Edited by: atheek1 on 27-Apr-2010 19:48

  • OSB proxy service Calling OSB proxy service from BPEL

    Dear team,
    Wehave a requirement to call a Wsdl based OSB proxy service with sb protocol from SOA Composite from BPEL process.
    We created a wsdl based OSB proxyservice with sb protocol and deployed to OSB development server.
    We tried to export the wsdl and corresponding xsd files. sbconfig.jar got created.
    When we extracted the sbconfig file and placed the wsdl and xsd into the SOA composite.
    When we are trying to create a partnerlink, that OSB proxy service wsdl is not showing up.
    Please suggest.
    How to call OSB proxy service from BPEL..

    Hi,
    Here either you need to change the protocol from 'sb' to http or use the Direct Binding in soa-composite.
    please refer this links:
    Can a business service call a proxy service in OSB
    http://biemond.blogspot.in/2009/03/calling-osb-services-from-bpel.html
    BPEL to OSB using sb transport protocol
    Thanks,

  • Active directory domain services stopped after removing routing and remote access role

    Hello everyone;;
    I am in deep trouble.. I did install routing and remote access and then  lost connection to the server remotely. Then I connected a monitor to the server and removed the role... then it asked me to restart the server . After logging back in I found
    all my active directory service has gone... I can see red cross on active directory domain services.. Also I am able to ping other pcs but other pcs cannot ping my server..
    However when I go into the active directory services, it shows all services are running except file replication service. I have tried to start that service but it give error 1053 error..
    My server in  between loses LAN connection... I dont know what is going on.. Please help!!!
    My  server is win 2008 R2 ser pack 1
    Only one DC....
    Has fixed ip, 
    no DNS server running..

    Hi,
    The File Replication Service Start Error 1053 error can be caused by damaged Windows system files. Corrupted system files entries can threaten the well-being of your computer. Many events can result in creating system file errors.
    Please refer to the articles below to troubleshoot the issue:
    File Replication Service Start Error 1053
    http://repairerrors.net/file-replication-service-start-error-1053.html
    Please Note: Since the website is not hosted by Microsoft, the link may change without notice. Microsoft does not guarantee the accuracy of this information.
    Regards,
    We
    are trying to better understand customer views on social support experience, so your participation in this
    interview project would be greatly appreciated if you have time.
    Thanks for helping make community forums a great place.

  • Charged for 2 FREE service calls/costing $70 each and they DID NOT fix the problem.

    My service was interupted DAILY between 2:45pm - 6pm and sometimes 7pm. I contacted someone in the chat room and explained, they said they would send someone out and there would be NO CHARGE...I made sure and they said, Rest assured that there will be no charge" They did send someone out, around 11am, and said, hey, it's a gold signal splitter, I'll replace it with this new one. Well, they did. A few minute job. Well, 2:45pm rolled around and guess what? SIGNAL LOSS on tv and cable...till about 6pm. Well, next day i contacted them, and same scenario. They sent someone out-around 12pm,  and said, oh the coaxial connecters are a "little loose". Well, he tightened them...a few minute "fix". Well, 2:45pm rolls around and AGAIN SIGNAL LOSS, no internet and NO TV till 6:30pm. Well, I've had enough so I cancelled service..Now I check my bill and 2 service calls for $70 each plus $15 tax totalling $155. I talked to someone in the chat room and told them this scenario. Well, they said they can waive 1 of the service call, but since my equipment is owned by me and not rented, I have to pay and that in their notes, it never said that I would get a free service call. The problem is that it NEVER was fixed and the problem had nothing to do with the signal splitter or connections, but something in the neighborhood, in which I saw 2 Xfinity service trucks on my street when I came home. So I am out $85 for something they did not fix-apparently something going on connectionwise in the neighborhood. ALSO WATCH OUT FOR CHAT ROOM REPS THAT SAY IT WILL BE A FREE SERVICE CALL. THEY LIE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    Anybody know how I can contact the CEO of Xfinity? 

    I was also billed on July 15, 2014 for tech support that did not fix my computer problem. 
    I was billed $99.99 to my credit card to a tech in the country of India.
    I tried to get my money back but the number I was referred to would not answer.
    I immediately went to my bank which took all of the info and changed my credit card number.
    The bank also did their own investigation and said it seemed to be a scam.  My money was redeposited into my account within 36 hours - not because of anything Verizon did, but my BANK!!   I was so grateful.
    Such service from Verizon's tech department is unethical and inexcusable.
    Verizon customers deserve better tech service than this.  "Ma Bell" would turn over in her grave if she knew how far down the service of the original phone company has gone. It's a disgrace!!  A SCAM perpetuated and sanctioned by Verizon.
    I complained to the Verizon Customer Correspondance Claim Dept.  Do you think they will straighten this mess out?  I doubt it - I am a retiree with an excellent payment record.
    They don't care.  This hurts the American economy.

  • Charged for an service call that never happened--and can't reach anyone

    does anyone know how i can even send an email to complain?  i have no phone service, no dsl service, and my appointment keeps getting automatically rescheduled—and i'm being charged for an appointment that never happened.  the website doesn't permit emails for complaints other than wireless, the live chat agent hangs up on me, and i can't get through on the telephone.  i have now been without service for nearly four weeks—and i can't even find an official way to loudly complain!

    Contact your local state corporate commission 

  • Osb proxy service calling other proxy services

    hi
    I'm new to the oracle service bus and i need some help
    i created 3 proxy services and i need to create one proxy service that call the other proxy services and return the output of these proxy services in one response message
    please help me in that problem. it'll be helpful to show me example
    thanks in advanced

    bear in mind that all exchanges amongst services are done by writing /reading the $body variable.
    The easiest way to produce a valid $body is to start from the preexisting $body and use the action
    replace <yourPayloadHere/> in variable $body
    using the option "replace node content"
    If you want to store a response from a service for later reuse:
    assign $body/* to myvariable

  • OSB Business Service calling an HTTPS service

    Hi
    I am using 11.1.1.5 SOA Suite and have a Business Service mapped to an https service.
    When I test it I get
    "The invocation resulted in an error: [Security:090477]Certificate chain received from servername was not trusted causing SSL handshake failure"
    My target https service (during dev) is a soapui mock service set up to provide an https interface for which I have create a certificate using Java's keytool.
    I don't want to have top buy a verisign (or similar) certificate for dev purposes, so my question is how do I get Weblogic to trust my self generated certificate?
    Any help would be much appreciated.
    Cheers
    Matt

    I managed to sort it out myslef.
    Create a certificate in a keystore using keytool.
    Export the certificate from the keystore
    keytool -export -alias mydomain -file mydomain.crt -keystore keystore.jks
    Import the certificate to the weblogic keystore
    keytool -import -trustcacerts -alias mydomain -file mydomain.crt -keystore cacerts
    It will ask you if trust this certificate, respond yes, restart SSL through the admin console - weblogic will now trust this certificate.
    Cheers
    Matt

  • Route node and Service Call out in OSB

    In OSB for a composite Proxy service (PS) that has to call 3 external services in sequence- we make service call out for 1st and 2nd external services and for invoking the last external service we can use route node.
    Here technically PS is making web service calls to all the three external services. For the first two OSB uses service call outs and for the last one, route node is used.
    What is the difference in service callout and route node in invoking an external service?
    If route node is better in any ways why can't OSB come with route node type message flow action for all external service calls?
    Thanks

    HI there,
    I have the same scenario as yours, I have to call 3 external services using Service Callouts and i have no idea how to use service callouts, how to and what to configure in SOAP body OR Payload parameters.
    I have to call one service and then the response of the 1st service , i have to pass it as a request to the 2nd service, so on.
    Can u please share with me how i can do it and what will be the best approach for that.
    Thanks and Regards
    Piyush Kapoor

  • OSB proxy service and BPEL depedency is not established in BTM

    Hi All,
    I am using BTM 12.1.0.3 and I have deployed a service where an OSB proxy service is taking employee information and callling a BPEL process which writes data in some database table. The OSB proxy service and BPEL got discovered in BTM but the dependecy between OSB Proxy service and BPEL process is not established in BTM. I have used soa-dorect protocol to call the BPEL from OSB. I have also tried with using http protocol in OSB for calling a BPEL but nothing worked and the depedency is not established in BTM.
    Now I want to create an end-toend transaction i.e. starting from OSB proxy to the database. For this I selected OSB proxy operation and BPEL operation but correlation is not established. How can I correlate these operation? And how can I create an end-to-end transaction for this type of service where OSB calls a BPEL?
    Please guide!!
    Thanks in advance!!

    you can manually correlate any number of services to create an end-2-end transaction. Please see http://docs.oracle.com/cd/E24628_01/doc.121/e37014/transactions004.htm#BABDBDFI on how to manually correlate services in BTM.

  • Capture travel time expenses and working hours spent on the service call

    Hi Experts,
    I have One Year AMC contract with my customer.Under AMC he called me for 10 times.I need to
    Capture travel time expenses and working hours spent on all the service call, Non of them will be billed to the customer.
    This is just for our internal tracking.this particular data will reside within the office premises.
    Explain how efficiently we can track this particular requirement in SAP Business One
    Regards,
    Vikram

    Hi Vikram
    You will notice on the item master records that there is a field called Item Type. The options are Item, Labor and Travel. In order for the service module to recognize the expense or charge type, either Labor or Travel must be select. Create a service item (untick inventory item) and choose the Item Type as Labor or Travel. When you now create a Delivery/Invoice from the expenses section of the service call, it will identify and warn you if you charge the customer, as this would be defined in your service contract template as non billable charges. You can still create a Delivery for the charges and put quantities and values on the Delivery document. In this case you are not going to invoice the customer for the charges, so you can "Close" the Delivery. Just be aware that closing the Delivery will post the value to an offset account defined in the Account Determination.
    The benefit of this approach is that the Delivery will post a debit and credit in your G/L that will "accrue" what the costs are of servicing the customer. My suggestion would be to set the account determination for the Labor/Travel item(s) to item level and define the Revenue/Expense accounts to specific G/L accounts.
    Let me know if you need more information or assistance with the above.
    Kind regards
    Peter Juby

  • Service Routes and billing

    Hi, it's me again. Question this time about service routes and billing. I have a metered SP with a Service Cycle but no route and sequence. I get no bill and I get no message that a pending bill exists. I have other SP's that do have route and sequence. Is it because this SP doesn't have a route and sequence even though it has a service cycle assigned?

    The route type defines how the reading is processed for billing. With no route, no process, no bill.

  • Asynchronous web service call using PL/SQL

    Hi Guys,
    i'm using Apex 4.1.
    Is that possible to invoke a web service asynchronously within PL/SQL code block ? If so,
    How can i access the return value of the service when execution of that web service completes ?

    Bolev wrote:
    We have (Oracle 10g) automated process (ETL) based on internal data. Now there is an offer to incorporate existing web service call (let's say for additional record verification) in this process. Service call (I do not know what type of it yet) is using data from remote database which is not ours.Web service calls from PL/SQL is not that complex. You can use the standard UTL_HTTP package as shown in {message:id=4205205}.
    I never heard anybody goes this way especially for ETL processes.Well, if you push a million rows through the ETL process and the call overhead for the web service call (assuming perfect network and web server response) is 1 sec, that translates into 277+ hours of runtime alone for the validation to be done via web service.
    So yeah - it would seem kind of silly to use something like a web service to validate large volumes ETL data.

  • How to Refresh cache of Service Call

    Hi
    Normally I use java WD, but am helping out a friend who uses ABAP flavour.
    In the java WD, if the RFC changes, I just re-import the model so that the changes are made available to me in the Dev Studio. How do I do the equivalent in ABAP WD? ie How do I refresh/re-import the Service Call?
    thanks

    Hi Anton,
    In WD ABAP, if we want to reimport the service call, we need to follow the same steps which we follow to create a service call.
    One thing to notice is that wizard does not allow to give the same method name which we gave/system proposed during the last time service call creation. Hence in the second time when we reimport the service call provide all details and new method name. A new method will be created in Controller (if we use existing controller). During adapting the nodes new nodes/attributes will be created.
    Hence the best approach is to before reimporting the service call is to delete the context, attributes and the method created during the previous service call creation.
    Best regards,
    Suresh

  • 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

Maybe you are looking for