OSB: JMS Transport URL for cluster

Hi,
I am trying to configure OSB JMS Transport business service. I have 3 JMS servers in my cluster and I am trying to understand how to configure my business service URI. Can I use all three uri's in my business service? If we configure multiple URI's how will they be used? The load balanced algorithm(round robin) we specify is for these uris?
Thank you
Matt

maybe this one helps a bit :
https://blogs.oracle.com/MarkSmith/entry/osb_and_jms_business_service_c

Similar Messages

  • OSB JMS Transport configuration

    I have a need to pass a reply-to destination from one external process (the producer) to a second external process (the consumer), with the design supporting flexibility for changing destinations within the OSB pipeline at a future time. To enable this functionality, the following jms transport was designed on the OSB 10gR3:
    external producer--->|---q1--->jmsTransProxy---->q2---|--->external consumer
    The jmsTransProxy is configured with request/response text message types, jms protocol, Get All Headers yes, Is Response Required enabled, and Response Correlation Pattern CorrelationID.
    In the Request pipeline of jmsTransProxy, a single stage is configured to Pass All Headers through Pipeline.
    In the Response pipeline of jmsTransProxy, a single stage is configured to Pass All Headers through Pipeline.
    When the external producer sets the JMSReplyTo header, I expected that this header would be passed from q1 to q2 so that the external consumer would receive it. The message payload is correctly received by the external consumer along with the JMSCorrelationID, but not the JMSReplyTo header information. By examining the logs, I can see the header information is received correctly in the request pipeline, but is not available from q2.
    What is the correct solution to have the JMSReplyTo information pass through to the external consumer?

    Thank-you for your tips.
    I have revised the pipeline as you indicated and more of the headers pass through, but not the JMSReplyTo header. Because the user headers are passed through, I can use get/setObjectProperty on the message to realize the functionality required (though this is a workaround).
    current configuration:
    external producer--->q1--->jmsProxy--->jmsBusiness--->q2---> external consumer
    jmsProxy parameters:
    service type: messaging service
    request message type: text
    response message type: none
    protocol: jms
    endpoint uri: q1
    get all headers: yes
    destination type: queue
    is reposnse required: disabled
    etc.
    jmsProxy request pipeline:
    publish to [ jmsBusiness ]
    request actions: set transport headers for [ outbound request ] (pass all headers)
    jmsBusiness parameters:
    service type: messaging service
    request message type: text
    response message type: none
    protocol: jms
    endpoint uri: q2
    destination type: queue
    is reposnse required: disabled
    etc.

  • OSB JMS resources in a cluster

    Hi,
    I am creating an OSB cluster with multiple managed servers using a script. I would like to know what resources (JMS) are needed and how they should be targeted so that reporting works.
    Best regards
    Dimo

    I think I have found out what is required by the OSB:
    1. DataSource deployed in the cluster AND on the admin server for the reporting (wlsbjmsrpDataSource), scripts to drop and create the tables are located in ${osb_home}/dbscripts/oracle/
    2. JMS Module containing:
    2.1. 3 Connection factories:weblogic.wlsb.jms.transporttask.QueueConnectionFactory, wli.reporting.jmsprovider.XAConnectionFactory, wli.reporting.jmsprovider.NonXAConnectionFactory
    2.2. 8 Queues - QueueIn, wli.reporting.jmsprovider.queue, wli.reporting.jmsprovider_error.queue, wli.reporting.purge.queue, wlsb.internal.transport.task.queue.email, wlsb.internal.transport.task.queue.file, wlsb.internal.transport.task.queue.ftp, wlsb.internal.transport.task.queue.sftp
    I am not sure if that list is complete as it has been a bit of reverse engineering to find it out...

  • Is Message debatching in OSB using JMS transport possible

    hi
    I have message on JMS queue with multiple message(s) in it.
    Now my requirement is to read this JMS message as multiple internal message(s) from queue using OSB JMS transport.
    Is this possible from OSB JMS transport?
    Thanks in advance.
    -Ramakrishna Gilla

    No.. JMS transport wont automatically do it for you .. You will have to write a jms proxy service and have your logic to do the debatching.. alternatively you can use jms proxy as a pass thru service writing to the file system and then have the JCA file adapter to do the debatching..

  • JMS Transport, Transactional, asynchronous request-response

    Hi again :)
    I have weblogic web service with jms transport and have chosen session bean implementation.
    I'm testing transactional processing now.
    Required feature is to put getting request from queue and processing it in web service in one transaction.
    During tests I have noticed that:
    When I throw RuntimeException from my web service method the message doesn't come back to the queue.
    When I try to sessionContext.setRollbackOnly(); I get an error
    javax.ejb.EJBException: EJB Exception: : java.lang.IllegalStateException: [EJB:010158]Illegal attempt to call EJBContext.setRollbackOnly() from an EJB that was not participating in a transaction.
    When I deploy web service I get the following warning:
    <Warning> <EJB> <> <AdminServer> <[STANDBY] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1238752023176> <BEA-010212> <The EJB 'EventNotifierServiceEJB(Application: portal, EJBComponent: EventNotifierService-1.0-SNAPSHOT.jar)' contains at least one method without an explicit transaction attribute setting. The default transaction attribute of Supports will be used for the following methods: local[publish(package.PackageType)] >
    And putting @TransactionAttribute(TransactionAttributeType.MANDATORY) doesn't change this.
    So It seems that transactions doesn't work by default.
    I turned on XA in my own jms connection factory used by web service but this didn't help.
    Looking in weblogic documentation I have found the following sentences:
    In (http://e-docs.bea.com/wls/docs103/webserv_adv_rpc/jmstransport.html)
    "If you have specified that the Web Service you invoke using JMS transport also runs within the context of a transaction (in other words, the JWS file includes the @weblogic.jws.Transactional annotation), you must use asynchronous request-response when invoking the service. If you do not, a deadlock will occur and the invocation will fail."
    In (http://e-docs.bea.com/wls/docs103/webserv_adv_rpc/asynch.html)
    "The asynchronous request-response feature works only with HTTP; you cannot use it with the HTTPS or JMS transport."
    For me these two sentences are in conflict.
    Currently I'm trying to use just transactional annotation without asynchronous request-response but the risk of deadlocks doesn't sound good for me.
    BTW I have Oneway annotation in my web service method, I'm not sure if this changes something.
    I'll be grateful for any help in resolving this problem.
    Edited by: user10930859 on Apr 3, 2009 3:49 AM

    Hi Karthik-
    You can link the corelation-id..
    Make you third-party application to receive Message-id from JMSRequestQueue and send this message id as correlation-id to JMSResponseQueue. I guess it would work we have tried this as POC.
    Regards,
    Ramesh

  • Java client for OSB proxy with JMS Transport

    Hi,
    I am trying to call OSB proxy with JMS Transport. I am generating the client through ant task clientgen and following this article
    http://www.oracle.com/technetwork/articles/murphy-soa-jms-092653.html
    The osb proxy is req-response and is simply routing to BS which return a string value.
    When I run my client, it get stuck and does not return at all. Has any one trying java client in such scenario?
    What I may be missing?
    Below is snipped of client code:
    String url = "http://localhost:7021/sbresource?PROXY/MySample/MyJMSProxyService";
    CreditLoanApprovalServiceSoapBindingQSService service = new CreditLoanApprovalServiceSoapBindingQSService_Impl(url);
    MyPortType port = service.getCreditLoanApprovalServiceSoapBindingQSPort();
    LoanStruct in = new LoanStruct(); //populated the data structure
    String loanResult = port.processLoanApp(in); // Stuck here without any error
    System.out.println("LoanResult--> " + loanResult);
    Thx
    /Ashwani

    http://localhost:7021/sbresource?PROXY/MySample/MyJMSProxyService is the WSDL URL of the proxy.
    Transport is is picked by the client from wsdl.
    As far as the documentation of client generation is there, there is no change.
    But meanwhile I have started working on sending the message directly to queue. JMSProxy is getting called. May be I will first run the proxy this way and then try troubleshooting the java client.
    Regards
    Ashwani

  • Error while passing ODI variable in JNDI Url for JMS Queue XML

    Hi,
    Facing a weird problem while passing ODI variable in JNDI Url for JMS Queue XML.
    Below is the JNDI Url configured under ODI Topology:
    JNDI Url: t3://<host_location>?d=#TEST.SCHEMA_FILE&s=<schema_name>&JMS_DESTINATION=jms/<queue_name>
    where,
    #TEST.SCHEMA_FILE --> ODI variable storing xsd name and location
    Issue Description:
    If we restart ODI server then for the first run of any ODI interface using JMS Queue XML, it is unable to get the value for ODI variable present in JNDI Url (d=#TEST.SCHEMA_FILE).
    It throws error message saying: No XSD found
    Temporary Resolution:
    As a temporary fix if we hard-code and pass the value in that ODI variable as shown below, it will successfully go through.
    eg: JNDI Url: t3://<host_location>?d=C:\XSD\test.xsd&s=<schema_name>&JMS_DESTINATION=jms/<queue_name>
    Reverting it back to variable later will have no issues and subsequent run will succeed.
    But again anytime later if server is restarted then first run will have this issue.
    Want to have permanent fix for it.
    Any one having idea on it please share. Appreciate your help!

    What ODI version are you using? It could be related to the bug in the older version as described in support note Doc ID 1290326.1

  • How to set property for Cluster Environment for JMS Adapter

    Hi All,
    I am moving from DEV to Prod environment which is cluster.
    Can you Please explain me what property I need to Set for Cluster Environment for JMS Adapter, so that I could avoid race condition for Dequeue/enqueue.
    I am using soa suite 10.1..3.4
    Thanks in Advance.
    Edited by: vikky123 on Jul 12, 2010 7:03 AM

    put something like this
    <activationAgents>
          <activationAgent className="oracle.tip.adapter.fw.agent.jca.JCAActivationAgent" partnerLink="PARNERLINKNAME">
            <property name="clusterGroupId">SOMEUNIQUEVALUE</property>
            <property name="portType">PARTNERLINK_PORTTYPE</property>
          </activationAgent>
        </activationAgents>

  • Configure # of JMS consumers for WebServices over JMS Transport

    I'm using WebLogic Server 9.2. My Web Services are using JMS Transport.
    10,000 Web Services requests are submitted to the Web Services JMS queue at the same time. Processing time seems a little slow. In the Admin console, monitoring info of the JMS queue shows the Consumers is 4 and Consumers High is 6.
    I want to scale Web Services processing by increasing the number of JMS consumers that transform JMS request messages into Web Services requests. Does anyone have an idea to configure it?

    Hi,
    I don't think the number of consumers for a service is configurable. There is a single consumer for each service. Well, there is another consumer for interop purposes, which is irrelevant to our discussion here.
    You may be aware that multiple consumers reading from the same queue would result in requests being processed in parallel, which means the order that the requests are processed might be different from the order that they are put into the queue.
    For applications where the order of processing the requests to the same web service is not important, it probably makes sense to have an option of configuring multiple consumers. But this is no such option right now.
    Regards,
    Dongbo, BEA

  • Configuring Keystore for clusted WL 10.3 (OSB).

    In one of test env i have weblogic 10.3 (OSB) Admin with 6 managed servers. In order to configure one way SSL,Do we need to configure keystore (Identity&Trust) only for admin or for all managed servers individually?
    help is much appriciated.
    Regards,
    Sreepad

    But configuring keystore in weblogic console is more like deploying any app, so doing it on admin wiil not help? Where did you see that? It is not correct. Configuring keystore is a part of Weblogic configuration and it is not a deployment. Moreover, each and every server has it's own configuration so you have to mention the keystore path in all server's config, however you may use same keystore for all the servers.
    Remember, in clustered deployment, OSB gets deployed on the cluster and not on admin server.
    also can we use WLST for configurng keystore?I think we can create and configure complete domain itself using WLST, so this will also be possible.
    Regards,
    Anuj

  • JMX script for monitoring JMS servers in a cluster

    hi
    I am new to writing scripts. I will appreciate if I can get some help in writing a JMX script for monitoring JMS Servers in a cluster a well as monitoring the distributed queues
    thanks

    Exact scenario is,
              JMS Server
              |
              DistributedQueue
              | |
              JMSrvr1 JMSrvr2
              Q1 Q3
              Q2 Q4
              Q1 and Q2 delegateing messages, and at the same time Q3,Q4 also delegating messages.
              If JMSrvr1 down, we need to merge Q1 and Q2 with JMSrvr2. Here we cannot migrate as, JMSrvr already have queues. We need to merge all these queues.
              Thanks and Regards,
              Narayana Moorthy.

  • JMS Transport for BPEL processes

    Hi,
    Can anyone let me know if we can use JMS transport for hosting the webservices in BPEL. If we can host, any pointers on how to do it would be of great help.
    Regards,
    SK

    Here is the edoc for JMS transport:
    http://edocs.bea.com/wls/docs81/webserv/jmstransport.html
    WSDL will have an additional port. The address for
    this port looks like:
    "jms://" + host + ":" + port + "/" + jmsFactoryName +
    "/" + jmsQueueName + "?URI=" + serviceURI;
    Soap envelope is send as a JMS text message. Client
    also sends the serviceURI as a String property (with
    name "URI" and value serviceURI). It also need to create
    a temp queue to get the response and the temp queue
    is set using JMSReplyTo() method on the message.
    Let me know if you need more details,
    Regards,
    -manoj
    http://manojc.com
    "Jay Kasi" <[email protected]> wrote in message
    news:3ecbec66$[email protected]..
    >
    Hi.
    I know that BEA weblogic server 8.1 supports JMS as a transport forinvoking a
    web service hosted on a weblogic server. I would like to integrate withsuch a
    web services using my own software. How can I get the specifications forthe WSDL
    binding to JMS for this and the SOAP 1.1 bindingg to JMS for this.
    regards
    jay kasi

  • OSB jms clustering - load balancing seems to be not working

    Hi All,
    I have one admin server and two managed servers running ( one of these managed server is running in the remote linux machine) in a cluster
    I have connectionfactory created with load balance enabled with round robin
    and server affinity is disabled
    I have queue created as uniformly distributed Q
    I have a proxy service with load balancing as roundrobin and endpoint URL as below
    jms://rdoelapp001011:61703,rdoelapp001013:61703/synergyConnectionFactory1/MM_gridQ0
    If I execute this proxy sending messages it always go to one server only. There is no message going to the other server.
    If I shutdown the server that receives messages then the other server is receiving messages. Seems like fail-over is working but not the load-balancing
    There is one point may be worth mentioning here is, from the admin console if I look at the servers for the clusters it has below information
    Name      State      Drop-out Frequency      Remote Groups Discovered      Local Group Leader      Total Groups      Discovered Group Leaders      Groups      Primary      
    synergyOSBServer1     RUNNING     Never     0     synergyOSBServer1     1     synergyOSBServer1     *{synergyOSBServer1}*     0          
    synergyOSBServer2     RUNNING     Never     0     synergyOSBServer1     1     synergyOSBServer1     *{synergyOSBServer1, synergyOSBServer2}* 0
    one server has groups as {synergYOSBServer1} instead of {synergyOSBServer1, synergyOSBServer2}. Does that look correct?
    here is my jms xml file
    <?xml version='1.0' encoding='UTF-8'?>
    <weblogic-jms xmlns="http://xmlns.oracle.com/weblogic/weblogic-jms" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-jms http://xmlns.oracle.com/weblogic/weblogic-jms/1.1/weblogic-jms.xsd">
    *<connection-factory name="synergyConnectionFactory1">*
    *<sub-deployment-name>synergySubDeploy1</sub-deployment-name>*
    *<default-targeting-enabled>false</default-targeting-enabled>*
    *<jndi-name>synergyConnectionFactory1</jndi-name>*
    *<client-params>*
    *<client-id-policy>Restricted</client-id-policy>*
    *<subscription-sharing-policy>Exclusive</subscription-sharing-policy>*
    *<messages-maximum>10</messages-maximum>*
    *</client-params>*
    *<transaction-params>*
    *<xa-connection-factory-enabled>false</xa-connection-factory-enabled>*
    *</transaction-params>*
    *<load-balancing-params>*
    *<load-balancing-enabled>true</load-balancing-enabled>*
    *<server-affinity-enabled>false</server-affinity-enabled>*
    *</load-balancing-params>*
    *<security-params>*
    *<attach-jmsx-user-id>false</attach-jmsx-user-id>*
    *</security-params>*
    *</connection-factory>*
    <uniform-distributed-queue name="errorQ">
    <sub-deployment-name>synergySubDeploy1</sub-deployment-name>
    <default-targeting-enabled>false</default-targeting-enabled>
    <jndi-name>errorQ</jndi-name>
    <load-balancing-policy>Round-Robin</load-balancing-policy>
    <forward-delay>-1</forward-delay>
    <reset-delivery-count-on-forward>true</reset-delivery-count-on-forward>
    </uniform-distributed-queue>
    <uniform-distributed-queue name="undlvQ">
    <sub-deployment-name>synergySubDeploy1</sub-deployment-name>
    <default-targeting-enabled>false</default-targeting-enabled>
    <jndi-name>undlvQ</jndi-name>
    <load-balancing-policy>Round-Robin</load-balancing-policy>
    <forward-delay>-1</forward-delay>
    <reset-delivery-count-on-forward>true</reset-delivery-count-on-forward>
    </uniform-distributed-queue>
    *<uniform-distributed-queue name="MM_gridQ0">*
    *<sub-deployment-name>synergySubDeploy1</sub-deployment-name>*
    *<default-targeting-enabled>false</default-targeting-enabled>*
    *<jndi-name>MM_gridQ0</jndi-name>*
    *<load-balancing-policy>Round-Robin</load-balancing-policy>*
    *<forward-delay>5</forward-delay>*
    *<reset-delivery-count-on-forward>true</reset-delivery-count-on-forward>*
    *</uniform-distributed-queue>*
    <saf-imported-destinations name="synergySAFImportedDest1">
    <sub-deployment-name>synergySubDeploy1</sub-deployment-name>
    <default-targeting-enabled>false</default-targeting-enabled>
    <saf-queue name="gridQ0">
    <remote-jndi-name>MB_gridQ0</remote-jndi-name>
    <local-jndi-name>gridQ0</local-jndi-name>
    <non-persistent-qos>At-Least-Once</non-persistent-qos>
    <time-to-live-default>0</time-to-live-default>
    <use-saf-time-to-live-default>false</use-saf-time-to-live-default>
    <unit-of-order-routing>Hash</unit-of-order-routing>
    </saf-queue>
    <jndi-prefix>MB_</jndi-prefix>
    <saf-remote-context>synergySAFContext1</saf-remote-context>
    <saf-error-handling>synergySAFErrorHndlr1</saf-error-handling>
    <time-to-live-default>0</time-to-live-default>
    <use-saf-time-to-live-default>false</use-saf-time-to-live-default>
    <unit-of-order-routing>Hash</unit-of-order-routing>
    </saf-imported-destinations>
    <saf-remote-context name="synergySAFContext1">
    <saf-login-context>
    <loginURL>t3://rdoelapp001013:7001</loginURL>
    <username>weblogic</username>
    <password-encrypted>{AES}z9VY/K4M7ItAr2Vedvhx+j9htR/HkbY2LRh1ED+Cz5Y=</password-encrypted>
    </saf-login-context>
    <compression-threshold>2147483647</compression-threshold>
    </saf-remote-context>
    <saf-error-handling name="synergySAFErrorHndlr1">
    <policy>Log</policy>
    <log-format xsi:nil="true"></log-format>
    <saf-error-destination xsi:nil="true"></saf-error-destination>
    </saf-error-handling>
    </weblogic-jms>
    Any help will be greatly appriciated
    Edited by: 818591 on Feb 16, 2011 11:28 AM

    I am not getting you here "the right approach is to make OSB run on the man server cluster and not on admin server. "
    I have a jms proxy service that I created from admin console
    And also I have gone thru the step 5 in the link below
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/deploy/config.html#wp1524235
    If I am not wrong, the proxy service endpoint URI determines where it is pointing to. If it is a cluster environment, it should point to a clustered address
    My proxy has below endpoint URI
    jms://rdoelapp001011:61703,rdoelapp001013:61703/synergyConnectionFactory1/MM_gridQ0
    and rdoelapp001011:61703,rdoelapp001013:61703 is my cluster address
    As per your suggestion "To fix your problem, *make osb to run on the cluster* and specify the same URL for the jms proxy service"
    Could you please provide some instruction how would I "make osb jms proxy service to run in a cluster"
    As a note, I have Q defined as a distributed Q and connection factory targets to the cluster. UDQ also targtes to the cluster.
    Just for a testing I have created another manged server running local to the machine where my admin server is running
    And I created a proxy by following steps as I mentioned above and with endpoint URI as below
    jms://rdoelapp001011:61703,rdoelapp001013:61703,*rdoelapp001011:61700*/synergyConnectionFactory1/MM_gridQ0
    where the new address of my cluster is rdoelapp001011:61703,rdoelapp001013:61703,rdoelapp001011:61700
    It did create consumers in both the managed servers in the cluster that are running locally, but no consumers in the remote managed server.
    So I am kind of leaning towards thinking that there is some incorrect setup for the remote managed server and may be admin server is not able to communicate to the remote server for some reason but not sure about it..
    As a note the cluster is setup to communicate using "unicast" channel
    and I created a channel in each manged server with the same name
    here is the cluster configuration
    <name>synergyCluster1</name>
    <cluster-address>rdoelapp001011:61703,rdoelapp001013:61703,rdoelapp001011:61700</cluster-address>
    <default-load-algorithm>round-robin</default-load-algorithm>
    *<cluster-messaging-mode>unicast</cluster-messaging-mode>*
    *<cluster-broadcast-channel>synergyChannel1</cluster-broadcast-channel>*
    *<number-of-servers-in-cluster-address>3</number-of-servers-in-cluster-address>*
    </cluster>
    here are the twoOSBserver configuration
    <server>
    <name>synergyOSBServer1</name>
    <machine xsi:nil="true"></machine>
    <listen-port>61703</listen-port>
    <cluster>synergyCluster1</cluster>
    <web-server>
    <web-server-log>
    <number-of-files-limited>false</number-of-files-limited>
    </web-server-log>
    </web-server>
    <server-debug>
    <debug-scope>
    <name>weblogic.jms.saf</name>
    <enabled>true</enabled>
    </debug-scope>
    <debug-jmssaf>true</debug-jmssaf>
    <debug-saf-sending-agent>true</debug-saf-sending-agent>
    </server-debug>
    <listen-address>localhost</listen-address>
    <network-access-point>
    *<name>synergyChannel1</name>*
    *<protocol>cluster-broadcast</protocol>*
    *<listen-address>localhost</listen-address>*
    *<listen-port>61702</listen-port>*
    <http-enabled-for-this-protocol>true</http-enabled-for-this-protocol>
    <tunneling-enabled>false</tunneling-enabled>
    *<outbound-enabled>true</outbound-enabled>*
    *<enabled>true</enabled>*
    <two-way-ssl-enabled>false</two-way-ssl-enabled>
    <client-certificate-enforced>false</client-certificate-enforced>
    </network-access-point>
    <jta-migratable-target>
    <user-preferred-server>synergyOSBServer1</user-preferred-server>
    <cluster>synergyCluster1</cluster>
    </jta-migratable-target>
    </server>
    <server>
    <name>synergyOSBServer2</name>
    <ssl>
    <enabled>false</enabled>
    </ssl>
    <machine xsi:nil="true"></machine>
    <listen-port>61703</listen-port>
    <listen-port-enabled>true</listen-port-enabled>
    <cluster>synergyCluster1</cluster>
    <web-server>
    <web-server-log>
    <number-of-files-limited>false</number-of-files-limited>
    </web-server-log>
    </web-server>
    <listen-address>rdoelapp001013</listen-address>
    <network-access-point>
    *<name>synergyChannel1</name>*
    *<protocol>cluster-broadcast</protocol>*
    *<listen-address>rdoelapp001013</listen-address>*
    *<listen-port>61702</listen-port>*
    <http-enabled-for-this-protocol>true</http-enabled-for-this-protocol>
    <tunneling-enabled>false</tunneling-enabled>
    *<outbound-enabled>true</outbound-enabled>*
    *<enabled>true</enabled>*
    <two-way-ssl-enabled>false</two-way-ssl-enabled>
    <client-certificate-enforced>false</client-certificate-enforced>
    </network-access-point>
    <java-compiler>javac</java-compiler>
    <jta-migratable-target>
    <user-preferred-server>synergyOSBServer2</user-preferred-server>
    <cluster>synergyCluster1</cluster>
    </jta-migratable-target>
    <client-cert-proxy-enabled>false</client-cert-proxy-enabled>
    </server>
    <server>
    Edited by: 818591 on Feb 18, 2011 11:26 AM

  • Parameters in OSB End-point URL

    Hi:
    I have a OSB end-point URL say
    https://XXX.XX.XX.XX:7002/Sample/Books
    which is exposed as proxy service with ServiceType as "Any XML Service", and this routes to a business service whose protocol is "jms" and ServiceType is also "Any XML Service".
    I have shared across the proxy end--point URL to other application. Now they have two kind of books available in other application, they want to send across the same as parameters in the same end-point URL like
    https://XXX.XX.XX.XX:7002/Sample/Books?Type=Fiction
    https://XXX.XX.XX.XX:7002/Sample/Books?Type=WarBased
    Now my question is will my OSB service able to pick-up the above case and based on the parameters will we be able to route it to the Business service along with the parametes. For doing that do i need to maintain any schema for Business Service?
    Regards,
    RK

    RK,
    Use the *$inbound/ctx:transport/ctx:request/http:query-string* element to get all the arguments in the URL.
    http://docs.oracle.com/cd/E13159_01/osb/docs10gr3/httppollertransport/transports.html#wp1083292.
    After that You can have conditional routing to Route it specific BS either Fiction BS or WarBased BS or you can try using Routing Table.
    For doing that do i need to maintain any schema for Business Service?No , I think if you just need to route the request to JMS BS coming from Other Application,
    But if You want to validate the request which you would be sending to BS then use schema to validate your incoming request.
    Regards,
    Abhinav

  • OSB Http Transport Custom Authenticatiion (X509 in Http header)

    Hello!
    I'm trying to solve this case. We have F5 Load balancer that terminates SSL Connections From client to the OSB. When terminating the SSL, the LB adds the clients certificate into headers of the Http request going to OSB.
    OSb proxy service is configured to use custom authentication with token type X509 (only choice in the OSB console).
    What happens when I send the request to OSB, is that I get http code 401 (unauthorized) this error on server log:
    ####<Sep 27, 2011 3:08:05 PM EEST> <Error> <WliSbTransports> <appserver02> <MANSERV02> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1317125285598> <BEA-381327> <Transport-level custom token identity assertion failed
    java.lang.ClassCastException: java.lang.String cannot be cast to [Ljava.security.cert.X509Certificate;
    The HTTP header sent to OSB is in the messages below.
    It has also been wihotu the BEGIN CERTIFICATE and END CERTIFICATE lines with same results.
    Can somebody help me in:
    a) Should the certificate be sent in what form from LB to OSB.
    b) How should the OSB/WLS be configured for this to work?
    OSB version is 10.3.1.
    Request to the server is:
    POST /prjTemplateService/ProxyServices/psvcHelloWolrdWSSSLInterface HTTP/1.1
    Accept-Encoding: gzip,deflate
    Content-Type: text/xml;charset=UTF-8
    SOAPAction: "urn:#HelloWorldOperation"
    User-Agent: Jakarta Commons-HttpClient/3.1
    Host: <ip_here>
    Content-Length: 459
    SSLClientCertStatus: ok
    SSLClientCertb64: -----BEGIN CERTIFICATE-----
    MIICHDCCAYUCBE2sABcwDQYJKoZIhvcNAQEEBQAwVTELMAkGA1UEBhMCRkkxCzAJ
    BgNVBAgTAkZJMQ4wDAYDVQQHEwVFc3BvbzEMMAoGA1UEChMDRVpaMQswCQYDVQQL
    EwJUQzEOMAwGA1UEAxMFSnVzc2kwHhcNMTEwNDE4MDkxMDQ3WhcNMTEwNzI3MDkx
    MDQ3WjBVMQswCQYDVQQGEwJGSTELMAkGA1UECBMCRkkxDjAMBgNVBAcTBUVzcG9v
    MQwwCgYDVQQKEwNFWloxCzAJBgNVBAsTAlRDMQ4wDAYDVQQDEwVKdXNzaTCBnzAN
    BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvEPjEn3tvG3YuXlsLZnE7ZOKUJIF0Foy
    c1hp+k7dyGUoHu3Phva7eVOO1cmHaGkFHkg+EnnK3+/Y58EMQAEwPOfQTj0/vSSk
    cEx2X/2p2W7ACldJlYMxx2ZdFa1qaKTXtoieLy23/kJI+ZTfIoB+nmZiPRE9Hq8p
    LTPlcMWVFnkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQC3EZMQieOy4PFh+95R6W7/
    3xaaRm/BzmEU/Wf9JweEwrnttdSmRKsxx9vSkADnD0J7jGO+koym5CWvJHbox4Sk
    QMRPFaTOBRD4hzZeJMidds1LSzUm/QE9PXzjS/HLSjBBs5DmZfdR+uXPSFqTROkd
    87R5veuPX5KeKQHs8iesTw==
    -----END CERTIFICATE-----
    SSLClientCertSN: 4d:ac:00:17
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Hello:client">
    <soapenv:Body>
    <urn:HelloWorldRequest>
    <urn:FirstName>Jolly</urn:FirstName>
    <urn:Surname>Roger</urn:Surname>
    </urn:HelloWorldRequest>
    </soapenv:Body>
    </soapenv:Envelope>
    Response from OSB:
    HTTP/1.1 401 Unauthorized
    Connection: close
    Date: Fri, 30 Sep 2011 08:32:33 GMT
    Content-Length: 1518
    Content-Type: text/html
    X-Powered-By: Servlet/2.5 JSP/2.1
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Draft//EN">
    <HTML>
    <HEAD>
    <TITLE>Error 401--Unauthorized</TITLE>
    <META NAME="GENERATOR" CONTENT="WebLogic Server">
    </HEAD>
    <BODY bgcolor="white">
    <FONT FACE=Helvetica><BR CLEAR=all>
    <TABLE border=0 cellspacing=5><TR><TD><BR CLEAR=all>
    <FONT FACE="Helvetica" COLOR="black" SIZE="3"><H2>Error 401--Unauthorized</H2>
    </FONT></TD></TR>
    </TABLE>
    <TABLE border=0 width=100% cellpadding=10><TR><TD VALIGN=top WIDTH=100% BGCOLOR=white><FONT FACE="Courier New"><FONT FACE="Helvetica" SIZE="3"><H3>From RFC 2068 <i>Hypertext Transfer Protocol -- HTTP/1.1</i>:</H3>
    </FONT><FONT FACE="Helvetica" SIZE="3"><H4>10.4.2 401 Unauthorized</H4>
    </FONT><P><FONT FACE="Courier New">The request requires user authentication. The response MUST include a WWW-Authenticate header field (section 14.46) containing a challenge applicable to the requested resource. The client MAY repeat the request with a suitable Authorization header field (section 14.8). If the request already included Authorization credentials, then the 401 response indicates that authorization has been refused for those credentials. If the 401 response contains the same challenge as the prior response, and the user agent has already attempted authentication at least once, then the user SHOULD be presented the entity that was given in the response, since that entity MAY include relevant diagnostic information. HTTP access authentication is explained in section 11.</FONT></P>
    </FONT></TD></TR>
    </TABLE>
    </BODY>
    </HTML>

    >
    by using Client Cert authentication I have to set HTTPS required to true.
    >
    Yes.
    >
    When I try to invoke this service with http request, it redirects to https service.
    This actually just trashes the entire idea of terminating SSL in the load balancer.
    >
    Not necessarily. Although direct HTTP request to WebLogic is redirected to HTTPS enabled port, you can still use this settings with WebLogic plugin. I'm not aware of your deployment, but I use Apache plugin for WebLogic, terminate SSL on Apache and I'm still able to send requests authenticated by certificate from client through HTTPS.
    I don't know about F5, but I guess there should be similar feature as well.
    http://download.oracle.com/docs/cd/E12840_01/wls/docs103/cluster/load_balancing.html

Maybe you are looking for

  • Imac told me to restart and now will not boot up?

    Hi, I have an imac 20" intel (not the new aluminium one but the white version) which I have had for a few months. Today i was using it and all was normal until I had a grey swoosh thing come doen over the screen from top to bottom and then a black bo

  • How do I add a wifi repeater to my network

    I am trying to add a repeater but the instructions are written for a PC

  • Editing with Mac Monitor and TV.

    When I try to view a TV and monitor simultaneously for editing I do not always get a picture on the TV. Sometimes sound only. I use a Panasonic GS 400 connected between monitor and TV. In preferences I have set iMovie to playback through camera. It a

  • LDB Performance problem

    Hi SDN's, An existing program for Interest Calculation contains a LDB - DDF (CUSTOMER  DATABASE). I was asked to optimise the program. What i observed is that the use of LDB itself is taking a long time. So, how can i rewrite the program with out usi

  • How does an I pad glass face get cracked?

    My new I pad 3 has a serious crack.  it has not been abused or dropped.  it is covered with a magnetic keyboard protector. Has that happened to anyone else.... and is there a resolution to this issue ... the store does not want to recognize this as t