Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Calendar/3.3/Properties/AssemblyInfo.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Calendar/3.3/Properties/AssemblyInfo.cs	(revision 4337)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Calendar/3.3/Properties/AssemblyInfo.cs	(revision 4338)
@@ -58,3 +58,3 @@
 // [assembly: AssemblyVersion("1.0.*")]
 [assembly: AssemblyVersion("3.3.0.0")]
-[assembly: AssemblyFileVersion("3.3.0.4333")]
+[assembly: AssemblyFileVersion("3.3.0.4337")]
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/app.config
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/app.config	(revision 4337)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/app.config	(revision 4338)
@@ -3,5 +3,5 @@
   <system.diagnostics>
     <sources>
-      <source name="Warnings" switchValue="Warning, ActivityTracing">
+      <source name="System.ServiceModel.MessageLogging" switchValue="Verbose,ActivityTracing">
         <listeners>
           <add type="System.Diagnostics.DefaultTraceListener" name="Default">
@@ -92,10 +92,8 @@
         <endpoint address="" binding="wsHttpBinding" bindingConfiguration="HiveServerHttpBinding"
           name="SlaveHttpEndpoint" contract="HeuristicLab.Hive.Contracts.Interfaces.ISlaveFacade" />
-        <endpoint address="mex" binding="mexHttpBinding" name="SlaveMexEndpoint" bindingConfiguration=""
-          contract="HeuristicLab.Hive.Contracts.Interfaces.ISlaveFacade" />
+        <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration=""
+          name="SlaveMexEndpoint" contract="IMetadataExchange" />
         <endpoint binding="netTcpBinding" bindingConfiguration="TcpStreamedBinding"
           name="SlaveTcpStreamedEndpoint" contract="HeuristicLab.Hive.Contracts.Interfaces.ISlaveFacade" />
-        <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration=""
-          name="SlaveTcpMexEndpoint" contract="IMetadataExchange" />
         <host>
           <baseAddresses>
@@ -109,5 +107,5 @@
           name="ServerConsoleHttpEndpoint" contract="HeuristicLab.Hive.Contracts.Interfaces.IServerConsoleFacade" />
         <endpoint address="mex" binding="mexHttpBinding" name="ServerConsoleMexEndpoint"
-          contract="HeuristicLab.Hive.Contracts.Interfaces.IServerConsoleFacade" />
+          contract="IMetadataExchange" />
         <host>
           <baseAddresses>
@@ -119,10 +117,8 @@
         <endpoint address="" binding="netTcpBinding" bindingConfiguration="TcpStreamedBinding"
           name="ClientTcpStreamedEndpoint" contract="HeuristicLab.Hive.Contracts.Interfaces.IClientFacade" />
-        <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration=""
-          name="ClientTcpMexEndpoint" contract="IMetadataExchange" />
         <endpoint binding="wsHttpBinding" bindingConfiguration="HiveServerHttpBinding"
           name="ClientHttpEndpoint" contract="HeuristicLab.Hive.Contracts.Interfaces.IClientFacade" />
         <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration=""
-          name="ClientHttpMexEndpoint" contract="HeuristicLab.Hive.Contracts.Interfaces.IClientFacade" />
+          name="ClientHttpMexEndpoint" contract="IMetadataExchange" />
         <host>
           <baseAddresses>
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/HeuristicLab.Hive.Slave.Communication-3.3.csproj
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/HeuristicLab.Hive.Slave.Communication-3.3.csproj	(revision 4337)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/HeuristicLab.Hive.Slave.Communication-3.3.csproj	(revision 4338)
@@ -122,5 +122,5 @@
       <DependentUpon>Settings.settings</DependentUpon>
     </Compile>
-    <Compile Include="ServiceLocator.cs" />
+    <Compile Include="SlaveServicePool.cs" />
     <Compile Include="WcfService.cs" />
   </ItemGroup>
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/SlaveService/SlaveFacade.wsdl
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/SlaveService/SlaveFacade.wsdl	(revision 4337)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/SlaveService/SlaveFacade.wsdl	(revision 4338)
@@ -1215,10 +1215,4 @@
       </wsa10:EndpointReference>
     </wsdl:port>
-    <wsdl:port name="SlaveTcpMexEndpoint" binding="i0:SlaveTcpMexEndpoint">
-      <soap12:address location="net.tcp://localhost:9001/SlaveServiceStreamed/mex" />
-      <wsa10:EndpointReference>
-        <wsa10:Address>net.tcp://localhost:9001/SlaveServiceStreamed/mex</wsa10:Address>
-      </wsa10:EndpointReference>
-    </wsdl:port>
   </wsdl:service>
 </wsdl:definitions>
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/SlaveService/SlaveService.wsdl
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/SlaveService/SlaveService.wsdl	(revision 4337)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/SlaveService/SlaveService.wsdl	(revision 4338)
@@ -4,12 +4,4 @@
     <wsp:ExactlyOne>
       <wsp:All>
