- Timestamp:
- 05/09/08 16:22:33 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.DistributedEngine/JobManager.cs
r219 r228 21 21 private const int MAX_RESTARTS = 5; 22 22 private Exception exception; 23 private ChannelFactory<IGridServer> factory; 23 24 public Exception Exception { 24 25 get { return exception; } … … 31 32 internal void Reset() { 32 33 lock(locker) { 33 // open a new channel 34 NetTcpBinding binding = new NetTcpBinding(); 35 binding.MaxReceivedMessageSize = 100000000; // 100Mbytes 36 binding.ReaderQuotas.MaxStringContentLength = 100000000; // also 100M chars 37 binding.ReaderQuotas.MaxArrayLength = 100000000; // also 100M elements; 38 binding.Security.Mode = SecurityMode.None; 39 ChannelFactory<IGridServer> factory = new ChannelFactory<IGridServer>(binding); 40 server = factory.CreateChannel(new EndpointAddress(address)); 41 34 ResetConnection(); 42 35 foreach(WaitHandle wh in waithandles.Values) wh.Close(); 43 36 waithandles.Clear(); … … 48 41 } 49 42 43 private void ResetConnection() { 44 // open a new channel 45 NetTcpBinding binding = new NetTcpBinding(); 46 binding.MaxReceivedMessageSize = 100000000; // 100Mbytes 47 binding.ReaderQuotas.MaxStringContentLength = 100000000; // also 100M chars 48 binding.ReaderQuotas.MaxArrayLength = 100000000; // also 100M elements; 49 binding.Security.Mode = SecurityMode.None; 50 factory = new ChannelFactory<IGridServer>(binding); 51 server = factory.CreateChannel(new EndpointAddress(address)); 52 } 53 50 54 public WaitHandle BeginExecuteOperation(IOperatorGraph operatorGraph, IScope globalScope, AtomicOperation operation) { 51 55 ProcessingEngine engine = new ProcessingEngine(operatorGraph, globalScope, operation); // OperatorGraph not needed? 52 56 MemoryStream memStream = new MemoryStream(); 53 57 GZipStream stream = new GZipStream(memStream, CompressionMode.Compress, true); 54 PersistenceManager.Save(engine, stream); // Careful! Make sure that persistence is thread-safe!58 PersistenceManager.Save(engine, stream); 55 59 stream.Close(); 60 if(factory.State != CommunicationState.Opened) 61 ResetConnection(); 56 62 Guid currentEngineGuid = server.BeginExecuteEngine(memStream.ToArray()); 57 63 lock(locker) { … … 69 75 do { 70 76 try { 77 if(factory.State != CommunicationState.Opened) ResetConnection(); 71 78 byte[] resultXml = server.TryEndExecuteEngine(engineGuid, 100); 72 79 if(resultXml != null) {
Note: See TracChangeset
for help on using the changeset viewer.