public virtual void Startup()
{
try
{
Utils.Trace(
Utils.TraceMasks.StartStop,
"MasterNodeManager.Startup - NodeManagers={0}",
m_nodeManagers.Count);
UpdateLock.Enter();
// create the address spaces.
Dictionary<NodeId,IList<IReference>> externalReferences = new Dictionary<NodeId,IList<IReference>>();
for (int ii = 0; ii < m_nodeManagers.Count; ii++)
{
INodeManager nodeManager = m_nodeManagers[ii];
try
{
nodeManager.CreateAddressSpace(externalReferences);
}
catch (Exception e)
{
Utils.Trace(e, "Unexpected error creating address space for NodeManager #{0}.", ii);
}
}
// update external references.
for (int ii = 0; ii < m_nodeManagers.Count; ii++)
{
INodeManager nodeManager = m_nodeManagers[ii];
try
{
nodeManager.AddReferences(externalReferences);
}
catch (Exception e)
{
Utils.Trace(e, "Unexpected error addding references for NodeManager #{0}.", ii);
}
}
}
finally
{
UpdateLock.Exit();
}
}