-        <wsaw:UsingAddressing />
-      </wsp:All>
-    </wsp:ExactlyOne>
-  </wsp:Policy>
-  <wsp:Policy wsu:Id="SlaveTcpMexEndpoint_policy">
-    <wsp:ExactlyOne>
-      <wsp:All>
-        <msb:BinaryEncoding xmlns:msb="http://schemas.microsoft.com/ws/06/2004/mspolicy/netbinary1" />
         <wsaw:UsingAddressing />
       </wsp:All>
@@ -148,133 +140,3 @@
     </wsdl:operation>
   </wsdl:binding>
-  <wsdl:binding name="SlaveTcpMexEndpoint" type="i0:ISlaveFacade">
-    <wsp:PolicyReference URI="#SlaveTcpMexEndpoint_policy" />
-    <soap12:binding transport="http://schemas.microsoft.com/soap/tcp" />
-    <wsdl:operation name="Login">
-      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/Login" style="document" />
-      <wsdl:input>
-        <soap12:body use="literal" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="ProcessHeartBeat">
-      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/ProcessHeartBeat" style="document" />
-      <wsdl:input>
-        <soap12:body use="literal" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="GetJob">
-      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/GetJob" style="document" />
-      <wsdl:input>
-        <soap12:body use="literal" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="StoreFinishedJobResult">
-      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/StoreFinishedJobResult" style="document" />
-      <wsdl:input>
-        <soap12:body use="literal" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="ProcessSnapshot">
-      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/ProcessSnapshot" style="document" />
-      <wsdl:input>
-        <soap12:body use="literal" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="Logout">
-      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/Logout" style="document" />
-      <wsdl:input>
-        <soap12:body use="literal" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="IsJobStillNeeded">
-      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/IsJobStillNeeded" style="document" />
-      <wsdl:input>
-        <soap12:body use="literal" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="GetPlugins">
-      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/GetPlugins" style="document" />
-      <wsdl:input>
-        <soap12:body use="literal" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="GetCalendar">
-      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/GetCalendar" style="document" />
-      <wsdl:input>
-        <soap12:body use="literal" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="SetCalendarStatus">
-      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/SetCalendarStatus" style="document" />
-      <wsdl:input>
-        <soap12:body use="literal" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="GetStreamedJob">
-      <soap12:operation soapAction="http://tempuri.org/ISlaveFacade/GetStreamedJob" style="document" />
-      <wsdl:input>
-        <soap12:body use="literal" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="GetStreamedPlugins">
-      <soap12:operation soapAction="http://tempuri.org/ISlaveFacade/GetStreamedPlugins" style="document" />
-      <wsdl:input>
-        <soap12:body use="literal" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="StoreFinishedJobResultStreamed">
-      <soap12:operation soapAction="http://tempuri.org/ISlaveFacade/StoreFinishedJobResultStreamed" style="document" />
-      <wsdl:input>
-        <soap12:body use="literal" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="ProcessSnapshotStreamed">
-      <soap12:operation soapAction="http://tempuri.org/ISlaveFacade/ProcessSnapshotStreamed" style="document" />
-      <wsdl:input>
-        <soap12:body use="literal" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
 </wsdl:definitions>
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/SlaveService/SlaveService9.xsd
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/SlaveService/SlaveService9.xsd	(revision 4337)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/SlaveService/SlaveService9.xsd	(revision 4338)
@@ -92,5 +92,5 @@
           <xs:element minOccurs="0" name="Slave" nillable="true" type="tns:SlaveDto" />
           <xs:element minOccurs="0" name="State" type="tns:JobState" />
-          <xs:element minOccurs="0" name="UserId" type="ser:guid" />
+          <xs:element minOccurs="0" name="UserId" nillable="true" type="xs:string" />
         </xs:sequence>
       </xs:extension>
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/SlaveService/configuration.svcinfo
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/SlaveService/configuration.svcinfo	(revision 4337)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/SlaveService/configuration.svcinfo	(revision 4338)
@@ -4,5 +4,4 @@
   <bindings>
     <binding digest="System.ServiceModel.Configuration.NetTcpBindingElement, System.ServiceModel, Version=4.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;SlaveTcpStreamedEndpoint&quot; transactionFlow=&quot;false&quot; transactionProtocol=&quot;OleTransactions&quot; transferMode=&quot;Streamed&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;TransportWithMessageCredential&quot;&gt;&lt;message algorithmSuite=&quot;Default&quot; clientCredentialType=&quot;UserName&quot; /&gt;&lt;transport clientCredentialType=&quot;Windows&quot; protectionLevel=&quot;EncryptAndSign&quot; /&gt;&lt;/security&gt;&lt;/Data&gt;" bindingType="netTcpBinding" name="SlaveTcpStreamedEndpoint" />
