既然是持久的,JMS实现的时候应该会把它保存到数据库或文件中。像weblogic就是保存到oracle

解决方案 »

  1.   

    wls 可以配置保存到数据库或者文件中
    Services-->JMS-->Stores
      

  2.   

    是的WL是可以那样做的,但OC4J中呢?谢谢!!
      

  3.   

    按照JMS规范,持久订阅的时候,消息保存到过期或被客户接收,可是我的客户为什么
    可以重复收到相同的消息?
      

  4.   

    可能每次你的客户的clientid不同
      

  5.   

    我用的 都是 同 一个 CLIENTID啊
      

  6.   

    //   System.out.println("test!");
          connectionFC = (TopicConnectionFactory) ctx.lookup("myMDBFC");
       //   System.out.println("test!");
          topicConnection = connectionFC.createTopicConnection();
          topicConnection.setClientID("msg");
          topicSession = topicConnection.createTopicSession(true, 0);
      //    System.out.println("test!");
          topic = (Topic) ctx.lookup("myTopic");
      //    System.out.println("test!");
          subscriber = topicSession.createDurableSubscriber(topic,"subname");
          System.out.println("listener!");
         // MessageThread t=new MessageThread();
            subscriber.setMessageListener(this);
          System.out.println("listener!");
          topicConnection.start();
      

  7.   

    topicConnection.setClientID("msg");
    subscriber = topicSession.createDurableSubscriber(topic,"subname");
    两个clientid不同
    改为
    subscriber = topicSession.createDurableSubscriber(topic,"msg");
    应该就好了