public FabricTransportActorRemotingClientFactory(ICommunicationClientFactory <IServiceRemotingClient> innerClientFactory, IServiceCommunicationLogger logger) { _innerClientFactory = innerClientFactory; _logger = logger; _innerClientFactory.ClientConnected += OnClientConnected; _innerClientFactory.ClientDisconnected += OnClientDisconnected; }
public static IServiceRemotingClientFactory CreateServiceRemotingClientFactory(Type actorInterfaceType, IServiceRemotingCallbackClient callbackClient, IServiceCommunicationLogger logger, string correlationId) { var fabricTransportSettings = GetDefaultFabricTransportSettings("TransportSettings"); var exceptionHandlers = GetExceptionHandlers(actorInterfaceType); return ((IServiceRemotingClientFactory) new CodeEffect.ServiceFabric.Actors.Remoting.FabricTransport.Client.FabricTransportActorRemotingClientFactory( new FabricTransportActorRemotingClientFactory( fabricTransportSettings, callbackClient, (IServicePartitionResolver)null, exceptionHandlers, traceId: correlationId), logger)); }
internal static CustomServiceRequestHeader GetCustomServiceRequestHeader(this ServiceRemotingMessageHeaders messageHeaders, IServiceCommunicationLogger logger) { try { CustomServiceRequestHeader customServiceRequestHeader; if (CustomServiceRequestHeader.TryFromServiceMessageHeaders(messageHeaders, out customServiceRequestHeader)) { return(customServiceRequestHeader); } } catch (Exception ex) { // ignored logger?.FailedToReadCustomServiceMessageHeader(messageHeaders, ex); } return(null); }
public ServiceRemotingDispatcher(IService service, IServiceRemotingMessageHandler innerMessageHandler, IServiceCommunicationLogger logger) { _service = service; _innerMessageHandler = innerMessageHandler; _logger = logger; }
public ActorProxyFactory(IServiceCommunicationLogger logger) { Logger = logger; }
public static ServiceReplicaListener CreateServiceReplicaListener(this IService service, ServiceContext context, IServiceCommunicationLogger logger) { return(new ServiceReplicaListener(ctxt => (IServiceRemotingListener) new FabricTransportServiceRemotingListener( serviceContext: ctxt, messageHandler: new ServiceRemotingDispatcher( service: service, innerMessageHandler: new Microsoft.ServiceFabric.Services.Remoting.Runtime.ServiceRemotingDispatcher(context, service), logger: logger), listenerSettings: new FabricTransportRemotingListenerSettings() { MaxConcurrentCalls = 1000, } ))); }
public FabricTransportActorRemotingClient(IServiceRemotingClient innerClient, Uri serviceUri, IServiceCommunicationLogger logger) { _innerClient = innerClient; _serviceUri = serviceUri; _logger = logger; }
public static Task RunInContext(this IActorProxyFactory actorProxyFactory, Action <IActorProxyFactory> action, IServiceCommunicationLogger logger, IEnumerable <ServiceRequestHeader> headers) { Task task = null; var headersArray = headers.ToArray(); task = new Task(() => { logger?.StartRequestContext(headersArray); Debug.Assert(ServiceRequestContext.Current == null); ServiceRequestContext.Current = new ServiceRequestContext(headersArray); ServiceRequestContext.Current.Logger = logger; try { action(actorProxyFactory); } catch (Exception ex) { logger?.FailedRequestContext(headers, ex); throw ex; } finally { ServiceRequestContext.Current = null; logger?.StopRequestContext(headersArray); } }); task.Start(); return(task); }