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 :
Est-il possible de coder cette même rule en Java ???
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; /
Actuellement mon code ressemble à ceci (et reçoit donc tous les messages) :
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 ?
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(); ...
Merci d'avance
Partager