[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

David

11/3/2008 9:40:00 AM

Hi all,

In my earlier post about Application design, I was informed about the MSMQ.

Having never used MSMQ before, I have now done quite a bit of research. In
some respects, it seems almost perfect for what I need, but in others, I am
not so sure.

For example, for the reading of messages, most of the examples show just a
few seconds before retrieving messages with a timespan in the order of 2 or
3 seconds. Is this normal? The reason I ask is that the system I need to
develop can get VERY HEAVILY loaded at times and I think two or three
seconds is probably way too much time to waste. However, what I don't want
to do is to overload the system with checking for messages when there are
none.

What would be a good compromise. I need a queueing system but I also need
near instant response when I can. (Near instant for example is to have
returned a response whilst still processing a thread, so in the order of
milliseconds)

Something else the examples fail to do is to show which machine the messages
should be stored on. I am assuming local and that other machines that need
to act on the messages call the message from the local machine. Am I
assuming correctly?



The main use of the system I have to develop is an image interpretation
engine. Basically, the engine can interpret about 3000 parts of an image per
second. Sometimes there will be little for it to do, sometimes there could
be many thousand parts coming in all at once.

To scale this scenario, I would expect that we would just add processing
servers with the image interpreting engine installed.

The end application (that I am building) requires where possible that there
is a near instant response. We will be putting in logic to try and help with
the workload... we need an instant queue which will work on certain parts of
the image to validate the mandatory requirements, and a near-instant queue
that will handle the parts of the image that doesn't require the immediate
work.

Is MSMQ what I need? If not, then what else could I use?

(I don't want to get bogged down with threads, though I think threads will
have a major role to play in this application. (When I say Bogged Down, I
mean that the machine is likely to suffer when there is a LOT of traffic
coming in.))

--
Best regards,
Dave Colliver.
http://www.Ashfiel...
~~
http://www.FOCUSP... - Local franchises available


6 Answers

sloan

11/3/2008 9:19:00 PM

0


I would look into the more abstract WCF "IsOneWay" calls.
(which is a piggyback onto msmq).

Writing the polling code for MSMQ is a painful exercise. You have to keep
in mind that the DotNet System.Messaging stuff is just wrappers for COM
based msmq items.
(Don't believe, check the errorhandling of msmq)

WCF will help you avoid ALOT of plumbing code.


I don't know if WCF is best, but I wanted to at least introduce you to it:
http://sholliday.spaces.live.co...!A68482B9628A842A!158.entry
A full downloadable example is there. CHeck the IsOneWay example:


Here is some WCF MSMQ Binding and Behavior Hints

<bindings>


<!--See
http://msdn.microsoft.com/en-us/library/system.servicemodel.receiveerrorhan...
concerning the receiveErrorHandling, there are better options when we go to
MSMQ 4.0-->

<netMsmqBinding>
<binding name="NoMSMQSecurity" exactlyOnce="true"
receiveErrorHandling="Fault" maxRetryCycles="5" retryCycleDelay ="00:00:30"
sendTimeout="00:10:00">
<security mode = "None">
</security>
</binding>
</netMsmqBinding>
</bindings>

<behaviors>
<serviceBehaviors>
<behavior name="DefaultThrottlingBehavior">
<serviceThrottling maxConcurrentCalls="20"
maxConcurrentSessions="25"
maxConcurrentInstances="25" />

</behavior>
</serviceBehaviors>
</behaviors>



The maxConcurrentCalls is NOT trivial to implment in a purely MSMQ fashion.
MS did the plumbing work much more nicely than you can roll you own IMHO.


..........
MSQM (no wcf) tidbits:

You can check this msmq article out:
http://msmvps.com/blogs/manoj/archive/2005/10/16/...

Or
http://microsoft.apress.com:80/asptodayarchive/73445/a-managed-multithreaded-msmq-engine-running-as-a-windo...







"David" <david.colliver.NEWS@revilloc.REMOVETHIS.com> wrote in message
news:%23J4y3gZPJHA.4496@TK2MSFTNGP04.phx.gbl...
> Hi all,
>
> In my earlier post about Application design, I was informed about the
> MSMQ.
>
> Having never used MSMQ before, I have now done quite a bit of research. In
> some respects, it seems almost perfect for what I need, but in others, I
> am not so sure.
>
> For example, for the reading of messages, most of the examples show just a
> few seconds before retrieving messages with a timespan in the order of 2
> or 3 seconds. Is this normal? The reason I ask is that the system I need
> to develop can get VERY HEAVILY loaded at times and I think two or three
> seconds is probably way too much time to waste. However, what I don't want
> to do is to overload the system with checking for messages when there are
> none.
>
> What would be a good compromise. I need a queueing system but I also need
> near instant response when I can. (Near instant for example is to have
> returned a response whilst still processing a thread, so in the order of
> milliseconds)
>
> Something else the examples fail to do is to show which machine the
> messages should be stored on. I am assuming local and that other machines
> that need to act on the messages call the message from the local machine.
> Am I assuming correctly?
>
>
>
> The main use of the system I have to develop is an image interpretation
> engine. Basically, the engine can interpret about 3000 parts of an image
> per second. Sometimes there will be little for it to do, sometimes there
> could be many thousand parts coming in all at once.
>
> To scale this scenario, I would expect that we would just add processing
> servers with the image interpreting engine installed.
>
> The end application (that I am building) requires where possible that
> there is a near instant response. We will be putting in logic to try and
> help with the workload... we need an instant queue which will work on
> certain parts of the image to validate the mandatory requirements, and a
> near-instant queue that will handle the parts of the image that doesn't
> require the immediate work.
>
> Is MSMQ what I need? If not, then what else could I use?
>
> (I don't want to get bogged down with threads, though I think threads will
> have a major role to play in this application. (When I say Bogged Down, I
> mean that the machine is likely to suffer when there is a LOT of traffic
> coming in.))
>
> --
> Best regards,
> Dave Colliver.
> http://www.Ashfiel...
> ~~
> http://www.FOCUSP... - Local franchises available
>


David

11/3/2008 9:41:00 PM

0

Thanks, I will have a look.

--
Best regards,
Dave Colliver.
http://www.Ashfiel...
~~
http://www.FOCUSP... - Local franchises available
"sloan" <sloan@ipass.net> wrote in message
news:OemJpmfPJHA.4136@TK2MSFTNGP02.phx.gbl...
>
> I would look into the more abstract WCF "IsOneWay" calls.
> (which is a piggyback onto msmq).
>
> Writing the polling code for MSMQ is a painful exercise. You have to keep
> in mind that the DotNet System.Messaging stuff is just wrappers for COM
> based msmq items.
> (Don't believe, check the errorhandling of msmq)
>
> WCF will help you avoid ALOT of plumbing code.
>
>
> I don't know if WCF is best, but I wanted to at least introduce you to it:
> http://sholliday.spaces.live.co...!A68482B9628A842A!158.entry
> A full downloadable example is there. CHeck the IsOneWay example:
>
>
> Here is some WCF MSMQ Binding and Behavior Hints
>
> <bindings>
>
>
> <!--See
> http://msdn.microsoft.com/en-us/library/system.servicemodel.receiveerrorhan...
> concerning the receiveErrorHandling, there are better options when we go
> to MSMQ 4.0-->
>
> <netMsmqBinding>
> <binding name="NoMSMQSecurity" exactlyOnce="true"
> receiveErrorHandling="Fault" maxRetryCycles="5" retryCycleDelay
> ="00:00:30" sendTimeout="00:10:00">
> <security mode = "None">
> </security>
> </binding>
> </netMsmqBinding>
> </bindings>
>
> <behaviors>
> <serviceBehaviors>
> <behavior name="DefaultThrottlingBehavior">
> <serviceThrottling maxConcurrentCalls="20"
> maxConcurrentSessions="25"
> maxConcurrentInstances="25" />
>
> </behavior>
> </serviceBehaviors>
> </behaviors>
>
>
>
> The maxConcurrentCalls is NOT trivial to implment in a purely MSMQ
> fashion. MS did the plumbing work much more nicely than you can roll you
> own IMHO.
>
>
> .........
> MSQM (no wcf) tidbits:
>
> You can check this msmq article out:
> http://msmvps.com/blogs/manoj/archive/2005/10/16/...
>
> Or
> http://microsoft.apress.com:80/asptodayarchive/73445/a-managed-multithreaded-msmq-engine-running-as-a-windo...
>
>
>
>
>
>
>
> "David" <david.colliver.NEWS@revilloc.REMOVETHIS.com> wrote in message
> news:%23J4y3gZPJHA.4496@TK2MSFTNGP04.phx.gbl...
>> Hi all,
>>
>> In my earlier post about Application design, I was informed about the
>> MSMQ.
>>
>> Having never used MSMQ before, I have now done quite a bit of research.
>> In some respects, it seems almost perfect for what I need, but in others,
>> I am not so sure.
>>
>> For example, for the reading of messages, most of the examples show just
>> a few seconds before retrieving messages with a timespan in the order of
>> 2 or 3 seconds. Is this normal? The reason I ask is that the system I
>> need to develop can get VERY HEAVILY loaded at times and I think two or
>> three seconds is probably way too much time to waste. However, what I
>> don't want to do is to overload the system with checking for messages
>> when there are none.
>>
>> What would be a good compromise. I need a queueing system but I also need
>> near instant response when I can. (Near instant for example is to have
>> returned a response whilst still processing a thread, so in the order of
>> milliseconds)
>>
>> Something else the examples fail to do is to show which machine the
>> messages should be stored on. I am assuming local and that other machines
>> that need to act on the messages call the message from the local machine.
>> Am I assuming correctly?
>>
>>
>>
>> The main use of the system I have to develop is an image interpretation
>> engine. Basically, the engine can interpret about 3000 parts of an image
>> per second. Sometimes there will be little for it to do, sometimes there
>> could be many thousand parts coming in all at once.
>>
>> To scale this scenario, I would expect that we would just add processing
>> servers with the image interpreting engine installed.
>>
>> The end application (that I am building) requires where possible that
>> there is a near instant response. We will be putting in logic to try and
>> help with the workload... we need an instant queue which will work on
>> certain parts of the image to validate the mandatory requirements, and a
>> near-instant queue that will handle the parts of the image that doesn't
>> require the immediate work.
>>
>> Is MSMQ what I need? If not, then what else could I use?
>>
>> (I don't want to get bogged down with threads, though I think threads
>> will have a major role to play in this application. (When I say Bogged
>> Down, I mean that the machine is likely to suffer when there is a LOT of
>> traffic coming in.))
>>
>> --
>> Best regards,
>> Dave Colliver.
>> http://www.Ashfiel...
>> ~~
>> http://www.FOCUSP... - Local franchises available
>>
>
>


Cowboy

11/4/2008 12:10:00 AM

0

In addition, if this is all data, look at service broker in SQL 2005/2008.

--
Gregory A. Beamer
MVP, MCP: +I, SE, SD, DBA

Subscribe to my blog
http://feeds.feedburner.com/Greg...

or just read it:
http://feeds.feedburner.com/Gre...

********************************************
| Think outside the box! |
********************************************
"David" <david.colliver.NEWS@revilloc.REMOVETHIS.com> wrote in message
news:%23J4y3gZPJHA.4496@TK2MSFTNGP04.phx.gbl...
> Hi all,
>
> In my earlier post about Application design, I was informed about the
> MSMQ.
>
> Having never used MSMQ before, I have now done quite a bit of research. In
> some respects, it seems almost perfect for what I need, but in others, I
> am not so sure.
>
> For example, for the reading of messages, most of the examples show just a
> few seconds before retrieving messages with a timespan in the order of 2
> or 3 seconds. Is this normal? The reason I ask is that the system I need
> to develop can get VERY HEAVILY loaded at times and I think two or three
> seconds is probably way too much time to waste. However, what I don't want
> to do is to overload the system with checking for messages when there are
> none.
>
> What would be a good compromise. I need a queueing system but I also need
> near instant response when I can. (Near instant for example is to have
> returned a response whilst still processing a thread, so in the order of
> milliseconds)
>
> Something else the examples fail to do is to show which machine the
> messages should be stored on. I am assuming local and that other machines
> that need to act on the messages call the message from the local machine.
> Am I assuming correctly?
>
>
>
> The main use of the system I have to develop is an image interpretation
> engine. Basically, the engine can interpret about 3000 parts of an image
> per second. Sometimes there will be little for it to do, sometimes there
> could be many thousand parts coming in all at once.
>
> To scale this scenario, I would expect that we would just add processing
> servers with the image interpreting engine installed.
>
> The end application (that I am building) requires where possible that
> there is a near instant response. We will be putting in logic to try and
> help with the workload... we need an instant queue which will work on
> certain parts of the image to validate the mandatory requirements, and a
> near-instant queue that will handle the parts of the image that doesn't
> require the immediate work.
>
> Is MSMQ what I need? If not, then what else could I use?
>
> (I don't want to get bogged down with threads, though I think threads will
> have a major role to play in this application. (When I say Bogged Down, I
> mean that the machine is likely to suffer when there is a LOT of traffic
> coming in.))
>
> --
> Best regards,
> Dave Colliver.
> http://www.Ashfiel...
> ~~
> http://www.FOCUSP... - Local franchises available
>

David

11/4/2008 9:00:00 AM

0

Is the WCF part of .NET 3 rather than 2? I am currently working with .NET
2.0

--
Best regards,
Dave Colliver.
http://www.Ashfiel...
~~
http://www.FOCUSP... - Local franchises available


"sloan" <sloan@ipass.net> wrote in message
news:OemJpmfPJHA.4136@TK2MSFTNGP02.phx.gbl...
>
> I would look into the more abstract WCF "IsOneWay" calls.
> (which is a piggyback onto msmq).
>
> Writing the polling code for MSMQ is a painful exercise. You have to keep
> in mind that the DotNet System.Messaging stuff is just wrappers for COM
> based msmq items.
> (Don't believe, check the errorhandling of msmq)
>
> WCF will help you avoid ALOT of plumbing code.
>
>
> I don't know if WCF is best, but I wanted to at least introduce you to it:
> http://sholliday.spaces.live.co...!A68482B9628A842A!158.entry
> A full downloadable example is there. CHeck the IsOneWay example:
>
>
> Here is some WCF MSMQ Binding and Behavior Hints
>
> <bindings>
>
>
> <!--See
> http://msdn.microsoft.com/en-us/library/system.servicemodel.receiveerrorhan...
> concerning the receiveErrorHandling, there are better options when we go
> to MSMQ 4.0-->
>
> <netMsmqBinding>
> <binding name="NoMSMQSecurity" exactlyOnce="true"
> receiveErrorHandling="Fault" maxRetryCycles="5" retryCycleDelay
> ="00:00:30" sendTimeout="00:10:00">
> <security mode = "None">
> </security>
> </binding>
> </netMsmqBinding>
> </bindings>
>
> <behaviors>
> <serviceBehaviors>
> <behavior name="DefaultThrottlingBehavior">
> <serviceThrottling maxConcurrentCalls="20"
> maxConcurrentSessions="25"
> maxConcurrentInstances="25" />
>
> </behavior>
> </serviceBehaviors>
> </behaviors>
>
>
>
> The maxConcurrentCalls is NOT trivial to implment in a purely MSMQ
> fashion. MS did the plumbing work much more nicely than you can roll you
> own IMHO.
>
>
> .........
> MSQM (no wcf) tidbits:
>
> You can check this msmq article out:
> http://msmvps.com/blogs/manoj/archive/2005/10/16/...
>
> Or
> http://microsoft.apress.com:80/asptodayarchive/73445/a-managed-multithreaded-msmq-engine-running-as-a-windo...
>
>
>
>
>
>
>
> "David" <david.colliver.NEWS@revilloc.REMOVETHIS.com> wrote in message
> news:%23J4y3gZPJHA.4496@TK2MSFTNGP04.phx.gbl...
>> Hi all,
>>
>> In my earlier post about Application design, I was informed about the
>> MSMQ.
>>
>> Having never used MSMQ before, I have now done quite a bit of research.
>> In some respects, it seems almost perfect for what I need, but in others,
>> I am not so sure.
>>
>> For example, for the reading of messages, most of the examples show just
>> a few seconds before retrieving messages with a timespan in the order of
>> 2 or 3 seconds. Is this normal? The reason I ask is that the system I
>> need to develop can get VERY HEAVILY loaded at times and I think two or
>> three seconds is probably way too much time to waste. However, what I
>> don't want to do is to overload the system with checking for messages
>> when there are none.
>>
>> What would be a good compromise. I need a queueing system but I also need
>> near instant response when I can. (Near instant for example is to have
>> returned a response whilst still processing a thread, so in the order of
>> milliseconds)
>>
>> Something else the examples fail to do is to show which machine the
>> messages should be stored on. I am assuming local and that other machines
>> that need to act on the messages call the message from the local machine.
>> Am I assuming correctly?
>>
>>
>>
>> The main use of the system I have to develop is an image interpretation
>> engine. Basically, the engine can interpret about 3000 parts of an image
>> per second. Sometimes there will be little for it to do, sometimes there
>> could be many thousand parts coming in all at once.
>>
>> To scale this scenario, I would expect that we would just add processing
>> servers with the image interpreting engine installed.
>>
>> The end application (that I am building) requires where possible that
>> there is a near instant response. We will be putting in logic to try and
>> help with the workload... we need an instant queue which will work on
>> certain parts of the image to validate the mandatory requirements, and a
>> near-instant queue that will handle the parts of the image that doesn't
>> require the immediate work.
>>
>> Is MSMQ what I need? If not, then what else could I use?
>>
>> (I don't want to get bogged down with threads, though I think threads
>> will have a major role to play in this application. (When I say Bogged
>> Down, I mean that the machine is likely to suffer when there is a LOT of
>> traffic coming in.))
>>
>> --
>> Best regards,
>> Dave Colliver.
>> http://www.Ashfiel...
>> ~~
>> http://www.FOCUSP... - Local franchises available
>>
>
>


Michael D. Ober

11/4/2008 1:09:00 PM

0

"David" <david.colliver.NEWS@revilloc.REMOVETHIS.com> wrote in message
news:%231v5IvlPJHA.496@TK2MSFTNGP05.phx.gbl...
> Is the WCF part of .NET 3 rather than 2? I am currently working with .NET
> 2.0
>
> --
> Best regards,
> Dave Colliver.
> http://www.Ashfiel...
> ~~
> http://www.FOCUSP... - Local franchises available
>
>
> "sloan" <sloan@ipass.net> wrote in message
> news:OemJpmfPJHA.4136@TK2MSFTNGP02.phx.gbl...
>>
>> I would look into the more abstract WCF "IsOneWay" calls.
>> (which is a piggyback onto msmq).
>>
>> Writing the polling code for MSMQ is a painful exercise. You have to
>> keep in mind that the DotNet System.Messaging stuff is just wrappers for
>> COM based msmq items.
>> (Don't believe, check the errorhandling of msmq)
>>
>> WCF will help you avoid ALOT of plumbing code.
>>
>>
>> I don't know if WCF is best, but I wanted to at least introduce you to
>> it:
>> http://sholliday.spaces.live.co...!A68482B9628A842A!158.entry
>> A full downloadable example is there. CHeck the IsOneWay example:
>>
>>
>> Here is some WCF MSMQ Binding and Behavior Hints
>>
>> <bindings>
>>
>>
>> <!--See
>> http://msdn.microsoft.com/en-us/library/system.servicemodel.receiveerrorhan...
>> concerning the receiveErrorHandling, there are better options when we go
>> to MSMQ 4.0-->
>>
>> <netMsmqBinding>
>> <binding name="NoMSMQSecurity" exactlyOnce="true"
>> receiveErrorHandling="Fault" maxRetryCycles="5" retryCycleDelay
>> ="00:00:30" sendTimeout="00:10:00">
>> <security mode = "None">
>> </security>
>> </binding>
>> </netMsmqBinding>
>> </bindings>
>>
>> <behaviors>
>> <serviceBehaviors>
>> <behavior name="DefaultThrottlingBehavior">
>> <serviceThrottling maxConcurrentCalls="20"
>> maxConcurrentSessions="25"
>> maxConcurrentInstances="25" />
>>
>> </behavior>
>> </serviceBehaviors>
>> </behaviors>
>>
>>
>>
>> The maxConcurrentCalls is NOT trivial to implment in a purely MSMQ
>> fashion. MS did the plumbing work much more nicely than you can roll you
>> own IMHO.
>>
>>
>> .........
>> MSQM (no wcf) tidbits:
>>
>> You can check this msmq article out:
>> http://msmvps.com/blogs/manoj/archive/2005/10/16/...
>>
>> Or
>> http://microsoft.apress.com:80/asptodayarchive/73445/a-managed-multithreaded-msmq-engine-running-as-a-windo...
>>
>>
>>
>>
>>
>>
>>
>> "David" <david.colliver.NEWS@revilloc.REMOVETHIS.com> wrote in message
>> news:%23J4y3gZPJHA.4496@TK2MSFTNGP04.phx.gbl...
>>> Hi all,
>>>
>>> In my earlier post about Application design, I was informed about the
>>> MSMQ.
>>>
>>> Having never used MSMQ before, I have now done quite a bit of research.
>>> In some respects, it seems almost perfect for what I need, but in
>>> others, I am not so sure.
>>>
>>> For example, for the reading of messages, most of the examples show just
>>> a few seconds before retrieving messages with a timespan in the order of
>>> 2 or 3 seconds. Is this normal? The reason I ask is that the system I
>>> need to develop can get VERY HEAVILY loaded at times and I think two or
>>> three seconds is probably way too much time to waste. However, what I
>>> don't want to do is to overload the system with checking for messages
>>> when there are none.
>>>
>>> What would be a good compromise. I need a queueing system but I also
>>> need near instant response when I can. (Near instant for example is to
>>> have returned a response whilst still processing a thread, so in the
>>> order of milliseconds)
>>>
>>> Something else the examples fail to do is to show which machine the
>>> messages should be stored on. I am assuming local and that other
>>> machines that need to act on the messages call the message from the
>>> local machine. Am I assuming correctly?
>>>
>>>
>>>
>>> The main use of the system I have to develop is an image interpretation
>>> engine. Basically, the engine can interpret about 3000 parts of an image
>>> per second. Sometimes there will be little for it to do, sometimes there
>>> could be many thousand parts coming in all at once.
>>>
>>> To scale this scenario, I would expect that we would just add processing
>>> servers with the image interpreting engine installed.
>>>
>>> The end application (that I am building) requires where possible that
>>> there is a near instant response. We will be putting in logic to try and
>>> help with the workload... we need an instant queue which will work on
>>> certain parts of the image to validate the mandatory requirements, and a
>>> near-instant queue that will handle the parts of the image that doesn't
>>> require the immediate work.
>>>
>>> Is MSMQ what I need? If not, then what else could I use?
>>>
>>> (I don't want to get bogged down with threads, though I think threads
>>> will have a major role to play in this application. (When I say Bogged
>>> Down, I mean that the machine is likely to suffer when there is a LOT of
>>> traffic coming in.))
>>>
>>> --
>>> Best regards,
>>> Dave Colliver.
>>> http://www.Ashfiel...
>>> ~~
>>> http://www.FOCUSP... - Local franchises available
>>>
>>

In Framework 2.0, you can configure your MSMQ reader using asynchronous
events to avoid polling.

Mike.


sloan

11/5/2008 6:55:00 PM

0

3.0 is an "addon" to 2.0, not a replacement.

Here are some hints:



------------------------

Microsoft .NET Framework 3.0 Redistributable Package
http://www.microsoft.com/downloads/details.aspx?FamilyID=10cc340b-f857-4a14-83f5-25634c3bf043&Disp...

(Please note that 3.0 is add-on components to 2.0, and not a replacement for
2.0)
------------------------
Visual Studio 2005 Service Pack 1 (SP1)
http://msdn2.microsoft.com/en-us/vstudio/bb2...
------------------------
------------------------
Visual Studio 2005 extensions for .NET Framework 3.0 (WCF & WPF), November
2006 CTP
http://www.microsoft.com/downloads/details.aspx?FamilyID=f54f5537-cc86-4bf5-ae44-f5a1e805680d&Disp...
------------------------
Visual Studio 2005 extensions for .NET Framework 3.0 (Windows Workflow
Foundation)
http://www.microsoft.com/downloads/details.aspx?FamilyId=5D61409E-1FA3-48CF-8023-E8F38E709BA6&disp...
------------------------
Windows Update
http://www.update.microsoft.com/windowsupdate/v6/default.asp...






"David" <david.colliver.NEWS@revilloc.REMOVETHIS.com> wrote in message
news:%231v5IvlPJHA.496@TK2MSFTNGP05.phx.gbl...
> Is the WCF part of .NET 3 rather than 2? I am currently working with .NET
> 2.0
>
> --
> Best regards,
> Dave Colliver.
> http://www.Ashfiel...
> ~~
> http://www.FOCUSP... - Local franchises available
>
>
> "sloan" <sloan@ipass.net> wrote in message
> news:OemJpmfPJHA.4136@TK2MSFTNGP02.phx.gbl...
>>
>> I would look into the more abstract WCF "IsOneWay" calls.
>> (which is a piggyback onto msmq).
>>
>> Writing the polling code for MSMQ is a painful exercise. You have to
>> keep in mind that the DotNet System.Messaging stuff is just wrappers for
>> COM based msmq items.
>> (Don't believe, check the errorhandling of msmq)
>>
>> WCF will help you avoid ALOT of plumbing code.
>>
>>
>> I don't know if WCF is best, but I wanted to at least introduce you to
>> it:
>> http://sholliday.spaces.live.co...!A68482B9628A842A!158.entry
>> A full downloadable example is there. CHeck the IsOneWay example:
>>
>>
>> Here is some WCF MSMQ Binding and Behavior Hints
>>
>> <bindings>
>>
>>
>> <!--See
>> http://msdn.microsoft.com/en-us/library/system.servicemodel.receiveerrorhan...
>> concerning the receiveErrorHandling, there are better options when we go
>> to MSMQ 4.0-->
>>
>> <netMsmqBinding>
>> <binding name="NoMSMQSecurity" exactlyOnce="true"
>> receiveErrorHandling="Fault" maxRetryCycles="5" retryCycleDelay
>> ="00:00:30" sendTimeout="00:10:00">
>> <security mode = "None">
>> </security>
>> </binding>
>> </netMsmqBinding>
>> </bindings>
>>
>> <behaviors>
>> <serviceBehaviors>
>> <behavior name="DefaultThrottlingBehavior">
>> <serviceThrottling maxConcurrentCalls="20"
>> maxConcurrentSessions="25"
>> maxConcurrentInstances="25" />
>>
>> </behavior>
>> </serviceBehaviors>
>> </behaviors>
>>
>>
>>
>> The maxConcurrentCalls is NOT trivial to implment in a purely MSMQ
>> fashion. MS did the plumbing work much more nicely than you can roll you
>> own IMHO.
>>
>>
>> .........
>> MSQM (no wcf) tidbits:
>>
>> You can check this msmq article out:
>> http://msmvps.com/blogs/manoj/archive/2005/10/16/...
>>
>> Or
>> http://microsoft.apress.com:80/asptodayarchive/73445/a-managed-multithreaded-msmq-engine-running-as-a-windo...
>>
>>
>>
>>
>>
>>
>>
>> "David" <david.colliver.NEWS@revilloc.REMOVETHIS.com> wrote in message
>> news:%23J4y3gZPJHA.4496@TK2MSFTNGP04.phx.gbl...
>>> Hi all,
>>>
>>> In my earlier post about Application design, I was informed about the
>>> MSMQ.
>>>
>>> Having never used MSMQ before, I have now done quite a bit of research.
>>> In some respects, it seems almost perfect for what I need, but in
>>> others, I am not so sure.
>>>
>>> For example, for the reading of messages, most of the examples show just
>>> a few seconds before retrieving messages with a timespan in the order of
>>> 2 or 3 seconds. Is this normal? The reason I ask is that the system I
>>> need to develop can get VERY HEAVILY loaded at times and I think two or
>>> three seconds is probably way too much time to waste. However, what I
>>> don't want to do is to overload the system with checking for messages
>>> when there are none.
>>>
>>> What would be a good compromise. I need a queueing system but I also
>>> need near instant response when I can. (Near instant for example is to
>>> have returned a response whilst still processing a thread, so in the
>>> order of milliseconds)
>>>
>>> Something else the examples fail to do is to show which machine the
>>> messages should be stored on. I am assuming local and that other
>>> machines that need to act on the messages call the message from the
>>> local machine. Am I assuming correctly?
>>>
>>>
>>>
>>> The main use of the system I have to develop is an image interpretation
>>> engine. Basically, the engine can interpret about 3000 parts of an image
>>> per second. Sometimes there will be little for it to do, sometimes there
>>> could be many thousand parts coming in all at once.
>>>
>>> To scale this scenario, I would expect that we would just add processing
>>> servers with the image interpreting engine installed.
>>>
>>> The end application (that I am building) requires where possible that
>>> there is a near instant response. We will be putting in logic to try and
>>> help with the workload... we need an instant queue which will work on
>>> certain parts of the image to validate the mandatory requirements, and a
>>> near-instant queue that will handle the parts of the image that doesn't
>>> require the immediate work.
>>>
>>> Is MSMQ what I need? If not, then what else could I use?
>>>
>>> (I don't want to get bogged down with threads, though I think threads
>>> will have a major role to play in this application. (When I say Bogged
>>> Down, I mean that the machine is likely to suffer when there is a LOT of
>>> traffic coming in.))
>>>
>>> --
>>> Best regards,
>>> Dave Colliver.
>>> http://www.Ashfiel...
>>> ~~
>>> http://www.FOCUSP... - Local franchises available
>>>
>>
>>
>
>