Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Appears to be a Service Broker Transmission Queue Send Threshold

3 views
Skip to first unread message

Charles

unread,
Aug 15, 2010, 7:36:44 AM8/15/10
to
Hi all

I'm using SB to pass messages from one server to another. Data come into the
first server as a regular stream of discreet messages, and I have all the
infrastructure set up to queue the data and forward them to the remote
target.

The first server is running SQL Server 2008 R2 Express and the target is
running SQL Server 2008 Enterprise.

Watching the transmission queue on the first server, I noticed that it
accumulates messages up to about 71 to 75 messages and then it seems to send
them all in one go to the target. The messages then start to build up on the
first server again until it reaches ~75 messages, whereupon the transmission
queue empties again.

Is there some threshold SB has to reach before it sends messages on? I would
really like it to send any queued messages as soon as they hit the queue
rather than bulk them up.

Thanks for any insights.

Charles

Charles

unread,
Aug 18, 2010, 6:07:00 PM8/18/10
to
Does anyone have information about this at all?

Charles


"Charles" <bl...@nowhere.com> wrote in message
news:i48jgb$qt4$1...@news.eternal-september.org...

Gene Wirchenko

unread,
Aug 18, 2010, 6:42:29 PM8/18/10
to
On Sun, 15 Aug 2010 12:36:44 +0100, "Charles" <bl...@nowhere.com>
wrote:

>I'm using SB to pass messages from one server to another. Data come into the
>first server as a regular stream of discreet messages, and I have all the
>infrastructure set up to queue the data and forward them to the remote
>target.

Over TCP/IP?

>The first server is running SQL Server 2008 R2 Express and the target is
>running SQL Server 2008 Enterprise.
>
>Watching the transmission queue on the first server, I noticed that it

How are you watching this? Specifically, at what level of
abstraction?

>accumulates messages up to about 71 to 75 messages and then it seems to send
>them all in one go to the target. The messages then start to build up on the
>first server again until it reaches ~75 messages, whereupon the transmission
>queue empties again.
>
>Is there some threshold SB has to reach before it sends messages on? I would
>really like it to send any queued messages as soon as they hit the queue
>rather than bulk them up.

Maybe, maybe not. I do not know SB, not even what the acronym is
for.

I do know some TCP/IP. I suspect that the buffering may occur at
that level. Do the messages get sent eventually?

>Thanks for any insights.

Sincerely,

Gene Wirchenko

Charles

unread,
Aug 19, 2010, 6:00:45 AM8/19/10
to
Hi Gene

Thanks for the reply. SB is Service Broker. And yes, it is operating over
TCP/IP.

SB maintains a view that allows developers to see messages queued for
transfer to the remote endpoint. This is sys.transmission_queue. I am
repeatedly selecting from this view and see the number of rows steadily
increase to around 70, and then it empties in a flash and starts again.

I'm wondering if SB is batching up messages to send. It looks like that is
what is happening, but I would like to at least be able to set the size of
the batch to something much smaller.

Charles


"Gene Wirchenko" <ge...@ocis.net> wrote in message
news:naoo665p6lgtm5et8...@4ax.com...

Gene Wirchenko

unread,
Aug 19, 2010, 3:54:24 PM8/19/10
to
On Thu, 19 Aug 2010 11:00:45 +0100, "Charles" <bl...@nowhere.com>
wrote:

>Thanks for the reply. SB is Service Broker. And yes, it is operating over
>TCP/IP.
>
>SB maintains a view that allows developers to see messages queued for
>transfer to the remote endpoint. This is sys.transmission_queue. I am
>repeatedly selecting from this view and see the number of rows steadily
>increase to around 70, and then it empties in a flash and starts again.
>
>I'm wondering if SB is batching up messages to send. It looks like that is
>what is happening, but I would like to at least be able to set the size of
>the batch to something much smaller.

It is possible that TCP is doing that batching. You should find
out which is doing it.

[snip]

Sincerely,

Gene Wirchenko

Charles

unread,
Aug 19, 2010, 4:54:46 PM8/19/10
to
Hi Gene

From what I know of SB I think it is unlikely to be TCP that is batching. If
it were, I don't think it would appear in the transmission queue, as this an
internal database structure. Perhaps someone with more understanding than me
of the internals of SB will have some thoughts.

Thanks

Charles


"Gene Wirchenko" <ge...@ocis.net> wrote in message

news:ls2r665n8ikplllqq...@4ax.com...

Erland Sommarskog

unread,
Aug 19, 2010, 5:08:47 PM8/19/10
to
Charles (bl...@nowhere.com) writes:
> From what I know of SB I think it is unlikely to be TCP that is
> batching. If it were, I don't think it would appear in the transmission
> queue, as this an internal database structure. Perhaps someone with more
> understanding than me of the internals of SB will have some thoughts.

No, TCP/IP batching does not seem likely. 75 messages is likely to exceed
any batch size for TCP/IP. It is not unlikely that a single message
will do.

I don't know the answer to you original question. Maybe you should
try the web forums on http://social.msdn.microsoft.com/Forums/. I
believe there is one for Service Broker, and the activity might be
better there.

--
Erland Sommarskog, SQL Server MVP, esq...@sommarskog.se

Links for SQL Server Books Online:
SQL 2008: http://msdn.microsoft.com/en-us/sqlserver/cc514207.aspx
SQL 2005: http://msdn.microsoft.com/en-us/sqlserver/bb895970.aspx
SQL 2000: http://www.microsoft.com/sql/prodinfo/previousversions/books.mspx

Charles

unread,
Aug 20, 2010, 9:54:22 AM8/20/10
to
Hi Erland

Thanks for the link. I've posted a message there too now.

Cheers

Charles


"Erland Sommarskog" <esq...@sommarskog.se> wrote in message
news:Xns9DD9EB756...@127.0.0.1...

Gene Wirchenko

unread,
Aug 20, 2010, 6:15:33 PM8/20/10
to
On Thu, 19 Aug 2010 21:54:46 +0100, "Charles" <bl...@nowhere.com>
wrote:

>Hi Gene
>
>From what I know of SB I think it is unlikely to be TCP that is batching. If
>it were, I don't think it would appear in the transmission queue, as this an
>internal database structure. Perhaps someone with more understanding than me
>of the internals of SB will have some thoughts.

If that transmission queue is SB's, then no, it would probably
not be SB. (I suppose it could be if the items are not removed from
the queue until acknowledged.)


[snip]

Sincerely,

Gene Wirchenko

0 new messages