Free cookie consent management tool by TermsFeed Policy Generator

Changeset 1959


Ignore:
Timestamp:
05/29/09 15:14:32 (15 years ago)
Author:
kgrading
Message:

fixed persistence problems (#493)

Location:
trunk/sources
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Hive.Client.Communication/3.2/WcfService.cs

    r1939 r1959  
    157157        if (ConnState == NetworkEnum.WcfConnState.Connected) {
    158158          Response res = proxy.Login(clientInfo);
    159           ConnState = NetworkEnum.WcfConnState.Loggedin;
    160           Logging.Instance.Info(this.ToString(), res.StatusMessage);
     159          if (!res.Success) {
     160            Logging.Instance.Error(this.ToString(), "Login Failed! " + res.StatusMessage);
     161            HandleNetworkError(null);
     162          } else {
     163            ConnState = NetworkEnum.WcfConnState.Loggedin;
     164            Logging.Instance.Info(this.ToString(), res.StatusMessage);
     165          }
    161166        }
    162167      }
     
    297302    }
    298303
     304    public Response IsJobStillNeeded(Guid jobId) {
     305      try {
     306        return proxy.IsJobStillNeeded(jobId);
     307      }
     308      catch (Exception e) {
     309        HandleNetworkError(e);
     310        return null;
     311      }
     312     
     313    }
     314
    299315    public ResponseResultReceived ProcessSnapshotSync(Guid clientId, Guid jobId, byte[] result, double percentage, Exception exception) {
    300316      try {
  • trunk/sources/HeuristicLab.Hive.Client.Core/3.2/Core.cs

    r1936 r1959  
    7272      ConfigManager manager = ConfigManager.Instance;
    7373      manager.Core = this;
     74
     75
    7476     
    7577      //Register all Wcf Service references
  • trunk/sources/HeuristicLab.Hive.Client.Core/3.2/JobStorage/JobStorageManager.cs

    r1775 r1959  
    1010using System.Xml.Serialization;
    1111using System.Diagnostics;
     12using System.Xml;
    1213
    1314namespace HeuristicLab.Hive.Client.Core.JobStorage {
     
    1516   
    1617    private static List<JobStorageInfo> storedJobsList = new List<JobStorageInfo>();
    17     //Todo: execution path
    18     //Todo: Choose a better directory name
    19     private static String path = "C:\\Program Files\\HeuristicLab 3.0\\plugins\\Hive.Client.Jobs\\";
     18   
     19    private static String path = System.IO.Directory.GetCurrentDirectory()+"\\plugins\\Hive.Client.Jobs\\";
    2020   
    2121    public static void PersistObjectToDisc(String serverIP, long serverPort, Guid jobId, byte[] job) {
    2222      String filename = serverIP + "." + serverPort + "." + jobId.ToString();
    2323      JobStorageInfo info = new JobStorageInfo { JobID = jobId, ServerIP = serverIP, ServerPort = serverPort, TimeFinished = DateTime.Now };
    24 
    25       if (!Directory.Exists(path))
    26         Directory.CreateDirectory(path);
    27            
     24     
    2825      Stream jobstream = null;
    2926      try {
    3027        jobstream = File.Create(path + filename + ".dat");
    3128        jobstream.Write(job, 0, job.Length);
    32         storedJobsList.Add(info);
    33         Debug.WriteLine("Job " + info.JobID + " stored on the harddisc");
    34         //Logging.Instance.Info("JobStorageManager", "Job " + info.JobID + " stored on the harddisc");
     29        storedJobsList.Add(info);       
     30        Logging.Instance.Info("JobStorageManager", "Job " + info.JobID + " stored on the harddisc");
    3531      }
    3632      catch (Exception e) {
     
    4945      for(int index=storedJobsList.Count; index > 0; index--) {
    5046        if (WcfService.Instance.ConnState == NetworkEnum.WcfConnState.Loggedin && (storedJobsList[index-1].ServerIP == WcfService.Instance.ServerIP && storedJobsList[index-1].ServerPort == WcfService.Instance.ServerPort)) {
    51           String filename = storedJobsList[index-1].ServerIP + "." + storedJobsList[index-1].ServerPort + "." + storedJobsList[index-1].JobID.ToString();
    52           Debug.WriteLine("Sending stored job " + storedJobsList[index - 1].JobID + " to the server");
    53           //Logging.Instance.Info("JobStorrageManager", "Sending stored job " + storedJobsList[index - 1].JobID + " to the server");
     47          String filename = storedJobsList[index-1].ServerIP + "." + storedJobsList[index-1].ServerPort + "." + storedJobsList[index-1].JobID.ToString();         
     48          Logging.Instance.Info("JobStorrageManager", "Sending stored job " + storedJobsList[index - 1].JobID + " to the server");
    5449          byte[] job = File.ReadAllBytes(path + filename + ".dat");
     50
     51          if (WcfService.Instance.IsJobStillNeeded(storedJobsList[index - 1].JobID).StatusMessage == ApplicationConstants.RESPONSE_COMMUNICATOR_SEND_JOBRESULT) {
     52            ResponseResultReceived res = WcfService.Instance.SendStoredJobResultsSync(ConfigManager.Instance.GetClientInfo().Id, storedJobsList[index - 1].JobID, job, 1.00, null, true);
     53            if (!res.Success)
     54              Logging.Instance.Error("JobStorageManager", "sending of job failed: " + res.StatusMessage);
     55            else
     56              Logging.Instance.Info("JobStorrageManager", "Sending of job " + storedJobsList[index - 1].JobID + " done");     
     57          }
     58          ClientStatusInfo.JobsProcessed++;
     59                 
    5560         
    56           //Todo: ask server first if he really wants the job...
    57           ResponseResultReceived res = WcfService.Instance.SendStoredJobResultsSync(ConfigManager.Instance.GetClientInfo().Id, storedJobsList[index-1].JobID, job, 1.00, null, true);
    58           ClientStatusInfo.JobsProcessed++;
    59           //TODO: has to be fixed from server side
    60           //if (res.Success == true) {
    61           Debug.WriteLine("Sending of job " + storedJobsList[index - 1].JobID + " done"); 
    62           //Logging.Instance.Info("JobStorrageManager", "Sending of job " + storedJobsList[index - 1].JobID + " done"); 
    6361
    6462          storedJobsList.Remove(storedJobsList[index - 1]);
    65           File.Delete(path + filename + ".dat");
    66            
    67        //   }
     63          File.Delete(path + filename + ".dat");       
    6864          }
    6965        }
     
    7672      writer.Close();
    7773    }
     74
     75    static JobStorageManager() {
     76      Logging.Instance.Info("JobStorrageManager", "Restoring Joblist from Harddisk");
     77      if (!Directory.Exists(path))
     78        Directory.CreateDirectory(path);
     79           
     80      XmlSerializer serializer = new XmlSerializer(typeof(List<JobStorageInfo>));
     81      if(File.Exists(Path.Combine(path ,"list.xml"))) {
     82        try {
     83          FileStream stream = new FileStream(Path.Combine(path, "list.xml"), FileMode.Open);
     84          XmlTextReader reader = new XmlTextReader(stream);
     85          storedJobsList = (List<JobStorageInfo>)serializer.Deserialize(reader);
     86          Logging.Instance.Info("JobStorrageManager", "Loaded " + storedJobsList.Count + " Elements");
     87        }
     88        catch (Exception e) {
     89          Logging.Instance.Error("JobStorrageManager", "Exception while loading the Stored Job List", e);
     90        }
     91      } else {
     92        Logging.Instance.Info("JobStorrageManager", "no stored jobs on harddisk, starting new list");
     93        storedJobsList = new List<JobStorageInfo>();
     94      }
     95    }
    7896   
    7997  }
  • trunk/sources/HeuristicLab.Tracing/3.2/HeuristicLab.Hive.log4net.xml

    r1931 r1959  
    1010    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    1111    <layout type="log4net.Layout.PatternLayout">
    12       <conversionPattern value="%-4timestamp [%appdomain/%thread] %-5level %logger %ndc - %message%newline%exception" />
     12      <conversionPattern value="%-4timestamp %-5level% =>  %message%newline%exception" />
    1313    </layout>
    1414  </appender>
  • trunk/sources/HeuristicLab.Tracing/3.2/HeuristicLab.Tracing-3.2.csproj

    r1933 r1959  
    113113  </ItemGroup>
    114114  <ItemGroup>
     115    <Content Include="HeuristicLab.Hive.log4net.xml" />
    115116    <Content Include="log4net licence.txt" />
    116117  </ItemGroup>
Note: See TracChangeset for help on using the changeset viewer.