Changeset 1379


Ignore:
Timestamp:
03/20/09 13:56:55 (12 years ago)
Author:
kgrading
Message:

splitted the sendfinishedjob / snapshot method in two seperate methods, fixed the locking, added real memory management (#529)

Location:
trunk/sources
Files:
3 added
1 deleted
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Hive.Client.Communication/HeuristicLab.Hive.Client.Communication.csproj

    r1377 r1379  
    122122    <None Include="Properties\DataSources\HeuristicLab.Hive.Contracts.ResponseHB.datasource" />
    123123    <None Include="Properties\DataSources\HeuristicLab.Hive.Contracts.ResponseJob.datasource" />
     124    <None Include="Properties\DataSources\HeuristicLab.Hive.Contracts.ResponsePlugin.datasource" />
    124125    <None Include="Properties\DataSources\HeuristicLab.Hive.Contracts.ResponseResultReceived.datasource" />
    125     <None Include="Service References\ServerService\Arrays1.xsd" />
     126    <None Include="Service References\ServerService\Arrays.xsd" />
     127    <None Include="Service References\ServerService\HeuristicLab.DataAccess.xsd" />
    126128    <None Include="Service References\ServerService\HeuristicLab.Hive.Contracts.BusinessObjects1.xsd" />
    127129    <None Include="Service References\ServerService\HeuristicLab.Hive.Contracts1.xsd" />
  • trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/HeuristicLab.Hive.Contracts.BusinessObjects1.xsd

    r1366 r1379  
    22<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts.BusinessObjects" xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts.BusinessObjects" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    33  <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
     4  <xs:import namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.DataAccess" />
    45  <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
    56  <xs:complexType name="ClientInfo">
     
    2223  <xs:complexType name="Resource">
    2324    <xs:complexContent mixed="false">
    24       <xs:extension base="tns:HiveBaseObject">
     25      <xs:extension xmlns:q1="http://schemas.datacontract.org/2004/07/HeuristicLab.DataAccess" base="q1:PersistableObject">
    2526        <xs:sequence>
    2627          <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
     
    3031  </xs:complexType>
    3132  <xs:element name="Resource" nillable="true" type="tns:Resource" />
    32   <xs:complexType name="HiveBaseObject">
    33     <xs:sequence>
    34       <xs:element minOccurs="0" name="Id" type="xs:long" />
    35     </xs:sequence>
    36   </xs:complexType>
    37   <xs:element name="HiveBaseObject" nillable="true" type="tns:HiveBaseObject" />
    3833  <xs:complexType name="ClientConfig">
    3934    <xs:complexContent mixed="false">
    40       <xs:extension base="tns:HiveBaseObject">
     35      <xs:extension xmlns:q2="http://schemas.datacontract.org/2004/07/HeuristicLab.DataAccess" base="q2:PersistableObject">
    4136        <xs:sequence>
    4237          <xs:element minOccurs="0" name="HeartBeatIntervall" type="xs:int" />
     
    6055    <xs:sequence>
    6156      <xs:element minOccurs="0" name="ClientId" type="ser:guid" />
    62       <xs:element minOccurs="0" name="freeCores" type="xs:int" />
    63       <xs:element minOccurs="0" name="freeMemory" type="xs:int" />
    64       <xs:element xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="jobProgress" nillable="true" type="q1:ArrayOfKeyValueOflongdouble" />
     57      <xs:element minOccurs="0" name="FreeCores" type="xs:int" />
     58      <xs:element minOccurs="0" name="FreeMemory" type="xs:int" />
     59      <xs:element xmlns:q3="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="JobProgress" nillable="true" type="q3:ArrayOfKeyValueOflongdouble" />
    6560    </xs:sequence>
    6661  </xs:complexType>
     
    6863  <xs:complexType name="Job">
    6964    <xs:complexContent mixed="false">
    70       <xs:extension base="tns:HiveBaseObject">
     65      <xs:extension xmlns:q4="http://schemas.datacontract.org/2004/07/HeuristicLab.DataAccess" base="q4:PersistableObject">
    7166        <xs:sequence>
    7267          <xs:element minOccurs="0" name="Client" nillable="true" type="tns:ClientInfo" />
     
    7873          <xs:element minOccurs="0" name="SerializedJob" nillable="true" type="xs:base64Binary" />
    7974          <xs:element minOccurs="0" name="State" type="tns:State" />
    80           <xs:element minOccurs="0" name="User" nillable="true" type="tns:User" />
     75          <xs:element minOccurs="0" name="UserId" type="ser:guid" />
    8176        </xs:sequence>
    8277      </xs:extension>
     
    8479  </xs:complexType>
    8580  <xs:element name="Job" nillable="true" type="tns:Job" />
    86   <xs:complexType name="User">
    87     <xs:complexContent mixed="false">
    88       <xs:extension base="tns:PermissionOwner">
    89         <xs:sequence>
    90           <xs:element minOccurs="0" name="Password" nillable="true" type="xs:string" />
    91         </xs:sequence>
    92       </xs:extension>
    93     </xs:complexContent>
    94   </xs:complexType>
    95   <xs:element name="User" nillable="true" type="tns:User" />
    96   <xs:complexType name="PermissionOwner">
    97     <xs:complexContent mixed="false">
    98       <xs:extension base="tns:HiveBaseObject">
    99         <xs:sequence>
    100           <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
    101         </xs:sequence>
    102       </xs:extension>
    103     </xs:complexContent>
    104   </xs:complexType>
    105   <xs:element name="PermissionOwner" nillable="true" type="tns:PermissionOwner" />
    10681</xs:schema>
  • trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/HeuristicLab.Hive.Contracts1.xsd

    r1366 r1379  
    6666  </xs:complexType>
    6767  <xs:element name="ResponseResultReceived" nillable="true" type="tns:ResponseResultReceived" />
     68  <xs:complexType name="ResponsePlugin">
     69    <xs:complexContent mixed="false">
     70      <xs:extension base="tns:Response">
     71        <xs:sequence>
     72          <xs:element minOccurs="0" name="Plugins" nillable="true" type="xs:base64Binary" />
     73        </xs:sequence>
     74      </xs:extension>
     75    </xs:complexContent>
     76  </xs:complexType>
     77  <xs:element name="ResponsePlugin" nillable="true" type="tns:ResponsePlugin" />
    6878</xs:schema>
  • trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/Reference.cs

    r1366 r1379  
    2020        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseJob))]
    2121        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseResultReceived))]
     22        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponsePlugin))]
    2223        HeuristicLab.Hive.Contracts.Response Login(HeuristicLab.Hive.Contracts.BusinessObjects.ClientInfo clientInfo);
    2324       
     
    4344        HeuristicLab.Hive.Contracts.ResponseJob EndSendJob(System.IAsyncResult result);
    4445       
    45         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/ProcessJobResult", ReplyAction="http://tempuri.org/IClientCommunicator/ProcessJobResultResponse")]
    46         HeuristicLab.Hive.Contracts.ResponseResultReceived ProcessJobResult(System.Guid clientId, long jobId, byte[] result, double percentage, System.Exception exception, bool finished);
    47        
    48         [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/ProcessJobResult", ReplyAction="http://tempuri.org/IClientCommunicator/ProcessJobResultResponse")]
    49         System.IAsyncResult BeginProcessJobResult(System.Guid clientId, long jobId, byte[] result, double percentage, System.Exception exception, bool finished, System.AsyncCallback callback, object asyncState);
    50        
    51         HeuristicLab.Hive.Contracts.ResponseResultReceived EndProcessJobResult(System.IAsyncResult result);
     46        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/StoreFinishedJobResult", ReplyAction="http://tempuri.org/IClientCommunicator/StoreFinishedJobResultResponse")]
     47        HeuristicLab.Hive.Contracts.ResponseResultReceived StoreFinishedJobResult(System.Guid clientId, long jobId, byte[] result, double percentage, System.Exception exception);
     48       
     49        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/StoreFinishedJobResult", ReplyAction="http://tempuri.org/IClientCommunicator/StoreFinishedJobResultResponse")]
     50        System.IAsyncResult BeginStoreFinishedJobResult(System.Guid clientId, long jobId, byte[] result, double percentage, System.Exception exception, System.AsyncCallback callback, object asyncState);
     51       
     52        HeuristicLab.Hive.Contracts.ResponseResultReceived EndStoreFinishedJobResult(System.IAsyncResult result);
     53       
     54        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/ProcessSnapshot", ReplyAction="http://tempuri.org/IClientCommunicator/ProcessSnapshotResponse")]
     55        HeuristicLab.Hive.Contracts.ResponseResultReceived ProcessSnapshot(System.Guid clientId, long jobId, byte[] result, double percentage, System.Exception exception);
     56       
     57        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/ProcessSnapshot", ReplyAction="http://tempuri.org/IClientCommunicator/ProcessSnapshotResponse")]
     58        System.IAsyncResult BeginProcessSnapshot(System.Guid clientId, long jobId, byte[] result, double percentage, System.Exception exception, System.AsyncCallback callback, object asyncState);
     59       
     60        HeuristicLab.Hive.Contracts.ResponseResultReceived EndProcessSnapshot(System.IAsyncResult result);
    5261       
    5362        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/Logout", ReplyAction="http://tempuri.org/IClientCommunicator/LogoutResponse")]
     
    5564        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseJob))]
    5665        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseResultReceived))]
     66        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponsePlugin))]
    5767        HeuristicLab.Hive.Contracts.Response Logout(System.Guid clientId);
    5868       
     
    6171       
    6272        HeuristicLab.Hive.Contracts.Response EndLogout(System.IAsyncResult result);
     73       
     74        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/IsJobStillNeeded", ReplyAction="http://tempuri.org/IClientCommunicator/IsJobStillNeededResponse")]
     75        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseHB))]
     76        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseJob))]
     77        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseResultReceived))]
     78        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponsePlugin))]
     79        HeuristicLab.Hive.Contracts.Response IsJobStillNeeded(long jobId);
     80       
     81        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/IsJobStillNeeded", ReplyAction="http://tempuri.org/IClientCommunicator/IsJobStillNeededResponse")]
     82        System.IAsyncResult BeginIsJobStillNeeded(long jobId, System.AsyncCallback callback, object asyncState);
     83       
     84        HeuristicLab.Hive.Contracts.Response EndIsJobStillNeeded(System.IAsyncResult result);
     85       
     86        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/SendPlugins", ReplyAction="http://tempuri.org/IClientCommunicator/SendPluginsResponse")]
     87        HeuristicLab.Hive.Contracts.ResponsePlugin SendPlugins(string[] pluginList);
     88       
     89        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/SendPlugins", ReplyAction="http://tempuri.org/IClientCommunicator/SendPluginsResponse")]
     90        System.IAsyncResult BeginSendPlugins(string[] pluginList, System.AsyncCallback callback, object asyncState);
     91       
     92        HeuristicLab.Hive.Contracts.ResponsePlugin EndSendPlugins(System.IAsyncResult result);
    6393    }
    6494   
     
    126156    [System.Diagnostics.DebuggerStepThroughAttribute()]
    127157    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    128     public partial class ProcessJobResultCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
     158    public partial class StoreFinishedJobResultCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    129159       
    130160        private object[] results;
    131161       
    132         public ProcessJobResultCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
     162        public StoreFinishedJobResultCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
    133163                base(exception, cancelled, userState) {
    134164            this.results = results;
     
    145175    [System.Diagnostics.DebuggerStepThroughAttribute()]
    146176    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
     177    public partial class ProcessSnapshotCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
     178       
     179        private object[] results;
     180       
     181        public ProcessSnapshotCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
     182                base(exception, cancelled, userState) {
     183            this.results = results;
     184        }
     185       
     186        public HeuristicLab.Hive.Contracts.ResponseResultReceived Result {
     187            get {
     188                base.RaiseExceptionIfNecessary();
     189                return ((HeuristicLab.Hive.Contracts.ResponseResultReceived)(this.results[0]));
     190            }
     191        }
     192    }
     193   
     194    [System.Diagnostics.DebuggerStepThroughAttribute()]
     195    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    147196    public partial class LogoutCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    148197       
     
    164213    [System.Diagnostics.DebuggerStepThroughAttribute()]
    165214    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
     215    public partial class IsJobStillNeededCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
     216       
     217        private object[] results;
     218       
     219        public IsJobStillNeededCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
     220                base(exception, cancelled, userState) {
     221            this.results = results;
     222        }
     223       
     224        public HeuristicLab.Hive.Contracts.Response Result {
     225            get {
     226                base.RaiseExceptionIfNecessary();
     227                return ((HeuristicLab.Hive.Contracts.Response)(this.results[0]));
     228            }
     229        }
     230    }
     231   
     232    [System.Diagnostics.DebuggerStepThroughAttribute()]
     233    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
     234    public partial class SendPluginsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
     235       
     236        private object[] results;
     237       
     238        public SendPluginsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
     239                base(exception, cancelled, userState) {
     240            this.results = results;
     241        }
     242       
     243        public HeuristicLab.Hive.Contracts.ResponsePlugin Result {
     244            get {
     245                base.RaiseExceptionIfNecessary();
     246                return ((HeuristicLab.Hive.Contracts.ResponsePlugin)(this.results[0]));
     247            }
     248        }
     249    }
     250   
     251    [System.Diagnostics.DebuggerStepThroughAttribute()]
     252    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    166253    public partial class ClientCommunicatorClient : System.ServiceModel.ClientBase<HeuristicLab.Hive.Client.Communication.ServerService.IClientCommunicator>, HeuristicLab.Hive.Client.Communication.ServerService.IClientCommunicator {
    167254       
     
    184271        private System.Threading.SendOrPostCallback onSendJobCompletedDelegate;
    185272       
    186         private BeginOperationDelegate onBeginProcessJobResultDelegate;
    187        
    188         private EndOperationDelegate onEndProcessJobResultDelegate;
    189        
    190         private System.Threading.SendOrPostCallback onProcessJobResultCompletedDelegate;
     273        private BeginOperationDelegate onBeginStoreFinishedJobResultDelegate;
     274       
     275        private EndOperationDelegate onEndStoreFinishedJobResultDelegate;
     276       
     277        private System.Threading.SendOrPostCallback onStoreFinishedJobResultCompletedDelegate;
     278       
     279        private BeginOperationDelegate onBeginProcessSnapshotDelegate;
     280       
     281        private EndOperationDelegate onEndProcessSnapshotDelegate;
     282       
     283        private System.Threading.SendOrPostCallback onProcessSnapshotCompletedDelegate;
    191284       
    192285        private BeginOperationDelegate onBeginLogoutDelegate;
     
    195288       
    196289        private System.Threading.SendOrPostCallback onLogoutCompletedDelegate;
     290       
     291        private BeginOperationDelegate onBeginIsJobStillNeededDelegate;
     292       
     293        private EndOperationDelegate onEndIsJobStillNeededDelegate;
     294       
     295        private System.Threading.SendOrPostCallback onIsJobStillNeededCompletedDelegate;
     296       
     297        private BeginOperationDelegate onBeginSendPluginsDelegate;
     298       
     299        private EndOperationDelegate onEndSendPluginsDelegate;
     300       
     301        private System.Threading.SendOrPostCallback onSendPluginsCompletedDelegate;
    197302       
    198303        public ClientCommunicatorClient() {
     
    221326        public event System.EventHandler<SendJobCompletedEventArgs> SendJobCompleted;
    222327       
    223         public event System.EventHandler<ProcessJobResultCompletedEventArgs> ProcessJobResultCompleted;
     328        public event System.EventHandler<StoreFinishedJobResultCompletedEventArgs> StoreFinishedJobResultCompleted;
     329       
     330        public event System.EventHandler<ProcessSnapshotCompletedEventArgs> ProcessSnapshotCompleted;
    224331       
    225332        public event System.EventHandler<LogoutCompletedEventArgs> LogoutCompleted;
     333       
     334        public event System.EventHandler<IsJobStillNeededCompletedEventArgs> IsJobStillNeededCompleted;
     335       
     336        public event System.EventHandler<SendPluginsCompletedEventArgs> SendPluginsCompleted;
    226337       
    227338        public HeuristicLab.Hive.Contracts.Response Login(HeuristicLab.Hive.Contracts.BusinessObjects.ClientInfo clientInfo) {
     
    375486        }
    376487       
    377         public HeuristicLab.Hive.Contracts.ResponseResultReceived ProcessJobResult(System.Guid clientId, long jobId, byte[] result, double percentage, System.Exception exception, bool finished) {
    378             return base.Channel.ProcessJobResult(clientId, jobId, result, percentage, exception, finished);
    379         }
    380        
    381         [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    382         public System.IAsyncResult BeginProcessJobResult(System.Guid clientId, long jobId, byte[] result, double percentage, System.Exception exception, bool finished, System.AsyncCallback callback, object asyncState) {
    383             return base.Channel.BeginProcessJobResult(clientId, jobId, result, percentage, exception, finished, callback, asyncState);
    384         }
    385        
    386         [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    387         public HeuristicLab.Hive.Contracts.ResponseResultReceived EndProcessJobResult(System.IAsyncResult result) {
    388             return base.Channel.EndProcessJobResult(result);
    389         }
    390        
    391         private System.IAsyncResult OnBeginProcessJobResult(object[] inValues, System.AsyncCallback callback, object asyncState) {
     488        public HeuristicLab.Hive.Contracts.ResponseResultReceived StoreFinishedJobResult(System.Guid clientId, long jobId, byte[] result, double percentage, System.Exception exception) {
     489            return base.Channel.StoreFinishedJobResult(clientId, jobId, result, percentage, exception);
     490        }
     491       
     492        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
     493        public System.IAsyncResult BeginStoreFinishedJobResult(System.Guid clientId, long jobId, byte[] result, double percentage, System.Exception exception, System.AsyncCallback callback, object asyncState) {
     494            return base.Channel.BeginStoreFinishedJobResult(clientId, jobId, result, percentage, exception, callback, asyncState);
     495        }
     496       
     497        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
     498        public HeuristicLab.Hive.Contracts.ResponseResultReceived EndStoreFinishedJobResult(System.IAsyncResult result) {
     499            return base.Channel.EndStoreFinishedJobResult(result);
     500        }
     501       
     502        private System.IAsyncResult OnBeginStoreFinishedJobResult(object[] inValues, System.AsyncCallback callback, object asyncState) {
    392503            System.Guid clientId = ((System.Guid)(inValues[0]));
    393504            long jobId = ((long)(inValues[1]));
     
    395506            double percentage = ((double)(inValues[3]));
    396507            System.Exception exception = ((System.Exception)(inValues[4]));
    397             bool finished = ((bool)(inValues[5]));
    398             return this.BeginProcessJobResult(clientId, jobId, result, percentage, exception, finished, callback, asyncState);
    399         }
    400        
    401         private object[] OnEndProcessJobResult(System.IAsyncResult result) {
    402             HeuristicLab.Hive.Contracts.ResponseResultReceived retVal = this.EndProcessJobResult(result);
     508            return this.BeginStoreFinishedJobResult(clientId, jobId, result, percentage, exception, callback, asyncState);
     509        }
     510       
     511        private object[] OnEndStoreFinishedJobResult(System.IAsyncResult result) {
     512            HeuristicLab.Hive.Contracts.ResponseResultReceived retVal = this.EndStoreFinishedJobResult(result);
    403513            return new object[] {
    404514                    retVal};
    405515        }
    406516       
    407         private void OnProcessJobResultCompleted(object state) {
    408             if ((this.ProcessJobResultCompleted != null)) {
     517        private void OnStoreFinishedJobResultCompleted(object state) {
     518            if ((this.StoreFinishedJobResultCompleted != null)) {
    409519                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
    410                 this.ProcessJobResultCompleted(this, new ProcessJobResultCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
    411             }
    412         }
    413        
    414         public void ProcessJobResultAsync(System.Guid clientId, long jobId, byte[] result, double percentage, System.Exception exception, bool finished) {
    415             this.ProcessJobResultAsync(clientId, jobId, result, percentage, exception, finished, null);
    416         }
    417        
    418         public void ProcessJobResultAsync(System.Guid clientId, long jobId, byte[] result, double percentage, System.Exception exception, bool finished, object userState) {
    419             if ((this.onBeginProcessJobResultDelegate == null)) {
    420                 this.onBeginProcessJobResultDelegate = new BeginOperationDelegate(this.OnBeginProcessJobResult);
    421             }
    422             if ((this.onEndProcessJobResultDelegate == null)) {
    423                 this.onEndProcessJobResultDelegate = new EndOperationDelegate(this.OnEndProcessJobResult);
    424             }
    425             if ((this.onProcessJobResultCompletedDelegate == null)) {
    426                 this.onProcessJobResultCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnProcessJobResultCompleted);
    427             }
    428             base.InvokeAsync(this.onBeginProcessJobResultDelegate, new object[] {
     520                this.StoreFinishedJobResultCompleted(this, new StoreFinishedJobResultCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
     521            }
     522        }
     523       
     524        public void StoreFinishedJobResultAsync(System.Guid clientId, long jobId, byte[] result, double percentage, System.Exception exception) {
     525            this.StoreFinishedJobResultAsync(clientId, jobId, result, percentage, exception, null);
     526        }
     527       
     528        public void StoreFinishedJobResultAsync(System.Guid clientId, long jobId, byte[] result, double percentage, System.Exception exception, object userState) {
     529            if ((this.onBeginStoreFinishedJobResultDelegate == null)) {
     530                this.onBeginStoreFinishedJobResultDelegate = new BeginOperationDelegate(this.OnBeginStoreFinishedJobResult);
     531            }
     532            if ((this.onEndStoreFinishedJobResultDelegate == null)) {
     533                this.onEndStoreFinishedJobResultDelegate = new EndOperationDelegate(this.OnEndStoreFinishedJobResult);
     534            }
     535            if ((this.onStoreFinishedJobResultCompletedDelegate == null)) {
     536                this.onStoreFinishedJobResultCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnStoreFinishedJobResultCompleted);
     537            }
     538            base.InvokeAsync(this.onBeginStoreFinishedJobResultDelegate, new object[] {
    429539                        clientId,
    430540                        jobId,
    431541                        result,
    432542                        percentage,
    433                         exception,
    434                         finished}, this.onEndProcessJobResultDelegate, this.onProcessJobResultCompletedDelegate, userState);
     543                        exception}, this.onEndStoreFinishedJobResultDelegate, this.onStoreFinishedJobResultCompletedDelegate, userState);
     544        }
     545       
     546        public HeuristicLab.Hive.Contracts.ResponseResultReceived ProcessSnapshot(System.Guid clientId, long jobId, byte[] result, double percentage, System.Exception exception) {
     547            return base.Channel.ProcessSnapshot(clientId, jobId, result, percentage, exception);
     548        }
     549       
     550        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
     551        public System.IAsyncResult BeginProcessSnapshot(System.Guid clientId, long jobId, byte[] result, double percentage, System.Exception exception, System.AsyncCallback callback, object asyncState) {
     552            return base.Channel.BeginProcessSnapshot(clientId, jobId, result, percentage, exception, callback, asyncState);
     553        }
     554       
     555        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
     556        public HeuristicLab.Hive.Contracts.ResponseResultReceived EndProcessSnapshot(System.IAsyncResult result) {
     557            return base.Channel.EndProcessSnapshot(result);
     558        }
     559       
     560        private System.IAsyncResult OnBeginProcessSnapshot(object[] inValues, System.AsyncCallback callback, object asyncState) {
     561            System.Guid clientId = ((System.Guid)(inValues[0]));
     562            long jobId = ((long)(inValues[1]));
     563            byte[] result = ((byte[])(inValues[2]));
     564            double percentage = ((double)(inValues[3]));
     565            System.Exception exception = ((System.Exception)(inValues[4]));
     566            return this.BeginProcessSnapshot(clientId, jobId, result, percentage, exception, callback, asyncState);
     567        }
     568       
     569        private object[] OnEndProcessSnapshot(System.IAsyncResult result) {
     570            HeuristicLab.Hive.Contracts.ResponseResultReceived retVal = this.EndProcessSnapshot(result);
     571            return new object[] {
     572                    retVal};
     573        }
     574       
     575        private void OnProcessSnapshotCompleted(object state) {
     576            if ((this.ProcessSnapshotCompleted != null)) {
     577                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
     578                this.ProcessSnapshotCompleted(this, new ProcessSnapshotCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
     579            }
     580        }
     581       
     582        public void ProcessSnapshotAsync(System.Guid clientId, long jobId, byte[] result, double percentage, System.Exception exception) {
     583            this.ProcessSnapshotAsync(clientId, jobId, result, percentage, exception, null);
     584        }
     585       
     586        public void ProcessSnapshotAsync(System.Guid clientId, long jobId, byte[] result, double percentage, System.Exception exception, object userState) {
     587            if ((this.onBeginProcessSnapshotDelegate == null)) {
     588                this.onBeginProcessSnapshotDelegate = new BeginOperationDelegate(this.OnBeginProcessSnapshot);
     589            }
     590            if ((this.onEndProcessSnapshotDelegate == null)) {
     591                this.onEndProcessSnapshotDelegate = new EndOperationDelegate(this.OnEndProcessSnapshot);
     592            }
     593            if ((this.onProcessSnapshotCompletedDelegate == null)) {
     594                this.onProcessSnapshotCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnProcessSnapshotCompleted);
     595            }
     596            base.InvokeAsync(this.onBeginProcessSnapshotDelegate, new object[] {
     597                        clientId,
     598                        jobId,
     599                        result,
     600                        percentage,
     601                        exception}, this.onEndProcessSnapshotDelegate, this.onProcessSnapshotCompletedDelegate, userState);
    435602        }
    436603       
     
    484651                        clientId}, this.onEndLogoutDelegate, this.onLogoutCompletedDelegate, userState);
    485652        }
     653       
     654        public HeuristicLab.Hive.Contracts.Response IsJobStillNeeded(long jobId) {
     655            return base.Channel.IsJobStillNeeded(jobId);
     656        }
     657       
     658        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
     659        public System.IAsyncResult BeginIsJobStillNeeded(long jobId, System.AsyncCallback callback, object asyncState) {
     660            return base.Channel.BeginIsJobStillNeeded(jobId, callback, asyncState);
     661        }
     662       
     663        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
     664        public HeuristicLab.Hive.Contracts.Response EndIsJobStillNeeded(System.IAsyncResult result) {
     665            return base.Channel.EndIsJobStillNeeded(result);
     666        }
     667       
     668        private System.IAsyncResult OnBeginIsJobStillNeeded(object[] inValues, System.AsyncCallback callback, object asyncState) {
     669            long jobId = ((long)(inValues[0]));
     670            return this.BeginIsJobStillNeeded(jobId, callback, asyncState);
     671        }
     672       
     673        private object[] OnEndIsJobStillNeeded(System.IAsyncResult result) {
     674            HeuristicLab.Hive.Contracts.Response retVal = this.EndIsJobStillNeeded(result);
     675            return new object[] {
     676                    retVal};
     677        }
     678       
     679        private void OnIsJobStillNeededCompleted(object state) {
     680            if ((this.IsJobStillNeededCompleted != null)) {
     681                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
     682                this.IsJobStillNeededCompleted(this, new IsJobStillNeededCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
     683            }
     684        }
     685       
     686        public void IsJobStillNeededAsync(long jobId) {
     687            this.IsJobStillNeededAsync(jobId, null);
     688        }
     689       
     690        public void IsJobStillNeededAsync(long jobId, object userState) {
     691            if ((this.onBeginIsJobStillNeededDelegate == null)) {
     692                this.onBeginIsJobStillNeededDelegate = new BeginOperationDelegate(this.OnBeginIsJobStillNeeded);
     693            }
     694            if ((this.onEndIsJobStillNeededDelegate == null)) {
     695                this.onEndIsJobStillNeededDelegate = new EndOperationDelegate(this.OnEndIsJobStillNeeded);
     696            }
     697            if ((this.onIsJobStillNeededCompletedDelegate == null)) {
     698                this.onIsJobStillNeededCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnIsJobStillNeededCompleted);
     699            }
     700            base.InvokeAsync(this.onBeginIsJobStillNeededDelegate, new object[] {
     701                        jobId}, this.onEndIsJobStillNeededDelegate, this.onIsJobStillNeededCompletedDelegate, userState);
     702        }
     703       
     704        public HeuristicLab.Hive.Contracts.ResponsePlugin SendPlugins(string[] pluginList) {
     705            return base.Channel.SendPlugins(pluginList);
     706        }
     707       
     708        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
     709        public System.IAsyncResult BeginSendPlugins(string[] pluginList, System.AsyncCallback callback, object asyncState) {
     710            return base.Channel.BeginSendPlugins(pluginList, callback, asyncState);
     711        }
     712       
     713        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
     714        public HeuristicLab.Hive.Contracts.ResponsePlugin EndSendPlugins(System.IAsyncResult result) {
     715            return base.Channel.EndSendPlugins(result);
     716        }
     717       
     718        private System.IAsyncResult OnBeginSendPlugins(object[] inValues, System.AsyncCallback callback, object asyncState) {
     719            string[] pluginList = ((string[])(inValues[0]));
     720            return this.BeginSendPlugins(pluginList, callback, asyncState);
     721        }
     722       
     723        private object[] OnEndSendPlugins(System.IAsyncResult result) {
     724            HeuristicLab.Hive.Contracts.ResponsePlugin retVal = this.EndSendPlugins(result);
     725            return new object[] {
     726                    retVal};
     727        }
     728       
     729        private void OnSendPluginsCompleted(object state) {
     730            if ((this.SendPluginsCompleted != null)) {
     731                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
     732                this.SendPluginsCompleted(this, new SendPluginsCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
     733            }
     734        }
     735       
     736        public void SendPluginsAsync(string[] pluginList) {
     737            this.SendPluginsAsync(pluginList, null);
     738        }
     739       
     740        public void SendPluginsAsync(string[] pluginList, object userState) {
     741            if ((this.onBeginSendPluginsDelegate == null)) {
     742                this.onBeginSendPluginsDelegate = new BeginOperationDelegate(this.OnBeginSendPlugins);
     743            }
     744            if ((this.onEndSendPluginsDelegate == null)) {
     745                this.onEndSendPluginsDelegate = new EndOperationDelegate(this.OnEndSendPlugins);
     746            }
     747            if ((this.onSendPluginsCompletedDelegate == null)) {
     748                this.onSendPluginsCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnSendPluginsCompleted);
     749            }
     750            base.InvokeAsync(this.onBeginSendPluginsDelegate, new object[] {
     751                        pluginList}, this.onEndSendPluginsDelegate, this.onSendPluginsCompletedDelegate, userState);
     752        }
    486753    }
    487754}
  • trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/Reference.svcmap

    r1366 r1379  
    1818  </ClientOptions>
    1919  <MetadataSources>
    20     <MetadataSource Address="net.tcp://10.20.53.2:9000/HiveServer/mex" Protocol="mex" SourceId="1" />
     20    <MetadataSource Address="net.tcp://10.20.53.3:9000/HiveServer/mex" Protocol="mex" SourceId="1" />
    2121  </MetadataSources>
    2222  <Metadata>
    23     <MetadataFile FileName="service1.wsdl" MetadataType="Wsdl" ID="82cfa882-0330-4203-b34c-ea82d152db7d" SourceId="1" SourceUrl="net.tcp://10.20.53.2:9000/HiveServer/mex" />
    24     <MetadataFile FileName="service2.xsd" MetadataType="Schema" ID="11d3bb75-8299-4928-b8dc-d716378ed760" SourceId="1" SourceUrl="net.tcp://10.20.53.2:9000/HiveServer/mex" />
    25     <MetadataFile FileName="service3.xsd" MetadataType="Schema" ID="e023ab8b-7af8-4c99-987d-6639735b1600" SourceId="1" SourceUrl="net.tcp://10.20.53.2:9000/HiveServer/mex" />
    26     <MetadataFile FileName="HeuristicLab.Hive.Contracts.BusinessObjects1.xsd" MetadataType="Schema" ID="a2b9f991-9c94-4b82-8de5-3797a066d2a4" SourceId="1" SourceUrl="net.tcp://10.20.53.2:9000/HiveServer/mex" />
    27     <MetadataFile FileName="HeuristicLab.Hive.Contracts1.xsd" MetadataType="Schema" ID="7d7ae733-1ac7-47bc-8215-a17cba2f7f23" SourceId="1" SourceUrl="net.tcp://10.20.53.2:9000/HiveServer/mex" />
    28     <MetadataFile FileName="Arrays1.xsd" MetadataType="Schema" ID="77920668-a89e-49ed-acc6-98584ea7aefb" SourceId="1" SourceUrl="net.tcp://10.20.53.2:9000/HiveServer/mex" />
    29     <MetadataFile FileName="System1.xsd" MetadataType="Schema" ID="681a5cc3-c407-4ae9-8e77-0b0e8efa299d" SourceId="1" SourceUrl="net.tcp://10.20.53.2:9000/HiveServer/mex" />
     23    <MetadataFile FileName="service1.wsdl" MetadataType="Wsdl" ID="9a3a50f8-3779-4e16-9fef-d8a373f7ff94" SourceId="1" SourceUrl="net.tcp://10.20.53.3:9000/HiveServer/mex" />
     24    <MetadataFile FileName="service2.xsd" MetadataType="Schema" ID="735695ce-6295-4bf1-9d88-11005317d84a" SourceId="1" SourceUrl="net.tcp://10.20.53.3:9000/HiveServer/mex" />
     25    <MetadataFile FileName="service3.xsd" MetadataType="Schema" ID="bd04471f-a95e-4abf-af17-6292f4dc3482" SourceId="1" SourceUrl="net.tcp://10.20.53.3:9000/HiveServer/mex" />
     26    <MetadataFile FileName="HeuristicLab.Hive.Contracts.BusinessObjects1.xsd" MetadataType="Schema" ID="092b1a9a-88d0-4e2b-ac02-0e6580be4547" SourceId="1" SourceUrl="net.tcp://10.20.53.3:9000/HiveServer/mex" />
     27    <MetadataFile FileName="HeuristicLab.DataAccess.xsd" MetadataType="Schema" ID="7a6b32ca-8a1f-4b6a-88e8-8b1aea9167c0" SourceId="1" SourceUrl="net.tcp://10.20.53.3:9000/HiveServer/mex" />
     28    <MetadataFile FileName="HeuristicLab.Hive.Contracts1.xsd" MetadataType="Schema" ID="a0ecfa49-b2b3-4fa0-822f-720f9111893a" SourceId="1" SourceUrl="net.tcp://10.20.53.3:9000/HiveServer/mex" />
     29    <MetadataFile FileName="Arrays.xsd" MetadataType="Schema" ID="c38ef568-759d-4e63-902a-2915442cb7ce" SourceId="1" SourceUrl="net.tcp://10.20.53.3:9000/HiveServer/mex" />
     30    <MetadataFile FileName="System1.xsd" MetadataType="Schema" ID="0eba9d8e-f039-45d9-928b-146e162b1103" SourceId="1" SourceUrl="net.tcp://10.20.53.3:9000/HiveServer/mex" />
    3031  </Metadata>
    3132  <Extensions>
  • trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/configuration.svcinfo

    r1366 r1379  
    33  <behaviors />
    44  <bindings>
    5     <binding digest="System.ServiceModel.Configuration.NetTcpBindingElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data hostNameComparisonMode=&quot;StrongWildcard&quot; listenBacklog=&quot;10&quot; maxBufferSize=&quot;65536&quot; maxConnections=&quot;10&quot; name=&quot;NetTcpBinding_IClientCommunicator&quot; transactionFlow=&quot;false&quot; transactionProtocol=&quot;OleTransactions&quot; transferMode=&quot;Buffered&quot;&gt;&lt;readerQuotas maxArrayLength=&quot;16384&quot; maxBytesPerRead=&quot;4096&quot; maxDepth=&quot;32&quot; maxNameTableCharCount=&quot;16384&quot; maxStringContentLength=&quot;8192&quot; /&gt;&lt;reliableSession enabled=&quot;false&quot; inactivityTimeout=&quot;00:10:00&quot; ordered=&quot;true&quot; /&gt;&lt;security mode=&quot;Transport&quot;&gt;&lt;message clientCredentialType=&quot;Windows&quot; /&gt;&lt;transport clientCredentialType=&quot;Windows&quot; protectionLevel=&quot;EncryptAndSign&quot; /&gt;&lt;/security&gt;&lt;/Data&gt;" bindingType="netTcpBinding" name="NetTcpBinding_IClientCommunicator" />
     5    <binding digest="System.ServiceModel.Configuration.NetTcpBindingElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data hostNameComparisonMode=&quot;StrongWildcard&quot; listenBacklog=&quot;10&quot; maxBufferSize=&quot;65536&quot; maxConnections=&quot;10&quot; name=&quot;NetTcpBinding_IClientCommunicator&quot; transactionFlow=&quot;false&quot; transactionProtocol=&quot;OleTransactions&quot; transferMode=&quot;Buffered&quot;&gt;&lt;readerQuotas maxArrayLength=&quot;16384&quot; maxBytesPerRead=&quot;4096&quot; maxDepth=&quot;32&quot; maxNameTableCharCount=&quot;16384&quot; maxStringContentLength=&quot;8192&quot; /&gt;&lt;reliableSession enabled=&quot;true&quot; inactivityTimeout=&quot;00:10:00&quot; ordered=&quot;true&quot; /&gt;&lt;security mode=&quot;None&quot;&gt;&lt;message clientCredentialType=&quot;Windows&quot; /&gt;&lt;transport clientCredentialType=&quot;Windows&quot; protectionLevel=&quot;EncryptAndSign&quot; /&gt;&lt;/security&gt;&lt;/Data&gt;" bindingType="netTcpBinding" name="NetTcpBinding_IClientCommunicator" />
    66  </bindings>
    77  <endpoints>
    8     <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.tcp://10.20.53.2:9000/HiveServer/ClientCommunicator&quot; binding=&quot;netTcpBinding&quot; bindingConfiguration=&quot;NetTcpBinding_IClientCommunicator&quot; contract=&quot;ServerService.IClientCommunicator&quot; name=&quot;NetTcpBinding_IClientCommunicator&quot;&gt;&lt;identity&gt;&lt;userPrincipalName value=&quot;mse08023@fhs-hagenberg.ac.at&quot; /&gt;&lt;/identity&gt;&lt;/Data&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.tcp://10.20.53.2:9000/HiveServer/ClientCommunicator&quot; binding=&quot;netTcpBinding&quot; bindingConfiguration=&quot;NetTcpBinding_IClientCommunicator&quot; contract=&quot;ServerService.IClientCommunicator&quot; name=&quot;NetTcpBinding_IClientCommunicator&quot;&gt;&lt;identity&gt;&lt;userPrincipalName value=&quot;mse08023@fhs-hagenberg.ac.at&quot; /&gt;&lt;/identity&gt;&lt;/Data&gt;" contractName="ServerService.IClientCommunicator" name="NetTcpBinding_IClientCommunicator" />
     8    <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.tcp://10.20.53.3:9000/HiveServer/ClientCommunicator&quot; binding=&quot;netTcpBinding&quot; bindingConfiguration=&quot;NetTcpBinding_IClientCommunicator&quot; contract=&quot;ServerService.IClientCommunicator&quot; name=&quot;NetTcpBinding_IClientCommunicator&quot; /&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.tcp://10.20.53.3:9000/HiveServer/ClientCommunicator&quot; binding=&quot;netTcpBinding&quot; bindingConfiguration=&quot;NetTcpBinding_IClientCommunicator&quot; contract=&quot;ServerService.IClientCommunicator&quot; name=&quot;NetTcpBinding_IClientCommunicator&quot; /&gt;" contractName="ServerService.IClientCommunicator" name="NetTcpBinding_IClientCommunicator" />
    99  </endpoints>
    1010</configurationSnapshot>
  • trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/configuration91.svcinfo

    r1366 r1379  
    11<?xml version="1.0" encoding="utf-8"?>
    2 <SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="Rqe47epOB9kn3CQ5FcfRHLaniGg=">
     2<SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="Nwi0N5LZnU7QQwSvbAcjLVRBz9w=">
    33  <bindingConfigurations>
    44    <bindingConfiguration bindingType="netTcpBinding" name="NetTcpBinding_IClientCommunicator">
     
    7777        </property>
    7878        <property path="/reliableSession/enabled" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    79           <serializedValue>False</serializedValue>
     79          <serializedValue>True</serializedValue>
    8080        </property>
    8181        <property path="/security" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.NetTcpSecurityElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     
    8383        </property>
    8484        <property path="/security/mode" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.SecurityMode, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    85           <serializedValue>Transport</serializedValue>
     85          <serializedValue>None</serializedValue>
    8686        </property>
    8787        <property path="/security/transport" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.TcpTransportSecurityElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     
    107107  </bindingConfigurations>
    108108  <endpoints>
    109     <endpoint name="NetTcpBinding_IClientCommunicator" contract="ServerService.IClientCommunicator" bindingType="netTcpBinding" address="net.tcp://10.20.53.2:9000/HiveServer/ClientCommunicator" bindingConfiguration="NetTcpBinding_IClientCommunicator">
     109    <endpoint name="NetTcpBinding_IClientCommunicator" contract="ServerService.IClientCommunicator" bindingType="netTcpBinding" address="net.tcp://10.20.53.3:9000/HiveServer/ClientCommunicator" bindingConfiguration="NetTcpBinding_IClientCommunicator">
    110110      <properties>
    111111        <property path="/address" isComplexType="false" isExplicitlyDefined="true" clrType="System.Uri, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    112           <serializedValue>net.tcp://10.20.53.2:9000/HiveServer/ClientCommunicator</serializedValue>
     112          <serializedValue>net.tcp://10.20.53.3:9000/HiveServer/ClientCommunicator</serializedValue>
    113113        </property>
    114114        <property path="/behaviorConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     
    136136          <serializedValue>System.ServiceModel.Configuration.UserPrincipalNameElement</serializedValue>
    137137        </property>
    138         <property path="/identity/userPrincipalName/value" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    139           <serializedValue>mse08023@fhs-hagenberg.ac.at</serializedValue>
     138        <property path="/identity/userPrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     139          <serializedValue />
    140140        </property>
    141141        <property path="/identity/servicePrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.ServicePrincipalNameElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  • trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/service1.wsdl

    r1366 r1379  
    44    <wsp:ExactlyOne>
    55      <wsp:All>
     6        <wsrm:RMAssertion xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm/policy">
     7          <wsrm:InactivityTimeout Milliseconds="600000">
     8          </wsrm:InactivityTimeout>
     9          <wsrm:AcknowledgementInterval Milliseconds="200">
     10          </wsrm:AcknowledgementInterval>
     11        </wsrm:RMAssertion>
    612        <msb:BinaryEncoding xmlns:msb="http://schemas.microsoft.com/ws/06/2004/mspolicy/netbinary1">
    713        </msb:BinaryEncoding>
    8         <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
    9           <wsp:Policy>
    10             <sp:TransportToken>
    11               <wsp:Policy>
    12                 <msf:WindowsTransportSecurity xmlns:msf="http://schemas.microsoft.com/ws/2006/05/framing/policy">
    13                   <msf:ProtectionLevel>EncryptAndSign</msf:ProtectionLevel>
    14                 </msf:WindowsTransportSecurity>
    15               </wsp:Policy>
    16             </sp:TransportToken>
    17             <sp:AlgorithmSuite>
    18               <wsp:Policy>
    19                 <sp:Basic256>
    20                 </sp:Basic256>
    21               </wsp:Policy>
    22             </sp:AlgorithmSuite>
    23             <sp:Layout>
    24               <wsp:Policy>
    25                 <sp:Strict>
    26                 </sp:Strict>
    27               </wsp:Policy>
    28             </sp:Layout>
    29           </wsp:Policy>
    30         </sp:TransportBinding>
    3114        <wsaw:UsingAddressing>
    3215        </wsaw:UsingAddressing>
     
    3922      <xsd:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
    4023      <xsd:import namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts.BusinessObjects" />
     24      <xsd:import namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.DataAccess" />
    4125      <xsd:import namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" />
    4226      <xsd:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
     
    6246    <wsdl:part name="parameters" element="tns:SendJobResponse" />
    6347  </wsdl:message>
    64   <wsdl:message name="IClientCommunicator_ProcessJobResult_InputMessage">
    65     <wsdl:part name="parameters" element="tns:ProcessJobResult" />
     48  <wsdl:message name="IClientCommunicator_StoreFinishedJobResult_InputMessage">
     49    <wsdl:part name="parameters" element="tns:StoreFinishedJobResult" />
    6650  </wsdl:message>
    67   <wsdl:message name="IClientCommunicator_ProcessJobResult_OutputMessage">
    68     <wsdl:part name="parameters" element="tns:ProcessJobResultResponse" />
     51  <wsdl:message name="IClientCommunicator_StoreFinishedJobResult_OutputMessage">
     52    <wsdl:part name="parameters" element="tns:StoreFinishedJobResultResponse" />
     53  </wsdl:message>
     54  <wsdl:message name="IClientCommunicator_ProcessSnapshot_InputMessage">
     55    <wsdl:part name="parameters" element="tns:ProcessSnapshot" />
     56  </wsdl:message>
     57  <wsdl:message name="IClientCommunicator_ProcessSnapshot_OutputMessage">
     58    <wsdl:part name="parameters" element="tns:ProcessSnapshotResponse" />
    6959  </wsdl:message>
    7060  <wsdl:message name="IClientCommunicator_Logout_InputMessage">
     
    7363  <wsdl:message name="IClientCommunicator_Logout_OutputMessage">
    7464    <wsdl:part name="parameters" element="tns:LogoutResponse" />
     65  </wsdl:message>
     66  <wsdl:message name="IClientCommunicator_IsJobStillNeeded_InputMessage">
     67    <wsdl:part name="parameters" element="tns:IsJobStillNeeded" />
     68  </wsdl:message>
     69  <wsdl:message name="IClientCommunicator_IsJobStillNeeded_OutputMessage">
     70    <wsdl:part name="parameters" element="tns:IsJobStillNeededResponse" />
     71  </wsdl:message>
     72  <wsdl:message name="IClientCommunicator_SendPlugins_InputMessage">
     73    <wsdl:part name="parameters" element="tns:SendPlugins" />
     74  </wsdl:message>
     75  <wsdl:message name="IClientCommunicator_SendPlugins_OutputMessage">
     76    <wsdl:part name="parameters" element="tns:SendPluginsResponse" />
    7577  </wsdl:message>
    7678  <wsdl:portType name="IClientCommunicator">
     
    8789      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/SendJobResponse" message="tns:IClientCommunicator_SendJob_OutputMessage" />
    8890    </wsdl:operation>
    89     <wsdl:operation name="ProcessJobResult">
    90       <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/ProcessJobResult" message="tns:IClientCommunicator_ProcessJobResult_InputMessage" />
    91       <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/ProcessJobResultResponse" message="tns:IClientCommunicator_ProcessJobResult_OutputMessage" />
     91    <wsdl:operation name="StoreFinishedJobResult">
     92      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/StoreFinishedJobResult" message="tns:IClientCommunicator_StoreFinishedJobResult_InputMessage" />
     93      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/StoreFinishedJobResultResponse" message="tns:IClientCommunicator_StoreFinishedJobResult_OutputMessage" />
     94    </wsdl:operation>
     95    <wsdl:operation name="ProcessSnapshot">
     96      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/ProcessSnapshot" message="tns:IClientCommunicator_ProcessSnapshot_InputMessage" />
     97      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/ProcessSnapshotResponse" message="tns:IClientCommunicator_ProcessSnapshot_OutputMessage" />
    9298    </wsdl:operation>
    9399    <wsdl:operation name="Logout">
    94100      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/Logout" message="tns:IClientCommunicator_Logout_InputMessage" />
    95101      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/LogoutResponse" message="tns:IClientCommunicator_Logout_OutputMessage" />
     102    </wsdl:operation>
     103    <wsdl:operation name="IsJobStillNeeded">
     104      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/IsJobStillNeeded" message="tns:IClientCommunicator_IsJobStillNeeded_InputMessage" />
     105      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/IsJobStillNeededResponse" message="tns:IClientCommunicator_IsJobStillNeeded_OutputMessage" />
     106    </wsdl:operation>
     107    <wsdl:operation name="SendPlugins">
     108      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/SendPlugins" message="tns:IClientCommunicator_SendPlugins_InputMessage" />
     109      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/SendPluginsResponse" message="tns:IClientCommunicator_SendPlugins_OutputMessage" />
    96110    </wsdl:operation>
    97111  </wsdl:portType>
     
    127141      </wsdl:output>
    128142    </wsdl:operation>
    129     <wsdl:operation name="ProcessJobResult">
    130       <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/ProcessJobResult" style="document" />
     143    <wsdl:operation name="StoreFinishedJobResult">
     144      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/StoreFinishedJobResult" style="document" />
     145      <wsdl:input>
     146        <soap12:body use="literal" />
     147      </wsdl:input>
     148      <wsdl:output>
     149        <soap12:body use="literal" />
     150      </wsdl:output>
     151    </wsdl:operation>
     152    <wsdl:operation name="ProcessSnapshot">
     153      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/ProcessSnapshot" style="document" />
    131154      <wsdl:input>
    132155        <soap12:body use="literal" />
     
    145168      </wsdl:output>
    146169    </wsdl:operation>
     170    <wsdl:operation name="IsJobStillNeeded">
     171      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/IsJobStillNeeded" style="document" />
     172      <wsdl:input>
     173        <soap12:body use="literal" />
     174      </wsdl:input>
     175      <wsdl:output>
     176        <soap12:body use="literal" />
     177      </wsdl:output>
     178    </wsdl:operation>
     179    <wsdl:operation name="SendPlugins">
     180      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/SendPlugins" style="document" />
     181      <wsdl:input>
     182        <soap12:body use="literal" />
     183      </wsdl:input>
     184      <wsdl:output>
     185        <soap12:body use="literal" />
     186      </wsdl:output>
     187    </wsdl:operation>
    147188  </wsdl:binding>
    148189  <wsdl:service name="ClientFacade">
    149190    <wsdl:port name="NetTcpBinding_IClientCommunicator" binding="tns:NetTcpBinding_IClientCommunicator">
    150       <soap12:address location="net.tcp://10.20.53.2:9000/HiveServer/ClientCommunicator" />
     191      <soap12:address location="net.tcp://10.20.53.3:9000/HiveServer/ClientCommunicator" />
    151192      <wsa10:EndpointReference>
    152         <wsa10:Address>net.tcp://10.20.53.2:9000/HiveServer/ClientCommunicator</wsa10:Address>
    153         <Identity xmlns="http://schemas.xmlsoap.org/ws/2006/02/addressingidentity">
    154           <Upn>mse08023@fhs-hagenberg.ac.at</Upn>
    155         </Identity>
     193        <wsa10:Address>net.tcp://10.20.53.3:9000/HiveServer/ClientCommunicator</wsa10:Address>
    156194      </wsa10:EndpointReference>
    157195    </wsdl:port>
  • trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/service2.xsd

    r1366 r1379  
    55  <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
    66  <xs:import namespace="http://schemas.datacontract.org/2004/07/System" />
     7  <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
    78  <xs:element name="Login">
    89    <xs:complexType>
     
    4748    </xs:complexType>
    4849  </xs:element>
    49   <xs:element name="ProcessJobResult">
     50  <xs:element name="StoreFinishedJobResult">
    5051    <xs:complexType>
    5152      <xs:sequence>
     
    5556        <xs:element minOccurs="0" name="percentage" type="xs:double" />
    5657        <xs:element xmlns:q8="http://schemas.datacontract.org/2004/07/System" minOccurs="0" name="exception" nillable="true" type="q8:Exception" />
    57         <xs:element minOccurs="0" name="finished" type="xs:boolean" />
    5858      </xs:sequence>
    5959    </xs:complexType>
    6060  </xs:element>
    61   <xs:element name="ProcessJobResultResponse">
     61  <xs:element name="StoreFinishedJobResultResponse">
    6262    <xs:complexType>
    6363      <xs:sequence>
    64         <xs:element xmlns:q9="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" minOccurs="0" name="ProcessJobResultResult" nillable="true" type="q9:ResponseResultReceived" />
     64        <xs:element xmlns:q9="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" minOccurs="0" name="StoreFinishedJobResultResult" nillable="true" type="q9:ResponseResultReceived" />
     65      </xs:sequence>
     66    </xs:complexType>
     67  </xs:element>
     68  <xs:element name="ProcessSnapshot">
     69    <xs:complexType>
     70      <xs:sequence>
     71        <xs:element xmlns:q10="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="clientId" type="q10:guid" />
     72        <xs:element minOccurs="0" name="jobId" type="xs:long" />
     73        <xs:element minOccurs="0" name="result" nillable="true" type="xs:base64Binary" />
     74        <xs:element minOccurs="0" name="percentage" type="xs:double" />
     75        <xs:element xmlns:q11="http://schemas.datacontract.org/2004/07/System" minOccurs="0" name="exception" nillable="true" type="q11:Exception" />
     76      </xs:sequence>
     77    </xs:complexType>
     78  </xs:element>
     79  <xs:element name="ProcessSnapshotResponse">
     80    <xs:complexType>
     81      <xs:sequence>
     82        <xs:element xmlns:q12="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" minOccurs="0" name="ProcessSnapshotResult" nillable="true" type="q12:ResponseResultReceived" />
    6583      </xs:sequence>
    6684    </xs:complexType>
     
    6987    <xs:complexType>
    7088      <xs:sequence>
    71         <xs:element xmlns:q10="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="clientId" type="q10:guid" />
     89        <xs:element xmlns:q13="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="clientId" type="q13:guid" />
    7290      </xs:sequence>
    7391    </xs:complexType>
     
    7694    <xs:complexType>
    7795      <xs:sequence>
    78         <xs:element xmlns:q11="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" minOccurs="0" name="LogoutResult" nillable="true" type="q11:Response" />
     96        <xs:element xmlns:q14="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" minOccurs="0" name="LogoutResult" nillable="true" type="q14:Response" />
     97      </xs:sequence>
     98    </xs:complexType>
     99  </xs:element>
     100  <xs:element name="IsJobStillNeeded">
     101    <xs:complexType>
     102      <xs:sequence>
     103        <xs:element minOccurs="0" name="jobId" type="xs:long" />
     104      </xs:sequence>
     105    </xs:complexType>
     106  </xs:element>
     107  <xs:element name="IsJobStillNeededResponse">
     108    <xs:complexType>
     109      <xs:sequence>
     110        <xs:element xmlns:q15="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" minOccurs="0" name="IsJobStillNeededResult" nillable="true" type="q15:Response" />
     111      </xs:sequence>
     112    </xs:complexType>
     113  </xs:element>
     114  <xs:element name="SendPlugins">
     115    <xs:complexType>
     116      <xs:sequence>
     117        <xs:element xmlns:q16="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="pluginList" nillable="true" type="q16:ArrayOfstring" />
     118      </xs:sequence>
     119    </xs:complexType>
     120  </xs:element>
     121  <xs:element name="SendPluginsResponse">
     122    <xs:complexType>
     123      <xs:sequence>
     124        <xs:element xmlns:q17="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" minOccurs="0" name="SendPluginsResult" nillable="true" type="q17:ResponsePlugin" />
    79125      </xs:sequence>
    80126    </xs:complexType>
  • trunk/sources/HeuristicLab.Hive.Client.Communication/WcfService.cs

    r1371 r1379  
    8080        proxy.LoginCompleted += new EventHandler<LoginCompletedEventArgs>(proxy_LoginCompleted);
    8181        proxy.SendJobCompleted += new EventHandler<SendJobCompletedEventArgs>(proxy_SendJobCompleted);
    82         proxy.ProcessJobResultCompleted += new EventHandler<ProcessJobResultCompletedEventArgs>(proxy_ProcessJobResultCompleted);
     82        proxy.StoreFinishedJobResultCompleted += new EventHandler<StoreFinishedJobResultCompletedEventArgs>(proxy_StoreFinishedJobResultCompleted);
     83        proxy.ProcessSnapshotCompleted += new EventHandler<ProcessSnapshotCompletedEventArgs>(proxy_ProcessSnapshotCompleted);
    8384        proxy.ProcessHeartBeatCompleted += new EventHandler<ProcessHeartBeatCompletedEventArgs>(proxy_ProcessHeartBeatCompleted);
    8485        proxy.Open();
     
    9798      }
    9899    }
     100
     101
    99102
    100103    /// <summary>
     
    184187    /// </summary>
    185188    #region SendJobResults
    186     public event System.EventHandler<ProcessJobResultCompletedEventArgs> ProcessJobResultCompleted;
    187     public void ProcessJobResultAsync(Guid clientId, long jobId, byte[] result, double percentage, Exception exception, bool finished) {
     189    public event System.EventHandler<StoreFinishedJobResultCompletedEventArgs> StoreFinishedJobResultCompleted;
     190    public void StoreFinishedJobResultAsync(Guid clientId, long jobId, byte[] result, double percentage, Exception exception, bool finished) {
    188191      if (ConnState == NetworkEnum.WcfConnState.Loggedin)
    189         proxy.ProcessJobResultAsync(clientId, jobId, result, percentage, exception, finished);
    190     }
    191     private void proxy_ProcessJobResultCompleted(object sender, ProcessJobResultCompletedEventArgs e) {
    192       if (e.Error == null)
    193         ProcessJobResultCompleted(sender, e);
    194       else
    195         HandleNetworkError(e.Error);
    196     }
    197 
     192        proxy.StoreFinishedJobResultAsync(clientId, jobId, result, percentage, exception, finished);
     193    }
     194    private void proxy_StoreFinishedJobResultCompleted(object sender, StoreFinishedJobResultCompletedEventArgs e) {
     195      if (e.Error == null)
     196        StoreFinishedJobResultCompleted(sender, e);
     197      else
     198        HandleNetworkError(e.Error);
     199    }
     200
     201    #endregion
     202
     203    #region Processsnapshots
     204    public event System.EventHandler<ProcessSnapshotCompletedEventArgs> ProcessSnapshotCompleted;
     205    public void ProcessSnapshotAsync(Guid clientId, long jobId, byte[] result, double percentage, Exception exception, bool finished) {
     206      if(ConnState == NetworkEnum.WcfConnState.Loggedin)
     207        proxy.ProcessSnapshotAsync(clientId, jobId, result, percentage, exception);
     208    }
     209    void proxy_ProcessSnapshotCompleted(object sender, ProcessSnapshotCompletedEventArgs e) {
     210      if (e.Error == null)
     211        ProcessSnapshotCompleted(sender, e);
     212      else
     213        HandleNetworkError(e.Error);
     214    }   
     215   
    198216    #endregion
    199217
     
    221239    /// Send back finished and Stored Job Results
    222240    /// </summary>
    223     #region SendJobResults
    224     public event System.EventHandler<ProcessJobResultCompletedEventArgs> ProcessStoredJobResultCompleted;
     241    /*#region SendJobResults
     242    public event System.EventHandler<StoreFinishedJobResultCompletedEventArgs> ProcessStoredJobResultCompleted;
    225243    public void ProcessStoredJobResultAsync(Guid clientId, long jobId, byte[] result, double percentage, Exception exception, bool finished) {
    226244      if (ConnState == NetworkEnum.WcfConnState.Loggedin)
     
    228246        proxy.ProcessJobResultAsync(clientId, jobId, result, percentage, exception, finished);
    229247    } 
    230     #endregion
     248    #endregion  */
    231249
    232250    public ResponseResultReceived SendStoredJobResultsSync(Guid clientId, long jobId, byte[] result, double percentage, Exception exception, bool finished) {
    233       return proxy.ProcessJobResult(clientId, jobId, result, percentage, exception, finished);
     251      return proxy.StoreFinishedJobResult(clientId, jobId, result, percentage, exception);
    234252    }
    235253  }
  • trunk/sources/HeuristicLab.Hive.Client.Communication/app.config

    r1366 r1379  
    1313                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
    1414                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
    15                         enabled="false" />
    16                     <security mode="Transport">
     15                        enabled="true" />
     16                    <security mode="None">
    1717                        <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
    1818                        <message clientCredentialType="Windows" />
     
    2222        </bindings>
    2323        <client>
    24             <endpoint address="net.tcp://10.20.53.2:9000/HiveServer/ClientCommunicator"
     24            <endpoint address="net.tcp://10.20.53.3:9000/HiveServer/ClientCommunicator"
    2525                binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IClientCommunicator"
    26                 contract="ServerService.IClientCommunicator" name="NetTcpBinding_IClientCommunicator">
    27                 <identity>
    28                     <userPrincipalName value="mse08023@fhs-hagenberg.ac.at" />
    29                 </identity>
    30             </endpoint>
     26                contract="ServerService.IClientCommunicator" name="NetTcpBinding_IClientCommunicator" />
    3127        </client>
    3228    </system.serviceModel>
  • trunk/sources/HeuristicLab.Hive.Client.Core/ClientConsoleService/ClientConsoleCommunicator.cs

    r1132 r1379  
    1313    #region IClientConsoleCommunicator Members
    1414
    15     public StatusCommons GetStatusInfos() {
    16       lock (Core.Locker) {
     15    public StatusCommons GetStatusInfos() {     
    1716        return ConfigManager.Instance.GetStatusForClientConsole();
    18       }
    1917    }
    2018
  • trunk/sources/HeuristicLab.Hive.Client.Core/ConfigurationManager/ConfigManager.cs

    r1132 r1379  
    100100    /// <returns></returns>
    101101    public StatusCommons GetStatusForClientConsole() {
     102      //Todo: Locking
    102103      StatusCommons st = new StatusCommons();
    103104      st.ClientGuid = hardwareInfo.ClientId;
     
    113114      st.Jobs = new List<JobStatus>();
    114115
    115       foreach (KeyValuePair<long, Executor> kvp in engines) {
    116         Executor e = kvp.Value;
    117         st.Jobs.Add(new JobStatus { JobId = e.JobId, Progress = e.Progress, Since = e.CreationTime });
     116      lock (engines) {
     117        foreach (KeyValuePair<long, Executor> kvp in engines) {
     118          Executor e = kvp.Value;
     119          st.Jobs.Add(new JobStatus { JobId = e.JobId, Progress = e.Progress, Since = e.CreationTime });
     120        }
    118121      }
    119122      return st;     
     
    123126      Dictionary<long,double> prog = new Dictionary<long,double>();
    124127      Dictionary<long, Executor> engines = Core.GetExecutionEngines();
    125       foreach (KeyValuePair<long, Executor> kvp in engines) {
    126         Executor e = kvp.Value;
    127         prog[e.JobId] = e.Progress;
     128      lock (engines) {
     129        foreach (KeyValuePair<long, Executor> kvp in engines) {
     130          Executor e = kvp.Value;
     131          prog[e.JobId] = e.Progress;
     132        }
    128133      }
    129134      return prog;
  • trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs

    r1371 r1379  
    5050  /// The core component of the Hive Client
    5151  /// </summary>
    52   public class Core: MarshalByRefObject {
    53     //Todo: Ask wagner
    54     public static Object Locker { get; set; }   
     52  public class Core: MarshalByRefObject {       
    5553    public static bool abortRequested { get; set; }
    5654       
     
    6563    /// Main Method for the client
    6664    /// </summary>
    67     public void Start() {
    68       Core.Locker = new Object();
     65    public void Start() {     
    6966      abortRequested = false;
    7067
     
    7976      wcfService = WcfService.Instance;
    8077      wcfService.LoginCompleted += new EventHandler<LoginCompletedEventArgs>(wcfService_LoginCompleted);
    81       wcfService.SendJobCompleted += new EventHandler<SendJobCompletedEventArgs>(wcfService_PullJobCompleted);
    82       wcfService.ProcessJobResultCompleted += new EventHandler<ProcessJobResultCompletedEventArgs>(wcfService_SendJobResultCompleted);
     78      wcfService.SendJobCompleted += new EventHandler<SendJobCompletedEventArgs>(wcfService_SendJobCompleted);
     79      wcfService.StoreFinishedJobResultCompleted += new EventHandler<StoreFinishedJobResultCompletedEventArgs>(wcfService_StoreFinishedJobResultCompleted);
     80      wcfService.ProcessSnapshotCompleted += new EventHandler<ProcessSnapshotCompletedEventArgs>(wcfService_ProcessSnapshotCompleted);
    8381      wcfService.ConnectionRestored += new EventHandler(wcfService_ConnectionRestored);
    8482      wcfService.ServerChanged += new EventHandler(wcfService_ServerChanged);
     
    105103        DetermineAction(container);
    106104      }
    107     }
     105    }   
    108106
    109107    /// <summary>
     
    127125        //Snapshot is ready and can be sent back to the Server
    128126        case MessageContainer.MessageType.SnapshotReady:
    129           ThreadPool.QueueUserWorkItem(new WaitCallback(GetSnapshot), container.JobId);
    130           //Thread ssr = new Thread(new ParameterizedThreadStart(GetSnapshot));
    131           //ssr.Start(container.JobId);         
     127          ThreadPool.QueueUserWorkItem(new WaitCallback(GetSnapshot), container.JobId);         
    132128          break;
    133129        //Pull a Job from the Server
     
    137133        //A Job has finished and can be sent back to the server
    138134        case MessageContainer.MessageType.FinishedJob:
    139           ThreadPool.QueueUserWorkItem(new WaitCallback(GetFinishedJob), container.JobId);
    140           //Thread finThread = new Thread(new ParameterizedThreadStart(GetFinishedJob));
    141           //finThread.Start(container.JobId);         
     135          ThreadPool.QueueUserWorkItem(new WaitCallback(GetFinishedJob), container.JobId);         
    142136          break;     
    143137        //Hard shutdown of the client
     
    158152
    159153        if (WcfService.Instance.ConnState == NetworkEnum.WcfConnState.Loggedin) {
    160           wcfService.ProcessJobResultAsync(ConfigManager.Instance.GetClientInfo().ClientId,
     154          wcfService.StoreFinishedJobResultAsync(ConfigManager.Instance.GetClientInfo().ClientId,
    161155            jId,
    162156            sJob,
     
    166160        } else {         
    167161          JobStorageManager.PersistObjectToDisc(wcfService.ServerIP, wcfService.ServerPort, jId, sJob);
    168           lock (Core.Locker) {
     162          lock (engines) {
    169163            AppDomain.Unload(appDomains[jId]);
    170164            appDomains.Remove(jId);
     
    182176      long jId = (long)jobId;
    183177      byte[] obj = engines[jId].GetSnapshot();
    184       wcfService.ProcessJobResultAsync(ConfigManager.Instance.GetClientInfo().ClientId,
     178      wcfService.ProcessSnapshotAsync(ConfigManager.Instance.GetClientInfo().ClientId,
    185179        jId,
    186180        obj,
     
    202196    }   
    203197
    204     void wcfService_PullJobCompleted(object sender, SendJobCompletedEventArgs e) {
     198    void wcfService_SendJobCompleted(object sender, SendJobCompletedEventArgs e) {
    205199      if (e.Result.StatusMessage != ApplicationConstants.RESPONSE_COMMUNICATOR_NO_JOBS_LEFT) {
    206200        bool sandboxed = true;
     
    209203        AppDomain appDomain = PluginManager.Manager.CreateAndInitAppDomainWithSandbox(e.Result.Job.Id.ToString(), sandboxed, typeof(TestJob));
    210204        appDomain.UnhandledException += new UnhandledExceptionEventHandler(appDomain_UnhandledException);
    211         lock (Locker) {                   
     205        lock (engines) {                   
    212206          if (!jobs.ContainsKey(e.Result.Job.Id)) {
    213207            jobs.Add(e.Result.Job.Id, e.Result.Job);
     
    228222    }
    229223   
    230     //Todo: Seperate this method into 2: Finished jobs and Snapshots
    231     void wcfService_SendJobResultCompleted(object sender, ProcessJobResultCompletedEventArgs e) {
     224
     225    void wcfService_StoreFinishedJobResultCompleted(object sender, StoreFinishedJobResultCompletedEventArgs e) {
    232226      if (e.Result.Success) {       
    233         lock (Locker) {
     227        lock(engines) {       
    234228          //if the engine is running again -> we sent an snapshot. Otherwise the job was finished
    235229          //this method has a risk concerning race conditions.
    236230          //better expand the sendjobresultcompltedeventargs with a boolean "snapshot?" flag
    237           if (e.Result.finished == false) {
    238             Logging.Instance.Info(this.ToString(), "Snapshot for Job " + e.Result.JobId + " transmitted");
    239           } else {
    240             AppDomain.Unload(appDomains[e.Result.JobId]);
    241             appDomains.Remove(e.Result.JobId);
    242             engines.Remove(e.Result.JobId);
    243             jobs.Remove(e.Result.JobId);
    244             ClientStatusInfo.JobsProcessed++;
    245             Debug.WriteLine("ProcessedJobs to:" + ClientStatusInfo.JobsProcessed);
    246           }
     231          AppDomain.Unload(appDomains[e.Result.JobId]);
     232          appDomains.Remove(e.Result.JobId);
     233          engines.Remove(e.Result.JobId);
     234          jobs.Remove(e.Result.JobId);
     235          ClientStatusInfo.JobsProcessed++;
     236          Debug.WriteLine("ProcessedJobs to:" + ClientStatusInfo.JobsProcessed);
    247237        }       
    248238      } else {       
     
    251241    }
    252242
     243    void wcfService_ProcessSnapshotCompleted(object sender, ProcessSnapshotCompletedEventArgs e) {
     244      Logging.Instance.Info(this.ToString(), "Snapshot " + e.Result.JobId + " has been transmitted according to plan");
     245    }
     246
    253247    //Todo: First stop all threads, then terminate
    254248    void wcfService_ServerChanged(object sender, EventArgs e) {
    255249      Logging.Instance.Info(this.ToString(), "ServerChanged has been called");
    256       lock (Locker) {
     250      lock (engines) {
    257251        foreach (KeyValuePair<long, AppDomain> entries in appDomains)
    258252          AppDomain.Unload(appDomains[entries.Key]);
  • trunk/sources/HeuristicLab.Hive.Client.Core/Heartbeat.cs

    r1368 r1379  
    6161      heartbeatTimer.Elapsed += new ElapsedEventHandler(heartbeatTimer_Elapsed);
    6262      wcfService = WcfService.Instance;
    63       wcfService.SendHeartBeatCompleted += new EventHandler<ProcessHeartBeatCompletedEventArgs>(wcfService_SendHeartBeatCompleted);
     63      wcfService.SendHeartBeatCompleted += new EventHandler<ProcessHeartBeatCompletedEventArgs>(wcfService_ProcessHeartBeatCompleted);
    6464      heartbeatTimer.Start();
    6565    }
     
    7575      // Todo: remove tempfix for free cores.
    7676
    77       HeartBeatData heartBeatData = new HeartBeatData {
     77      PerformanceCounter counter = new PerformanceCounter("Memory", "Available Bytes", true);
     78      int mb = (int)(counter.NextValue() / 1024 / 1024);
     79
     80
     81        HeartBeatData heartBeatData = new HeartBeatData {
    7882        ClientId = info.ClientId,
    7983        FreeCores = info.NrOfCores - (ClientStatusInfo.JobsFetched - ClientStatusInfo.JobsProcessed),
    80         FreeMemory = 1000,
     84        FreeMemory = mb,
    8185        JobProgress = ConfigManager.Instance.GetProgressOfAllJobs()
    8286      };
     
    8892    }
    8993
    90     void wcfService_SendHeartBeatCompleted(object sender, ProcessHeartBeatCompletedEventArgs e) {
     94    void wcfService_ProcessHeartBeatCompleted(object sender, ProcessHeartBeatCompletedEventArgs e) {
    9195      System.Diagnostics.Debug.WriteLine("Heartbeat received! ");
    9296      e.Result.ActionRequest.ForEach(mc => MessageQueue.GetInstance().AddMessage(mc));
  • trunk/sources/HeuristicLab.Hive.Client.Core/JobStorage/JobStorageManager.cs

    r1371 r1379  
    2121
    2222      JobStorageInfo info = new JobStorageInfo { JobID = jobId, ServerIP = serverIP, ServerPort = serverPort, TimeFinished = DateTime.Now };
    23      
    24       //Todo: Filestream won't be closed if exception occurs
     23           
     24      Stream jobstream = null;
    2525      try {
    26         Stream jobstream = File.Create(path + filename + ".dat");
     26        jobstream = File.Create(path + filename + ".dat");
    2727        jobstream.Write(job, 0, job.Length);
    2828        storedJobsList.Add(info);
    29         jobstream.Close();
    3029        Logging.Instance.Info("JobStorageManager", "Job " + info.JobID + " stored on the harddisc");
    3130      }
    3231      catch (Exception e) {
    3332        Logging.Instance.Error("JobStorageManager", "Exception: ", e);
    34       }       
     33      }
     34      finally {
     35        if(jobstream!=null)
     36          jobstream.Close();
     37      }
    3538    }
    3639
Note: See TracChangeset for help on using the changeset viewer.