-    <binding digest="System.ServiceModel.Configuration.NetTcpBindingElement, System.ServiceModel, Version=4.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;SlaveTcpMexEndpoint&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;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="SlaveTcpMexEndpoint" />
     <binding digest="System.ServiceModel.Configuration.WSHttpBindingElement, System.ServiceModel, Version=4.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; messageEncoding=&quot;Text&quot; name=&quot;SlaveHttpEndpoint&quot; textEncoding=&quot;utf-8&quot; transactionFlow=&quot;false&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;Message&quot;&gt;&lt;message algorithmSuite=&quot;Default&quot; clientCredentialType=&quot;UserName&quot; negotiateServiceCredential=&quot;true&quot; /&gt;&lt;transport clientCredentialType=&quot;Windows&quot; proxyCredentialType=&quot;None&quot; realm=&quot;&quot; /&gt;&lt;/security&gt;&lt;/Data&gt;" bindingType="wsHttpBinding" name="SlaveHttpEndpoint" />
     <binding digest="System.ServiceModel.Configuration.WSHttpBindingElement, System.ServiceModel, Version=4.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; messageEncoding=&quot;Text&quot; name=&quot;SlaveMexEndpoint&quot; textEncoding=&quot;utf-8&quot; transactionFlow=&quot;false&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;None&quot;&gt;&lt;message clientCredentialType=&quot;Windows&quot; negotiateServiceCredential=&quot;true&quot; /&gt;&lt;transport clientCredentialType=&quot;Windows&quot; proxyCredentialType=&quot;None&quot; realm=&quot;&quot; /&gt;&lt;/security&gt;&lt;/Data&gt;" bindingType="wsHttpBinding" name="SlaveMexEndpoint" />
@@ -12,5 +11,4 @@
     <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost:9000/SlaveService/mex&quot; binding=&quot;wsHttpBinding&quot; bindingConfiguration=&quot;SlaveMexEndpoint&quot; contract=&quot;SlaveService.ISlaveFacade&quot; name=&quot;SlaveMexEndpoint&quot; /&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost:9000/SlaveService/mex&quot; binding=&quot;wsHttpBinding&quot; bindingConfiguration=&quot;SlaveMexEndpoint&quot; contract=&quot;SlaveService.ISlaveFacade&quot; name=&quot;SlaveMexEndpoint&quot; /&gt;" contractName="SlaveService.ISlaveFacade" name="SlaveMexEndpoint" />
     <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.tcp://localhost:9001/SlaveServiceStreamed&quot; binding=&quot;netTcpBinding&quot; bindingConfiguration=&quot;SlaveTcpStreamedEndpoint&quot; contract=&quot;SlaveService.ISlaveFacade&quot; name=&quot;SlaveTcpStreamedEndpoint&quot;&gt;&lt;identity&gt;&lt;dns value=&quot;localhost&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://localhost:9001/SlaveServiceStreamed&quot; binding=&quot;netTcpBinding&quot; bindingConfiguration=&quot;SlaveTcpStreamedEndpoint&quot; contract=&quot;SlaveService.ISlaveFacade&quot; name=&quot;SlaveTcpStreamedEndpoint&quot;&gt;&lt;identity&gt;&lt;dns value=&quot;localhost&quot; /&gt;&lt;/identity&gt;&lt;/Data&gt;" contractName="SlaveService.ISlaveFacade" name="SlaveTcpStreamedEndpoint" />
-    <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.tcp://localhost:9001/SlaveServiceStreamed/mex&quot; binding=&quot;netTcpBinding&quot; bindingConfiguration=&quot;SlaveTcpMexEndpoint&quot; contract=&quot;SlaveService.ISlaveFacade&quot; name=&quot;SlaveTcpMexEndpoint&quot; /&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.tcp://localhost:9001/SlaveServiceStreamed/mex&quot; binding=&quot;netTcpBinding&quot; bindingConfiguration=&quot;SlaveTcpMexEndpoint&quot; contract=&quot;SlaveService.ISlaveFacade&quot; name=&quot;SlaveTcpMexEndpoint&quot; /&gt;" contractName="SlaveService.ISlaveFacade" name="SlaveTcpMexEndpoint" />
   </endpoints>
 </configurationSnapshot>
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/SlaveService/configuration91.svcinfo
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/SlaveService/configuration91.svcinfo	(revision 4337)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/SlaveService/configuration91.svcinfo	(revision 4338)
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="JGDzzEU6ZhHdCWJVHV2k7+yia3Q=">
+<SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="IVbHOGoLIiHm7HALbaYOYdLHHj8=">
   <bindingConfigurations>
     <bindingConfiguration bindingType="netTcpBinding" name="SlaveTcpStreamedEndpoint">
@@ -113,119 +113,4 @@
         </property>
         <property path="/security/message/algorithmSuite" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.Security.SecurityAlgorithmSuite, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>Default</serializedValue>
