Esempio n. 1
0
        public void Must_quarantine_systems_after_unsuccessful_system_message_delivery_if_have_not_communicated_before()
        {
            // Synthesize an ActorRef to a remote system this one has never talked to before.
            // This forces ReliableDeliverySupervisor to start with unknown remote system UID.
            var rarp = RARP.For(Sys).Provider;
            int port = rarp.DefaultAddress.Port.Value;

            while (port == rarp.DefaultAddress.Port.Value || port == 2666)
            {
                port = ThreadLocalRandom.Current.Next(1, 65535);
            }

            var extinctPath = new RootActorPath(new Address("akka.tcp", "extinct-system", "localhost", port)) / "user" / "noone";
            var transport   = rarp.Transport;
            var extinctRef  = new RemoteActorRef(transport, transport.LocalAddressForRemote(extinctPath.Address),
                                                 extinctPath, ActorRefs.Nobody, Props.None, Deploy.None);

            var probe = CreateTestProbe();

            probe.Watch(extinctRef);
            probe.Unwatch(extinctRef);

            probe.ExpectNoMsg(TimeSpan.FromSeconds(5));
            Sys.EventStream.Subscribe(probe.Ref, typeof(Warning));
            probe.ExpectNoMsg(TimeSpan.FromSeconds(rarp.RemoteSettings.RetryGateClosedFor.TotalSeconds * 2));
        }
Esempio n. 2
0
 public UntypedActor Find(string name)
 {
     if (actors.ContainsKey(name))
     {
         return(actors [name]);
     }
     else if (name.StartsWith("/remote/"))
     {
         name = name.Replace("/remote/", "");
         RemoteActorRef remoteActorRef = new RemoteActorRef(name);
         remoteActorRef.SetActorSystem(this);
         return(remoteActorRef);
     }
     else
     {
         return(actors ["DeadLetters"]);
     }
 }
Esempio n. 3
0
 public void UseActorOnNode(RemoteActorRef actor, Props props, Deploy deploy, IInternalActorRef supervisor)
 {
     Delegate.UseActorOnNode(actor, props, deploy, supervisor);
 }
 internal TracedRemoteActorRef(RemoteActorRef @delegate, IAkkaTracer tracer)
 {
     _delegate = @delegate;
     _tracer   = tracer;
 }
Esempio n. 5
0
        public void Must_quarantine_systems_after_unsuccessful_system_message_delivery_if_have_not_communicated_before()
        {
            // Synthesize an ActorRef to a remote system this one has never talked to before.
            // This forces ReliableDeliverySupervisor to start with unknown remote system UID.
            var rarp = RARP.For(Sys).Provider;
            int port = rarp.DefaultAddress.Port.Value;
            while (port == rarp.DefaultAddress.Port.Value || port == 2666)
                port = ThreadLocalRandom.Current.Next(1, 65535);

            var extinctPath = new RootActorPath(new Address("akka.tcp", "extinct-system", "localhost", port)) / "user" / "noone";
            var transport = rarp.Transport;
            var extinctRef = new RemoteActorRef(transport, transport.LocalAddressForRemote(extinctPath.Address), 
                extinctPath, ActorRefs.Nobody, Props.None, Deploy.None);

            var probe = CreateTestProbe();
            probe.Watch(extinctRef);
            probe.Unwatch(extinctRef);

            probe.ExpectNoMsg(TimeSpan.FromSeconds(5));
            Sys.EventStream.Subscribe(probe.Ref, typeof(Warning));
            probe.ExpectNoMsg(TimeSpan.FromSeconds(rarp.RemoteSettings.RetryGateClosedFor.TotalSeconds * 2));
        }