IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java EE Discussion :

Rule pour subscriber


Sujet :

Java EE

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2010
    Messages : 32
    Points : 21
    Points
    21
    Par défaut Rule pour subscriber
    Bonjour à tous,


    Sous Oracle, il est possible de définir une rule dans un subscriber pour ne recevoir que les messages vérifiant cette rule.

    Un exemple pour des messages devant vérifier la user JMS property PAYS=FRANCE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DECLARE 
       subscriber          sys.aq$_agent; 
    BEGIN 
       subscriber := sys.aq$_agent('MON_SUBSCRIBER', null, null); 
       DBMS_AQADM.ADD_SUBSCRIBER(
          queue_name         => 'MA_QUEUE', 
          subscriber         =>  subscriber,
          rule => 'user_data.get_string_property('PAYS') = 'FRANCE'');
    END;
    /
    Est-il possible de coder cette même rule en Java ???

    Actuellement mon code ressemble à ceci (et reçoit donc tous les messages) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
            Topic topic = null;
            TopicSession tSess = null;
            TopicConnectionFactory tFact = null;
            TopicConnection tConn = null;
            TopicSubscriber tSub;
     
            try {
                tFact = AQjmsFactory.getTopicConnectionFactory(myURL, null);
     
                tConn = tFact.createTopicConnection("OAQ_USER","OAQ_PWD");
     
                tSess = tConn.createTopicSession(true, Session.CLIENT_ACKNOWLEDGE);
     
                topic = ((AQjmsSession)tSess).createTopic(queueName);
     
                tSub = tSess.createDurableSubscriber(topic, SUBSCRIBER_NAME);
     
                tConn.start();
     
                ((AQjmsDestination)topic).start(tSess, true, true);
     
                Message msg = tSub.receive();
     
                ...
    Autre question : en Java, est-on toujours obligé de créer un subscriber ou peut-on en récupérer un existant en se basant sur son nom, par exemple ?

    Merci d'avance

  2. #2
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2010
    Messages : 32
    Points : 21
    Points
    21
    Par défaut
    Je pense avoir trouvé la réponse à ma première question. Le "message selector" est l'équivalent de la rule en SQL et il existe une autre signature pour la méthode createDurableSubscriber utilisant ce message selector.

    Cela donne dans mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        String msgSel = "TAB.USER_DATA.GET_STRING_PROPERTY('PAYS') = 'FRANCE'";
        ...
        tSub = tSess.createDurableSubscriber(topic, SUBSCRIBER_NAME, msgSel, false);
     
        ...
    Par contre, toujours pas d'indice concernant ma seconde question...

Discussions similaires

  1. Navigation Rule pour une page à une autre
    Par maserati dans le forum JSF
    Réponses: 0
    Dernier message: 09/01/2012, 12h40
  2. [Architecture] navigation-rule pour un a4j:include
    Par Chritofff dans le forum JSF
    Réponses: 4
    Dernier message: 15/02/2010, 13h19
  3. Réponses: 1
    Dernier message: 10/04/2009, 10h04
  4. ActionErrors vide pour mes validator-rules
    Par anayathefirst dans le forum Struts 1
    Réponses: 11
    Dernier message: 24/01/2007, 02h19
  5. Réponses: 2
    Dernier message: 21/12/2006, 21h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo