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.

Similar Messages

  • 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

  • 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

  • Setting an endpoint dynamically for a business service

    I need to set an endpoint for a business service dynamically in the message flow of a proxy service. I'm basically doing what it says in this article(page 9 under heading - Registry per Individual Domain):
    http://e-docs.bea.com/alsb/docs26/pdf/deploybestprac.pdf
    I've gone to the link to the User guide that it gives in there for "Using Dynamic Routing". And I've pieced together most of what I need to do. I have a dummy business service with a dummy URL. I'm making a service callout and getting and endpoint back and saving that endpoint address to a variable. (that's all in a stage in a pipeline node.) Then I dynamically route it to dummy business service. The part I don't know how/where to do is reassign the dummy business service's endpoint to the endpoint I got back from my service callout.
    Can anyone help me with this?
    Thanks,
    Brittany

    Try with a 'Dynamic publish to service' action with:
    <ctx:route isProxy="false">
    <ctx:service>{ $yourBusinessService }</ctx:service>
    </ctx:route>
    where $yourBusinessService is the variable hosting the uri of your business service.
    Regards
    ferp

  • What is the endpoint URI of a proxy service?

    Hello, I want to create a SOAP client that will access an ALSB-hosted proxy service, but I don't know the URL needed to get to the web service.
    Within ALSB's console, I can easily test the proxy web service but don't know how to access it externally.
    On the Proxy Service's configuration page, in the Transport section, the endpoint URI is given as "/default/DoubleItExternalProxy", but when I try to access the wsdl at that uri via:
    http://localhost:7001/default/DoubleItExternalProxy?wsdl, I get this message:
    Error 500--Internal Server Error
    This service is not associated to a wsdl
    Although I believe the service must be associated to a WSDL--I have it based on a business service that has its own WSDL. Does anyone know what the browser URL needs to be to get to the WSDL? Using JAX-WS, I need the WSDL to generate the JAX-WS/JAXB artifacts for my SOAP client.
    Thanks,
    Glen

    Hi Glen
    You will need to associate your proxy service with a WSDL when you create it (Unfortunetly it can't be changed from Any SOAP to WSDL afterwards).
    The proxy does not use the wsdl from the any business services it calls in case there are multiple.
    Ryan

  • How to pass parameters to servlet with POST with  Business Service OSB

    Hi all.
    I am newby in OSB. I am trying to send some values through a POST call to a servlet. I know how to call the servlet with Business Service of type "Messaging Service". I send the parameters of type Text.
    I have tried several ways, but I don`t find the proper way yo do it. I have tried to insert the param into the body and into the header.
    The problem is that I don`t know exactly where to put them, I don`t know if it must be done in the header or in the boy. I neither don`t know if there is a common way to do this.
    Please, could you give me a good example of an insert activity to isert a post parameter inside the call?
    For example: now I am using this one:
    Expression => "accountType=test"
    Location => as first child of"
    XPATH => empty.
    In variable => body.
    Where do I have to insert this, in the body or in the outbounds?
    I have followed this posts:
    https://blogs.oracle.com/jeffdavies/entry/enhanced_rest_support_in_oracl
    http://www.yenlo.nl/en/using-osb-with-rest/
    Thanks a lot.

    Hi,
    Please be carefull about passing values such as Strings or number that contains ',' .
    using the way described above.
    the best way is to pass an ID and then use a select Statement to get the other Values in the target page.
    regards
    MDK.

  • Result cache refresh at business service (OSB) ?

    Hi,
    I have configured my business service at osb side to cache the result. My business service is pointing JCA- dbadapter which is calling a stored procedure.
    Is there any way to update/refresh the cache if there are any changes in the corresponding tables which the store procedure is using. I have googled a lot on this but have found nothing on it.
    Any help would be very much appreciated.

    Is there any way to update/refresh the cache if there are any changes in the corresponding tables which the store procedure is using. I have googled a lot on this but have found nothing onAFAIK, OSB does not provide any functionality to refresh the cache without hitting the backend sevice.
    The result caching in Oracle Service Bus is available for Business Services. When you enable result caching, the Business Service will not reach the backend service and the response will come from the cache entry. This entry can expire and if the entry is expired, the next service call will indeed reach the backend service and update the cache entry.
    Each cached result has its own TTL. When a TTL is reached, Oracle Coherence flushes that individual cached result.
    It would be better if you can raise a support ticket and ask for enhancement.
    Regards,
    Abhinav Gupta

  • Invocation Exception Business Service-OSB

    Error while invoking HTTP Autheticated WSDL in OSB 11G . I can invoke the same WSDL in SOA w/o any issue.
    SOA
    I passed user name, pwd as xml along with otherxml fields when I invoke from SOA.It worked
    I followed below steps for OSB Process
    1. I created Service Account with user name password.
    2. I selected Basic Authentication
    3. I used the service account in my business service.
    When I test Business Service I get below Error:
         <con:metadata      xmlns:con="http://www.bea.com/wli/sb/test/config">
         <tran:headers      xsi:type="http:HttpResponseHeaders" xmlns:http="http://www.bea.com/wli/sb/transports/http" xmlns:tran="http://www.bea.com/wli/sb/transports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
         <tran:user-header      name="X-Powered-By" value="Servlet/2.5 JSP/2.1"/>
         <http:Content-Length>1518</http:Content-Length>
         <http:Content-Type>text/html; charset=UTF-8</http:Content-Type>
         <http:Date>Fri, 15 Jul 2011 21:32:09 GMT</http:Date>
         <http:WWW-Authenticate>Basic realm="WebLogic Server"</http:WWW-Authenticate>
         </tran:headers>
         <tran:response-code      xmlns:tran="http://www.bea.com/wli/sb/transports">1</tran:response-code>
         <tran:response-message      xmlns:tran="http://www.bea.com/wli/sb/transports">Unauthorized</tran:response-message>
         <tran:encoding      xmlns:tran="http://www.bea.com/wli/sb/transports">UTF-8</tran:encoding>
         <http:http-response-code      xmlns:http="http://www.bea.com/wli/sb/transports/http">401</http:http-response-code>
         </con:metadata>

    Please refer section "49.2.2 Configuring Outbound HTTP Security: Main Steps" at -
    http://download.oracle.com/docs/cd/E17904_01/doc.1111/e15866/transport_level.htm#i1058754
    Regards,
    Anuj

  • How to set SOAP Header When Calling Business Service (OSB) Using Split-Join

    Hi,
    We need to call WSDL based webservice which requires heading static content for successful call. As we need to call the same service parallely, hence we want to use Split-Join.
    Looked at couple of forum links, noted that we can't play with headers while working with Split-Join.
    For curiosity, just want to check any option other than using proxy as mediator in setting header information.
    Regards
    Venkata Madhu

    Venkata,
    You still have the option, if you hv n't tried this one.
    To enable this capability, you must declare the header parts along with the body parts in a single request/response message in the Split-Join WSDL and in the WSDL of the proxy or business services invoked by the Split-Join. With the message parts declared in the WSDLs, SOAP header content is available to Split-Joins in the request/response message variables.
    Following is an example of the message and binding definitions in the WSDL.
    Message
    <wsdl:message name="retrieveCustomerOverviewByIdRequestMessage">
    <wsdl:part name="retrieveCustomerOverviewByIdRequest"
    element="co:retrieveCustomerOverviewByIdRequest"/>
    *<wsdl:part name="serviceContext" element="sc:serviceContext"/>*
    </wsdl:message>
    Binding
    <wsdl:input>
    <soap:body use="literal" parts="retrieveCustomerOverviewByIdRequest"/>
    *<soap:header message="tns:retrieveCustomerOverviewByIdRequestMessage"part="serviceContext" use="literal"/>*
    </wsdl:input>
    hope it helps !!
    Regards,
    Abhinav

  • 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 Business Service jms target

    Dear all,
    I have a business service in OSB, accepting messages, and putting them in a jms queue in j2ee.
    My question is, if it is possible somehow to declare as Endpoint URI the cluster address, so that the messages are balanced between the jms servers deployed in each j2ee managed server. If I set the cluster address, which is the comma separated addresses of the members, the messages all end up to the jms server of the first address declared in the endpoint URI.
    The JMS connection factory accepting the messages from OSB has default targeting and is targeted to the J2EE cluster.
    The endpoint URI of the business service when set to the cluster address looks like so:
    jms://172.16.217.134:7701,172.16.217.135:7701/myJMSConnectionFactory/MyJMSQueue
    We also use an external load balancer IP, which does not work as expected. At times messages are processed only by one consumer and at times the balancing works properly. This is why we are looking for alternatives.
    Environment is 10.3.6. OSB and J2EE cluster have two managed servers each.
    Thank you
    Edited by: 926252 on Dec 5, 2012 4:24 AM

    Suppose if the source or the endsystem is in maintenance and is not availabel for the whole day.Now a days, it should be really a very rare scenario where a system goes down for an entire day for maintenance. 2-3 hours maintenance window is normal. If in your case, long maintenance windows are normal and frequent then I would suggest to change the design. Instead of polling remote system, let remote system push the files to OSB server (may be on JMS or any other persistent destination) and then even if remote system goes down it won't affect OSB.
    As far enabling and disabling proxy services are concerned, you may handle it through scripts or java API's -
    https://blogs.oracle.com/ateamsoab2b/entry/automatic_disabling_proxy_service_when
    http://orasoa.blogspot.in/2011/05/disable-and-enable-osb-proxy-services.html
    still no other choice?If most of the maintenance windows are scheduled then it is easy to handle the scenario with manual enable/disable of proxy services, but if mostly it is unscheduled then changing the solution design seems better option.
    Regards,
    Anuj

  • OSB 10gR3 - Create load balanced endpoint URI with WLST

    Hi,
    I need to create load balanced endpoint URIs for a Business Service listening to a JMQ queue. The configuration can be done through the console as shown below:
    Protocol: JMS
    Load Balancing Algorithm: round-robin
    URI 1 - jms://localhost:7001/loggingXACF/loggingQueue
    URI 2 - jms://localhost:7002/loggingXACF/loggingQueue
    I would like to do the same using ALSB customization API in WLST. Any pointers on this would be helpful
    Regards
    Vikas

    Any one have any idea what a CLUSTER-BROADCAST message is? And where it would be coming from?Cluster broadcast message is one of the way by using which WebLogic Server instances in a cluster communicate with one another. Details are here -
    http://download.oracle.com/docs/cd/E14571_01/web.1111/e13709/features.htm#i1021836
    Having little idea about this, I may not comment on the exact reason behind 21.4 million CLUSTER-BROADCAST messages in 70 minutes, but you may get better and faster response in Weblogic clustering forum -
    WebLogic Server - Clustering
    If you have Oracle Support, then I will suggest you to track this throgh a SR.
    Regards,
    Anuj

  • Redeploying a project in weblogic SBConsole,endpoint URI doesnt change

    Whenever we redploy a project by overwriting the existing one using CONSOLE, the endpoint URI of the business service is not getting updated.
    But when we delete the existing one and deploy it,the latest endpoint URI is getting updated.
    Why isn't it so in the first case?Can anyone help us out.

    Please refer -
    http://download.oracle.com/docs/cd/E17904_01/doc.1111/e15867/import_export.htm#CIHHEJFJ
    Regards,
    Anuj

  • Different number of Business service endpoint for prod/non prod env in OSB

    Hi,
    I have a scenario in my project. We have 2 managed servers in all non production environment and 4 servers in production environment.
    In non production environments, have added 2 end point uri in the business service. If we create customization file from this, it will have only 2 endpoint uri details.
    Now problem is how to get all 4 enpoint uri added for production environment. Dont know how if we try to add 2 uris in customization file will work fine or not. Also it will be very cumbersome as there are more than 100 business services.
    Tried with comma seperated urls, but load balancing is not happening. Same thing when cluster address is used.
    Any pointers on this will be helpful.
    Regards,
    Pravin
    Edited by: pravinkapile on Sep 29, 2009 9:39 PM

    Hi..
    There's several ways to do it.. What I prefer to do is to generate the customization files and have a seperate set for each environment. As you say hand modifying the customization files is a pain (and error prone), so I wrote a program to generate the customization files.. basically it runs against my local dev environment, creates an edit session, modifies the env values (these are held in a properties file (easier to maintain)), exports the customization files and sbconfig jars, then discards the edit session.
    I then use a wlst/jmx script to perform the imports and running the customization files, then after the customization is ran, then I have a section that modifies the business service with multiple endpoints to set them up to load balance/failover..
    this is the function in my utils script to set the load balancing/failover....
    #=======================================================================================
    # Routine to modify all Business Endpoints with multiple URI's to set the Loadbalancing
    # algorithm to Round-Robin -
    #   Input must be an editable instance of an ALSBConfigurationMBean.
    #=======================================================================================
    def configureMultipleBSEndpoints(domainService, alsbSession):
      try:
        # get the Service config MBean
        servConfMBean = getServiceConfigurationMBean(domainService, alsbSession.getSession())
        bsQuery = BusinessServiceQuery()
        bsRefs = alsbSession.getRefs(bsQuery)
        changesToCommit = cju.parseBoolString("false")
        for bsRef in bsRefs:
          modificationsMade = cju.parseBoolString("false")
          serviceDefinition = servConfMBean.getServiceDefinition(bsRef)
          endPointConfig = servConfMBean.getEndPointConfiguration(bsRef)
          if endPointConfig.getURIArray().__len__() > 1:       
            outBoundProps = endPointConfig.getOutboundProperties()
            if outBoundProps.getLoadBalancingAlgorithm() == LoadBalancingAlgorithmEnum.NONE:
              outBoundProps.setLoadBalancingAlgorithm(LoadBalancingAlgorithmEnum.ROUND_ROBIN)
              modificationsMade = cju.parseBoolString("true")
            if outBoundProps.getRetryApplicationErrors():
              outBoundProps.setRetryApplicationErrors(cju.parseBoolString("false"))
              modificationsMade = cju.parseBoolString("true")
            retryCount = endPointConfig.getURIArray().__len__() - 1
            if outBoundProps.getRetryCount() != retryCount:
              outBoundProps.setRetryCount(retryCount)
              modificationsMade = cju.parseBoolString("true")
            if outBoundProps.getRetryInterval() != 2:
              outBoundProps.setRetryInterval(2)
              modificationsMade = cju.parseBoolString("true")
            serviceOpsEntry = servConfMBean.getServiceOperations(bsRef)
            if cju.booleanToString(serviceOpsEntry.isTakingURIOfflineEnabled()) == "false":
              serviceOpsEntry.setTakingURIOfflineEnabled(cju.parseBoolString("true"))
              serviceOpsEntry.setDelayInterval(15);
              modificationsMade = cju.parseBoolString("true")
            if modificationsMade:
              print 'endpoint configuration modifications made to - ' + bsRef.getFullName()
              hmServiceOpEntries = HashMap()
              hmServiceOpEntries.put(bsRef, serviceOpsEntry)
              endPointConfig.setOutboundProperties(outBoundProps)
              serviceDefinition.setEndpointConfig(endPointConfig)
              servConfMBean.updateService(bsRef, serviceDefinition)
              servConfMBean.updateServiceOperations(hmServiceOpEntries)
              changesToCommit = cju.parseBoolString("true")
        return changesToCommit
      except:
        print "Unexpected error:", sys.exc_info()
        print 'Failed to Configure Business Service Multiple Endpoints LoadBalancing Algorithm '
        raise..Mark.

Maybe you are looking for