-        </property>
-      </properties>
-    </bindingConfiguration>
-    <bindingConfiguration bindingType="netTcpBinding" name="SlaveTcpMexEndpoint">
-      <properties>
-        <property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>SlaveTcpMexEndpoint</serializedValue>
-        </property>
-        <property path="/closeTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>00:01:00</serializedValue>
-        </property>
-        <property path="/openTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>00:01:00</serializedValue>
-        </property>
-        <property path="/receiveTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>00:10:00</serializedValue>
-        </property>
-        <property path="/sendTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>00:01:00</serializedValue>
-        </property>
-        <property path="/transactionFlow" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>False</serializedValue>
-        </property>
-        <property path="/transferMode" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.TransferMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>Buffered</serializedValue>
-        </property>
-        <property path="/transactionProtocol" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.TransactionProtocol, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>OleTransactions</serializedValue>
-        </property>
-        <property path="/hostNameComparisonMode" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.HostNameComparisonMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>StrongWildcard</serializedValue>
-        </property>
-        <property path="/listenBacklog" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>10</serializedValue>
-        </property>
-        <property path="/maxBufferPoolSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>524288</serializedValue>
-        </property>
-        <property path="/maxBufferSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>65536</serializedValue>
-        </property>
-        <property path="/maxConnections" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>10</serializedValue>
-        </property>
-        <property path="/maxReceivedMessageSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>65536</serializedValue>
-        </property>
-        <property path="/portSharingEnabled" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>False</serializedValue>
-        </property>
-        <property path="/readerQuotas" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement</serializedValue>
-        </property>
-        <property path="/readerQuotas/maxDepth" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>32</serializedValue>
-        </property>
-        <property path="/readerQuotas/maxStringContentLength" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>8192</serializedValue>
-        </property>
-        <property path="/readerQuotas/maxArrayLength" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>16384</serializedValue>
-        </property>
-        <property path="/readerQuotas/maxBytesPerRead" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>4096</serializedValue>
-        </property>
-        <property path="/readerQuotas/maxNameTableCharCount" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>16384</serializedValue>
-        </property>
-        <property path="/reliableSession" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.StandardBindingOptionalReliableSessionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>System.ServiceModel.Configuration.StandardBindingOptionalReliableSessionElement</serializedValue>
-        </property>
-        <property path="/reliableSession/ordered" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>True</serializedValue>
-        </property>
-        <property path="/reliableSession/inactivityTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>00:10:00</serializedValue>
-        </property>
-        <property path="/reliableSession/enabled" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>False</serializedValue>
-        </property>
-        <property path="/security" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.NetTcpSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>System.ServiceModel.Configuration.NetTcpSecurityElement</serializedValue>
-        </property>
-        <property path="/security/mode" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.SecurityMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>None</serializedValue>
-        </property>
-        <property path="/security/transport" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.TcpTransportSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>System.ServiceModel.Configuration.TcpTransportSecurityElement</serializedValue>
-        </property>
-        <property path="/security/transport/clientCredentialType" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.TcpClientCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>Windows</serializedValue>
-        </property>
-        <property path="/security/transport/protectionLevel" isComplexType="false" isExplicitlyDefined="true" clrType="System.Net.Security.ProtectionLevel, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>EncryptAndSign</serializedValue>
-        </property>
-        <property path="/security/transport/extendedProtectionPolicy" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement</serializedValue>
-        </property>
-        <property path="/security/transport/extendedProtectionPolicy/policyEnforcement" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.PolicyEnforcement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>Never</serializedValue>
-        </property>
-        <property path="/security/transport/extendedProtectionPolicy/protectionScenario" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.ProtectionScenario, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>TransportSelected</serializedValue>
-        </property>
-        <property path="/security/transport/extendedProtectionPolicy/customServiceNames" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ServiceNameElementCollection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>(Collection)</serializedValue>
-        </property>
-        <property path="/security/message" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.MessageSecurityOverTcpElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>System.ServiceModel.Configuration.MessageSecurityOverTcpElement</serializedValue>
-        </property>
-        <property path="/security/message/clientCredentialType" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.MessageCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>Windows</serializedValue>
-        </property>
-        <property path="/security/message/algorithmSuite" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.Security.SecurityAlgorithmSuite, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
           <serializedValue>Default</serializedValue>
         </property>
@@ -737,89 +622,4 @@
       </properties>
     </endpoint>
