JMS servers' data failover

hi,
In a cluster with two managed servers (SRV1,SRV2) each one running its own JMS server and distributed queues when one server goes down while some producer still sends messages in a normal circumstances the producer will be reconnected to another server and remaining messages will go to this server. My question is if before crash there are 50 pending messages on affected server shouldn't they be transfered to running server (after the crash) so the client could read them before crashed server goes online again? All servers use some shared drive for their persistance store. Or this data migration have to be done manually along with JMS service migration?
all i could find in documentation that there is automatic jms producers failover but there is no information what happens with data in persistance store, how to make them available for the client connected to another server running the same distributed queue.

I believe you need to either start the server in-place or fail-it-over using something like whole-server-migration or service-level migration to recover those messages. There is no automatic mechanism to make them magically move from the persistent store of failed server to a server that is already running.
http://edocs.bea.com/wls/docs100/cluster/migration.html#wp1039659

Similar Messages

  • (HELP)Configuring two Solaris 10 sun servers for FAILOVER.

    Hi guys,
    i have two sunfire v440 servers which i have loaded Solaris 10 OS on them and i have installed a Web and DNS server on them..However i would like to synchronize both the servers for FAILOVER,so that incase one is down (crashes),the second can take over.I believe their is a daemon which can be used to accomplish this task.
    Any ideas on what daemon in Solaris 10 that can do the Heartbeat synchronisation of two Solaris 10 servers,so that when one crashes,the second takes over.I will appreciate your assistance on this sys-admins.
    Regards
    ncmaina

    Sun Cluster ?
    Or maybe oracle RAC.
    any better advise ?

  • WebLogic 12.1.2 erases subdeployment on Distributed Queue when targeted to multiple JMS Servers

    Update: verified in a 12.1.1.0 (JDK6) cluster - bug does not occur there.
    Hi,
      I have been migrating an 10.3.5.0 server to WebLogic 12.1.2.0 and have been unable to keep the subdeployment dropdown populated in the subdeployment tab of a uniform distributed queue when the subdeployment targets more than 1 JMS Server.
      If I uncheck one of the servers - I work fine - however I would like to target all JMS Servers in the cluster - this used to work fine in 10.3.5.0
      Following
    http://docs.oracle.com/cd/E24329_01/apirefs.1211/e24401/taskhelp/jms_modules/distributed_queues/CreateUniformDistributedQueues.html
      I am able to create a new queue no problem against the multiple-server subdeployment - but when I navigate to the subdeployment dropdown - the target is erased with "None".
    If I save the subdeployment after setting it during the queue create - it is erased
    <sub-deployment-name>MW-JMS-SubDeployment</sub-deployment-name>
    Before:
    <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">
      <uniform-distributed-queue name="HousekeeperControlQueue">
        <sub-deployment-name>MW-JMS-SubDeployment</sub-deployment-name>
        <jndi-name>jms/HousekeeperControlQueue</jndi-name>
      </uniform-distributed-queue>
    </weblogic-jms>
    After:
    <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">
      <uniform-distributed-queue name="HousekeeperControlQueue">
        <jndi-name>jms/HousekeeperControlQueue</jndi-name>
      </uniform-distributed-queue>
    </weblogic-jms>
    Workaround:
    - upon server startup the config is valid - just dont re-save the jms module or the subdeployment target will be erases
    - also when creating a new subdeployment you will be able to select it from a jms distributed queue in the advanced targeting section even if it contains expected multiple JMS servers
    - you will not however be able to edit the JMS queue once created - if there is any change to targeting - recreating the queue is required
      thank you
      /michael

    Update: verified in a 12.1.1.0 (JDK6) cluster - bug does not occur there.
    Hi,
      I have been migrating an 10.3.5.0 server to WebLogic 12.1.2.0 and have been unable to keep the subdeployment dropdown populated in the subdeployment tab of a uniform distributed queue when the subdeployment targets more than 1 JMS Server.
      If I uncheck one of the servers - I work fine - however I would like to target all JMS Servers in the cluster - this used to work fine in 10.3.5.0
      Following
    http://docs.oracle.com/cd/E24329_01/apirefs.1211/e24401/taskhelp/jms_modules/distributed_queues/CreateUniformDistributedQueues.html
      I am able to create a new queue no problem against the multiple-server subdeployment - but when I navigate to the subdeployment dropdown - the target is erased with "None".
    If I save the subdeployment after setting it during the queue create - it is erased
    <sub-deployment-name>MW-JMS-SubDeployment</sub-deployment-name>
    Before:
    <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">
      <uniform-distributed-queue name="HousekeeperControlQueue">
        <sub-deployment-name>MW-JMS-SubDeployment</sub-deployment-name>
        <jndi-name>jms/HousekeeperControlQueue</jndi-name>
      </uniform-distributed-queue>
    </weblogic-jms>
    After:
    <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">
      <uniform-distributed-queue name="HousekeeperControlQueue">
        <jndi-name>jms/HousekeeperControlQueue</jndi-name>
      </uniform-distributed-queue>
    </weblogic-jms>
    Workaround:
    - upon server startup the config is valid - just dont re-save the jms module or the subdeployment target will be erases
    - also when creating a new subdeployment you will be able to select it from a jms distributed queue in the advanced targeting section even if it contains expected multiple JMS servers
    - you will not however be able to edit the JMS queue once created - if there is any change to targeting - recreating the queue is required
      thank you
      /michael

  • How do you span a jta usertransaction across multiple jms servers?

    I have an ejb that connects to multiple jms servers (non-clustered) and
              retrieves messages. Those messages are concatenated together and placed on
              another jms queue. Is it possible to do all of this inside of one
              transaction? I am having trouble pulling this off.
              

    Sure, you can do this. Assuming you're using WLS JMS, you have to make sure that for all the JMS servers you're talking to, you use a connection factory with the "XA Connection Factory Enabled" flag set. You also need to make sure that you use JTA to start a transaction before retrieving the first message, and commit it after you're done with the final send.

  • Different behaviour in JMS Cluster automatic failover

    Hi,
              I am 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 Distributed Destination and deploy they with the deployment "wizard" ("autodeploy") to all the member of the cluster.
              Now in my case I created two different type of client
              Asynchronous and synchronous .
              The first one register himself as MessageListener and also as ExceptionListener. When I bring down the managed server in which the client is connect the call back method onException is called.
              The second client instead register himself as ExceptionListener but not as MessageListener. It call in different thread the receive method on the destination.
              In this case if i I bring down the managed server in which the client is connect the call back method onException is NOT called, instead i receive the JMSException on all the call "receive".
              I expected that the behaviour was the same of the firts client.
              Thanks in advance.
              dani

    Its not clear from your description what you're trying to do, as typical apps use a single module, including those that use distributed destinations, and typical apps do not use the convention of specifying a module name in their JNDI name. (The "!" syntax makes me suspect that you're not using JNDI to lookup destinations, rather you're using the rarely recommended JMS session "createQueue()" call.).
    Never-the-less, I suspect the problem is simply that your using a distributed queue and haven't realized that queue browsers and consumers pin themselves to a single queue member. To ensure full coverage of a distributed queue, the best practice is to use a WebLogic MDB: WebLogic MDBs automatically ensure that each queue member has consumers.
    By the way, if you are using a distributed queues, then the best practice config is as follows for each homogeneous set of JMS servers:
    -- Configure a custom WL store per server, target to the server's default migratable target.
    -- Configure a JMS server per server, target to the server's default migratable target, set the store for the JMS server to be the same as the custom store.
    -- Configure a single JMS module, target to the cluster.
    -- Configure a single subdeployment for the module that references each JMS server (and nothing else).
    -- Configure one or more distributed queues for the module. Never use default targeting -- instead use advanced subdeployment targeting to target each distributed queue to the single subdeployment you defined earlier.
    -- Configure one or more custom connection factories in the module, use default targeting.
    I recommend that you read through the JMS admin and programmer's guides in the edocs if you haven't done so already. You might find that the JMS chapter of the new book "Professional Oracle WebLogic" is helpful.
    Tom
    Edited by: TomB on Nov 4, 2009 10:12 AM

  • API to list Uniform Distributed Queue JMS Servers

    Hi all,
    I posted this in the SOA suite forum but this one may be better.
    I am writing a POJO webservice to synchronously read a message from a JMS queue. Unfortunately the queue is actually a uniform distributed queue so I actually need to look for messages in each of the local queues.
    I have written code to find the JNDI names of the local queues as follows:
    StringArray DistribMemberNames = new StringArray();
    String ttt;
    ttt = JMSHelper.uddMemberJNDIName("IMPJMSServer_1", part1.getJNDIName());
    DistribMemberNames.add(ttt);
    ttt = JMSHelper.uddMemberJNDIName("IMPJMSServer_2", part1.getJNDIName());
    DistribMemberNames.add(ttt);
    This works fine but I have hard coded the names of the JMS Servers and this is bad practice. I need to find a method where I can take the JNDI name of the uniform distributed queue and find all the JMSServer names. I have been looking for days but I can’t find anywhere in the API documentation that describes this.
    Does anyone have any suggestions?
    Thanks
    Robert
    (I am using 11.1.1.5 on a clustered weblogic enviroment)

    Hi,
    I have managed to answer this question myself.
    I needed to create a context:
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    m_jndiContext = new InitialContext(env);
    Look up the main runtime mbean
    MBeanServer server;
    server = (MBeanServer) m_jndiContext.lookup("java:comp/env/jmx/runtime");
    Navigate down the domain configuration to get the JMSServers
    ObjectName service = null;
    ObjectName domainConfiguration = null;
    ObjectName[] jmsServers = null;
    service = new ObjectName(
    "com.bea:Name=RuntimeService,"
    + "Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean");
    domainConfiguration = (ObjectName) server.getAttribute(service, "DomainConfiguration");
    jmsServers = (ObjectName[]) server.getAttribute(domainConfiguration, "JMSServers");
    For each server you can retrive it's name:
    for (int i = 0; i < length_serverRT; i++) {
    String jmsServerName = "";
    jmsServerName = (String) server.getAttribute(serverRT, "Name");
    I had to do some additional filtering for my own requirements
    Robert

  • Can BEA JMS C APIs be used to communicate with other JMS servers?

    Hello,
              Can BEA JMS C APIs be used to communicate with other JMS servers?
              If yes, is it enough to download, compile the JMS C APIs, and link the C applications to the libraries (shared or static) produced?
              If not, can you point me to an open source framework that can be used to enable C applications to communicate with JMS servers?
              I have HP-UX server that has both C and Java compilers (Java 1.5).

    The JMS C client is a pre-compiled library - we don't supply the source - so C applications link to it. If I recall correctly, there is an HP version. The C client library is actually thin layer that uses JNI to directly invoke a Java JMS client running in an embedded JVM.
              The library might work with other vendor's Java JMS clients, but BEA does not officially support this usage.
              Tom

  • Paging in JMS servers

    hi
              I am working on WLS 8.1. I developed a script using weblogic.admin to get the information about all the JMS servers in a cluster. It was working fine. But now as I configured paging and distributed queues to my JMS servers, that script is only getting the information of the JMS servers which dont have these added features with the same. I appreciate if somebody can tell me the reason those servers are not active.
              thanks in advance

    Hi,
              It sounds like you may have a generic mbean problem and not something unique to JMS. The "management" newsgroup may be able to help if you post more info there.
              Meanwhile, in case you're unaware, there's a simple JMS stat dump sample program for 8.1 called "JMSStats.java" available on dev2dev. Search code-share for jmstats, or one of these links might work:
              https://codesamples.projects.dev2dev.bea.com/servlets/ScarabDownload/resultpos/-1/nbrresults/0/remcurreport/true/template/ViewAttachment.vm/attachid/311/filename/JMSStats.zip
              https://codesamples.projects.dev2dev.bea.com/servlets/Scarab/remcurreport/true/template/ViewIssue.vm/id/S52/eventsubmit_dosetissueview/foo/resultpos/-1/nbrresults/0/action/ViewIssue/tab/4/readonly/false
              Tom

  • Scaling JMS Servers

    I have a requirement to scale very large volumes of JMS messages (300+ million messages per day). I am concerned that the JMS server will become a bottleneck in the cluster. Is it possible to add additional JMS servers and use distributed destinations to load balance JMS traffic and maintain transparency to the JMS consumers/producers?

    Yes, distributed destinations are transparent. They appear as a single logical destination to the application. For messaging applications, other major items may also impact performance/scalability. Working on these sometimes reduces the need for distributed destinations (tuning, batching, WL version, etc.)
              Tom

  • Connecting JMS servers together into a cluster

              Hi
              I am just wondering if anyone tried (or is it even possible) to connect JMS servers
              from different providers (say BEA and Sonic) together in a cluster of some sorts?
              Thanks
              

    Integrating foreign vendors with WL has come up many times in this newsgroup.
              Search for "MQ" (MQSeries) and "Sonic".
              Tom
              Alex wrote:
              > Hi
              >
              > I am just wondering if anyone tried (or is it even possible) to connect JMS servers
              > from different providers (say BEA and Sonic) together in a cluster of some sorts?
              >
              > Thanks
              

  • 2 Hyper-V Servers with Failover Cluster and a single File Server and .VHDs stored on a SMB 3 Share

    I have 2 X M600 Dell Blades (100 GB local storage and 2 NICs)  and a Single R720 File Server (2.5 TB local SAS storage and 6 NICs).  I´m planning a Lab/developer enrironment using 2 Hyper-V Servers with Failover Cluster and a single File Server putting
    all  .VHDs stored on a SMB 3 Share on the File Server.
    The ideia is to have a HA solution, live migration, etc, storing the .VHDs onm a SMB 3 share
    \\fileserver\shareforVHDs
    It is possible? How Cluster will understand the
    \\fileserver\shareforVHDs as a cluster disk and offer HA on it?
    Or i´ll have to "re-think" and forget about VHDs on SMb 3 Share and deploy using iSCSI?
    Storage Spaces makes difference in this case?
    All based on wind2012 R2 STD English version

    I have 2 X M600 Dell Blades (100 GB local storage and 2 NICs)  and a Single R720 File Server (2.5 TB local SAS storage and 6 NICs).  I´m planning a Lab/developer enrironment using 2 Hyper-V Servers with Failover Cluster and a single File Server putting
    all  .VHDs stored on a SMB 3 Share on the File Server.
    The ideia is to have a HA solution, live migration, etc, storing the .VHDs onm a SMB 3 share
    \\fileserver\shareforVHDs
    It is possible? How Cluster will understand the
    \\fileserver\shareforVHDs as a cluster disk and offer HA on it?
    Or i´ll have to "re-think" and forget about VHDs on SMb 3 Share and deploy using iSCSI?
    Storage Spaces makes difference in this case?
    All based on wind2012 R2 STD English version
    You can do what you want to do just fine. Hyper-V / Windows Server 2012 R2 can use SMB 3.0 share instead of a block storage (iSCSI/FC/etc). See:
    Deploy Hyper-V over SMB
    http://technet.microsoft.com/en-us/library/jj134187.aspx
    There would be no shared disk and no CSV just SMB 3.0 folder both hypervisor hosts would have access to. Much simplier to use. See:
    Hyper-V recommends SMB or CSV ?
    http://social.technet.microsoft.com/Forums/en-US/d6e06d59-bef3-42ba-82f1-5043713b5552/hyperv-recommends-smb-or-csv-
    You'll have however a limited solution as your single physical server being a file server would be a single point of failure.
    You can use Storage Spaces just fine but you cannot use Clustered Storage Spaces as in this case you'll have to take away your SAS spindles from your R720 box and mount them into SAS JBOD (make sure it's certified). So you get rid of an active components
    (CPU, RAM) and keep more robust all-passive SAS JBOD as your physical shared storage. Better then a single Windows-running server but for a true fault tolerance you'll have to have 3 SAS JBODs. Not exactly cheap :) See:
    Deploy Clustered Storage Spaces
    http://technet.microsoft.com/en-us/library/jj822937.aspx
    Storage Spaces,
    JBODs, and Failover Clustering – A Recipe for Cost-Effective, Highly Available Storage
    http://blogs.technet.com/b/storageserver/archive/2013/10/19/storage-spaces-jbods-and-failover-clustering-a-recipe-for-cost-effective-highly-available-storage.aspx
    Using
    Storage Spaces for Storage Subsystem Performance
    http://msdn.microsoft.com/en-us/library/windows/hardware/dn567634.aspx#enclosure
    Storage
    Spaces FAQ
    https://social.technet.microsoft.com/wiki/contents/articles/11382.storage-spaces-frequently-asked-questions-faq.aspx
    Alternative way would be using Virtual SAN similar to VMware VSAN in this case you can get rid of a physical shared storage @ all and use cheap high capacity SATA spindles (and SATA SSDs!) instead of an expensive SAS.
    Hope this helped :)
    StarWind VSAN [Virtual SAN] clusters Hyper-V without SAS, Fibre Channel, SMB 3.0 or iSCSI, uses Ethernet to mirror internally mounted SATA disks between hosts.

  • 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.

  • Weblogic Service Migration - JMS Servers and JTA

    We are having 2 node managed server Custer - active- active configuration. We are planning to use Weblogic Service Migration to migrate JMS servers and JTA in case of Failure to the available node in the cluster.
    ===> There is a problem in node1; Due to the failure of node1, JMS servers and JTA do get migrated to Node2.
    ===> Problem in node 1 is resolved and is available.
    ===> How to revert the migrated JMS servers and JTA back to node 1?
    Thanks

    If I have a 2-node cluster, that means I have to take an outage ? There is no elegant solution to this ?
    Thank you !

  • Sun App Server cannot use JMS expiration date due to constant pool resize?

    Hello,
    I thought that max-pool-size property could limit the amount of MDB beans created, and thus force the client to wait (and drop the timed out messages). But after reading this description:
    http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4972762
    It looks like that's not the case. So if you combine that with the notion of setting time to live on MDB messages, what does that equal to? Does that mean that your JMS messages will NEVER time out, even if they have TTL or expiration date set on them, because there will always be a new bean created to handle the request?
    I'd appreciate it if someone could explain what's the deal here - what good is setting JMS expiration date if your message never expires? And what is the pool size for, if the number of beans can always be exceeded?
    Thank you,
    Mark

    Hi,
    Please go through the tutorial titled "Deploying to a Sun Java System Application Server" which is available at: http://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/appserverdeploy.html
    Thanks,
    RK.

  • Free jms servers that can run on windows 95

    hi,
    Are there any free jms servers out there that I can install on windows95? most of them seem to be for NT, LINUX, XP etc....
    I need to run a few examples that I have downloaded at home on my very old crappy os so that I can get myself familiarised with JMS.
    Many thanks

    Most JMS servers are going to be able to run on Windows 95--most are written in Java. If you are looking for a free one see JBoss.org

Maybe you are looking for

  • Pages 2.0 / Applescript / Inserting an image

    Heya all, I'm trying to write a script that inserts a pdf from the desktop into an image placeholder in a pages 2.0 template. Having looked at the applescript dictionary, I'm quite confused since there seems to be a way to do that, but I can't figure

  • Is it possible to switch the left-right scrolling behavior in Prelude?

    On my Apple magic mouse I can scroll left and right with the flick of a finger for items that are too wide to fit on the screen, such as the list of columns in the Project pane. The behavior in Prelude is to move opposite to the finger flick - in oth

  • Agent installed.. but not visible in Grid Control

    Hello guys, i have installed a new Oracle Grid Control (OMS with new database/repository) and upgraded it to 10.2.0.4. After that i have installed a Oracle Grid control agent 10.2.0.4 agent on a host and configured it.. but the host is not visible in

  • Partner functions relevant for interaction history

    Hello Experts, We want to register projects in our CRM system. One of the main requirements is that all partners involved in this project (both internal and external) and that the project is shown in all the BP's interaction history. We've copied sta

  • Can u have internal AND external speakers on???

    Can both the internal speakers and some of my external speakers be on at the same time??