Reg : JMS Clustering

          Hai,
          I am facing one problem in JMS Clustering. can any one throws a light on that?
          it will be very helpful to
          me.
          i configured WebLogic Cluster with node1 and node 1 as Managed Servers.
          i created jmsserver1 and jmsserver2.
          i created queue1 and queue2 in jmsserver1 and jmsserver2 respectively.
          i created one distributed destination by adding queue1 and queue2 as members.
          i targetted jmsserver1 to node1 and jmsserver2 to node2.
          i wrote one program that send the messages to distributed destination using it's
          jndi name.
          i have send some messages to distributed queue.
          after i shutdown the any one of the managed server ex: node1. after that while
          i am trying to send the message to
          distributed destination, it is throwing the exception that no such a jndi name.
          i have checked with JNDI tree.
          jndi name of distributed destination is not there?
          is there any configuration missing or some thing else?
          can any one help me to solve this problem?
          regards
          cg
          

Sounds like you've set things up correctly. Post your config.xml
          and I'll take a quick look. Please also include the JNDI
          name of the distributed dest your client is looking up.
          cg wrote:
          > Hai,
          > I am facing one problem in JMS Clustering. can any one throws a light on that?
          > it will be very helpful to
          > me.
          >
          > i configured WebLogic Cluster with node1 and node 1 as Managed Servers.
          > i created jmsserver1 and jmsserver2.
          > i created queue1 and queue2 in jmsserver1 and jmsserver2 respectively.
          > i created one distributed destination by adding queue1 and queue2 as members.
          >
          >
          > i targetted jmsserver1 to node1 and jmsserver2 to node2.
          >
          > i wrote one program that send the messages to distributed destination using it's
          > jndi name.
          >
          > i have send some messages to distributed queue.
          > after i shutdown the any one of the managed server ex: node1. after that while
          > i am trying to send the message to
          > distributed destination, it is throwing the exception that no such a jndi name.
          > i have checked with JNDI tree.
          >
          > jndi name of distributed destination is not there?
          >
          > is there any configuration missing or some thing else?
          >
          >
          > can any one help me to solve this problem?
          >
          >
          > regards
          > cg
          >
          >
          

