Business Service Response URI

Hello,
I have 2 clusters of managed servers (cluster 1 and cluster 2). I have another server with OSB. I created a business service that host several queues. I successfully created a proxy that routes messages from cluster 1 to the business service queues.
My question is how do I route messages to Cluster 2? Do I enter the machine:port/factory/queue of cluster 2 in the business service response URI (if so it's not working:( ) or is another proxy needed to get messages there?
Thanks for any help

If you want to send messages to cluster 2 instead of your server, then change your endpoint uri to something like:
jms://<host:port[,host:port]*/factoryJndiName/destJndiName
If you want to read messages from your server queue and route them to cluster 2, than you have to create another proxy service that will consumer messages and route them to business service using flow.
http://download-llnw.oracle.com/docs/cd/E13159_01/osb/docs10gr3/interopjms/transport.html

Similar Messages

  • Soap proxy to jms business service response not available.

    Hi
    Please can anyone help me with this really urgent, help is greatly appreciated.
    We have one Proxy Service which takes in SOAP Request, and I have a route node in it which calls the biz service.
    Business service is a Messaging service built using jms queue and response URI is configured with jms out queue.
    If I run business service standalone it gets the message and response comes to out queue.
    if I run it through proxy service which routes to biz service, the message goes to biz service, and response goes to out queue, but I do not get response in http proxy.
    Please can someone help.
    thanks
    K.

    Basically the logic to consume msg requires full SOAP message as text, now when I use BS as Messaging Service it works fine because in test I put the full soap message as text. If I run it through Proxy it strips the header and sends only Body or if I base both my BS and PS using WSDL, then it attaches full soap message in multiple soap header and that causes the problem, so I have to remove extra header from message to have it processed correctly.
    this is my actual request:
    <SOAP-ENV:Envelope      xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    the trace shows that request to BS is:
    <soapenv:Body      xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Envelope      xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
    /SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    </soapenv:Body>
    so my message consumer has problem with extra soapenv:Body wrapper... any ideas will help.
    thanks
    K.

  • Oracle Service Bus - Business Service Endpoint URI - Change at runtime

    Hi,
    Is there a way of changing/passing the endpoint URI to a Business Service at runtime? The reason for my question is that depending on the content of the message in a Proxy Service that calls this Business Service I may need to change the URI.
    Kind Regards,
    Adel

    Adel,
    Is there some use-case limitation that would stop us from using Dynamic routing ?
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/modelingmessageflow.html#wp1100135.
    DynamicRouting /Dynamic publish can be considered depending on the use-case.
    Other option is to use Routing options: Modify any or all of the following properties in the outbound request: URI, Quality of Service, Mode, Retry parameters, Message Priority.
    Manoj

  • Oracle Service Bus - Business Service Endpoint URI - Dynamic

    Hi,
    I'm trying to find a way to avoid hard-coding the endpoint URI in a business service. The reason I need to achieve this is because for the different environments (development, testing, production, etc...) the URI will be different.
    I have spent the past 2 days searching the oracle forum and documentation but have come up with nothing. Is there a way to achieve this?
    Preferably, is there a way to store the endpoint URIs in a configuration/properties file which can be changed when needed?
    Any help is much appreciated!
    Best Regards,
    Adel Haider

    Hi Adel,
    Customization file will be the best solution for your problem. You may generate a environment specific customization file. To know more, please refer -
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/consolehelp/customization.html#wp1129087
    Simplest solution would be to generate a customization file and replace the existing URI's with the required one's using replace all option of textpad. Run this customization file at target environment, after importing the OSB configuration.
    Regards,
    Anuj

  • OSB: Checking content type of a Business Service response

    Hi,
    I have a Proxy Service <-> Business Service configured as a pass-through only. (including http headers)
    The situation is: Sometimes, the service which my BS access send a fault response as a HTML instead of a fault soap envelop or something related with the provided xsd.
    My PS receives this and send back to the caller, but my customer needs a fault message. The service provider will not modify this behavior, so i need a way to check the content of the response to see if it's is an html and raise an exception.
    It's possible to do this ?

    Wow.
    First of all, ty for your really fast reply.
    Seconde: A valid fault response message is something like this:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="my.foo.namespace" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/ http://schemas.xmlsoap.org/soap/envelope/" >
    <soapenv:Body>
    <soapenv:Fault>
    <faultcode>soapenv:Server</faultcode>
    <faultstring>Unknown processing error.</faultstring>
    <detail>
    <ImsException version="6.0" >
    <exception>
    <name>exception.NotAuthorizedException</name>
    <code>700</code>
    <description>
    <![CDATA[Foo is not authorized to perform task.]]></description>
    </exception>
    </ImsException>
    </detail>
    </soapenv:Fault>
    </soapenv:Body>
    </soapenv:Envelope>
    I need to validate the <detail> tag agains my xsd. To do this, how to build the xquery to select this tag ? I need to apply some function on the content to transform the detail string into a structured xml ? It's something like:
    soapenv:Envelope/soapenv:Body/soapenv:Fault/detail
    If you have some links with examples i will appreciate.
    Ty for your help.
    Edited by: GSanches on 10/06/2010 06:27

  • Features to isolate OSB services from just one slow business service.

    Hi,
    Here is a OSB question around a quick business service that suddenly turn to be a slow one and the impact on the overall OSB performance.
    Suppose you have a critical OSB cluster in production with many proxy and business services.
    Because of requirements, you have a specific sync http business service (web service) that has an acceptable response time around 1 secs. But suddenly the response time goes to 30 secs or even more due to some problem, generating a great impact on thread and resource consumption on OSB side.
    Suppose a http time out configuration of 2 secs on the business service is just not enough. OSB continues to crash.
    You can use OSB throttling feature but doing that you have to fix a maximum concurrency.
    If the service implementation is down, OSB can handle that using "Offline Endpoint URIs" in the operational settings of sbconsole. But in this situation the service is online accepting requests. It's just slow to respond.
    This is a hypothetical situation just to stress the problem.
    Besides business service time-out configuration and throttling and dispatch-policies on proxy/business services are there any other features that can be used ?

    Wesley,
    Ok, once the business service request is sent, the thread is freed. When the response comes, a new thread is picked up to handle the business service response. So in the mean time there's no blocking thread. Yes. It is correct.
    Just to make sure, what about the waiting synchronous http client calling the proxy service ?
    I mean, this fire-and-forget feature works only on the business service side or entirely for the proxy/business service (That separation would not make sense I suppose) ? The same case with http proxy. The request thread will be used till the BS is invoked in the route node or end-of the request pipeline. After this thread is released. Once the response comes from the http bs on a different thread, that thread will be used till the end of the responsepipeline
    eg
    Client---->Http Proxy---->Thread1{Request Pipeline--->Routenode---->End of Request actions in the Routenode--->Call BS Request} ----->Thread2{BS gets response--->Response Pipeline --->send response back to the client}
    For example, a http client is waiting for the proxy service response, but while the business service does not respond, there is no blocking thread at all in the proxy service side too ?Yes. That is true
    So, there could be many waiting http clients calling this proxy service, all http business service requests sent, and no blocking threads ?Yes.
    What would be the drawbacks of this feature ?Nothing I can think off. Therotically we will be forced to do extra over head when BS latencies are low which might of little practical impact. In that case you can change QOS=Exactly once. BS request and response will be on the same thread , but proxy response thread will be always different from that of proxy request thread no matter what the QOS is set
    Cheers
    Manoj

  • How do I build a dynamic business service URL in OSB 11g?

    Hello,
    I am used to using the business service endpoint URIs that we configure on the Transport tab of our business services in OSB 11.1.1.6.  We can add multiple static entries here for load balancing, and we can overwrite these with a Customization File as we migrate through DEV, TEST, PROD.  Everything's just fine there.
    I now need to start consuming RESTful services with dynamic URLs such as:
    http://host:port/customer/{customerId}
    that would result in HTTP calls to values like:
    http://host:port/customer/12345678
    and
    http://host:port/customer/55555555
    I see that I can build the URI using the Routing Options action in our proxy message flow and throw in all of those variable values at runtime.  This is working in DEV just fine.  And, effectively, I've overridden the business service endpoint URIs that we configured in the Transport.
    But now I want to:
    1) Use multiple endpoint URIs for our cluster
    2) Deploy to TEST
    What is the proper way to do this?  I would guess in the business service endpoint URIs in the customization file, but I don't know how to parameterize those.  I would also guess customization file find/replace functionality to change the host:port in my Routing Options action, but then that would still be just a single-node endpoint and not a pointer to multiple servers in our cluster.
    Can someone please advise the best way to configure these dynamic URLs at runtime while still allowing for clustered endpoints and for customization files to be applied as we promote through our environments?
    Thank you,
    Michael

    Found some old code.
    I think you need to do
    property_text = "#"^variable_text
    then you can do the following
    property_list[1][property_text]
    That seemed to work.

  • Proxy/Business Service SOAPFault Handling

    When a SOAP Fault is thrown from a service endpoint, the OSB appears to swallow that SOAP Fault and send the client invoking the service through the OSB an OSB specific SOAP Fault instead of the one from the service endpoint.
    Is it pretty much standard practice to have to create a Pipeline and Error Handler where you always have to do an If/Else to test the business service response to determine if a SOAP Fault exists and if so then to reply with an error.
    Is this true?
    Is there a better Error Handler location for passing the original Fault to the service client?
    Thanks,
    Jay

    The control will enter into route error handler if the business service is returning a fault. Note, if the business serivce is not returning a fault, instead returning the error as a message payload ( in this case http response code will be 200 , in case of fault it will be 500) then the flow will enter into the response actions part of the route node and not the error handler.
    So if the flow is entering into route error handler, you can safely assume that either the service has returned a fault or there was a transport exception in which osb was not able to communicate to the remote service due to some fault. Depening upon your case it may not be desired to separate these , so the best thing you can do is put a reply with action in the route error handler.

  • OSB : Endpoint URI problem in business service

    I have to invoke a http service from OSB where endpoint uri is http://<ip>:<port>/Resource.
    At invocation time OSB is adding "?" to the end of URI, in that case http message is becoming like following:
    POST /Resource? HTTP/1.1
    External service is considering it as a bad request and giving 500 response code with following comments:
    Error occured: 500, Cannot find local resource: /Resource?
    But I am getting proper response when I am calling from java program with http message POST /Resource HTTP/1.1
    It is not possible to change the external system, now how can I solve the problem??
    Please help.
    Thanks
    Afzal
    Edited by: uttam on May 2, 2012 9:49 PM

    Open your business service and navigate to HTTP Transport configuration page and check what is the http type is enabled.
    Look to me its with GET method, change it to POST and re-try.
    If the above solution is not helping, try to check the Follow HTTP redirects check box below the Advanced Setting in same page.
    Thanks,
    Vijay

  • Log endpoint URI of  a Business Service OSB

    Hi,
    I want to log the endpoint URI of a business service (OSB) that I'm calling from a proxy service. Can anybody tell me how to do this?
    Thanks in advance!
    Martín.-
    Edited by: 876766 on Aug 16, 2011 7:31 AM

    In the response (pipeline) you have this attribute: $outbound/ctx:transport/ctx:uri.

  • End Point URI change in Business service?

    Hi all,
    We had done all our osb code development and moving from one environment to other(Eg. E2E testing to UAT, Then UAT to Production). When we move the codes from one server to the other we need to change the End Point URI in the business service for almost all the OSB services which calls external systems else Calling BPEL services. SO is there any other way to make the end point URI's in some other file and read that file to get the end point URI and set in BS. Or did any one have any other suggestions?? Because each and every time we need to make the code change when we move on from one server to other.
    Regards,
    Prabhu

    Why don't you use customization file -
    http://download.oracle.com/docs/cd/E17904_01/doc.1111/e15867/customization.htm#CACJCAGD
    Regards,
    Anuj

  • Combine response of two business services in OSB

    Scenario:
    I have a proxy service which ahs two business service call outs depending on the system name passed to it(e.g. 'ABC', 'XYZ')
    1. If the request contains 'SysName' = 'ABC', service related to 'ABC' gets called. The response is generated. (This is working.)
    2. If the request contains 'SysName' = 'XYZ', service related to 'XYZ' gets called. The response is generated. (This is working.)
    3. If the request contains 'SysName' = 'ALL', both the services related to 'ABC' and 'XYZ' systems should get call. The generated reponse should contains response of both the services.
    Please note that, the XSDs for reqeust/response of both 'ABC' and 'XYZ' services are same.
    Could you guide on steps to combine response of two business services?
    Thanks-
    Sachin

    Hi Sachin ,
    Yes u can can combine any number of service responses by using service callouts in separate/indivisual stages as it would be better to debug and trace the message flow.
    U can give explicitly user defined response variable names for the service callouts action and used them in ur pipeline (eg.response pipeline)where ever u want.
    U can create an xml structure like this where u r variables $responsebody_1.responsebody_2 are those which u hv defined while configuring the service callout action against the SOAP Response Body/Response Document Variable what ever u r using for calling BS
    <body>
    <response_1>{$responsebody_1}<response_1>
    <response_2>{$responsebody_2}<response_2>
    </body>
    and in the end use replace actionin the last stage of response pipeline to replace the entire body/node contents with the above mentioned xml structure to combiine both responses from BS
    Regards ,
    Abhinav

  • Change the uri of business service in OSB

    Hi,
    i hve a business service which write some files to a directory i want to replace the directory path with a variable (i have given the directory path in xquery and store it in a variable) can anyone tell me how can i achieve this ??
    and i am calling this service in my proxy service using service callout.
    thanks
    Edited by: 990437 on Mar 6, 2013 9:07 PM

    Hi 990437 ,
    want to replace the directory path with a variable.. and i am calling this service in my proxy service using service callout.Inside service callout -- Request Actions -- use Routing Options action and assign variable in URI expressions
    OR if you are using JCA File adapter
    Inside service callout -- Request Actions -- use Set Transport Headers action
    Set Transport Header for Outbound request and add Header.Browse to jca.file.Directory from dropdown box in header and assign the new new directory location
    ( variable ) in under Action -- Set Header --Expression
    Regards,
    Abhinav Gupta

  • OSB: Business Service URI modification

    Hi,
    i have WS-based proxy service that simply routes data to business service (also WS-based). There is only one instance of this proxy service and it uses one definition of business service.
    The development model I have to respect involves many instances of this business service. While interface is always the same, endpoints slightly differ, but match certain pattern. For ease of maintenance I decided to have only one proxy service that uses Routing Options to override endpoint URI in runtime. So far, so good.
    The problem is that I have to override URI completely and I have to construct new URI in the message flow from scratch. I don't see any possibility just to modify URI set in business service. This implies that I can't use customization feature for this URI when moving my configuration from test to production.
    The feature I'm looking for should allow me to have one static part of URI and the second (dynamic) part that should be attached in the proxy service message flow. It would be great if I could somehow read URI from business service definition and slightly rearrange it. In that case it would be possible to make use of customization.
    Any idea?

    Thanks for your effort, guys, but could you be a little more specific? :-) I went through some documentation (here and here) and as far as I understand it, dynamic routing can help me to choose business service in runtime. But I have only one business service and I just would like to mangle its URI somehow.
    Let's say I want to route message to my BS that has one URI set to "jms://localhost:7001/factory/my.queue.number." which is incomplete and is supposed to be completed in runtime. In message flow I want to route to this BS, but change the URI before to something like
    jms://localhost:7001/factory/my.queue.number.ONE
    jms://localhost:7001/factory/my.queue.number.TWO etc.
    Tokens ONE, TWO, ... are based on message content.
    I can't see from documentation how dynamic routing can be of any help in this case. I also know I can change URI in Routing Options, but this new URI must be absolute. But for using absolute URI I have to have it hard coded in message flow which will break customization.

  • OSB with request response MQ business service

    Hi,
    We have OSB webservice whice interacts with MQ via business service. We need to send the request to MQ request queue and get the response from the response queue.
    For this, we have configured a business with MQ transport, request-response is enabled, message id is set for the correlation, auto generate correlation value is chosen.
    The business service sends the message but unable receive the response from the response queue. Failing with the error message like
    The invocation resulted in an error: [WliSbTransports:381918]Failed to receive response, within the configured timeout, for request message with id 42454BD3E5F7647914544E793F9F0000013EC9DF03918057 and correlation id 42454BD3E5F7647914544E793F9F0000013EC9DF03918057.
    But we checked with the end system, the response is sent tot he response queue in no time. We also increased the time out but still same issue.
    We noticed that if we dont send the message id, we are getting the response but not response of the request sent but some other response.
    Please suggest what needs to be done to fix the issue.

    Open your business service and navigate to HTTP Transport configuration page and check what is the http type is enabled.
    Look to me its with GET method, change it to POST and re-try.
    If the above solution is not helping, try to check the Follow HTTP redirects check box below the Advanced Setting in same page.
    Thanks,
    Vijay

Maybe you are looking for

  • Adding action in Dropdown fields in visual composer iview

    Hi, I develop a application in Visual composer 7.0. I want to convert the input field in drop down for selecting the different values. I can change the same by selecting the particular input fields in design screen. But I not able to specify the valu

  • Sent emails from Yahoo or iphone dont appear in sent mail folder on MacBook

    Please can someone help? My email account is with Yahoo mail (free one); I can send and receive emails without a problem from Mail on my MacBook. However If i send an email from a browser session in Yahoo mail then the sent email does not appear in m

  • Safari 3.2.1 on mac fails to play embedded audio content.

    my homepage, http://bloodnok.net/ has an embedded audio snippet. the audio snippet is loaded using an <object> tag. the page is xhtml transitional (don't want to be strict) & validates on the w3c site. when i visit the site with firefox or opera from

  • How to create index  on re-direct URLs ?

    Hi , I have all my documents in a Document Management System, where the public URL of the documents are different from the actual URL of the document. there is a re-direct setup that takes care of forwarding the http request. for eg. the public URL i

  • Suggestions for Email-Only Host?

    I'm building a new, improved version of my website with iWeb and will be publishing it with my domain name. My old website under that name on another web host. My current host also hosts my domain name email accounts. And here's the problem with the