Author |
Message
|
Senthamizh |
Posted: Mon Nov 26, 2012 12:11 am Post subject: Content Based Filtering in ESQL for Pub-Sub |
|
|
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 |
|
 |
lancelotlinc |
Posted: Mon Nov 26, 2012 6:16 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
|
Back to top |
|
 |
Senthamizh |
Posted: Mon Nov 26, 2012 6:26 am Post subject: |
|
|
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 |
|
 |
lancelotlinc |
Posted: Mon Nov 26, 2012 6:28 am Post subject: |
|
|
 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 |
|
 |
Senthamizh |
Posted: Wed Nov 28, 2012 7:32 am Post subject: |
|
|
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 |
|
 |
mqjeff |
Posted: Wed Nov 28, 2012 7:53 am Post subject: |
|
|
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 |
|
 |
Senthamizh |
Posted: Thu Nov 29, 2012 5:20 am Post subject: |
|
|
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 |
|
 |
mqjeff |
Posted: Thu Nov 29, 2012 5:21 am Post subject: |
|
|
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 |
|
 |
Senthamizh |
Posted: Thu Nov 29, 2012 6:06 am Post subject: |
|
|
Apprentice
Joined: 21 Dec 2009 Posts: 47
|
|
Back to top |
|
 |
mqjeff |
Posted: Thu Nov 29, 2012 6:18 am Post subject: |
|
|
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 |
|
 |
|