Similar Messages

  • Need Help on Weblogic JMS Clustering

    Hi All
    Our code is moving to a clustered environment (2 OSB managed servers), in order to support JMS clustering i have already done the below, I just need your advice whether i have done it correctly or not. Please advise
    1) Created 2 JMS Servers, targeted one JMS Server on OSB MS 1 and second JMS Server on OSB MS 2.
    2) Created distributed destinations (Queues and Topics) subdeployment on both JMS Servers.
    3) Targeted all connection factories to OSB Clsuter. Load Balancing and Server Affinity is enabled by default. Should server affinity be disabled for proper load balancing to occur? Please advise on this
    3) JMS Proxy and business services use cluster URL's now (jms://serverA:7001,serverB:7001/CF/QueueOrTopic). I Hope its correct? Please advise
    Is there any other setting that i need to do or i have missed out? Please let us know.
    Also, one more thing we are calling SOA Composites via SOA-Direct protocol in OSB. The SOA Servers owned by some other team will also be load balanced. Since this is a t3 call, HTTP load balancer would not come into picture here, right? How do i load balance this outgoing call from business service (2 options bellow)
    1) t3://server1:8001,server2:8001/default/ABCProduct!1.0/ABCService_DirectBinding
    2) Specifying two individual endpoints and selecting load balancing algorithm as Round Robin
    t3://server1:8001/default/ABCProduct!1.0/ABCService_DirectBinding
    t3://server2:8001/default/ABCProduct!1.0/ABCService_DirectBinding
    what is the diff between the above 2 options? Also, if one of the SOA nodes go down, than which option would automatically redirect to other node. We have to ensure this as the HTTP load balancer ensures this thing. Thanks
    Edited by: Amit Sachdev on Jun 13, 2012 12:16 AM

    Hi Amit,
    The first part looks correct.
    Create two jms servers (jmsosb1, jmsobs2)
    Create data source and jndi location
    create foreign connection factory under JmsModule, create destination and connection factory.
    the cluster business service end point will be
    jms:///<<ForeignConnectionFactory Name>>/<<destination local jndi name>>
    The second part SOA endpoint will be in cluster environment as follows:
    http://<< cluster name>>/soa-infra/services/default/<<composite name>>/<<servicename>>
    example:
    http://test.ch/soa-infra/services/default/cm.conn.bp.test/test_client_ep
    or if you want to invoke two nodes directly you use below url as well.
    http://<<SOAservername1>>:<<port>>,<<SOAservername2>>:<<port>>//soa-infra/services/default/<<composite name>>/<<servicename>>
    Regards,
    Padmanabham

  • Problem in Automated Failover in JMS Clustering

    Hi,
              I am facing a problem in JMS clustering, now let me explain the scenario.
              I have 2 managed servers participating in the weblogic cluster, now since JMS is a singleton service what i did is i have created 2 JMS servers and targeted them to Managedservers 1 and 2 respectively.I have also created a DistributedTopic
              Now in my case an applet is the JMS client i have registered the exception listener on both the topic connection and WLSession, now when i bring down one managed server forcefully(Ctrl-C) the call back method onException is supposed to have been called,which has reconnect method which tries to get the connection but it does not happen in this clustered environment.
              I have checked the same thing without a cluster i.e with a single server (Admin server) and it seems to be calling the Onexception call back method.
              What is wrong with this approach.
              Another query just to add on to this is, is this the right approach to achieve automated failover in a clustered environment or do i have to go with Migratable servers concept(not clear on this though).
              Thanks in advance.
              Suresh

    I think is correct.U must stop all the server of the cluster, or to know how of the two your client is using. U can used the amministration console to monitoring the status of the destination of the JMS server.
              I have a similar problem, but using tho different kynd of Receiver.
              Now in my case I created two different type of client
              Asynchronous and synchronous .
              The first type registered himself as MessageListener and also as ExceptionListener on the connection. When I bring down the managed server in which the client was connected the call back method onException is called as the bea documentation explains.
              The second client instead registered himself as ExceptionListener but not as MessageListener on the connestion. It called in different execution thread the receive method on the receiver created using the connection.
              In this case when i bring down the managed server in which the client is connect the call back method onException was NOT called, instead the client received the JMSException on all the call "receive()".
              This is true? I expected instead that the behaviour of the 2 type of client was the same!

  • Jms clustering with spring

    Hi
    i have created the jms clustering configuration in weblogic 10.3.3 that i am facing issues in the connection queue like this
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'queueConnectionFactory' defined in ServletContext resource [WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: Unable to resolve 'QueueConnectionFactory'. Resolved ''; remaining name 'QueueConnectionFactory'
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1401)
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:512)
    and i have configured servers below
    clustered the managed servers MS-1 and MS-2
    Servers Targets
    JMS Server Admin server
    JMS Module cluster
    connection queue cluster
    queue JMSServer
    i have tried with the 2 different JMS servers for managed servers
    Servers Targets
    JMS Server - 1 MS-1
    JMS Server - 2 MS-2
    JMS Module cluster
    connection queue cluster
    queue JMSServer - 1 and JMSServer - 2
    so, please help us to configure the JMS clustering with spring.
    Note : please find the spring - applicationContext.xml below thats is used to configure the connection factory and jms queue.
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
         <bean id="invoiceListener" class="com.spring.jms.InvoiceMDB" />
         <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
              <property name="environment">
                   <props>
                        <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
                        <prop key="java.naming.provider.url">t3://localhost:6001,localhost:6003,localhost:6005</prop>
                   </props>
              </property>
         </bean>
         <bean id="queueConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
              <property name="jndiTemplate"><ref bean="jndiTemplate" /></property>
              <property name="jndiName"><value>QueueConnectionFact</value></property>
         </bean>
         <bean id="invoiceQueueTemplate" class="org.springframework.jms.core.JmsTemplate">
              <property name="connectionFactory"><ref bean="queueConnectionFactory" /></property>
              <property name="destinationResolver"><ref bean="jmsDestinationResolver" /></property>
         </bean>
         <bean id="jmsDestinationResolver" class="org.springframework.jms.support.destination.JndiDestinationResolver">
              <property name="jndiTemplate"><ref bean="jndiTemplate" /></property>
              <property name="cache"><value>true</value></property>
         </bean>
         <bean id="jmsInvoiceSender" class="com.spring.jms.InvoiceQueueSender">
              <property name="jmsTemplate"><ref bean="invoiceQueueTemplate" /></property>
         </bean>
         <bean id="invoiceQueue" class="org.springframework.jndi.JndiObjectFactoryBean">
              <property name="jndiTemplate"><ref bean="jndiTemplate"/></property>
              <property name="jndiName"><value>MyQueue</value></property>
         </bean>
         <bean id="Invoicelistener" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
         <property name="concurrentConsumers" value="5" />
         <property name="connectionFactory" ref="queueConnectionFactory" />
         <property name="destination" ref="invoiceQueue" />
         <property name="messageListener" ref="invoiceListener" />
         <property name="sessionAcknowledgeModeName" value="AUTO_ACKNOWLEDGE" />
    <property name="sessionTransacted" value="true" />
         </bean>
    </beans>

    Are you sure you have defined the correct JNDI-name in the Spring config file?
    An example set-up of a domain can be found here - http://middlewaremagic.com/weblogic/?p=7795 (the script presented in the create domain section)
    This is basically the same set-up you have, except that a distributed queue is being used that is targeted to JMS Servers through a subdeployment.
    The Spring configuration looks as follows:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
        <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
            <property name="environment">
                <props>
                    <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
                    <prop key="java.naming.provider.url">t3://192.168.1.50:9001,192.168.1.50:9002</prop>
                </props>
            </property>
        </bean>
        <bean id="connectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiTemplate" ref="jndiTemplate"/>
            <property name="jndiName" value="jms/ConnectionFactory"/>
        </bean>
        <bean id="destination" class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiTemplate" ref="jndiTemplate"/>
            <property name="jndiName" value="jms/CompanyQueue"/>
        </bean>
        <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
            <property name="connectionFactory" ref="connectionFactory"/>
            <property name="defaultDestination" ref="destination"/>
        </bean>
        <bean id="taskExecutor" class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor">
            <property name="workManagerName" value="java:comp/env/default"/>
            <property name="resourceRef" value="true"/>
        </bean>
        <bean class="org.springframework.jms.listener.SimpleMessageListenerContainer">
            <property name="connectionFactory" ref="connectionFactory"/>
            <property name="destination" ref="destination"/>
            <property name="messageListener" ref="receiver"/>
            <property name="taskExecutor" ref="taskExecutor"/>
        </bean>
        <bean id="sender" class="model.logic.JMSSender">
            <property name="jmsTemplate" ref="jmsTemplate"/>
        </bean>
        <bean id="receiver" class="model.logic.JMSReceiver"/>
    </beans>To test create a servlet, for example,
    public class TestServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            JMSSender jmsSender = SpringUtilities.getJMSSender();
            jmsSender.sendMessage();
            System.out.println("message send by the testservlet");
    }and web.xml as
    <web-app ...>
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-config.xml</param-value>
        </context-param>
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
        <!-- default weblogic work manager -->
        <resource-ref>
            <res-ref-name>default</res-ref-name>
            <res-type>commonj.work.WorkManager</res-type>
            <res-auth>Container</res-auth>
            <res-sharing-scope>Shareable</res-sharing-scope>
        </resource-ref>
        <!-- default weblogic timer manager -->
        <resource-ref>
            <res-ref-name>tm/default</res-ref-name>
            <res-type>commonj.timers.TimerManager</res-type>
            <res-auth>Container</res-auth>
            <res-sharing-scope>Shareable</res-sharing-scope>
        </resource-ref>
        <servlet>
            <servlet-name>TestServlet</servlet-name>
            <servlet-class>test.TestServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>TestServlet</servlet-name>
            <url-pattern>/testservlet</url-pattern>
        </servlet-mapping>
    </web-app>with this set-up the JMS clustered and Spring is able to use it on both servers.

  • Jms clustering and application clustering

    Hello:
              Suppose an application that contains mdb is deployed in a cluster cl.
              Should the jms clustering be done in the same cluster or can it be a
              seperate cluster.
              regards,
              ravi
              

    JMS distributed destinations are optimized
              for the use case where the MDB is on the same
              server as the destination. If you are not
              using distributed destination this is less
              of an issue. In either case, MDBs can
              be run in a seperate cluster than JMS -
              sometimes this can simplify administration.
              Read the JMS Performance Guide white-paper
              for more information.
              http://dev2dev.bea.com/technologies/jms/index.jsp
              Ravi Krishnamurthy wrote:
              > Hello:
              > Suppose an application that contains mdb is deployed in a cluster cl.
              > Should the jms clustering be done in the same cluster or can it be a
              > seperate cluster.
              >
              > regards,
              > ravi
              >
              

  • JMS clustering

    Does weblogic5.1 support JMS clustering? If it doesn't when it is going to
              be.
              -Muruga
              

    JMS is available as a cluster wide service today. You have a single node
              that is a JMS provider for the entire cluster.
              In a future release, we plan to fully cluster our JMS service.
              For more information, I suggest contacting your sales representative who can
              provide you with a bit more detail.
              Thanks,
              Michael
              Michael Girdley
              Product Manager, WebLogic Server & Express
              BEA Systems Inc
              Muruga Chinnananchi <[email protected]> wrote in message
              news:8fsqbu$he0$[email protected]..
              > Does weblogic5.1 support JMS clustering? If it doesn't when it is going to
              > be.
              >
              > -Muruga
              >
              >
              

  • Tom Help needed in JMS Clustering!!!!!!!!!

    Hi Tom,
              I have a typical problem with JMS Clustering,i amtrying to implement an automatic failover by registering the connection and the session with the exception listener and then inside onexception method i have reconnect logic.
              My application has an applet and the downloading page directly loads the MyApplet jar and weblogic thin client jars and then when i switch of the server using in CTRl-C in windows environment with a single server onException gets fired.Now for clustering we have moved to enterprise archive setup(.ear) and my applet jar and thinclient jars are bundled with in the war(web archive) and the war is inside the ear.In this scenario when i shut down one of the managed servers the onexception does not get invoked and then i shut down both the servers then also its not getting invoked, plz help me i dont understand what is wrong with this,when the servers are on onMessage works fine and my real time blotters also get updated.
              My clustering set up has 2 managed servers,2 JMS servers targeted to each managed server and a distributed topic.
              In a noraml scenario when the servers are running my onMessage gets called, but when i shutdown the servers the onException does not get called from the EAR.
              Pls help me on how to proceed.i cant put the thick weblogic.jar as down loading from my applet cannot handle it.
              Regards,
              Suresh

    Sorry Suresh -
              I don't know what is going wrong - my suspicion is that you've found a bug in WebLogic thin-client IIOP.
              Since the problem started when you moved to SP5, you can try continuing to use the SP4 jar on the client.
              And sometimes this type of problem is with with Sun JDK libraries (which supplies most of the thin client IIOP stack), so there's a small chance switching to a 1.5JVM for the client would work (I don't know if BEA supports this).
              You might also try posting to the rmi-iiop newsgroup. (Andy just loves it when I push problems off to him! Well maybe not.)
              Tom

  • Weblogic JMS clustering

    Hi All,
    I need help understanding weblogic JMS clustering. I read few documents regarding this but not very clear about it.
    Hope to get help/suggestion here.
    I have following setup
    box1 - adminserver, osbserver1
    box2- osbserver2
    osbserver1 and osbserver2 are clustered together
    I have a JMS server created each one for each managed server (OSB server) in the cluster. These JMS servers are non-persistent. persistent store is "None".
    I have one JMS module created with connection factory, distributed Qs and are associated with a subdeployment that is targeting to the cluster
    I have all the servers(admin server and both OSB servers) are in running state
    To monitor JMS server I go to services->JMS Servers
    I see jmsserver1 which is targeted to osbserver1 has "Health" is marked as "OK"
    jmserver2 which is targeted to osbserver2 has no "health" check
    If I go to environment->servers , I see all the 3 servers are marked as "RUNNING" with "Health" OK
    As a note I created managed server in the second box before creating the JMS server and resources.
    And I do not have any nodemanager setup at this point.
    How would I know the JMSserver in both servers are active and have no issues ?
    Do I need to do anything to start JMSServer in OSBServer2 ?
    Edited by: 818591 on Feb 11, 2011 8:27 AM
    Edited by: 818591 on Feb 11, 2011 9:31 AM

    Should the JMS Server/JMS modules already be created so that the remote managed server will get configuration of these setup?No. This is not how resorces are created. Pack/unpack is used for creating the domains, ONCE. Later on you may very well use Weblogic admin console to create the resources and target/untarget those.
    As a note I do not have node managed setup yet. It is recommended that you use node manager in environments where servers may be installed on different machines -
    http://download.oracle.com/docs/cd/E14571_01/web.1111/e13740/toc.htm
    To me, it seems a network/cluster communication issue. If you have Oracle Support, better raise a SR with them to find out the exact issue as they would be in better position to understand your architecture and analyzing logs. You may also raise a thread in Oracle Weblogic forum to get a suggestion from a Weblogic expert -
    WebLogic Server - Clustering
    Regards,
    Anuj

  • Jms clustered license

    hi,
              Do you I need to obtain a separate license for testing jms clustering (distributed queues DQ)?
              I've downloaded weblogic9.2 from the Internet and in documentation there is information that I should have such a license.
              Do you think that it applies to so evaluating the product?
              I'm encountering strange problems with DQ hence my question.

    Grzegorz (Greg) Stasica <> wrote:
              > hi,
              >
              > Do you I need to obtain a separate license for testing jms clustering
              > (distributed queues DQ)? I've downloaded weblogic9.2 from the Internet and
              > in documentation there is information that I should have such a license.
              > Do you think that it applies to so evaluating the product? I'm
              > encountering strange problems with DQ hence my question.
              As far as I know you can use it with your 'evaluation' version or developer
              version.
              B
              Schelstraete Bart
              [email protected]
              http://www.schelstraete.org
              http://www.linkedin.com/in/bschelst

  • 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

  • JMS/clustering design and configuration question

    Hi:
              Any help or feedback much appreciated cos' this topic (no pun intended)
              seems to be complicated.
              I have an application that uses stateless session beans for mainline
              business functionality (heavy database writing) that is say then
              audited. The auditing is taken care of asynchronously by the SS bean's
              business method (after completing whatever it is doing) using a JMS
              connection factory to write to a queue which is consumed by a MDB. So,
              control is returned to the user ostensibly before the auditing is done
              for performance reasons. No transactional semantics are expected between
              the mainline business logic and the audit of same. So, our main use of
              JMS/MDB is for asynchrous operation. This design seems to be fine on a
              single server as long as a persistent store is configured.
              Now the hard part. We need to cluster - again for load-balancing and
              performance. As I've read thru this newsgroup and experimented some,
              I've quickly realized that it's not as simple as just configuring a
              cluster of just EJBs.
              Since the queues are basically used for asynch processing, would the
              following work?
              1) Set up a JMS server config for each WL server in the cluster targeted
              only for each WL server
              2) Set up a different queue for each JMS server with prefixed JNDI name
              (myserver1_someJNDIname)
              3) Configure/code the producer SS EJBs so that they ask the connection
              factory for a connection with a prefixed JNDI name (e.g
              myserver1_someJNDIname) based on the server they are running on (known
              perhaps from a property file local to each server)
              4) Target MDBs to be deployed on all servers in the cluster just like
              regular EJBs
              5) Finally, deploy the MDBs unjarred on each WL server and edit the
              weblogic-ejb-jar.xml on each server to set the -destination name-
              prefixed by the server on which it is deployed (e.g.
              myserver1_someJNDIname)
              Will the above basically accomplish what I'm after, which is a cluster
              of machines each equally capable of locally offloading asynchronous
              processing? I understand that for the most part WL server will use local
              EJBs, etc if they are available. I'm not particularly interested in
              failover at either EJB or JMS level, but rather HttpSession level so
              that if a WL server goes down another could pick up perhaps by by the
              user re-requesting whatever operation failed.
              If this is not possible because of the way clustering works (homogenous)
              then is there some other way to solve this problem. I basically do not
              want a cluster where there is a single point of failure (other than DB
              server) for any given piece of functionality.
              Thanks for any help.
              Alex
              

    First and easiest,
              Just create a set of JMS tables for each server in your db. You can specify
              a JMS tablename prefix in your weblogic properties for eash server using
              weblogic.jms.tableNamePrefix=W5
              as long as the prefix is only two chars. This worked great for us until we
              decided to drop JMS because of its memory leaks. We were having to restart
              our servers every 8 hours.
              Second, get rid of JMS. Dirty little secret:You don't need JMS to do
              asynchronous work! You can use threads inside of J2EE and not break J2EE.
              Can't tell you how for proprietary reasons but you can.
              Mica Cooper
              

  • JMS Clustering -- Automatic Redelivery

              Hi:
              Here is my understanding of distributed JMS. We are clustering three machines
              (A, B and C).
              Since JMS Servers themselves cannot have a cluster as a Target deployment,
              We create a 3 JMS Servers
              JMSServer1 with a Target of A
              JMSServer2 with a Target of B
              JMSServer3 with a Target of C
              Now we create a distributed Queue/Topic. (JNDI Name - MyQueue)
              We have the weblogic console autocreate topics and queues on each of the JMS
              Servers. They are JNDI named something like MyQueue@JMSServer1 , MyQueue@JMSServer2
              and MyQueue@JMSServer3
              Now -- Correct me if I am wrong -- When I do a JNDI Lookup for MyQueue --
              the WLConnectionfactory will give me a reference to an object in one of the three
              servers right. Now after I get the reference, the server that I have a remote
              reference goes down. When I try to post a message into the queue with the same
              remote reference Is there any kind of automatic redelivery or a relookup and
              get the next available server proxy (like in the EJB's) that is there ?
              What happens in such a case? Can the JMS stub that I have on the client dynamically
              (after it has been looked up) do redelivery on another server?
              I understand that if I do a lookup again I will not be pinned to the machine
              that just went down. This would be guaranteed by the ConnectionFactory right?
              Please let me know if this is not the case.
              Thanks and I really appreciate any help and input in the matter.
              Vivek Bhaskaran
              [email protected]
              

              In our practice with Weblogic 7 JMS, we use distributed destination to handle sender
              and MDB. If your sender fails because of JMS server down, you should catch exceptions
              and resend it. When poll the message from the queue, we talk to the individual
              physical queues directly.
              "Vivek Bhaskaran" <[email protected]> wrote:
              >
              >Hi:
              >
              > Here is my understanding of distributed JMS. We are clustering three
              >machines
              >(A, B and C).
              >
              > Since JMS Servers themselves cannot have a cluster as a Target deployment,
              >
              > We create a 3 JMS Servers
              > JMSServer1 with a Target of A
              > JMSServer2 with a Target of B
              > JMSServer3 with a Target of C
              >
              > Now we create a distributed Queue/Topic. (JNDI Name - MyQueue)
              > We have the weblogic console autocreate topics and queues on each
              >of the JMS
              >Servers. They are JNDI named something like MyQueue@JMSServer1 , MyQueue@JMSServer2
              >and MyQueue@JMSServer3
              >
              >
              > Now -- Correct me if I am wrong -- When I do a JNDI Lookup for MyQueue
              >--
              >the WLConnectionfactory will give me a reference to an object in one
              >of the three
              >servers right. Now after I get the reference, the server that I have
              >a remote
              >reference goes down. When I try to post a message into the queue with
              >the same
              >remote reference Is there any kind of automatic redelivery or a relookup
              >and
              >get the next available server proxy (like in the EJB's) that is there
              >?
              >
              > What happens in such a case? Can the JMS stub that I have on the
              >client dynamically
              >(after it has been looked up) do redelivery on another server?
              >
              > I understand that if I do a lookup again I will not be pinned to
              >the machine
              >that just went down. This would be guaranteed by the ConnectionFactory
              >right?
              >Please let me know if this is not the case.
              >
              > Thanks and I really appreciate any help and input in the matter.
              >
              >
              >Vivek Bhaskaran
              >[email protected]
              

  • Reg:JMS Queue related topic...

    Hai all,
    Can any one send me the link for JMS queuename,queue manager name,important parameters for JMS channel configurations etc..
    I know you will reply that search in SDN before you post it.But I searched all the previous forums but I am not able to get the proper docs related to it.
    If you dont mine can you please once again sent me link that will cover all th etopics that i need
    Thanks,

    Did you check these links?
    http://www.sdn.sap.com/irj/scn/weblogs;jsessionid=(J2EE3417200)ID1629352550DB00149050467001567547End?blog=/pub/wlg/5756
    http://www.sdn.sap.com/irj/scn/weblogs;jsessionid=(J2EE3417200)ID1629352550DB00149050467001567547End?blog=/pub/wlg/5590
    http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/604e2b64-e689-2910-64b3-ffd650f83756;jsessionid=(J2EE3417200)ID1629352550DB00149050467001567547End
    http://help.sap.com/saphelp_nwpi71/helpdata/en/10/b1b4c8575a6e47954ad63438d303e4/frameset.htm
    Regards,
    Ravi

  • JMS Clustering : Load Balancing expected Behaviour

    Hi All,
              I have a Cluster with a 2 managed servers A and B . ConnectionFactory is deployed to the cluster and Server B hosts JMS Server.Destinations on the JMS Server are not distributed, but the JNDI Names of the same are replicated across the cluster.Both Load Balancing and server affinity are enabled on the connectionFactory(I hope these attributes are required only if the destinations are distributed).
              An application containing MDBs and EJBs are deployed to the cluster and onMessage MDB looks up for a Facade and makes calls on it.An external java client sets up the initialContext based on the cluster address and starts sending messages to the destination
              What should be the expected behaviour in this scenario ?According to my understanding,
              -Eventhough, the connectionFactory is deployed across the cluster, since the physical destinations are available only in the weblogic server hosting the JMS Server(Server B), the actual message handling(MDB invocation) would be done only here.
              -When the MDBs are invoked on serverB, it would performs a lookup for the Facade.Because of the colocation optimisation, the replica aware stub used would be the one in ServerB and henceforth all the method processing should be done on Server B.
              Is this correct ? But this would also mean that no load balancing would happen because of the colocation optimisation ? Do i need to use a distributed destination to enable load balancing in this scenario ?
              Any help would be greatly appreciated..
              thanks,
              Josh

    Hi All,
              I have a Cluster with a 2 managed servers A and B . ConnectionFactory is deployed to the cluster and Server B hosts JMS Server.Destinations on the JMS Server are not distributed, but the JNDI Names of the same are replicated across the cluster.Both Load Balancing and server affinity are enabled on the connectionFactory(I hope these attributes are required only if the destinations are distributed).
              An application containing MDBs and EJBs are deployed to the cluster and onMessage MDB looks up for a Facade and makes calls on it.An external java client sets up the initialContext based on the cluster address and starts sending messages to the destination
              What should be the expected behaviour in this scenario ?According to my understanding,
              -Eventhough, the connectionFactory is deployed across the cluster, since the physical destinations are available only in the weblogic server hosting the JMS Server(Server B), the actual message handling(MDB invocation) would be done only here.
              -When the MDBs are invoked on serverB, it would performs a lookup for the Facade.Because of the colocation optimisation, the replica aware stub used would be the one in ServerB and henceforth all the method processing should be done on Server B.
              Is this correct ? But this would also mean that no load balancing would happen because of the colocation optimisation ? Do i need to use a distributed destination to enable load balancing in this scenario ?
              Any help would be greatly appreciated..
              thanks,
              Josh

  • Reg : JMS-RFC-JMS

    Hi Friends,
    My Scenario is JMS-RFC--JMS.(I have to get request XML from Sender JMS adpter to R/3 and then Response from R/3 has to sent back to receiver JMS adapter) i.e Both sender and receiver JMS has different queue names
    I have created scenario exactly like FileRFC-FIle.So in my sender JMS adapter in Module tab i have used these two module  AF_Modules/RequestResponseBean and AF_Modules/ResponseOnewayBean .
    Please let me know whether the approach is rite or we can have some other apporirate design..
    Thanks,
    Dinesh

    Hi Dinesh
    you are on right track..
    this one you can always refer for any message related JMS..
    http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/8060448a-e56e-2910-f588-9af459e7ce21
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/8060448a-e56e-2910-f588-9af459e7ce21?quicklink=index&overridelayout=true
    Thanks,
    Bhupesh

Maybe you are looking for