explanation of QUEUE_CONSUMERS and QUEUE_FILTERS tables

19

1

Aside from these blog postings: http://yatb.mitza.net/2012/10/slow-db-performance-on-content-manager.html and http://www.mrgn.co/2012/10/tridion-error-unable-to-notify-server/ I can't find details on these two tables (QUEUE_CONSUMERS and QUEUE_FILTERS). Back in the early days of our project, database schemas were copied here and there across environments and we have dozens of host names in our QUEUE_CONSUMERS table which shouldn't be there. So, I'm setting the IS_ONLINE=0 for those hosts.

Can anyone explain a little more about that table? For example:

  • how do host names get added in there?
  • why do I have 4 entries for each host name (4 separate "port" values)?
  • what does the "port" indicate? (I know what a port is... but these aren't our CME or deployer port #s: each host in our system has 1150, 1151, 1152, and 1153)
  • What within Tridion is using this table?
  • Why did support tell me to mark IS_ONLINE=0 instead of deleting the rows?

Now, how about QUEUE_FILTERS?

  • this seems to have 4 rows for each QUEUE_CONSUMERS entry, but each has "-1" for the VALUE column. what's the point of that?
  • What within Tridion is using this table?

And, yes, I know all the standard disclaimers: don't touch, will make your system unstable, unsupported, etc. I just want to understand what's going on here.

Warner Soditus

Posted 2013-04-23T14:28:17.343

Reputation: 855

Answers

21

Okay let me attempt to give you some answers, basically a lot you are asking is all internal knowledge of the database and core, so actually none of it should be relevant or useful to you (other than just having the knowledge, which is useful I agree ;o). Please keep in mind that the CM database is off limits unless you get instructed by Customer Support to touch it or are willing to void your warranty.

  • Q: how do host names get added in QUEUE_CONSUMERS table?
  • A: By some SDL Tridion services once they are started

  • Q: why do I have 4 entries for each host name (4 separate "port" values) in the QUEUE_CONSUMERS table?

  • A: its the 4 different services which are listening (Publisher, Transport, Search and WF agent, on 2013 you will also have the Batch processor, usually in that order but see the MMC snap-in). There can be more if you have outscaled publishing, then you will see other hostnames of course

  • Q: what does the "port" indicate? (I know what a port is... but these aren't our CME or deployer port #s: each host in our system has 1150, 1151, 1152, and 1153)

  • A: ports used by the services for UDP notifications of queue changes

  • Q: What within Tridion is using the QUEUE_CONSUMERS table?

  • A: The services which are listening to the queue changes (like the Publisher service for example, see above list)

  • Q: Why did support tell me to mark IS_ONLINE=0 instead of deleting the rows?

  • A: After restoring a backup of a CM database on a different machine, you might have queue consumers that are marked online (because you made a so called 'online' backup of your server while not shutting down all its services). So you can reset the state of all services by changing the IS_ONLINE value. After a restart of all services, only those that are really online will be set correctly.

  • Q: What within Tridion is using the QUEUE_FILTERS table?

  • A: The services which are registered in the Queue Consumers table and have a filter set in the MMC snap-in

Bart Koopman

Posted 2013-04-23T14:28:17.343

Reputation: 29 724

Deleted my answer since yours came in half-way through writing mine :) - Only thing I had different is that the port is used to send UDP notifications to those machines – Nuno Linhares – 2013-04-23T14:52:12.117

awesome. thanks Bart and Nuno! – Warner Soditus – 2013-04-23T14:55:41.933

2\o/ I beat Nuno 'Jon Skeet' Linhares ;), I'll add the UDP in my answer. – Bart Koopman – 2013-04-23T14:57:58.893