ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Content Based Filtering in ESQL for Pub-Sub

Post new topic  Reply to topic
 Content Based Filtering in ESQL for Pub-Sub « View previous topic :: View next topic » 
Author Message
Senthamizh
PostPosted: Mon Nov 26, 2012 12:11 am    Post subject: Content Based Filtering in ESQL for Pub-Sub Reply with quote

Apprentice

Joined: 21 Dec 2009
Posts: 47

Hi,

We are in the process of migrating from WMB6.1 to WMB8. Now that Pub-Sub has been moved to MQ, we are planning to move pub-sub rules to MQ.

But we have some content based filtering registered in V6.1 like Body.XMLNSC... or Root.MQRFH2...

From the infocenter, it has been said that the content based filtering can still be acheived in WMB using the cbfEnabled property for an EG.

But i need help in understanding how are these subscriptions handled in WMB8 ?, in V6.1 i knew that it was stored in bsubscriptions table.

Also, in the infocenter it has been said that
Quote:
If you enable content based filtering in multiple execution groups on z/OS, content based filtering is active in only one execution group at any time. Subsequent execution groups for which content based filtering is enabled, propagate the following messages to the syslog on start up (for each content based filtering thread) and then every 30 minutes, as they fail to connect to the queue manager:

BIP2111E MQ04BRK jheg1 15 MESSAGE BROKER INTERNAL ERROR: DIAGNOSTIC INFORMATION
'Error occurred in Content Based Filtering Thread'. : ImbCbfWorker(909)
BIP2624E MQ04BRK jheg1 14 UNABLE TO CONNECT TO QUEUE MANAGER 'MQ04': MQCC=2;
MQRC=2002; MESSAGE FLOW NODE 'ContentBasedFiltering'. : ImbCbfWorker(214)

If you stop the execution group that is currently providing content based filtering services, another execution group for which content based filtering is enabled connects to the queue manager and provides content based filtering services.



Then how do we acheive content based filtering for flows deployed in multiple execution groups ?
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Mon Nov 26, 2012 6:16 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

http://publib.boulder.ibm.com/infocenter/wmbhelp/v8r0m0/index.jsp?topic=%2Fcom.ibm.etools.mft.doc%2Fbq13460_.htm

Quote:
<psc>
<Command>RegSub</Command><Topic>topic</Topic>
<Filter>
SUBSTRING(Root.XMLNSC.Name.FirstName FROM 1 FOR 1) = ‘J' and usr.flag = ‘yes'
</Filter>
</psc>

_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
Senthamizh
PostPosted: Mon Nov 26, 2012 6:26 am    Post subject: Reply with quote

Apprentice

Joined: 21 Dec 2009
Posts: 47

Thanks lancelotlinc

Infact its the same way as in V6.1, but in V6.1 we send this message to the SYSTEM.BROKER.CONTROL.QUEUE and the broker registers this in the broker db in bsusbcriptions table.

I did the same in V8, but the messgae just stays in SYSTEM.BROKER.CONTROL.QUEUE, and am not sure, where broker stores this detail (probably in some file as i don't see some system queue related to subscription except the durable subscriber queue)..

Also, as i said above, the infocenter have mentioned that the cbfenabled property can be enabled for multiple exe groups, but only one execution group will be active. So in this case, how do i acheive the content based filtering for flows running in multiple execution groups...
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Mon Nov 26, 2012 6:28 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

http://publib.boulder.ibm.com/infocenter/wmbhelp/v8r0m0/index.jsp?topic=%2Fcom.ibm.etools.mft.doc%2Fbq13460_.htm

Quote:
It is possible to enable this function in multiple execution groups, but you must ensure that any message sets required to parse any published message (and referenced in the mcd folder of that message) are deployed to all the execution groups that have been enabled for content-based filtering. Any errors encountered parsing the message within the evaluation thread cause WebSphere MQ to return MQRC_CONTENT_ERROR to the publishing application. The parsing error appears as well in the event log as a WebSphere Message Broker exception.


What do you see in the WMQ log?
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
Senthamizh
PostPosted: Wed Nov 28, 2012 7:32 am    Post subject: Reply with quote

Apprentice

Joined: 21 Dec 2009
Posts: 47

No errors in MQ log. First i need to register this filtering rule with the broker, and not sure how it could be done with WMB8

As per your first post
Quote:
<psc>
<Command>RegSub</Command><Topic>topic</Topic>
<Filter>
SUBSTRING(Root.XMLNSC.Name.FirstName FROM 1 FOR 1) = ‘J' and usr.flag = ‘yes'
</Filter>
</psc>


the command is "RegSub", but where do i send this message to ?

If i send it to SYSTEM.BROKER.CONTROL.QUEUE, it just stays there....
Back to top
View user's profile Send private message
mqjeff
PostPosted: Wed Nov 28, 2012 7:53 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

For v8 you send a Create Subscription PCF message to the MQ command server queue.
Back to top
View user's profile Send private message
Senthamizh
PostPosted: Thu Nov 29, 2012 5:20 am    Post subject: Reply with quote

Apprentice

Joined: 21 Dec 2009
Posts: 47

Thanks Jeff

I sent the message to SYSTEM.ADMIN.COMMAND.QUEUE and now the message goes to the dead letter queue.

Variables captured from debug in esql.
Code:

MQRFH2   
   psc   
      Command   
         RegSub   
      Topic   
         EEE   
      Filter   
         SUBSTRING(Root.XMLNSC.Name.FirstName FROM 1 FOR 1) = 'J' and usr.flag = 'yes'   
   Format

And no errors in MQ log, the message simply goes to the dead letter queue.

I am still confused on the fact, that i enabled the cbfenabled property for an EG as provided in the MB infocenter.. But how does that change will make the MQ(Command server queue) accept this content filtering subscriptions ? Do i need to make some changes to MQ for this content based filtering.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Nov 29, 2012 5:21 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

You don't send a RegSub command, you send a PCF CREATE SUBSCRIPTION command...

or a DEFINE SUBSCRIPTION mqsc command in a PCF Escape command.
Back to top
View user's profile Send private message
Senthamizh
PostPosted: Thu Nov 29, 2012 6:06 am    Post subject: Reply with quote

Apprentice

Joined: 21 Dec 2009
Posts: 47

Ok, But how do i achieve a filtering based on the payload with this PCF subscription creation ?

I have already created subscription in MQ7 by the DEFINE SUB command specified here

http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=%2Fcom.ibm.mq.csqzaj.doc%2Fsc14010_.htm

What i am looking for is to achieve a subscription filtering based on the Message payload as specified here

http://publib.boulder.ibm.com/infocenter/wmbhelp/v8r0m0/index.jsp?topic=%2Fcom.ibm.etools.mft.doc%2Fbq13460_.htm


From the info center, i came to know that this content based filtering can only be enabled for QM which has a Broker. but it is not so detailed as to how to register this filter. (DEFINE SUB command don't have an option to provide this filtering rules).
Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Nov 29, 2012 6:18 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Well, you can either send your RegSub message to a Publication node, or you can simply put the esql expression into the SELECTOR of the DEFINE SUBSCRIPTION.

To the best of my knowledge, one of those is the correct thing to do.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Content Based Filtering in ESQL for Pub-Sub
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.