Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Oct 26 22:10
    dependabot[bot] labeled #228
  • Oct 26 22:10
    dependabot[bot] opened #228
  • Oct 26 22:10

    dependabot[bot] on nuget

    Bump Microsoft.NET.Test.Sdk fro… (compare)

  • Oct 26 13:54
    Aaronontheweb closed #5182
  • Oct 26 13:54
    Aaronontheweb commented #5182
  • Oct 26 13:54
    Aaronontheweb commented #5321
  • Oct 26 13:53
    Aaronontheweb commented #5344
  • Oct 26 13:53
    Aaronontheweb assigned #5344
  • Oct 26 13:53
    Aaronontheweb milestoned #5344
  • Oct 26 13:53
    Aaronontheweb labeled #5344
  • Oct 26 13:53
    Aaronontheweb labeled #5344
  • Oct 25 19:19
    SeanKilleen edited #5312
  • Oct 25 19:16
    Aaronontheweb commented #5312
  • Oct 25 19:16
    Aaronontheweb milestoned #5312
  • Oct 25 19:16

    Aaronontheweb on dev

    Markdown linting: build steps a… (compare)

  • Oct 25 19:16
    Aaronontheweb closed #5345
  • Oct 25 19:16
    Aaronontheweb closed #5312
  • Oct 25 19:16
    Aaronontheweb labeled #5345
  • Oct 25 16:31
    Aaronontheweb commented #4530
  • Oct 25 16:14

    dependabot[bot] on nuget

    (compare)

Marc Piechura
@marcpiechura
@nanderto why haven't you forked the existing repository ? https://github.com/akkadotnet/Akka.Persistence.ServiceFabric
Noel
@nanderto
@Silv3rcircl3 the implementation is different from the previous one at that location and when I asked on this gitter if there was interest in my alternative, @alexvaluyskiy suggested that I create a new repository for it under my account.
Daniel Söderberg
@raskolnikoov
Hello! I would like some help with my akka cluster. I wont get it to work when I try to call an actor in the cluster. Dead letters all the time. Im swedish so If you want to help me in swedish you can do that.
Alex Valuyskiy
@alexvaluyskiy
@nanderto why are you using Wire for serialization? Wire is designed for ... wire. For remoting and clustering. But not for persistent. You should choose the closest serializer to your storage. In many cases it is JSON. You also could use serializers like Protobuf in this cases. Maybe @rogeralsing is not agree with me
Noel
@nanderto
@alexvaluyskiy I thought I would try it out, the standard Service Fabric way of serializing does not work at least, and it seemed like a good alternative for Akka, I am not sure I understand your objection, but I assumed that at some point it would be configurable, and users could choose there own.
Peter Bergman
@peter-bannerflow
@raskolnikoov I'm swedish so you can PM me in swedish if u want to and I'll see if I can help
Arsene
@Tochemey

Hello How long does it take ActorSystem to properly shutdown? because I got this in my log and I have not received any successful shutdown confirmation.

[DEBUG][16:08:02 09:15:45][ActorSystemImpl] System shutdown initiated

However I am running it inside Owin.

Arjen Smits
@Danthar
@Tochemey normally its pretty quick, since there is no real way to block system shutdown.
It does need to spin down all your actors, so if you have alot, it might take abit longer, but even then it should be a few seconds at most
(and by alot i mean a few million :P)
Arsene
@Tochemey
@Danthar Is there a proper way to implement the shutdown?
Arjen Smits
@Danthar
there is not a one size fits all solution
it depends on what your actors are doing
normal shutdown is simply calling Terminate on the actor system and Wait() or await on WhenTerminated (or the terminate task itself)
but actor shutdown is asynchronous and non-deterministic
(granted it starts with the userguardians children, meaning, your actor)
So if you need to you could implement some kind of ordered termination
Arsene
@Tochemey
ok
Arjen Smits
@Danthar
what tend to do for non-trivial applications is:
  • Don't call Terminate on the ActorSystem directly, but let your actor call Context.Shutdown once all work has been done (if applicable)
  • Intercept application shutdown and send a message into your actor system to start shutting down, and send a response back when its ready to be terminated
Alex Valuyskiy
@alexvaluyskiy
Just released an updated version of MongoDb plugin for Persistence
https://www.nuget.org/packages/Akka.Persistence.MongoDb/1.1.0.3-beta
Arjen Smits
@Danthar
What the easiest way to handle this is, if work comes in from another actor system via remoting or clustering, use retry mechanisms for your work, so if you kill your actor system, even though any work will have been lost, it will simply be processed elsewhere (a different node) or presented again once you start up your actorsystem again.
Arsene
@Tochemey
@Danthar Please can you provide some code snippets?
This message was deleted
Arsene
@Tochemey
Hello can someone show me how to properly shutdown the actor system? I have stopped all the child actors created using the actors system. I want to know how to use WhenTerminated. Thank you
Marc Piechura
@marcpiechura
@Tochemey what exactly do you want to do with WhenTerminated?
Arsene
@Tochemey
I want to be able to display an termination logging info for instance.
Marc Piechura
@marcpiechura
Then I would register a callback with RegisterOnTerminationwhere you write the log entry
that is automatically called once the system is terminated
Arsene
@Tochemey

