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 » IBM MQ Java / JMS » Topic performance and unsubscribe durable subscriptions

Post new topic  Reply to topic
 Topic performance and unsubscribe durable subscriptions « View previous topic :: View next topic » 
Author Message
avla
PostPosted: Tue May 09, 2006 6:27 am    Post subject: Topic performance and unsubscribe durable subscriptions Reply with quote

Newbie

Joined: 09 May 2006
Posts: 4

I am finding that large volume through a Topic is causing severe performance degradation, often with messages being delivered to subscribers with an hour in between, but only after 50-60% of the message flow has been processed. My first question is has anyone else seen this issue?

Second is that I am theorizing that part of my problem might be a durable subscription being left out there although the subscriber is no longer active. However, I seem to run into the same issue that some other people have expressed regarding not being able to get dumpbroker and unsubscribe examples from the IBM site to successfully kill this subscription, getting a NOT_REGISTERED error.

Has anyone got this to work successfully? Is there something else besides the standard example parameters that must be passed when the subscription has a clientId assigned or MQREGO_VARIABLE_USER_ID set? (This last one is shown on amqspsd but not dumpbroker)

Running 530.10 CSD10.

Any help would be appreciated.

Ouput from Dumpbroker--->

IY73579 - fix installed
IY72849 - fix installed

Publishers
--------------
Stream Name: SYSTEM.BROKER.PUBLISH.PTSREPLY.TOPIC.STREAM

Subscribers
--------------
Stream Name: SYSTEM.BROKER.PUBLISH.PTSREPLY.TOPIC.STREAM
Topic: postingReplyTopic
BrokerCount: 0
ApplCount: 1
AnonymousCount: 0
RegistrationQName: SYSTEM.JMS.D.PTSREPLY.SUB.2.LQ
RegistrationCorrellId: 414D51204E59545343534D3120202020443D2AC22000AC07
RegistrationUserIdentifier: a_was1
RegistrationOptions: 1048577 : MQREGO_CORREL_ID_AS_IDENTITY
RegistrationTime: 2006041218154788

Topic: MQ/S/NYTSCSM1 /Subscribers/Identities/*
BrokerCount: 0
ApplCount: 1
AnonymousCount: 1

Ouput from unsubscribe--->


Reading deregister data from file: ./subsc.out
IY73579 - fix installed

Deregister topic: postingReplyTopic
Deregister stream: SYSTEM.BROKER.PUBLISH.PTSREPLY.TOPIC.STREAM
Deregister queue: SYSTEM.JMS.D.PTSREPLY.SUB.2.LQ
Deregister correlid: AMQ NYTSCSM1 D=*? ?
Unsub string is MQPSCommand DeregSub MQPSTopic postingReplyTopic MQPSRegOpts CorrelAsId MQPSStreamName SYSTEM.BROKER.PUBLISH.PTSREPLY.TOPIC.STREAM MQPSQName SYSTEM.JMS.D.PTSREPLY.SUB.2.LQ MQPSQMgrName "NYTSCSM1 "
IY72849 - fix installed
Unsubscribe failed for reason NOT_REGISTERED

1 Deregistrations attempted. 0 successfully removed.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue May 09, 2006 6:32 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

dumpbroker is deprecated for amqspsd, which is a sample program.

What's the qdepth of SYSTEM.BROKER.PUBLISH.PTSREPLY.TOPIC.STREAM?
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
avla
PostPosted: Tue May 09, 2006 6:37 am    Post subject: Reply with quote

Newbie

Joined: 09 May 2006
Posts: 4

qdepth is zero for that queue.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue May 09, 2006 7:52 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Oh, sorry. I meant for SYSTEM.JMS.D.PTSREPLY.SUB.2.LQ
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
avla
PostPosted: Tue May 09, 2006 7:59 am    Post subject: Reply with quote

Newbie

Joined: 09 May 2006
Posts: 4

When trying to do the unsubscribe, it has about 8500 in it. I have noticed it will have somewhere between a few thousand to 15k when the performance hits a wall. I am thinking these are my extra messages hanging around for that subscriber.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue May 09, 2006 8:29 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Yes, they probably are.

So first use amqsbcg to verify the CorrelID of all the messages in that queue.

Then clear the queue of anything you don't need.

Then try the unregister.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
avla
PostPosted: Tue May 09, 2006 4:22 pm    Post subject: Reply with quote

Newbie

Joined: 09 May 2006
Posts: 4

Thanks for the help Jeff. I got the unsubscribe to work but it doesn't seem to have solved my performance issues much.

Any ideas about what might cause a severe lag in message delivery after a large amount of messages and/or a large amount of messages on the topic queue? We have 6 subscribers with varying message selectors on the same topic.

I am pretty convinced it is a tuning issue of some sort but my boss is ready to pull the plug and write our own routing mechanism. Are there any good basic tuning measures that might help? Is it better to have each subscriber with their own durable queue rather than have them all share the one? Is there a way to increase the memory allocated to the broker?

Andrew
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue May 09, 2006 4:34 pm    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

If there are messages on the queue, it takes longer to identify each subscription.

If there are uncommited messages on the queue, it takes longer to process each new message being added to an existing transaction.

That is, it's actually likely an application issue and not a tuning issue.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue May 09, 2006 4:36 pm    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Oh. It's definitely better to have each subscriber with their own queue.

Which broker are you using?
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
briancop
PostPosted: Wed May 10, 2006 4:29 am    Post subject: Reply with quote

Apprentice

Joined: 04 Apr 2005
Posts: 28
Location: Hursley, UK

And what do the selectors look like? Unless they are simple selection criteria using MsgId and CorrelId, then the JMS implementation will be matching messages to the selectors within the client process, i.e. browsing the queue, looking for messages of interest and getting these. If you have a relatively deep queue, this will not be efficient.

Is it possible that you can do something slightly different that doesn't require selectors? Regardless of how the JMS implementation works, selectors are always going to be inherently inefficient by their nature of having to parse message headers and properties and do string comparisons against the parsed selector strings.

Perhaps you can do something with topic hierarchies such that you can be more specific in your publishing application(s) about which subscribers the messages get routed to?

Or if you are using Message Broker, perhaps you can set up a flow such that you publish to a master topic, pass the messages through one or more filter nodes (including content-based filtering if necessary) and route them on the basis of the filters to further topics to which your consuming applications subscribe.

I don't know for sure, but I would guess that a lot of your performance issues may be a result of your use of selector strings. At least that is where I would start looking for answers.
Back to top
View user's profile Send private message
briancop
PostPosted: Wed May 10, 2006 4:30 am    Post subject: Reply with quote

Apprentice

Joined: 04 Apr 2005
Posts: 28
Location: Hursley, UK

Oh, by the way, Jeff's comment about using a separate queue for each subscriber is even more important when using selectors, since it will greatly reduce the queue depths involved.
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 » IBM MQ Java / JMS » Topic performance and unsubscribe durable subscriptions
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.