Share via


RoleEnvironment.SimultaneousChanging Event

 

Occurs before a simultaneous change to the service configuration is applied to the running instances of a role. A simultaneous change affects all role instances at the same time.

Namespace:   Microsoft.WindowsAzure.ServiceRuntime
Assembly:  Microsoft.WindowsAzure.ServiceRuntime (in Microsoft.WindowsAzure.ServiceRuntime.dll)

Syntax

public static event EventHandler<SimultaneousChangingEventArgs> SimultaneousChanging
public:
event EventHandler<SimultaneousChangingEventArgs^>^ SimultaneousChanging {
    static void add(EventHandler<SimultaneousChangingEventArgs^>^ value);
    static void remove(EventHandler<SimultaneousChangingEventArgs^>^ value);
}
static member SimultaneousChanging : IEvent<EventHandler<SimultaneousChangingEventArgs>,
    SimultaneousChangingEventArgs>
Public Shared Event SimultaneousChanging As EventHandler(Of SimultaneousChangingEventArgs)

Remarks

The SimultaneousChanging event and the SimultaneousChanged event are used together to identify and manage configuration changes to the service model that are seen by all role instances at the same time. You cannot cancel the SimultaneousChanging event and the role will not restart when this event is received.

You can configure your application to receive simultaneous notifications about role configuration changes by setting the value of the topologyChangeDiscovery attribute to Blast in the service definition file. When the SimultaneousChanging event is received, the role instance has to accept the change. For more information about settings in the service definition file, see Windows Azure Service Definition Schema.

The following code example shows how to use the SimultaneousChangingEventArgs object to obtain notification of simultaneous topology changes that are being made to the role:

public override bool OnStart()
{
   RoleEnvironment.SimultaneousChanging += 
      RoleEnvironmentSimultaneousChanging;

   return base.OnStart();
}   

private void RoleEnvironmentSimultaneousChanging(object sender, 
   SimultaneousChangingEventArgs e) 
{
   // Get the list of topology changes
   var topologyChanges = e.Changes.OfType<SimultaneousTopologyChange>();

   foreach (var change in topologyChanges)
   {
      if (change.RoleName.Equals(
         RoleEnvironment.CurrentRoleInstance.RoleName))
      {
         // Code to process topology changes for the role instance
      }
   }
}

This event occurs after the change has been submitted, but before the changes have been applied to each running role instance.

See Also

RoleEnvironment Class
Microsoft.WindowsAzure.ServiceRuntime Namespace

Return to top