Getting Started Questions

Jul 4, 2011 at 11:21 PM

I've started to explore this in detail but have a few starter questions.

1. Whats the difference between the Origin Role and the Parent Role. I assume Parent is always the orign for a child node?

2. I noticed with the "WspEventListenTest.exe" and WspEventServiceTest.exe a few strange items. Would like to get others feedback:
 a) I shutdown the wsprouter service but I am still able to publish and subscribe with the windows service shutdown.
 b) There does not seem to be a way to use this in a standard "Queue" mode meaning when I start up multiple  WspEventListenTest.exe processes both instances receive the message rather just having a single instance take the message off the queue. (Topic versus Queue)
 c) The subscriber Call back is invoked several times during startup even when no publish applications are running.

3. Are there any predefined .confg files out there that set the system up in a simple single parent, single child mode with different queues defined; such as Queue 1, Queue 2 etc.

4. Whats the functional role of the "eventpersistence"? is it to log/audit or are these reliable persisted messages.

5. For a simple application such as, publish a set of messages on a queue and have multiple subscriber pick off messages, is this framework overly heavy for this, could base MSMQ solve this simple application - looking for general thoughts.   


Jul 5, 2011 at 1:08 AM

1. In a large implementation, some server needs to be the top-most parent and that is the origin. So for multiple data centers, each DC has a primary server whose parent is the origin. If the DC is large, there may be many secondary servers whose parent is the primary for that DC. The client servers connect to the secondary servers as their parent. There is no "Parent Role" but each server has a parent except for the origin.


a. When the wspeventrouter service is stopped, the other processes on that server that had a handle to the shared memory keep it open. Those processes are able to still pass events until the shared memory buffer is filled. At that time, the publishers will begin getting a buffer full error. When the wspeventrouter is restarted, it will pick up all the events that were published while it was stopped and things continue as normal.

b. All subscribers will get an event when it is published. If you only want one to get it then you'd have to manage that yourself.

c. It could be the subscriber is getting older events from the shared memory buffer that have not been over-written.

3. You'll want a config with an origin and client more defined. The origin def will have no parent while the client def will have the parent be the origin. You want autoconfig to be true. Put this on the origin server and then when you install on a client server, you specify role as client and bootstrap url points to the origin. I don't know what you're referring to with Queue 1 and Queue 2, there is no such concept.

4. Event persistence is a reliable way to write out any event type to log files in JSON format. The wspeventrouter keeps writing out new log files and it is your responsibility to clean up old files.

5. MSMQ is orders of magnitude more overhead than wsp and much more difficult to manage.