-    <endpoint name="SlaveTcpMexEndpoint" contract="SlaveService.ISlaveFacade" bindingType="netTcpBinding" address="net.tcp://localhost:9001/SlaveServiceStreamed/mex" bindingConfiguration="SlaveTcpMexEndpoint">
-      <properties>
-        <property path="/address" isComplexType="false" isExplicitlyDefined="true" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>net.tcp://localhost:9001/SlaveServiceStreamed/mex</serializedValue>
-        </property>
-        <property path="/behaviorConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue />
-        </property>
-        <property path="/binding" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>netTcpBinding</serializedValue>
-        </property>
-        <property path="/bindingConfiguration" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>SlaveTcpMexEndpoint</serializedValue>
-        </property>
-        <property path="/contract" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>SlaveService.ISlaveFacade</serializedValue>
-        </property>
-        <property path="/headers" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.AddressHeaderCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>System.ServiceModel.Configuration.AddressHeaderCollectionElement</serializedValue>
-        </property>
-        <property path="/headers/headers" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.Channels.AddressHeaderCollection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>&lt;Header /&gt;</serializedValue>
-        </property>
-        <property path="/identity" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.IdentityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>System.ServiceModel.Configuration.IdentityElement</serializedValue>
-        </property>
-        <property path="/identity/userPrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.UserPrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>System.ServiceModel.Configuration.UserPrincipalNameElement</serializedValue>
-        </property>
-        <property path="/identity/userPrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue />
-        </property>
-        <property path="/identity/servicePrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.ServicePrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>System.ServiceModel.Configuration.ServicePrincipalNameElement</serializedValue>
-        </property>
-        <property path="/identity/servicePrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue />
-        </property>
-        <property path="/identity/dns" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.DnsElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>System.ServiceModel.Configuration.DnsElement</serializedValue>
-        </property>
-        <property path="/identity/dns/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue />
-        </property>
-        <property path="/identity/rsa" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.RsaElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>System.ServiceModel.Configuration.RsaElement</serializedValue>
-        </property>
-        <property path="/identity/rsa/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue />
-        </property>
-        <property path="/identity/certificate" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>System.ServiceModel.Configuration.CertificateElement</serializedValue>
-        </property>
-        <property path="/identity/certificate/encodedValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue />
-        </property>
-        <property path="/identity/certificateReference" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateReferenceElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>System.ServiceModel.Configuration.CertificateReferenceElement</serializedValue>
-        </property>
-        <property path="/identity/certificateReference/storeName" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreName, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>My</serializedValue>
-        </property>
-        <property path="/identity/certificateReference/storeLocation" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreLocation, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>LocalMachine</serializedValue>
-        </property>
-        <property path="/identity/certificateReference/x509FindType" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.X509FindType, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>FindBySubjectDistinguishedName</serializedValue>
-        </property>
-        <property path="/identity/certificateReference/findValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue />
-        </property>
-        <property path="/identity/certificateReference/isChainIncluded" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>False</serializedValue>
-        </property>
-        <property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>SlaveTcpMexEndpoint</serializedValue>
-        </property>
-        <property path="/kind" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue />
-        </property>
-        <property path="/endpointConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue />
-        </property>
-      </properties>
-    </endpoint>
   </endpoints>
 </SavedWcfConfigurationInformation>
