Pull Subscription skalieren
Mit Rooms Release 4.7.2112 ist eine Skalierung des PullSubscription Services möglich.
Hinzufügen von zusätzlichen Services (Bsp: 4 Service worker):
<AddInstance Key="pullSubscriberServiceSession" PluginType="Garaio.Products.Rooms.Core.WindowsServices.BaseServiceSession,Garaio.Products.Rooms.Core" PluggedType="Garaio.Products.Rooms.Core.WindowsServices.PullSubscriberService.PullSubscriberServiceSession,Garaio.Products.Rooms.Core"/>
<AddInstance Key="pullSubscriberServiceSession1" PluginType="Garaio.Products.Rooms.Core.WindowsServices.BaseServiceSession,Garaio.Products.Rooms.Core" PluggedType="Garaio.Products.Rooms.Core.WindowsServices.PullSubscriberService.PullSubscriberServiceSession,Garaio.Products.Rooms.Core"/>
<AddInstance Key="pullSubscriberServiceSession2" PluginType="Garaio.Products.Rooms.Core.WindowsServices.BaseServiceSession,Garaio.Products.Rooms.Core" PluggedType="Garaio.Products.Rooms.Core.WindowsServices.PullSubscriberService.PullSubscriberServiceSession,Garaio.Products.Rooms.Core"/>
<AddInstance Key="pullSubscriberServiceSession3" PluginType="Garaio.Products.Rooms.Core.WindowsServices.BaseServiceSession,Garaio.Products.Rooms.Core" PluggedType="Garaio.Products.Rooms.Core.WindowsServices.PullSubscriberService.PullSubscriberServiceSession,Garaio.Products.Rooms.Core"/>
Nun können Personen und Ressourcen, welche mit Exchange Synchronisiert werden in sogenannte Priority Groups gesetzt werden. Welche dann Einfluss darauf haben, mit welcher Service Session die Pull-Synchronisation für diese Person/Ressource durchführt. (Im Beispiel 0-3)
Die Priority Group kann folgendermassen gesetzt werden:
Einstellungen –> Personen –> Edit
Dieselbe Einstellung kann bei den Ressourcen definiert werden.
Für jeden Service (im Beispiel 0-3) können eigene Konfigurationen definiert werden, siehe Pull Subscription konfigurieren.
Beispiel:
<!--Intervall to wait after task is complete-->
<add key="IntervallTaskInSeconds" value="0" />
<!--Number of failed GetEvent calls at which point sync is disabled for this person/ressource-->
<add key="FailedGetEventsTillDeactivate" value="20" />
<!--Intervall to wait after task is complete-->
<add key="IntervallTaskInSeconds1" value="60" />
<!--Number of failed GetEvent calls at which point sync is disabled for this person/ressource-->
<add key="FailedGetEventsTillDeactivate1" value="5" />
<!--Intervall to wait after task is complete-->
<add key="IntervallTaskInSeconds2" value="30" />
<!--Intervall to wait after task is complete-->
<add key="IntervallTaskInSeconds3" value="30" />
Hier ein Script um User auf eine bestimmte Anzahl von Priority Gruppen zuzuweisen:
DECLARE @NumberOfServices INT;
SET @NumberOfServices = 3
UPDATE Person set PriorityGroup = Id % @NumberOfServices