Hello How long does it take ActorSystem to properly shutdown? because I got this in my log and I have not received any successful shutdown confirmation.

[DEBUG][16:08:02 09:15:45][ActorSystemImpl] System shutdown initiated

However I am running it inside Owin.

@Silv3rcircl3 Please this what I am observing.
Arjen Smits
@Danthar
@Tochemey So your calling ActorSystem.Terminate() and it never terminates ?
Arsene
@Tochemey
@Danthar I have figured it out. I started a new thread that got executed before the ActorSystem.Terminate calling thread. Sorry for the false alert.
Vagif Abilov
@object
A question about message serializability. Sure properly designed messages should be small and serializable, and for persistent and remote actors they must be serializable. But I have a scenario with a helper actor that just sends HTTP requests. It uses 3rd party library types to represent requests, and sometimes such request contains binary stream (for multipart forms). The stream processing doesn't happen until the actor starts generating the HTTP payload so it's just a unprocessed stream reference that is sent in a message to the HTTP request actor. I tested the implementation and it works fine. But since an instance of Stream type is obviously not meant to be used in actor messages, I wonder if this can lead to bad consequences even if in-proc scenario.
Arjen Smits
@Danthar
@object if that message never leaves the local actorsystem, then its not a problem. There is nothing wrong with using non-serializable messages between a 'manager-actor' and its 'worker'. As long as you are aware of the drawbacks and limitations it imposes.
on a local actorsystem level. Akka could not care less. Its in the remoting, clustering and persistence scenario's that it becomes a problem
Vagif Abilov
@object
Thanks @Danthar. I thought so too, and this is typical "worker" actor that never acts outside its manage scope.
to11mtm
@to11mtm
Question about api deprecation.... Akka sez to use ReceiveAsync instead of Receive on ReceiveActor. Will receieveAsync still hold when processing a message from the mailbox? (i.e. if I send A,B to Actor1, Even if Message A takes a moment to process, it won't start processing Message B until A is done)
Arjen Smits
@Danthar
@to11mtm the one message at a time guarentee still holds. Even though you are using ReceiveAsync with await
Boban Pavloski
@bobanco

Hi folks, am getting TargetInvocationException while startup, after upgrading my app to the latest akka version together with the latest one wire version. Could some1 help me
to figure out what is the issue? @rogeralsing

here is the stack trace.

Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.MissingMethodException: Method not found: 'Void Wire.SerializerOptions..ctor(Boolean, System.Collections.Generic.IEnumerable`1<Wire.Surrogate>, Boolean, System.Collections.Generic.IEnumerable`1<Wire.Converters.ValueSerializerFactory>)'.
   at Akka.Serialization.WireSerializer..ctor(ExtendedActorSystem system)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   at System.Activator.CreateInstance(Type type, Object[] args)
   at Akka.Serialization.Serialization..ctor(ExtendedActorSystem system)
   at Akka.Actor.Internal.ActorSystemImpl..ctor(String name, Config config)
   at Akka.Actor.ActorSystem.Create(String name, Config config)
   at ClusterSharding.App.Program.Main(String[] args) in D:\Projects\ClusterSharding.App\ClusterSharding.App\Program.cs:line 21
Press any key to continue . . .
William Austin
@wyldebill
@object yes, each object has the location's lat/long, the name, and the number of times it's been 'found'. when it hits certain numbers of founds, it moves to a different state. what would i use to identify the actor? a string of the name of the location? or the lat/long as a string? or a guid? each actor has to have some type of identifier for it, but what do people use for this? because i don't want to search across all the actors to find the correct one, i need to have a unique identifier to get the actorref for it. am i thinking about this correctly?
Roger Johansson
@rogeralsing
@alexvaluyskiy totally agree with that, I've even put it in the readme for Wire. that Persistence and MessageQueues should use protobuf or MS Bond
I am however also thinking about adding stronger schema support to wire too. with attributes, to make it able to handle versioning the same way as protobuf and bond
Vagif Abilov
@object
@wyldebill For actors representing persistent domain entities you should come with IDs that uniquely identify these actors and don't change over time, i.e. using GUIDs is probably a bad idea. It's impossible to come with a concrete suggestion without knowing your domain.
Martin Helmer
@helmerm
@bobanco you have to downgrade to wire version 0.0.6
Arsene
@Tochemey
What is the best way to implement Supervisory mode at the ActorSystem level assuming I want to escalate an issue?
Arsene
@Tochemey
What is the best way to implement Supervisory mode at the ActorSystem level assuming I want to escalate an issue? Any help on this?
Arjen Smits
@Danthar
Use supervision strategy's ?
depending on your needs, let your worker actor crash, and have the exception be handled by its parent using a supervision strategy
then the parent can decide to escalate the issue to its parent, or send a message to an actor. Whatever you want.