Index: anches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/ServiceLocator.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/ServiceLocator.cs	(revision 4337)
+++ 	(revision )
@@ -1,49 +1,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Hive.Slave.Communication.SlaveService;
-using HeuristicLab.Hive.Contracts;
-using System.ServiceModel;
-using HeuristicLab.Hive.Slave.Communication.Properties;
-using HeuristicLab.Tracing;
-
-namespace HeuristicLab.Hive.Slave.Communication {
-  internal static class ServiceLocator {
-    /// <summary>
-    /// Cache of SlaveFacadeClients, to check if all get disposed
-    /// </summary>
-    private static List<ISlaveFacade> clientCache = new List<ISlaveFacade>();
-
-    internal static ISlaveFacade CreateSlaveFacade(string hostAddress) {
-      SlaveFacadeClient client = new SlaveFacadeClient("SlaveHttpEndpoint");
-      WcfSettings.SetEndpointAddress(client.Endpoint, hostAddress);
-      SetCredentials(client);
-      client.Open();
-      clientCache.Add(client);
-      Logger.Debug("Created SlaveFacadeClients. Currently existing SlaveFacadeClients: " + clientCache.Count);
-      return client;
-    }
-
-    internal static ISlaveFacade CreateStreamedSlaveFacade(string hostAddress) {
-      SlaveFacadeClient client = new SlaveFacadeClient("SlaveTcpStreamedEndpoint");
-      WcfSettings.SetEndpointAddress(client.Endpoint, hostAddress);
-      SetCredentials(client);
-      client.Open();
-      clientCache.Add(client);
-      Logger.Debug("Created SlaveFacadeClients. Currently existing SlaveFacadeClients: " + clientCache.Count);
-      return client;
-    }
-
-    private static void SetCredentials(SlaveFacadeClient client) {
-      client.ClientCredentials.UserName.UserName = Settings.Default.HiveUsername;
-      client.ClientCredentials.UserName.Password = Settings.Default.HivePassword;
-    }
-
-    public static void DisposeSlaveClient(ISlaveFacade slaveFacade) {
-      WcfSettings.DisposeWcfClient((ICommunicationObject)slaveFacade);
-      clientCache.Remove(slaveFacade);
-      Logger.Debug("Disposing SlaveFacadeClients. Currently existing SlaveFacadeClients: " + clientCache.Count);
-    }
-  }
-}
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/SlaveServicePool.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/SlaveServicePool.cs	(revision 4338)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/SlaveServicePool.cs	(revision 4338)
@@ -0,0 +1,88 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Hive.Slave.Communication.SlaveService;
+using HeuristicLab.Hive.Contracts;
+using System.ServiceModel;
+using HeuristicLab.Hive.Slave.Communication.Properties;
+using HeuristicLab.Tracing;
+
+namespace HeuristicLab.Hive.Slave.Communication {
+  internal class SlaveFacadeServicePool {
+    /// <summary>
+    /// Cache of SlaveFacadeClients, to check if all get disposed
+    /// </summary>
+    private SlaveFacadeClient cachedSlaveFacadeClientStreamed = null;
+    private SlaveFacadeClient cachedSlaveFacadeClient = null;
+    private int streamedClientCount = 0;
+    private int clientCount = 0;
+    private string serverIp;
+    private static object locker = new object();
+
+    public SlaveFacadeServicePool(string serverIp) {
+      this.serverIp = serverIp;
+    }
+
+    internal ISlaveFacade CreateSlaveFacade() {
+      lock (locker) {
+        if (cachedSlaveFacadeClient == null) {
+          cachedSlaveFacadeClient = new SlaveFacadeClient("SlaveHttpEndpoint");
+          WcfSettings.SetEndpointAddress(cachedSlaveFacadeClient.Endpoint, this.serverIp);
+          SetCredentials(cachedSlaveFacadeClient);
+          cachedSlaveFacadeClient.Open();
+          Logger.Debug("Created SlaveFacadeClient");
+        }
+        clientCount++;
+        Logger.Debug("SlaveFacadeClientCount: " + clientCount);
+        return cachedSlaveFacadeClient;
+      }
+    }
+
+    internal ISlaveFacade CreateStreamedSlaveFacade() {
+      lock (locker) {
+        if (cachedSlaveFacadeClientStreamed == null) {
+          cachedSlaveFacadeClientStreamed = new SlaveFacadeClient("SlaveTcpStreamedEndpoint");
+          WcfSettings.SetEndpointAddress(cachedSlaveFacadeClientStreamed.Endpoint, this.serverIp);
+          SetCredentials(cachedSlaveFacadeClientStreamed);
+          cachedSlaveFacadeClientStreamed.Open();
+          Logger.Debug("Created SlaveFacadeClientStreamed");
+        }
+        streamedClientCount++;
+        Logger.Debug("SlaveFacadeClientCount: " + streamedClientCount);
+        return cachedSlaveFacadeClientStreamed;
+      }
+    }
+
+    private void SetCredentials(SlaveFacadeClient client) {
+      client.ClientCredentials.UserName.UserName = Settings.Default.HiveUsername;
+      client.ClientCredentials.UserName.Password = Settings.Default.HivePassword;
+    }
+
+    public void DisposeSlaveClient(ISlaveFacade slaveFacade) {
+      lock (locker) {
+        if (slaveFacade == cachedSlaveFacadeClient) {
+          clientCount--;
+          Logger.Debug("Disposing SlaveFacadeClient. Count: " + clientCount);
+          if (clientCount < 0)
+            throw new Exception("SlaveFacadeClient Count is less than zero. It was released too often.");
+          if (clientCount == 0) {
+            WcfSettings.DisposeWcfClient((ICommunicationObject)slaveFacade);
+            cachedSlaveFacadeClient = null;
+          }
+        } else if (slaveFacade == cachedSlaveFacadeClientStreamed) {
+          streamedClientCount--;
+          Logger.Debug("Disposing SlaveFacadeClientStreamed. Count: " + streamedClientCount);
+          if (streamedClientCount < 0)
+            throw new Exception("SlaveFacadeClientStreamed Count is less than zero. It was released too often.");
+          if (streamedClientCount == 0) {
+            WcfSettings.DisposeWcfClient((ICommunicationObject)slaveFacade);
+            cachedSlaveFacadeClientStreamed = null;
+          }
+        } else {
+          throw new Exception("Cannot dispose slaveFacade. Cannot be found in cache.");
+        }
+      } // lock
+    }
+  }
+}
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/WcfService.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/WcfService.cs	(revision 4337)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/WcfService.cs	(revision 4338)
@@ -78,4 +78,6 @@
     public event EventHandler Connected;
 
+    SlaveFacadeServicePool servicePool;
+
     /// <summary>
     /// Constructor
@@ -97,7 +99,8 @@
           return;
         }
+        servicePool = new SlaveFacadeServicePool(ServerIp);
 
         Logger.Debug("Creating the new connection proxy");
-        client = ServiceLocator.CreateStreamedSlaveFacade(ServerIp);
+        client = servicePool.CreateStreamedSlaveFacade();
         Logger.Debug("Created the new connection proxy");
 
@@ -116,5 +119,5 @@
       }
       finally {
-        ServiceLocator.DisposeSlaveClient(client);
+        servicePool.DisposeSlaveClient(client);
       }
     }
@@ -146,5 +149,5 @@
         if (ConnState == NetworkEnum.WcfConnState.Connected) {
           Logger.Debug("STARTED: Login Sync");
-          client = ServiceLocator.CreateSlaveFacade(ServerIp);
+          client = servicePool.CreateSlaveFacade();
           Response res = client.Login(slaveInfo);
           if (res.StatusMessage != ResponseStatus.Ok) {
@@ -161,5 +164,5 @@
       }
       finally {
-        ServiceLocator.DisposeSlaveClient(client);
+        servicePool.DisposeSlaveClient(client);
       }
     }
