How to get specific OSB business service HTTP endpoint failover?

I am trying to get the following behavior in an HTTP Business Service in OSB, and I'm not finding the answer (if it exists) in the docs.
I have two backend endpoints, "production" and "backup." I want all request to go to the "production" endpoint unless it becomes unavailable. At which time all requests should go to the backup endpoint - without manual intervention. Automatic failback would be nice but not absolutely necessary. This is what the service provider is recommending for their operational concerns.
Is there some way to accomplish this?
The backup is available at most times, so we can't use round-robin load balancing to get this behavior.
Is this what having a load balancing algorithm of "none" accomplishes? The docs state the order in this case is significant, but not why?
Random-weighted does not work, as it does not allow a zero weight, which means some requests (even if small in proportion) may go to that backup even if the primary is available.

I'm now seeing this in real operation, and I'm seeing something that puzzles me based on the discussion above, and also a behavior I'd like to change if I can.....
First, the puzzlement - of about 6700 invocations over the space of a few hours, I see in the console 9 errors in the primary as configured above, and 9 messages handled successfully by the secondary. So, since the messages are coming on a fairly regular basis (a few per minute, spread over 3 OSB instances), and I have a 10 min retry interval, I would have expected to see a lot more messages handled by the secondary endpoint while OSB instance was waiting 10 min to retry the primary. What's going on here? Does this class of "failure" not take an endpoint "offline?"
Second, behavior I want to change: the errors are apparently intermittent SSL HANDSHAKE_FAILUREs reported by the backend. Is there anyway to get the primary retried first, since we only want traffic to go to the backup if the primary is really offline?
/Steve Elkind
####<Dec 22, 2009 10:45:14 PM EST> <Warning> <Security> <njxymh0099> <SS_ESB_mgd2> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1261539914730> <BEA-090497> <HANDSHAKE_FAILURE alert received from fobar-web02.inex.com - 207.235.231.231. Check both sides of the SSL configuration for mismatches in supported ciphers, supported protocol versions, trusted CAs, and hostname verification settings.>

