public WritingApplicationStartEvent(ApplicationId appId, ApplicationStartData appStart ) : base(WritingHistoryEventType.AppStart) { this.appId = appId; this.appStart = appStart; }
/// <exception cref="System.IO.IOException"/> public virtual ApplicationHistoryData GetApplication(ApplicationId appId) { FileSystemApplicationHistoryStore.HistoryFileReader hfReader = GetHistoryFileReader (appId); try { bool readStartData = false; bool readFinishData = false; ApplicationHistoryData historyData = ApplicationHistoryData.NewInstance(appId, null , null, null, null, long.MinValue, long.MinValue, long.MaxValue, null, FinalApplicationStatus .Undefined, null); while ((!readStartData || !readFinishData) && hfReader.HasNext()) { FileSystemApplicationHistoryStore.HistoryFileReader.Entry entry = hfReader.Next(); if (entry.key.id.Equals(appId.ToString())) { if (entry.key.suffix.Equals(StartDataSuffix)) { ApplicationStartData startData = ParseApplicationStartData(entry.value); MergeApplicationHistoryData(historyData, startData); readStartData = true; } else { if (entry.key.suffix.Equals(FinishDataSuffix)) { ApplicationFinishData finishData = ParseApplicationFinishData(entry.value); MergeApplicationHistoryData(historyData, finishData); readFinishData = true; } } } } if (!readStartData && !readFinishData) { return(null); } if (!readStartData) { Log.Warn("Start information is missing for application " + appId); } if (!readFinishData) { Log.Warn("Finish information is missing for application " + appId); } Log.Info("Completed reading history information of application " + appId); return(historyData); } catch (IOException e) { Log.Error("Error when reading history file of application " + appId, e); throw; } finally { hfReader.Close(); } }
private static void MergeApplicationHistoryData(ApplicationHistoryData historyData , ApplicationStartData startData) { historyData.SetApplicationName(startData.GetApplicationName()); historyData.SetApplicationType(startData.GetApplicationType()); historyData.SetQueue(startData.GetQueue()); historyData.SetUser(startData.GetUser()); historyData.SetSubmitTime(startData.GetSubmitTime()); historyData.SetStartTime(startData.GetStartTime()); }
/// <exception cref="System.IO.IOException"/> public virtual void ApplicationStarted(ApplicationStartData appStart) { ApplicationHistoryData oldData = applicationData.PutIfAbsent(appStart.GetApplicationId (), ApplicationHistoryData.NewInstance(appStart.GetApplicationId(), appStart.GetApplicationName (), appStart.GetApplicationType(), appStart.GetQueue(), appStart.GetUser(), appStart .GetSubmitTime(), appStart.GetStartTime(), long.MaxValue, null, null, null)); if (oldData != null) { throw new IOException("The start information of application " + appStart.GetApplicationId () + " is already stored."); } }
/// <exception cref="System.IO.IOException"/> public virtual void ApplicationStarted(ApplicationStartData appStart) { FileSystemApplicationHistoryStore.HistoryFileWriter hfWriter = outstandingWriters [appStart.GetApplicationId()]; if (hfWriter == null) { Path applicationHistoryFile = new Path(rootDirPath, appStart.GetApplicationId().ToString ()); try { hfWriter = new FileSystemApplicationHistoryStore.HistoryFileWriter(this, applicationHistoryFile ); Log.Info("Opened history file of application " + appStart.GetApplicationId()); } catch (IOException e) { Log.Error("Error when openning history file of application " + appStart.GetApplicationId (), e); throw; } outstandingWriters[appStart.GetApplicationId()] = hfWriter; } else { throw new IOException("History file of application " + appStart.GetApplicationId( ) + " is already opened"); } System.Diagnostics.Debug.Assert(appStart is ApplicationStartDataPBImpl); try { hfWriter.WriteHistoryData(new FileSystemApplicationHistoryStore.HistoryDataKey(appStart .GetApplicationId().ToString(), StartDataSuffix), ((ApplicationStartDataPBImpl)appStart ).GetProto().ToByteArray()); Log.Info("Start information of application " + appStart.GetApplicationId() + " is written" ); } catch (IOException e) { Log.Error("Error when writing start information of application " + appStart.GetApplicationId (), e); throw; } }
/// <exception cref="System.IO.IOException"/> public virtual void ApplicationStarted(ApplicationStartData appStart) { }
public virtual void ApplicationStarted(RMApp app) { if (historyServiceEnabled) { dispatcher.GetEventHandler().Handle(new WritingApplicationStartEvent(app.GetApplicationId (), ApplicationStartData.NewInstance(app.GetApplicationId(), app.GetName(), app. GetApplicationType(), app.GetQueue(), app.GetUser(), app.GetSubmitTime(), app.GetStartTime ()))); } }
/// <exception cref="System.IO.IOException"/> protected internal virtual void WriteApplicationStartData(ApplicationId appId) { store.ApplicationStarted(ApplicationStartData.NewInstance(appId, appId.ToString() , "test type", "test queue", "test user", 0, 0)); }