@@ -173,5 +176,5 @@
       if (LoggedIn) {
         Logger.Debug("STARTED: Fetching of Jobs from Server for Slave");
-        SlaveService.ISlaveFacade client = ServiceLocator.CreateStreamedSlaveFacade(ServerIp);
+        SlaveService.ISlaveFacade client = servicePool.CreateStreamedSlaveFacade();
         //client.GetStreamedJobAsync(guid);
         client.BeginGetStreamedJob(guid, (ar => {
@@ -214,5 +217,5 @@
             HandleNetworkError(new FaultException("GetJobAsync did not complete"));
 
-          ServiceLocator.DisposeSlaveClient(client);
+          servicePool.DisposeSlaveClient(client);
         }), null);
       }
@@ -234,5 +237,5 @@
         Logger.Debug("Making the call");
         //proxy.StoreFinishedJobResultStreamedAsync(stream, stream);
-        SlaveService.ISlaveFacade client = ServiceLocator.CreateStreamedSlaveFacade(ServerIp);
+        SlaveService.ISlaveFacade client = servicePool.CreateStreamedSlaveFacade();
         client.BeginStoreFinishedJobResultStreamed(stream, (ar => {
           Logger.Debug("Finished storing the job");
@@ -249,5 +252,5 @@
             HandleNetworkError(new FaultException("GetFinishedJobResultAsync did not complete"));
           }
-          ServiceLocator.DisposeSlaveClient(client);
+          servicePool.DisposeSlaveClient(client);
         }), null);
       }
@@ -262,5 +265,5 @@
         Stream stream = GetStreamedJobResult(clientId, jobId, result, percentage, exception);
         //proxy.ProcessSnapshotStreamedAsync(stream, stream);
-        SlaveService.ISlaveFacade client = ServiceLocator.CreateStreamedSlaveFacade(ServerIp);
+        SlaveService.ISlaveFacade client = servicePool.CreateStreamedSlaveFacade();
         client.BeginProcessSnapshotStreamed(stream, (ar => {
           if (stream != null)
@@ -274,5 +277,5 @@
             HandleNetworkError(new FaultException("ProcessSnapshotAsync did not complete"));
           }
-          ServiceLocator.DisposeSlaveClient(client);
+          servicePool.DisposeSlaveClient(client);
         }), null);
       }
@@ -291,5 +294,5 @@
         Logger.Debug("STARTING: sending heartbeat");
         //proxy.ProcessHeartBeatAsync(hbd);
-        SlaveService.ISlaveFacade client = ServiceLocator.CreateStreamedSlaveFacade(ServerIp);
+        SlaveService.ISlaveFacade client = servicePool.CreateStreamedSlaveFacade();
         client.BeginProcessHeartBeat(hbd, (ar => {
           if (ar.IsCompleted) {
@@ -304,5 +307,5 @@
             HandleNetworkError(new FaultException("ProcessHeartBeatAsync did not complete"));
           }
-          ServiceLocator.DisposeSlaveClient(client);
+          servicePool.DisposeSlaveClient(client);
         }), null);
       }
@@ -334,7 +337,7 @@
 
     public ResponseResultReceived StoreFinishedJobResultsSync(Guid clientId, Guid jobId, byte[] result, double percentage, Exception exception, bool finished) {
-      SlaveService.ISlaveFacade client = ServiceLocator.CreateStreamedSlaveFacade(ServerIp);
+      SlaveService.ISlaveFacade client = servicePool.CreateStreamedSlaveFacade();
       ResponseResultReceived res = client.StoreFinishedJobResultStreamed(GetStreamedJobResult(clientId, jobId, result, percentage, exception));
-      ServiceLocator.DisposeSlaveClient(client);
+      servicePool.DisposeSlaveClient(client);
       return res;
     }
@@ -343,7 +346,7 @@
       try {
         Logger.Debug("STARTING: Sync call: IsJobStillNeeded");
-        SlaveService.ISlaveFacade client = ServiceLocator.CreateStreamedSlaveFacade(ServerIp);
+        SlaveService.ISlaveFacade client = servicePool.CreateStreamedSlaveFacade();
         Response res = client.IsJobStillNeeded(jobId);
-        ServiceLocator.DisposeSlaveClient(client);
+        servicePool.DisposeSlaveClient(client);
         Logger.Debug("ENDED: Sync call: IsJobStillNeeded");
         return res;
@@ -357,7 +360,7 @@
     public ResponseResultReceived ProcessSnapshotSync(Guid clientId, Guid jobId, byte[] result, double percentage, Exception exception) {
       try {
-        SlaveService.ISlaveFacade client = ServiceLocator.CreateStreamedSlaveFacade(ServerIp);
+        SlaveService.ISlaveFacade client = servicePool.CreateStreamedSlaveFacade();
         var res = client.ProcessSnapshotStreamed(GetStreamedJobResult(clientId, jobId, result, percentage, exception));
-        ServiceLocator.DisposeSlaveClient(client);
+        servicePool.DisposeSlaveClient(client);
         return res;
       }
@@ -372,7 +375,7 @@
         Logger.Debug("STARTED: Requesting Plugins for Job");
         Logger.Debug("STARTED: Getting the stream");
-        SlaveService.ISlaveFacade client = ServiceLocator.CreateStreamedSlaveFacade(ServerIp);
+        SlaveService.ISlaveFacade client = servicePool.CreateStreamedSlaveFacade();
         Stream stream = client.GetStreamedPlugins(requestedPlugins.ToArray());
-        ServiceLocator.DisposeSlaveClient(client);
+        servicePool.DisposeSlaveClient(client);
         Logger.Debug("ENDED: Getting the stream");
         BinaryFormatter formatter = new BinaryFormatter();
@@ -393,7 +396,7 @@
       try {
         Logger.Debug("STARTED: Logout");
-        SlaveService.ISlaveFacade client = ServiceLocator.CreateStreamedSlaveFacade(ServerIp);
+        SlaveService.ISlaveFacade client = servicePool.CreateStreamedSlaveFacade();
         client.Logout(guid);
-        ServiceLocator.DisposeSlaveClient(client);
+        servicePool.DisposeSlaveClient(client);
         Logger.Debug("ENDED: Logout");
       }
@@ -406,7 +409,7 @@
       try {
         Logger.Debug("STARTED: Syncing Calendars");
-        SlaveService.ISlaveFacade client = ServiceLocator.CreateStreamedSlaveFacade(ServerIp);
+        SlaveService.ISlaveFacade client = servicePool.CreateStreamedSlaveFacade();
         ResponseCalendar cal = client.GetCalendar(clientId);
-        ServiceLocator.DisposeSlaveClient(client);
+        servicePool.DisposeSlaveClient(client);
         Logger.Debug("ENDED: Syncing Calendars");
         return cal;
@@ -421,7 +424,7 @@
       try {
         Logger.Debug("STARTED: Setting Calendar status to: " + state);
-        SlaveService.ISlaveFacade client = ServiceLocator.CreateStreamedSlaveFacade(ServerIp);
+        SlaveService.ISlaveFacade client = servicePool.CreateStreamedSlaveFacade();
         Response resp = client.SetCalendarStatus(clientId, state);
-        ServiceLocator.DisposeSlaveClient(client);
+        servicePool.DisposeSlaveClient(client);
         Logger.Debug("ENDED: Setting Calendar status to: " + state);
         return resp;
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/app.config
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/app.config	(revision 4337)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/app.config	(revision 4338)
@@ -25,6 +25,6 @@
           hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="104857600"
           maxBufferSize="104857600" maxReceivedMessageSize="104857600">
-          <readerQuotas maxDepth="32" maxStringContentLength="104857600" maxArrayLength="104857600"
-            maxBytesPerRead="4096" maxNameTableCharCount="16384" />
+          <readerQuotas maxDepth="32" maxStringContentLength="104857600"
+            maxArrayLength="104857600" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
           <reliableSession ordered="true" inactivityTimeout="00:10:00"
             enabled="false" />
@@ -32,18 +32,4 @@
             <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
             <message clientCredentialType="UserName" algorithmSuite="Default" />
-          </security>
-        </binding>
-        <binding name="SlaveTcpMexEndpoint" closeTimeout="00:01:00" openTimeout="00:01:00"
-          receiveTimeout="00:10:00" sendTimeout="00:01:00" transactionFlow="false"
-          transferMode="Buffered" transactionProtocol="OleTransactions"
-          hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288"
-          maxBufferSize="65536" maxReceivedMessageSize="65536">
-          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
-            maxBytesPerRead="4096" maxNameTableCharCount="16384" />
-          <reliableSession ordered="true" inactivityTimeout="00:10:00"
-            enabled="false" />
-          <security mode="None">
-            <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
-            <message clientCredentialType="Windows" />
           </security>
         </binding>
@@ -92,5 +78,5 @@
         </identity>
       </endpoint>
-      <endpoint address="http://localhost:9000/SlaveService/mex" binding="wsHttpBinding"
+      <endpoint address="http://localhost:9000/SlaveService/mex" binding="wsHttpBinding" behaviorConfiguration="SlaveMexEndpoint"
         bindingConfiguration="SlaveMexEndpoint" contract="SlaveService.ISlaveFacade"
         name="SlaveMexEndpoint" />
@@ -102,7 +88,4 @@
         </identity>
       </endpoint>
-      <endpoint address="net.tcp://localhost:9001/SlaveServiceStreamed/mex"
-        binding="netTcpBinding" bindingConfiguration="SlaveTcpMexEndpoint"
-        contract="SlaveService.ISlaveFacade" name="SlaveTcpMexEndpoint" />
     </client>
   </system.serviceModel>
