#region License Information /* HeuristicLab * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL) * * This file is part of HeuristicLab. * * HeuristicLab is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * HeuristicLab is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with HeuristicLab. If not, see . */ #endregion using System; using System.Threading; using Microsoft.WindowsAzure.Diagnostics; using Microsoft.WindowsAzure.ServiceRuntime; using System.Diagnostics; namespace HeuristicLab.Services.Hive.WebRole { public class WebRole : RoleEntryPoint { private HiveJanitor janitor; private Thread janitorThread; public override bool OnStart() { Trace.WriteLine("Starting Janitor Service..."); try { DiagnosticMonitorConfiguration diagnosticConfig = DiagnosticMonitor.GetDefaultInitialConfiguration(); /*diagnosticConfig.Directories.ScheduledTransferPeriod = TimeSpan.FromMinutes(1); diagnosticConfig.Directories.DataSources.Add(AzureLocalStorageTraceListener.GetLogDirectory());*/ diagnosticConfig.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1); diagnosticConfig.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose; diagnosticConfig.WindowsEventLog.ScheduledTransferPeriod = TimeSpan.FromMinutes(1); diagnosticConfig.WindowsEventLog.ScheduledTransferLogLevelFilter = LogLevel.Verbose; DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", diagnosticConfig); } catch (Exception e) { Trace.WriteLine("Error during diagnostic configuration: " + e.Message); } // To enable the AzureLocalStorageTraceListner, uncomment relevent section in the web.config Trace.WriteLine("Loading diagnostic configuration..."); // For information on handling configuration changes // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357. // Start Janitorn Service: Trace.WriteLine("Starting HiveJanitor..."); try { janitor = new HiveJanitor(); janitorThread = new Thread(janitor.Run); janitorThread.IsBackground = true; //dont keep app alive janitorThread.Start(); } catch (Exception e) { Trace.WriteLine("Error during janitor startup: " + e.Message); } Trace.WriteLine("Startup completed..."); return base.OnStart(); } public override void OnStop() { janitor.StopJanitor(); janitorThread.Join(); base.OnStop(); } } }