Dynamic timeout for OSB proxy or business services

The scenario we got here is that we will have multiple synchronous webservices implemented as OSB proxy services. These proxies will then invoke a common "routing" proxy that will determine which other OSB proxy or business services (JMS Request/Response) to call and does the dynamic routing.
I understand that you can set a timeout at the business service level how long to wait for a response (at least when using the JMS transport). The problem is we got the requirement that the timeout value would be dependent on the role of the caller invoking the frontend webservice (this is done via some kind of lookup to determine the appropriate timeout setting for the invocation).
Is this possible? I can't seem to find anything exposed in the transport header that allows me to set a timeout value during runtime. This means that the frontend proxy will be waiting for a response depending on the business service timeout setting. Can we implement a timeout in this frontend proxy somehow?
Stumped right now over this. Thanks in advance for helping out.

>
Are there other reasons why you say it's not the most ideal way of development ?
>
Versioning binary files is always a pain. You can't compare them, you can't merge them ... Another point, if you put your jar archive with OSB artifacts under version control, you will most probably face issue related to end of line styles (mac, unix, windows).
However, the most important point is usability. I want to version .proxy and .biz services to see right in IDE that I changed something and I should check that in for the others. I don't want to risk that I forget something. And I also want to see what other users committed, what sources they work on ... You loose all of that by versioning jar file. I would never go this way.

