<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>Distributed Publish/Subscribe (Pub/Sub) Event System</title><link>http://pubsub.codeplex.com/project/feeds/rss</link><description>The Web Solutions Platform &amp;#40;WSP&amp;#41; event system is a general-purpose distributed publish&amp;#47;subscribe event system designed for high performance and low latency. Publish&amp;#47;subscribe is a common communication pattern though there are many variations to solve different scenario requirements. The event system provides the developer with a class library paradigm for publishing and subscribing to events. The events are developer-defined .Net classes which sub-class from the base event. This makes the system both easy to use and very extensible.      With one line in the config file, events can be persisted to a log file in a form ready to BCP into SQL.      The latest performance results that I have achieved using a 50 property .Net object &amp;#40;event object&amp;#41; on my development machine are&amp;#58;   &amp;#42; 40,000&amp;#43; events &amp;#47; second to publish &amp;#40;includes serialization&amp;#41; with no listener   &amp;#42; 23,000&amp;#43; events &amp;#47; second to publish &amp;#40;includes serialization&amp;#41; while persisting at 8,000&amp;#43; events &amp;#47; second &amp;#40;includes deserialization and serialization&amp;#41;   &amp;#42; 20,000&amp;#43; events &amp;#47; second to publish &amp;#40;includes serialization&amp;#41; and sending across machines at 4,000&amp;#43; events &amp;#47; second with latency &amp;#60;1ms      The event system is currently running on all the www.microsoft.com production servers. A real-time monitoring application uses the event system for communications and monitors 100&amp;#37; of the IIS requests. Within 3 seconds, all http requests across all servers and all datacenters are aggregated, displayed on a console, and able to instigate alerts.         Tags&amp;#58; architecture, BizTalk, distributed systems, ESB, event systems, eventing, Events, messaging, metrics, monitoring, networking, pub&amp;#47;sub, publish&amp;#47;subscribe, remoting, routing, Web Services, webservices</description><item><title>New Post: Error 1001. Source WspEventRouter already exists on the local computer</title><link>http://pubsub.codeplex.com/discussions/441332</link><description>&lt;div style="line-height: normal;"&gt;may need to make sure the service is removed. &lt;br /&gt;
sc delete wspeventrouter&lt;br /&gt;
&lt;/div&gt;</description><author>jws</author><pubDate>Tue, 11 Jun 2013 16:19:02 GMT</pubDate><guid isPermaLink="false">New Post: Error 1001. Source WspEventRouter already exists on the local computer 20130611041902P</guid></item><item><title>New Post: Custom counters file view is out of memory.</title><link>http://pubsub.codeplex.com/discussions/446584</link><description>&lt;div style="line-height: normal;"&gt;Thanks, keithh&lt;br /&gt;
&lt;/div&gt;</description><author>EnchantedBusiness</author><pubDate>Tue, 11 Jun 2013 05:36:19 GMT</pubDate><guid isPermaLink="false">New Post: Custom counters file view is out of memory. 20130611053619A</guid></item><item><title>New Post: Custom counters file view is out of memory.</title><link>http://pubsub.codeplex.com/discussions/446584</link><description>&lt;div style="line-height: normal;"&gt;It looks like you're running out of memory for perf counters. There is a registry setting for how much memory to allocate for perf counters. You'll need to do a search the web to find the name of the reg key and increase it.&lt;br /&gt;
&lt;/div&gt;</description><author>keithh</author><pubDate>Mon, 10 Jun 2013 16:32:56 GMT</pubDate><guid isPermaLink="false">New Post: Custom counters file view is out of memory. 20130610043256P</guid></item><item><title>New Post: Custom counters file view is out of memory.</title><link>http://pubsub.codeplex.com/discussions/446584</link><description>&lt;div style="line-height: normal;"&gt;Hi, Keith,&lt;br /&gt;
&lt;br /&gt;
we run into blow exceptions as more and more users connect to server, do you have any idea on this?  had you met this issue?&lt;br /&gt;
&lt;h1&gt;Message] CommunicationHander, AcceptConnection: Successfully create new out- communication thread, ClientRouterName: APACCNSHZJW0923, EndPointInfo: Remote: 10.114.191.70:1783, Local: 150.110.203.67:1300&lt;/h1&gt;
[Information] 2013-06-10 11:10:48 @ .&lt;br /&gt;
[Message] Exception: Custom counters file view is out of memory.&lt;br /&gt;
Source: System&lt;br /&gt;
StackTrace:    at System.Diagnostics.SharedPerformanceCounter.CalculateMemory(Int32 oldOffset, Int32 totalSize, Int32&amp;amp; alignmentAdjustment)&lt;br /&gt;
   at System.Diagnostics.SharedPerformanceCounter.CreateInstance(CategoryEntry* categoryPointer, Int32 instanceNameHashCode, String instanceName, PerformanceCounterInstanceLifetime lifetime)&lt;br /&gt;
   at System.Diagnostics.SharedPerformanceCounter.GetCounter(String counterName, String instanceName, Boolean enableReuse, PerformanceCounterInstanceLifetime lifetime)&lt;br /&gt;
   at System.Diagnostics.SharedPerformanceCounter..ctor(String catName, String counterName, String instanceName, PerformanceCounterInstanceLifetime lifetime)&lt;br /&gt;
   at System.Diagnostics.PerformanceCounter.InitializeImpl()&lt;br /&gt;
   at System.Diagnostics.PerformanceCounter.set_RawValue(Int64 value)&lt;br /&gt;
   at Microsoft.WebSolutionsPlatform.Event.SynchronizationQueue`1..ctor(PerformanceCounter performanceCounter)&lt;br /&gt;
   at &lt;br /&gt;
&lt;/div&gt;</description><author>EnchantedBusiness</author><pubDate>Mon, 10 Jun 2013 15:43:33 GMT</pubDate><guid isPermaLink="false">New Post: Custom counters file view is out of memory. 20130610034333P</guid></item><item><title>New Post: VIP with the load balancer </title><link>http://pubsub.codeplex.com/discussions/445091</link><description>&lt;div style="line-height: normal;"&gt;Keithh,&lt;br /&gt;
&lt;br /&gt;
can you show me where the code for the logic you mentioned, &amp;quot;&lt;strong&gt;There is no timeout for sockets when you connect directly to the server&lt;/strong&gt;&amp;quot;? I want to learn the details, we not just use WSP, we also want to learn the great thing from it.&lt;br /&gt;
&lt;br /&gt;
How do you configure for all the routers in your datacenter for the load balancing? You had mentioned in other thread, you are aslo using VIP to achieve load balancing, do you just set numconnections =1 or just set -1 as the timeout?&lt;br /&gt;
&lt;br /&gt;
Thanks a lots&lt;br /&gt;
&lt;/div&gt;</description><author>EnchantedBusiness</author><pubDate>Wed, 29 May 2013 13:26:44 GMT</pubDate><guid isPermaLink="false">New Post: VIP with the load balancer  20130529012644P</guid></item><item><title>New Post: VIP with the load balancer </title><link>http://pubsub.codeplex.com/discussions/445091</link><description>&lt;div style="line-height: normal;"&gt;There is no timeout for sockets when you connect directly to the server. You might be able to configure your load balancer to disable the timeout for the port you're using. I don't know anything about your load balancer though.&lt;br /&gt;
&lt;/div&gt;</description><author>keithh</author><pubDate>Wed, 29 May 2013 12:49:52 GMT</pubDate><guid isPermaLink="false">New Post: VIP with the load balancer  20130529124952P</guid></item><item><title>New Post: VIP with the load balancer </title><link>http://pubsub.codeplex.com/discussions/445091</link><description>&lt;div style="line-height: normal;"&gt;Yes, 5 mins is the value configured for the socket timeout.&lt;br /&gt;
My question why there is no such socket timeout observed when it connects to server router directly. Is that because the response from server was dropped since VIP used, no response received in 5 mins?&lt;br /&gt;
&lt;br /&gt;
thanks&lt;br /&gt;
&lt;/div&gt;</description><author>EnchantedBusiness</author><pubDate>Wed, 29 May 2013 06:43:18 GMT</pubDate><guid isPermaLink="false">New Post: VIP with the load balancer  20130529064318A</guid></item><item><title>New Post: VIP with the load balancer </title><link>http://pubsub.codeplex.com/discussions/445091</link><description>&lt;div style="line-height: normal;"&gt;When you connect via a load balancer, the physical connection is from the client to the load balancer. There is then a separate connection from the load balancer to the server. You should check the settings on your load balancer to see what would affect a long running persisted connection. It sounds like there might be a timeout with the connection being closed.&lt;br /&gt;
&lt;/div&gt;</description><author>keithh</author><pubDate>Wed, 29 May 2013 05:36:49 GMT</pubDate><guid isPermaLink="false">New Post: VIP with the load balancer  20130529053649A</guid></item><item><title>New Post: VIP with the load balancer </title><link>http://pubsub.codeplex.com/discussions/445091</link><description>&lt;div style="line-height: normal;"&gt;Keithh,&lt;br /&gt;
&lt;br /&gt;
Got your points.&lt;br /&gt;
&lt;br /&gt;
Learning from the codes, I noticed: when we configure the client to use VIP to connect its parent, to start the client router, we noticed ReceiveCallback is invoked every 5 mins, and we got connectionr reset as the socket error, then the thread is stopped, and the client try to connect ot its parent again. This is not observed when client connects to server router directly, do you have any idea on this?&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;private static void ReceiveCallback(IAsyncResult ar)
       bytesRead = socket.EndReceive(ar, out socketError);

                            if (socketError != SocketError.Success)
                            {
                                //EventLog.WriteEntry(&amp;quot;WspEventRouter&amp;quot;, &amp;quot;Receive failed with bad return code: &amp;quot; + socketError.ToString(), EventLogEntryType.Warning);

                                state.receiveDone.Set();
                                return;
                            }&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;</description><author>EnchantedBusiness</author><pubDate>Wed, 29 May 2013 05:28:41 GMT</pubDate><guid isPermaLink="false">New Post: VIP with the load balancer  20130529052841A</guid></item><item><title>New Post: VIP with the load balancer </title><link>http://pubsub.codeplex.com/discussions/445091</link><description>&lt;div style="line-height: normal;"&gt;You don't need to migrate to 3.0 to solve this. In your config file in the clientRoleInfo section, set  numConnections=&amp;quot;1&amp;quot; for the parent router definition line. This should solve your problem.&lt;br /&gt;
&lt;/div&gt;</description><author>keithh</author><pubDate>Wed, 29 May 2013 04:15:16 GMT</pubDate><guid isPermaLink="false">New Post: VIP with the load balancer  20130529041516A</guid></item><item><title>New Post: VIP with the load balancer </title><link>http://pubsub.codeplex.com/discussions/445091</link><description>&lt;div style="line-height: normal;"&gt;Keithh,&lt;br /&gt;
&lt;br /&gt;
If we migrate to use WSP 3.0, can we get the this issue fixed?&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
&lt;/div&gt;</description><author>EnchantedBusiness</author><pubDate>Wed, 29 May 2013 01:15:00 GMT</pubDate><guid isPermaLink="false">New Post: VIP with the load balancer  20130529011500A</guid></item><item><title>New Post: VIP with the load balancer </title><link>http://pubsub.codeplex.com/discussions/445091</link><description>&lt;div style="line-height: normal;"&gt;If you have a VIP which the load balancer can resolve to multiple servers then using more than one connection will cause issues.&lt;br /&gt;
&lt;/div&gt;</description><author>keithh</author><pubDate>Tue, 28 May 2013 16:20:21 GMT</pubDate><guid isPermaLink="false">New Post: VIP with the load balancer  20130528042021P</guid></item><item><title>New Post: VIP with the load balancer </title><link>http://pubsub.codeplex.com/discussions/445091</link><description>&lt;div style="line-height: normal;"&gt;Keithh,&lt;br /&gt;
Thanks for the quick answer.&lt;br /&gt;
Actually, we set the numConnections =2. do you think it will bring the chance that the client may connect to both server?&lt;br /&gt;
&lt;h1&gt;&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;                          for (i = 0; i + parentConnections.Count &amp;lt; parentRoute.NumConnections; i++)
                            {
                                if (string.IsNullOrEmpty(parentRoute.RouterName) == true)
                                {
                                    continue;
                                }

                                Socket parentSocket = OpenParentSocket();
&lt;/code&gt;&lt;/pre&gt;

Is this code causeS the client connects to differenet server, if we have two client connection?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
&lt;/div&gt;</description><author>EnchantedBusiness</author><pubDate>Tue, 28 May 2013 13:23:52 GMT</pubDate><guid isPermaLink="false">New Post: VIP with the load balancer  20130528012352P</guid></item><item><title>New Post: VIP with the load balancer </title><link>http://pubsub.codeplex.com/discussions/445091</link><description>&lt;div style="line-height: normal;"&gt;Be sure to specify in the config file for the client that numConnections = 1. Then there is no possibility of connecting to both servers.&lt;br /&gt;
&lt;/div&gt;</description><author>keithh</author><pubDate>Tue, 28 May 2013 12:57:50 GMT</pubDate><guid isPermaLink="false">New Post: VIP with the load balancer  20130528125750P</guid></item><item><title>New Post: VIP with the load balancer </title><link>http://pubsub.codeplex.com/discussions/445091</link><description>&lt;div style="line-height: normal;"&gt;Keithh,&lt;br /&gt;
&lt;br /&gt;
We are using 2.0. &lt;br /&gt;
&lt;br /&gt;
We had blocked server to forward the subscription event to client, from the surface, we think it is unnecessary since we just publish the message from server to client. We suspected the issue was introduced by that. Client cannnot receive anything from server for 5 mins, the socket was timeout, and the client were always trying to connect to server to establish the connection again, that bring the chance that client established the connections with both PROD1/PROD2.&lt;br /&gt;
&lt;br /&gt;
how do you think about this?&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
&lt;/div&gt;</description><author>EnchantedBusiness</author><pubDate>Tue, 28 May 2013 05:23:27 GMT</pubDate><guid isPermaLink="false">New Post: VIP with the load balancer  20130528052327A</guid></item><item><title>New Post: VIP with the load balancer </title><link>http://pubsub.codeplex.com/discussions/445091</link><description>&lt;div style="line-height: normal;"&gt;I don't fully follow your issue. I thought you were now using Wsp version 3.0? If so, then there is not longer a &amp;quot;primary&amp;quot; or &amp;quot;secondary&amp;quot;. You would set up your two servers to both be hubs and in the same group. Are you running your Prod1 and Prod2 in active/active mode or active/passive mode?&lt;br /&gt;
&lt;br /&gt;
It doesn't sound right that the client connected with both servers. This should never happen. When you say the client is getting the same event twice, did you look at the two events and verify they have the same originating router name? I would think it's more likely that both Prod1 and Prod2 are publishing events which look the same.&lt;br /&gt;
&lt;/div&gt;</description><author>keithh</author><pubDate>Tue, 28 May 2013 04:36:06 GMT</pubDate><guid isPermaLink="false">New Post: VIP with the load balancer  20130528043606A</guid></item><item><title>New Post: VIP with the load balancer </title><link>http://pubsub.codeplex.com/discussions/445091</link><description>&lt;div style="line-height: normal;"&gt;Keithh,&lt;br /&gt;
&lt;br /&gt;
In our Production evniornmet, we had two boxes, says Prod1 and Prod2, and we had setup VIP between them for load-balancing. we had lots of client using the VIP to connect one of them, on the behind, we configured PROD1 as Origin, and Prod2 as primary, connecting to PROD1 as the parent. We had external service to call WCF service hosted on both boxes to publish the WSP message to all the clients。We noticed some times, the message is published twice, respectively by Prod1 , Prod2. Had you met this kind of issue before? please advise what i can do to remove the duplicated message?&lt;br /&gt;
&lt;br /&gt;
As i know about the WSP, seems the client had established the connections with DR and PR both, since the message which was published on box, wil be replicated to another box, and they both will forward the same message to client, that's why the duplicated messages show up on the client side.&lt;br /&gt;
&lt;br /&gt;
I don't know why the client router try to connect another boxes when it had establisheh the connection with one of them. Learning from codes, is it because the connectioon broken? (Socket.connected = false?).&lt;br /&gt;
&lt;br /&gt;
please advise, thanks in advance.&lt;br /&gt;
&lt;/div&gt;</description><author>EnchantedBusiness</author><pubDate>Mon, 27 May 2013 13:22:38 GMT</pubDate><guid isPermaLink="false">New Post: VIP with the load balancer  20130527012238P</guid></item><item><title>New Post: Filtered Subscriptions</title><link>http://pubsub.codeplex.com/discussions/439872</link><description>&lt;div style="line-height: normal;"&gt;**keithh wrote:**&lt;br /&gt;
&lt;blockquote&gt;
I am just now working on adding filtered subscriptions: guid plus a lambda expression. I plan on only passing to the lambda expression the WspEvent object. So really all the expression can access will be the headers. Does this sound sufficient?&lt;br /&gt;
&lt;/blockquote&gt;
To me, lambda expression is great things, &lt;br /&gt;
thanks for the refinement&lt;br /&gt;
&lt;/div&gt;</description><author>EnchantedBusiness</author><pubDate>Mon, 27 May 2013 13:04:16 GMT</pubDate><guid isPermaLink="false">New Post: Filtered Subscriptions 20130527010416P</guid></item><item><title>New Post: "BadImageFormatException" when installing the x86 Setups</title><link>http://pubsub.codeplex.com/discussions/439847</link><description>&lt;div style="line-height: normal;"&gt;Like I said previously, I have never seen your behavior nor have I ever seen TIME_WAIT for any tcp connections. I think this is something you're going to have to debug. The code on codeplex should build fine for you now. Something appears to be closing the connections outside of Wsp. It could be some network router/load balancer, a security application, or something similar.&lt;br /&gt;
&lt;/div&gt;</description><author>keithh</author><pubDate>Mon, 29 Apr 2013 12:57:24 GMT</pubDate><guid isPermaLink="false">New Post: "BadImageFormatException" when installing the x86 Setups 20130429125724P</guid></item><item><title>New Post: "BadImageFormatException" when installing the x86 Setups</title><link>http://pubsub.codeplex.com/discussions/439847</link><description>&lt;div style="line-height: normal;"&gt;Hei Keihh,&lt;br /&gt;
&lt;br /&gt;
First of all, thank you for looking into this. Your support is as always, fantastic.&lt;br /&gt;
&lt;br /&gt;
As for the matter in hand, the problem continues. Restarted the PC and this is what I get. Connection establish, followed by some TIME_WAIT, followed by blank.&lt;br /&gt;
&lt;br /&gt;
On the bright side, I just got confirmation that they are going to upgrade the 32-bit Servers to 64-bit soon. So maybe this wont be a problem by the time I have this wrapped up.&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;netstat -ano |findstr 1300
  TCP    172.16.20.124:1031     172.16.20.32:1300      ESTABLISHED     3512

netstat -ano |findstr 1300
  TCP    172.16.20.124:1031     172.16.20.32:1300      TIME_WAIT       0

netstat -ano |findstr 1300
  TCP    172.16.20.124:1031     172.16.20.32:1300      TIME_WAIT       0
  TCP    172.16.20.124:1032     172.16.20.32:1300      TIME_WAIT       0
  TCP    172.16.20.124:1033     172.16.20.32:1300      TIME_WAIT       0

netstat -ano |findstr 1300
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;</description><author>Wheels</author><pubDate>Mon, 29 Apr 2013 08:58:18 GMT</pubDate><guid isPermaLink="false">New Post: "BadImageFormatException" when installing the x86 Setups 20130429085818A</guid></item></channel></rss>