Similar Messages

  • Retry count and retry Interval fields in Business service (Http protocol)

    Is retry count and retry Interval in OSB business services(Http protocol) defined for retrying the application errors or for communication errors?
    Also even if my connection timeout is 0 I get an error response due to communcation issue in abt 2.5 mins.
    Please explain.

    - There is an explicit configuration on business service called "Retry Application Errors", if enabled application errors will also be retried.
    - If timeout is not set on business service then domain level timeout configuration comes into effect which is by default of 180 sec i.e 3 mins.
    Hope this helps.

  • OSB  Business service not getting created

    Dear team,
    We created a db adaptor which invokes a DB procedure with  input paramter as tabletype .
    Db procedure and tabletype are in same schema .
    We are trying a generate a Business service based on jca file. We are getting error
    "Error while retrieving information from JCA file".
    Can you please suggest

    1. What instrument did you use for creating Business Service?
    2. How did you create the Business Service step by step?
    3. Can you please attach JCA, WSDL, XSD for Db procedure?

  • How to Define MQ message expire time in OSB Business service.

    Hi,
    Please let me know the option in OSB business service to set the expiration time for MQ messages. Is it possible?
    Thanks,
    karthik.

    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/mqtransport/transport.html
    transport header "Expiry"
    i hope it works :o)

  • Using UDDI key in OSB business service

    Hi All,
    I want to know how to invoke a service published in Oracle service registry through dynamic lookup in OSB. I tried importing service published in OSR as a OSB business service through sb console. In that the business created had the actual service end point reference rather than the UDDI service key. Hence the changes done to the service endpoint in OSR wont get automatically propagated to the osb business service as there is no actual dynamic look up.

    You will need to setup the Target system's server certificate as trusted in Weblogic's keystore or the Root CA certificate which certified target system's server certificate as trusted CA in weblogic.
    Check this thread for more details:
    Callling an external service through HTTPS

  • How to get the status of service in rac

    Dear all,
    how to get the status of service in rac.
    SQL> show parameters service;
    NAME                                 TYPE        VALUE
    service_names                        string      DEVDB, DEVDB1, devdb
    [oracle@rac1 ~]$ srvctl status service -d devdb -s devdb
    PRKO-2120 : The internal database service devdb cannot be managed with srvctl.

    user7244870 wrote:
    Dear all,
    how to get the status of service in rac.
    SQL> show parameters service;
    NAME                                 TYPE        VALUE
    service_names                        string      DEVDB, DEVDB1, devdb
    [oracle@rac1 ~]$ srvctl status service -d devdb -s devdb
    PRKO-2120 : The internal database service devdb cannot be managed with srvctl.
    Internal services cannot be managed with srvctl utility. Check if you have any user defined service in dba_services
    SQL> desc dba_services
    Name                                      Null?    Type
    SERVICE_ID                                         NUMBER
    NAME                                               VARCHAR2(64)
    NAME_HASH                                          NUMBER
    NETWORK_NAME                                       VARCHAR2(512)
    CREATION_DATE                                      DATE
    CREATION_DATE_HASH                                 NUMBER
    FAILOVER_METHOD                                    VARCHAR2(64)
    FAILOVER_TYPE                                      VARCHAR2(64)
    FAILOVER_RETRIES                                   NUMBER(10)
    FAILOVER_DELAY                                     NUMBER(10)
    MIN_CARDINALITY                                    NUMBER
    MAX_CARDINALITY                                    NUMBER
    GOAL                                               VARCHAR2(12)
    DTP                                                VARCHAR2(1)
    ENABLED                                            VARCHAR2(3)
    AQ_HA_NOTIFICATIONS                                VARCHAR2(3)
    CLB_GOAL                                           VARCHAR2(5)http://docs.oracle.com/cd/B19306_01/rac.102/b14197/srvctladmin.htm

  • OSB Business Service Work Manager Doesnt Throttle

    Hi,
    I have a requrirement to throlle the number of concurrent requests going to an end point.
    So i have used OSB business service where in i am calling an end point webservice, and configured a work manager in console and selected it in the dispatch policy
    I deployed the workmanager on managed server. i specified max concurrent threads as 3.
    I tried to test it and see that throttling doesnt really work.. All the requests sent are being sent at once not 3 at a time.
    The expected behavior is first 3 sdhud go and then onc ethey complete next 3 similary next 3. But i dont see that behavior. Please let me know if i am doing any worng
    below is my work manager configuration
    Service Type Any XML Service
    Transport Configuration
    Protocol http
    Load Balancing Algorithm round-robin
    Endpoint URI <Specified the end point URI>
    Retry Count 0
    Retry Iteration Interval 0
    Retry Application Errors Yes
    HTTP Transport Configuration
    Read Timeout 0
    Connection Timeout 0
    HTTP Request Method POST
    Authentication None
    Proxy Server
    Follow HTTP redirects Disabled
    Use Chunked Streaming Mode Enabled
    Dispatch Policy WorkManagerTest
    Message Handling Configuration
    XOP/MTOM Support Disabled
    Page Attachments to Disk No
    Result Caching Not Supported
    Any suggestions on this?
    Edited by: 791951 on Mar 17, 2011 7:51 AM

    If you need to throttle the Business service, then you should configure the throttling parameters in the Business Service -> Operational Settings tab
    Choose your Business Service in the OSB Console -> Operational Settings
    Throttling -Check this box to enable the throttling. Maximum Concurrency to 3, and Throttling Queue to x number of messages you wish to hold in the throttling queue

  • JSSE causes OSB business services to receive Socket Closed

    Using WL 10.3.3 & OSB 11gR1 on jrockit 1.6.0_45  Redhat:
    After enabling the "Use JSSE SSL" option in the managed servers's SSL tab ( because web service clients want to use SHA256 certificates ), OSB business services ( outbound to service providers ) fail with
    Exception - Body: <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:Fault xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
    <faultcode>BEA-380000</faultcode>
    <faultstring>General runtime error: socket closed</faultstring>
    After a lot of debugging, I've found that the Connection Timeout option within the OSB HTTP transport is involved.
    OSB business services which use https AND have a non-zero value for HTTP transport's Connection timeout cause the Socket Closed error.
    Business services which do not use HTTPS or do not have a Connection Timeout do not receive the error.
    While setting the Connection Timeout to 0 allows the transaction to succeed, that leaves the OSB server vulnerable when the service provider host is not available.
    So I've reset the Connection Timeout values to 0, and added this JVM parameter to each OSB managed server
    -Dweblogic.http.client.defaultConnectTimeout=5000

    There are few BUGs reported for similar issues.
    OSB Server Showing "java.io.IOException: SSLEngine is closed" When Attempting to Connect to an External Web Service Using Two-Way SSL (Doc ID 1465618.1)

  • OSB business service and NTLM authentication

    Hi,
    Is there a solution to use OSB business service with http transport and this bs authenticates itself with NTLM
    thanks Edwin

    Hi Manoj,
    We want to connect our production esb to the ERP ( IFS) system and we want to do this with the OSB. The ERP system has a lot http services and they are all running on jboss. On this app server they have enabled ntlm so users can their account to fill in there project hours /administration.
    I got this working with a authenticator in a jdeveloper 11g web service proxy client. ( http://biemond.blogspot.com/2009/04/jax-ws-web-service-proxy-client-and.html )
    thanks Edwin

  • OSB business service transforming a date column 1936 to 2036 ( 1950)

    Hello, I'v a database view with a normal date column "geburtsdatum".
    Data Dictionary:
    GEBURTSDATUM DATE
    Now with JDeveloper I create a db-adapter. This works fine.
    On OSB I do generate a business service on the just created jca file. Also this works fine.
    XSD for db adapter:
    <xs:element name="geburtsdatum" type="xs:dateTime" minOccurs="0" nillable="true"/>
    I can test this business service successfully, everything is fine, but not the date interpretation when birtdate <1950
    Sample geburtsdatum (birtdate): 29-JUL-1934
    DATABASE: 29.07.1934
    OSB Business Service: 29.07.2034
    Why or where happends this date conversion?
    This is very strange, anyone had the same problem?
    Any help would be appreciated.
    Thanks
    Best regards,
    Reto

    After all I found the solution. Again the problem has been caused on DB side.
    I'm using a view. On this view I had a DATE column with a decode. I think I did a clean TO_DATE casting, but it seems as the OSB DB Adapter did not interpret this correctly.
    (on database side with SQL I did not have any problems here)
    My solution was:
    Using a date returning function (which does my decoding) in my view :
    CREATE VIEW xyz AS
    SELECT ...
    , myPackage.removeMaxDate(n.geburtsdatum) as geburtsdatum
    FROM ...
    Regards,
    Reto

  • How to get Folder or document service permissions  by using  KM API's

    Hi,
    Any help how to get Folder or document service permissions  by using  KM API's  
    Any help or hint is greatly appreciated.
    Thanks,
    Costa.

    Hi,
    I have tested it here and it works for me (this code lists the service permissions settings for folder /documents/temp/):
        RID rid = RID.getRID("/documents/temp");
        try {
          IUser user = (IUser) request.getUser().getUser();
          IResourceContext context = new ResourceContext(user);
          IResource res = ResourceFactory.getInstance().getResource(rid, context);
          IResourceFactory resourceFactory = ResourceFactory.getInstance();
          IRepositoryServiceFactory serviceFactory = resourceFactory.getServiceFactory();
          IAclService aclService = (IAclService) serviceFactory.getRepositoryService(res, IWcmConst.ACL_SERVICE);
          IResourceAclManager aclResourceManager = aclService.getAclManager();
          IResourceAcl resourceAcl = aclResourceManager.getAcl(res);
          boolean inheritedAcl = false;
          if (resourceAcl == null) {
            resourceAcl = aclResourceManager.getInheritedAcl(res);
            inheritedAcl = true;
          response.write("<strong>SERVICE PERMISSION OWNERS</strong><br>");
          IUMPrincipalList ownerList = resourceAcl.getOwners();
          IUMPrincipalListIterator ownerListIt = ownerList.iterator();
          while (ownerListIt.hasNext()) {
            IUMPrincipal ownerPrincipal = ownerListIt.next();
            String strPrincipal = ownerPrincipal.getId();
            response.write(strPrincipal + "<br/>");
          response.write("<br><strong>SERVICE PERMISSIONS</strong><br>");
          IResourceAclEntryList el = resourceAcl.getEntries();
          IResourceAclEntryListIterator it = el.iterator();
          while (it.hasNext()) {
            IResourceAclEntry entry = it.next();
            String strEntryPerm = entry.getPermission().getDescription();
            String strPrincipal = entry.getPrincipal().getId();
            response.write("<strong>" + strEntryPerm + "</strong> - principal: " + strPrincipal + "<br/>");
            IAclPermissionList plList = entry.getPermission().getMembers();
            IAclPermissionListIterator plListIterator = plList.iterator();
            while (plListIterator.hasNext()) {
              IAclPermission perm = plListIterator.next();
              response.write(perm.getDescription() + "<br/>");
        } catch (Exception e) {
          response.write(LogWriter.extractCallStack(e));
          LogWriter.traceSevere(LogWrapper.trace, e, LogWriter.extractCallStack(e), true);
    Romano

  • How to get specific cell or whatever is in your datatable?

    All there is in my datatable is one value loaded. Here's my code, but how do i convert that datatable to a string?
    var fileName = string.Format("{0}\\file.xlsx", Directory.GetCurrentDirectory());
    var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.12.0; data source={0}; Extended Properties=Excel 12.0;", fileName);
    OleDbConnection connExcel = new OleDbConnection(connectionString);
    connExcel.Open();
    DataTable xlsData = new DataTable();
    OleDbDataAdapter dbAdapter = new OleDbDataAdapter("select * from [Filters$B2]", connExcel);
    dbAdapter.Fill(xlsData);
    //Now i want to see that value in xlsData???? or possibly convert it since it is only one cell loaded to a string? HELP?

    Hi  vkid,
    >>All there is in my datatable is one value loaded. Here's my code, but how do i convert that datatable to a string?
    About convert datatable to a string, you can use the following code
    string res = String.Join(Environment.NewLine, table.Rows.OfType<DataRow>().Select(x => String.Join(" ; ", x.ItemArray)));
    But based on your title, How to get specific cell,  please check the following code
    string value = table.Rows[0].ItemArray[0].ToString();
    It means get the firstrow and first column value. You can get the specified cell which you want.
    Best regards,
    Kristin
    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.
    Click
    HERE to participate the survey.

  • How to publish to different Business service in OSB

    Hi,
    I have a xml,based on the RecordType I need to send to two Business services.
    If 00020=Then i publish to LOSS BS
    if 00030=Then to Gain Business service.
    Then XML is as below.
    +<body>+
    +<CSSiteAndMeter>+
    +<Header>+
    +...+
    +</Header>+
    +<Detail>+
    +<RecordType>00010</RecordType>+
    +<RecordTypeLiteral>METERID</RecordTypeLiteral>+
    +</Detail>+
    +<Detail>+
    +<RecordType>00020</RecordType>+
    +<RecordTypeLiteral>LOSS</RecordTypeLiteral>+
    +</Detail>+
    +<Detail>+
    +<RecordType>00010</RecordType>+
    +<RecordTypeLiteral>METERID</RecordTypeLiteral>+
    +</Detail>+
    +<Detail>+
    +<RecordType>00030</RecordType>+
    +<RecordTypeLiteral>GAIN</RecordTypeLiteral>+
    +</Detail>+
    +<Trailer>+
    +...+
    +</Trailer>+
    +</CSSiteAndMeter>+
    +</body>+
    How do i do in OSB,though there is a IF condition in OSB which i can do by cheking the Record Type='00020',but i need the Record Type =00010 also while publishing, like below
    +<Detail>+
    +<RecordType>00010</RecordType>+
    +<RecordTypeLiteral>METERID</RecordTypeLiteral>+
    +</Detail>+
    +<Detail>+
    +<RecordType>00020</RecordType>+
    +<RecordTypeLiteral>LOSS</RecordTypeLiteral>+
    +</Detail>+

    HI,
    u can use Conditional Branching
    http://docs.oracle.com/cd/E13159_01/osb/docs10gr3/userguide/modelingmessageflow.html#wp1061670
    Split join would be used in case u need to split your request and call your Business Service in Serial/parallel & then gather resposnes from multiple callouts to have single response
    http://docs.oracle.com/cd/E13159_01/osb/docs10gr3/userguide/splitjoin.html#wp1137258
    Abhinav

  • 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

  • How to send query string to OSB Business Service?

    Hi
    I need to call a Servlet which is accepting http get request.
    My system design is
    I have a web service interface that I need to expose to Front end application. I am using Proxy service for this.
    Then I have a servlet at end system and using Business service to send request to servlet.
    I need to pass username, password, jndi context and payload using url encoding.
    What all steps do I need to follow for this? How to create query string , which variable I need to play with inbound or outbound?
    I have gone through all the answers on this forum but could not understand much.
    Thanks
    Vibhor

    Hii
    I am still unable to send http get request to end service.
    In flow I have setted $outbound/transport/request-http/query-string too.
    But I have to send request with url encoding.
    How to encode query string and how can I check whether my request is going correctly or not, is there any variable in which complete url would be stored.
    Thanks
    Vibhor
    Edited by: Vibhor Rastogi on Sep 15, 2010 9:49 AM

Maybe you are looking for