Changeset 398
- Timestamp:
- 07/29/08 16:17:10 (16 years ago)
- Location:
- trunk/sources
- Files:
-
- 1 deleted
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.CEDMA.Core/AgentList.cs
r390 r398 66 66 agent.Status = ProcessStatus.Unknown; 67 67 agent.Database = database; 68 long id = database.InsertAgent(null, agent.Name, true,DbPersistenceManager.Save(agent));68 long id = database.InsertAgent(null, agent.Name, DbPersistenceManager.Save(agent)); 69 69 agent.Id = id; 70 70 agentList.Add(agent); -
trunk/sources/HeuristicLab.CEDMA.DB.Interfaces/AgentEntry.cs
r392 r398 41 41 public ProcessStatus Status { get; set; } 42 42 [DataMember] 43 public bool ControllerAgent { get; set; }44 [DataMember]45 43 public byte[] RawData { get; set; } 46 44 } -
trunk/sources/HeuristicLab.CEDMA.DB.Interfaces/IDatabase.cs
r390 r398 31 31 public interface IDatabase { 32 32 [OperationContract] 33 long InsertAgent(long? parentAgentId, string name, b ool controllerAgent, byte[] rawData);33 long InsertAgent(long? parentAgentId, string name, byte[] rawData); 34 34 35 35 [OperationContract(Name = "UpdateAgentName")] -
trunk/sources/HeuristicLab.CEDMA.DB/Database.cs
r394 r398 55 55 } 56 56 using(DbCommand cmd = cnn.CreateCommand()) { 57 cmd.CommandText = "CREATE TABLE Agent (ID integer primary key autoincrement, ProjectId integer, ParentAgentId integer, Name text, Status text default "+ProcessStatus.Unknown+", C ontrollerAgent integer, CreationTime DateTime, RawData Blob)";57 cmd.CommandText = "CREATE TABLE Agent (ID integer primary key autoincrement, ProjectId integer, ParentAgentId integer, Name text, Status text default "+ProcessStatus.Unknown+", CreationTime DateTime, RawData Blob)"; 58 58 cmd.Transaction = t; 59 59 cmd.ExecuteNonQuery(); … … 73 73 #endregion 74 74 75 #region insert agent/r un/result/sub-result76 public long InsertAgent(long? parentAgentId, string name, b ool controllerAgent, byte[] rawData) {75 #region insert agent/result/sub-result 76 public long InsertAgent(long? parentAgentId, string name, byte[] rawData) { 77 77 rwLock.EnterWriteLock(); 78 78 try { … … 83 83 using(DbCommand c = cnn.CreateCommand()) { 84 84 c.Transaction = t; 85 c.CommandText = "Insert into Agent (Name, ParentAgentId, C ontrollerAgent, CreationTime, RawData) values (@Name, @ParentAgentId, @ControllerAgent, @CreationTime, @RawData); select last_insert_rowid()";85 c.CommandText = "Insert into Agent (Name, ParentAgentId, CreationTime, RawData) values (@Name, @ParentAgentId, @CreationTime, @RawData); select last_insert_rowid()"; 86 86 DbParameter nameParam = c.CreateParameter(); 87 87 nameParam.ParameterName = "@Name"; … … 92 92 parentParam.Value = parentAgentId; 93 93 c.Parameters.Add(parentParam); 94 DbParameter controllerParam = c.CreateParameter();95 controllerParam.ParameterName = "@ControllerAgent";96 controllerParam.Value = controllerAgent;97 c.Parameters.Add(controllerParam);98 94 DbParameter creationTimeParam = c.CreateParameter(); 99 95 creationTimeParam.ParameterName = "@CreationTime"; … … 284 280 #endregion 285 281 286 #region get agent/r un/result/sub-result282 #region get agent/result/sub-result 287 283 288 284 public ICollection<AgentEntry> GetAgents(ProcessStatus status) { … … 293 289 cnn.Open(); 294 290 SQLiteCommand c = cnn.CreateCommand(); 295 c.CommandText = "Select id, name, ControllerAgent,rawdata from Agent where Status=@Status";291 c.CommandText = "Select id, name, rawdata from Agent where Status=@Status"; 296 292 DbParameter statusParameter = c.CreateParameter(); 297 293 statusParameter.ParameterName = "@Status"; … … 305 301 agent.Id = r.GetInt32(0); 306 302 agent.Name = r.IsDBNull(1)?"":r.GetString(1); 307 agent.ControllerAgent = r.GetBoolean(2); 308 agent.RawData = (byte[])r.GetValue(3); 303 agent.RawData = (byte[])r.GetValue(2); 309 304 agents.Add(agent); 310 305 } … … 323 318 cnn.Open(); 324 319 using(DbCommand c = cnn.CreateCommand()) { 325 c.CommandText = "Select id, name, status, ControllerAgent,rawdata from Agent where ParentAgentId isnull";320 c.CommandText = "Select id, name, status, rawdata from Agent where ParentAgentId isnull"; 326 321 using(DbDataReader r = c.ExecuteReader()) { 327 322 while(r.Read()) { … … 331 326 agent.Name = r.IsDBNull(1)?"-":r.GetString(1); 332 327 agent.Status = (ProcessStatus)Enum.Parse(typeof(ProcessStatus), r.GetString(2)); 333 agent.ControllerAgent = r.GetBoolean(3); 334 agent.RawData = (byte[])r.GetValue(4); 328 agent.RawData = (byte[])r.GetValue(3); 335 329 agents.Add(agent); 336 330 } … … 351 345 cnn.Open(); 352 346 using(DbCommand c = cnn.CreateCommand()) { 353 c.CommandText = "Select id, name, status, controllerAgent,rawdata from Agent where ParentAgentId=@ParentAgentId";347 c.CommandText = "Select id, name, status, rawdata from Agent where ParentAgentId=@ParentAgentId"; 354 348 DbParameter parentParameter = c.CreateParameter(); 355 349 parentParameter.ParameterName = "@ParentAgentId"; … … 364 358 agent.Name = r.IsDBNull(1)?"-":r.GetString(1); 365 359 agent.Status = (ProcessStatus)Enum.Parse(typeof(ProcessStatus), r.GetString(2)); 366 agent.ControllerAgent = r.GetBoolean(3); 367 agent.RawData = (byte[])r.GetValue(4); 360 agent.RawData = (byte[])r.GetValue(3); 368 361 agents.Add(agent); 369 362 } -
trunk/sources/HeuristicLab.CEDMA.Operators/OnGridProcessor.cs
r394 r398 61 61 using(ChannelFactory<IDatabase> factory = new ChannelFactory<IDatabase>(binding)) { 62 62 IDatabase database = factory.CreateChannel(new EndpointAddress(serverUrl)); 63 long id = database.InsertAgent(agentId, null, false,DbPersistenceManager.Save(agent));63 long id = database.InsertAgent(agentId, null, DbPersistenceManager.Save(agent)); 64 64 database.UpdateAgent(id, ProcessStatus.Waiting); 65 65 } -
trunk/sources/HeuristicLab.CEDMA.Server/HeuristicLab.CEDMA.Server.csproj
r393 r398 59 59 </ItemGroup> 60 60 <ItemGroup> 61 <Compile Include="AgentScheduler.cs" />62 61 <Compile Include="RunScheduler.cs" /> 63 62 <Compile Include="DbPersistenceManager.cs" /> -
trunk/sources/HeuristicLab.CEDMA.Server/RunScheduler.cs
r393 r398 64 64 } 65 65 private void ReleaseWaitingRuns() { 66 I Enumerable<AgentEntry> agents;66 ICollection<AgentEntry> agents; 67 67 lock(remoteCommLock) { 68 agents = database.GetAgents(ProcessStatus.Waiting) .Where(a=>!a.ControllerAgent);68 agents = database.GetAgents(ProcessStatus.Waiting); 69 69 } 70 70 foreach(AgentEntry entry in agents) { -
trunk/sources/HeuristicLab.CEDMA.Server/ServerForm.cs
r393 r398 54 54 } 55 55 56 private void InitAgentScheduler() {57 AgentScheduler scheduler = new AgentScheduler(database, addressTextBox.Text);58 Thread agentSchedulerThread = new Thread(scheduler.Run);59 agentSchedulerThread.Start();60 }61 62 56 private void InitRunScheduler() { 63 57 JobManager jobManager = new JobManager(gridAddress.Text); … … 81 75 private void Start() { 82 76 InitDatabase(); 83 InitAgentScheduler();84 77 InitRunScheduler(); 85 78
Note: See TracChangeset
for help on using the changeset viewer.