Similar Messages

  • Need Java API's to create OSB proxy and Business Services

    Hi All,
    I need to create OSB proxy and business services using Java API's. Does any one have reference to the OSB APIs??

    AFAIK it is proprietary.
    What I do in a similar situation is to form XML for the services, package them into JAR the same way as an import JAR is packaged (creating ExportInfo resource, ...) and deploy with standard WSLT script. Works for simplest services only (direct proxies mostly) but I can also form security, alerts, throttling etc etc etc -- all in one shot.
    Out of sheer interest, may I ask you a question? Why do you need to create OSB services from Java?
    Vlad
    http://vladimirdyuzhev.com

  • Can OSB proxy and business service act as a stub ?

    Hi all,
    would like to enquire whether I can achieve the following. I have a web service consumer. Can the consumer call a OSB proxy service and within the proxy service, I use XQuery and extract the body and perform some transformation. And the proxy service return variables to the consumer? Without calling any business proxy in the process
    Can the proxy service act as a stub? Would I need a dummy business service for it?
    Or my objective cannot be achieved in OSB?
    Appreciate any thoughts.

    Hi,
    Assuming the incoming body contains "name: Peter, age: 13". Can the return information contain "name:Peter, age:13, Status: N"Yes, it's possible too, in your Response XQuery Transformation u can add n number of additional fields, and send back to requester.
    You can do both Translations and Transformations.
    Can I also configure the proxy service not to call any business service?Have you made/generated your proxy service from existing Business Service?
    If yes,: then your message flow would have only Route Node ( routing to Business Service).
    1. To do transformations on request add a Pipeline Pair in message flow and inside it add stage for doing XQuery transformations.
    2. Use Reply Action in stage as last Actions and do reply with Success.( The message flow won't go to Route actions after this ).
    IF No : Then either remove the OSB Action which is being used to call Business Service.
    It is considered good etiquette to reward answerers with points (as "helpful" - 5 pts - or "correct" - 10pts).
    Regards,
    Abhinav Gupta
    Edited by: Abhinav on Mar 8, 2013 3:27 PM

  • OSB call multiple Business Services and combine the responses into one

    Dear All,
    I am new to OSB and I have a use case that I need to solve. I have 3 web services and I imported their WSDLs into OSB and created 3 Business Services that goes with each WSDL. The scenario is like this.
    Business Service 1: takes an input value as [Region] and returns a list of employee names.
    Business Service 2: takes the list of employee names and returns the list of employee names with their job profile
    Business Service 3: takes the list of employee names with their job profile and returns their contact information.
    I need to return the result of Business Service 3 to the consumer. The consumer basically need to call the Proxy service with [Region] as the input value and the result should be the output of above Business service 3.
    As I mentioned, I have WSDL for all the 3 Business Services, but, I do not have the WSDL for the Proxy Service. The Business Service WSDLs are all different and they do not match.
    My question is it possible to achieve the above result without having a concrete WSDL for Proxy Service? Also, how can I go about solving this use case. I have gone through some articles that talk about Split-Join, and am really lost.
    I really appreciate your kind reply on this.
    Thanks in advance.
    Regards,
    Syama

    You have multiple options:
    1. Create a WSDL which has input similar to input of WS1 (only Region as input) and an output similar to output of WS3.
    Create Proxy Service based on this WSDL. Then call all the thee business services one after the other and doing transformations/assigns as needed after each call. Finally map the result of BS3 to the similar output of your new WSDL on which the Proxy service is based.
    2. Create an Any XML type of web service. Create a schema which has two elements, one for input and one for output. Input containing only Region and output containing all the details. All consumers need to send request according to input defined in schema and expect output defined in schema. Its similar to creating the WSDL but can be used in case your consumer do not want to call a Web Service but want to call an XML API over HTTP. Rest will be same as option 1.
    Split join is needed to make calls in parallel, it wont be usable in your use case unless you expect a list og regions in the same request for each of which you need to gather same information by calling three services.

  • Applying configuration on proxy- or business-service

    Hello! When i apply configuration on working proxy- or business-service with a lot of messages, then i can have trouble with http_500 code at ~1 second on OSB's cluster nodes. I just want to know how this work. Is OSB loses some messages from business service, or nothing receiving messages is lose and http_500 is only for new requests (like graceful restart)?

    (My opinion only though based on observation. I did not actually read the design papers on that).
    OSB artifacts are internally compiled into EJB applications. When configuration changes, old applications are unloaded, new ones loaded. In between you get 500 with a message saying something like "Configuration is in transition".
    My understanding the messages that are in-flight within the old applications are trying to complete while the unloading happens. Some will, some won't.
    Incoming messages coming during the unload-load gap get 500.
    Messages after the new EJB is loaded are processed successfully.
    If you must provide message deliver guarantees, you gotta go with persistent storage (JMS) and transactions.

  • Editing proxy and business service security with WLST

    My customer wants to manage the OSB with WLST as much as possible. I'm wondering if it is possible to handle the security and policies on proxy and business service with WLST.
    Any ideas or links to documenation are welcome.
    Thanks!

    I think you can do this. Please refer - http://docs.oracle.com/cd/E14571_01/core.1111/e10043/wlstcmds.htm#CHDGHDFJ
    But not sure of how much flexibility you will get with WLST. I will recommend using OWSM that is specifically used for similar activities for the soa suite.
    Please refer - http://docs.oracle.com/cd/E21764_01/web.1111/e13713/owsm_appendix.htm & http://docs.oracle.com/cd/E21764_01/doc.1111/e15866/owsm.htm for more details.
    Thanks,
    Patrick

  • Specify filename in OSB File Trasport Business Service

    Hi All,
    Is it possible to specify the complete filename in OSB File Transport Business Service?
    the default behavior allows me to specify the prefix and suffix only, is it possible to override and specify the complete filename?
    Thanks,
    Tal

    Specifying the filename for outbound FTP transport in OSB the thread discusses with FTP BS and same would apply for File BS
    Manoj

  • Transportation of security through header from proxy to business service

    Hi,
    I have an application in which i have implemented web security at proxy service level. I couldnt transport that to business service.
    I have embedded USERNAME and PASSWORD in the header of the proxy service. This authentication should pass through to the business service, which in turn calls the SOA composite. How can i transport my credentials from proxy to business service.
    Thanks
    Karthick

    Solved

  • OSB:Publish to business service with for each in osb proxy message flow

    Hi,
    I have an external application that will make a call to my web-service and post a message to my queue "A" and i need to model my osb component such that it picks the message from that queue " A"and posts it to another queue "B". All this is done without any BPEL involved.
    for publishing the message i have created a business service that publishes a msg to the queue A and my proxy service is modelled such that it subscribes to this same queue A and publishes the msg to another business service (that posts it to a queue B).
    Everything is working fine but i have an issue in modelling my proxy message flow. If an external application sends a bulk msg i need to post the message one by one to my queue B. I have used for-each and Publish to BS but the msg doesn't get posted one by one. i know i am missing something please help me out.
    SOA Suite Version - 11.1.1.3

    Are you sure that your for-each definition is correct? Does the flow within the for-each get executed multiple times?
    You can check this by logging the variable to which you assign the message in the for-each. Don't forget to put the log level to Error, so you're sure that it's logged.
    Let's say you get a list of persons like the following xml in a variable personList
    <Persons>
    <Person>Glenn</Person>
    <Person>Prasanth</Person>
    </Persons>
    Your for-each definition should be the following.
    For each variable: person
    XPath: +./Person+
    In Variable: personList
    You don't mention the Persons element in the XPath expression since it is the root element of the XML. The root element is represented by . (dot).
    In the for-each, the variable person can be used like any other variable.

  • Version Control for OSB Proxy/Business Services ?

    Dear all
    I've used the browser-based osb console to expose a legacy web-service as follows :
    1. Create a Session
    2. Create a BusinessService based on the legacy web-service WSDL
    3. Create a ProxyService based on the BusinessService WSDL
    4. Activate the Session
    I now have two further questions :
    1. How do we version control the OSB "code" ? (we use Subversion for other code)
    2. How do we implement it in other environments (TEST, PROD, etc.)
    Thanks,
    Peter.

    >
    Are there other reasons why you say it's not the most ideal way of development ?
    >
    Versioning binary files is always a pain. You can't compare them, you can't merge them ... Another point, if you put your jar archive with OSB artifacts under version control, you will most probably face issue related to end of line styles (mac, unix, windows).
    However, the most important point is usability. I want to version .proxy and .biz services to see right in IDE that I changed something and I should check that in for the others. I don't want to risk that I forget something. And I also want to see what other users committed, what sources they work on ... You loose all of that by versioning jar file. I would never go this way.

  • Read Timeout is not working with business service in OSB 11.6

    HI All,
    We have set below configuration in "Http Transport Configuration" of a business service.
    Read Timeout- 8
    Connection Timeout  - 8
    Authentication  - None
    Proxy Serve
    Follow HTTP redirects - Disable
    Use Chunked Streaming Mode - Enable
    Even though backend is taking more than the configured value in Read Timeout but timeout is not happening in OSB, Connection time out also not worked, when we tested with wrong backend URL.
    Any help for this configuration would appreciated.
    Thanks,.

    Hi,
         Have you invoked any Services before calling the Business Service.
    If Yes, then the problem with the Invoked service.In this scenario even if you set the time out period it will not work..
    If No, your request payload is high
    Regards,
    Kiran

  • OSB: Calling MTOM business service from non-MTOM proxy

    Hi,
    it is very easy to call non-MTOM business service from MTOM enabled proxy service, but I don't know how to do it in an opposite way. I have web service proxy (http) with binary data in Base64 in a soap body element and I'd like to call a business service (web service over http again) using MTOM format to send binary data in binary format (and not in Base64 as it is in proxy). Is it possible to somehow decode binary data from Base64 in a proxy service and send them from this proxy to a business service using MTOM?

    I understand the flow you propose, but I don't know how to pass decoded data from Java callout back to message flow. As far as I know I can only return primitives, String and XmlObject, because anything else can't be processed in message flow.Yes you are correct.But you can also return DataSource in java callout. Please http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/pojo.html
    Now the working solution/POC --Tested on my local linux box
    package manoj.javacallout.binary;
    import java.io.BufferedReader;
    import java.io.ByteArrayOutputStream;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import javax.activation.DataSource;
    import javax.mail.util.ByteArrayDataSource;
    import com.sun.org.apache.xml.internal.security.utils.Base64;
    * TODO: I have use sun internal API for decoding for simplicity. You should modify this code with any base64 decoding library
    * Ideally should be using using http://commons.apache.org/downloads/download_codec.cgi
    * @author mneelapu
    public class Util {
         public static DataSource decodeBase64(DataSource ds) throws Exception {
         InputStream in=ds.getInputStream();
         BufferedReader bin = new BufferedReader(new InputStreamReader(in));
         byte[] decodedB64=Base64.decode(bin);
         ByteArrayDataSource decodedDS= new ByteArrayDataSource(decodedB64,"binary/octet-stream");
         return(decodedDS);
    Java Callout to decodeBase64
    Parameters
    javax.activation.DataSource=[ $body/* ]
    Result
    javax.activation.DataSource=response
    Now replace the $body with the decoded base64 response from java callout
    Replace [ node contents ] of [  undefined XPath  ]
    in [ body ] with [ $response ]
    Use $BEA_HOME/modules/javax.mail_1.4.jar for compiling.
    Let me know if this solves your problem.
    Thanks
    Manoj
    Edited by: mneelapu on Apr 20, 2009 3:23 PM

  • Regarding JMS-Queue/Topic in Proxy and Business service in OSB

    Hi
    I have one query regarding to the JMS-Queue/Topic.
    I am published the message to the JMS-Queue/Topic.
    ----My Business-service configuration is---
    General----Any xml
    Tranport--jms://localhost:7001/MyConnectionFactory/RequestQueue
    Response--None
    I call this Business-service in proxy-service of Routing message was published successfully to thee Queue.
    I try to dequeue the message from that queue for this
    --- I take another proxy with---
    General----Any xml
    Tranport--jms://localhost:7001/MyConnectionFactory/RequestQueue
    In meassage flow
    Routing--second busines-service)
    --- Second business-service configuration is---
    General----Any xml
    Tranport-File (C://temp)
    Issue is when I publish the message to Queue,the message is also found in the file  i.e C:temp. I don't now why  this come to the file.*
    Any suggestions
    Thanks
    Mani

    Either I did not get an idea, but in your JMS proxy you are routing to File :)
    If you don't want file, why route to 2nd BS ?

  • OSB 11g - List business services with WLST

    Hi,
    We're using OSB 11.1.1.3 and 11.1.1.6 in several environments.
    We just need to use wlst scripting to keep track of all business services and their endpoint uri's automatically.
    We tried using some old scripts but found out that they don't work on 11g installations:
    We tried the following code:
    connect('weblogic','oracle10','t3://soavm2:7001')
    domainRuntime()
    sessionName = "FindServicesSession" + str(System.currentTimeMillis())
    sessionMBean = findService(SessionManagementMBean.NAME, SessionManagementMBean.TYPE)
    sessionMBean.createSession(sessionName)
    servConfMBean = findService(ServiceConfigurationMBean.NAME + "." + sessionName, ServiceConfigurationMBean.TYPE)
    alsbCore = findService(ALSBConfigurationMBean.NAME, ALSBConfigurationMBean.TYPE)
    allRefs=alsbCore.getRefs(Ref.DOMAIN)
    for ref in allRefs:
    typeId = ref.getTypeId()
    if typeId == "BusinessService":
    serviceDefinition = servConfMBean.getServiceDefinition(ref)
    endpointConfigration = serviceDefinition.getEndpointConfig()
    print endpointConfigration
    We get a "AttributeError: 'NoneType' object has no attribute 'getServiceDefinition'" error. It seems that it is related to metalink note "How To Modify Service Configurations By OSB JMX API [ID 1431254.1]". However the code provided there is for java through jmx, does anybody has a working example of how to do that on wlst?
    Thanks!
    p.d: already posted this question on wlst forum but got no answer...

    You may like to refer metalink note 1380705.1 and OSB java API (section "Using MBeans in a script")-
    http://docs.tpu.ru/docs/oracle/en/fmw/11.1.1.6.0/apirefs.1111/e15033/com/bea/wli/sb/management/configuration/SessionManagementMBean.html
    Regards,
    Anuj

  • Security between Proxy and Business Services

    Dear All
    We are trying to restrict business service access only through proxy services. Will outbound security using service accounts can do this task? I enabled basic authentication at business service level and tried to pass username/password token through soap header in proxy service. I get "The invocation resulted in an error: Unauthorized." error.
    Please suggest if this is the correct approach.
    Thanks,
    Amjad.

    I'm affraid you didn't get the very basic meaning of business service.
    >
    I want BS1 to be accessed only through PS1 and hence need to secure BS1.
    >
    1. You don't need to secure BS because of this reason since every BS can be accessed only through PS. There is no way you can call BS outside of OSB. BS is just a definition of external (business) service.
    2. Authentication set on BS is not meant to restrict access to BS itself. It is set to use credentials to access some service from OSB (WS1 in your case).
    >
    When BS1 is directly accessed through OSB console, I get "The invocation resulted in an error: Unauthorized".
    >
    This is only a testing form. Again, there is no chance you could call BS outside of OSB. On top of that, if you test BS which has pass-through account set, the test fails as there are no credentials to be passed to BS from PS as there was no PS called.
    I suggest you go back to OSB basics:
    http://docs.oracle.com/cd/E13159_01/osb/docs10gr3/tutorial/tutIntro.html#wp1045005
    http://docs.oracle.com/cd/E14571_01/doc.1111/e15020/architecture_overview.htm#i1094753

Maybe you are looking for