These are chat archives for akkadotnet/akka.net

13th
Apr 2016
Kris Schepers
@schepersk
Apr 13 2016 08:44
Any example out there on how to use Cluster Sharding with Lighthouse?
Vagif Abilov
@object
Apr 13 2016 08:56
Hello, I am moving my router configuration to HOCON, but I am using my own hash mapping function that I send to WithHashMapping. Does this disqualifiy router configuration in HOCON file?
Kris Schepers
@schepersk
Apr 13 2016 09:02
When Lighthouse is running and a node where a Sharding Region starts, I see the following message in the Lighthouse logging: "Messge Register from akka.tcp://clustername@ip:port/user/sharding/typename to akka://clustername/user/sharding/typenameCoordinator/singleton/coordinator was not delivered"
Andrea Balducci
@andreabalducci
Apr 13 2016 09:02
@cconstantin need some info for the MongoDb Persistence. Just aligned to akka 1.0.7 on my fork, now I've to implement AtomicWrites. It is possible to have a call to WriteMessagesAsync with AtomicWrites on more than one PersistenceId?
Thomas Lazar
@thomaslazar
Apr 13 2016 10:15
ok. i seem to forget something. i have a topshelf service running an actorsystem and i added all the akka.remote stuff and put the config in the app.config and the logs show me the actorsystem gets started with that config. but it doesn't open up a port to listen to when i start the service in the debugger. do i still need something else?
Thomas Lazar
@thomaslazar
Apr 13 2016 10:53
ok. my own fault and hocon comes again to bite me in the ass... i put the remote section unter the actor section because copy'n'pasta.
Bartosz Sypytkowski
@Horusiath
Apr 13 2016 10:57
@schepersk you probably need to restrict your cluster sharding to nodes not being lighthouse. One of the available sharding settings is the role, which tells what role does a cluster node need to have in order to support cluster sharding - without it, shard region will assume, that all nodes are capable of sharding (while lighthouse is not)
@andreabalducci no, it's not possible, persistence id describes boundaries of write operations for persistence
Kris Schepers
@schepersk
Apr 13 2016 11:11
@Horusiath Indeed, I was just about to try that when I saw it in the source code :-) Thanks!
@Horusiath So, does this also mean that you can restrict the type of a shard to a node role? Lets say you have a shard region for AR1 running on role ABC and you want to start a shard for AR2 on a completely different node with role XYZ..
Bartosz Sypytkowski
@Horusiath
Apr 13 2016 11:24
each node can have multiple roles
you can have role like 'sharding-enabled' and simply refer to it from sharding settings
Kris Schepers
@schepersk
Apr 13 2016 11:32
okay, but what about service1 in the cluster with 2 instances (nodes), hosting shards for its entities. Then service2 is ready to join the cluster with some instances (nodes). Each of these services have their own cluster sharding configuration. So my guess is that it should be possible to keep the entities from migrating to nodes where they don't "belong" ?
Bartosz Sypytkowski
@Horusiath
Apr 13 2016 11:37
you can do the same again with roles
Kamil Wojciechowski
@aph5nt
Apr 13 2016 12:15
hummm... one thing is wondering me... will akknet run on .net core now ?
Kris Schepers
@schepersk
Apr 13 2016 13:10
@Horusiath I'm seeing these log entries.. Any thoughts?
Akka.Actor.LocalActorRef: Message WriteMessagesSuccessful from akka://bm2cluster/system/akka.persistence.journal.sql-server to akka://bm2cluster/user/sharding/LoonbonVerwerking/2/7afca3c0-e26c-4a97-89a5-4dd9883533b6 was not delivered. 8 dead letters encountered.
Akka.Actor.LocalActorRef: Message WriteMessageSuccess from akka://bm2cluster/temp/mb to akka://bm2cluster/user/sharding/LoonbonVerwerking/2/7afca3c0-e26c-4a97-89a5-4dd9883533b6 was not delivered. 9 dead letters encountered.
Maybe because they already got passivated before persistence could provide feedback?
Vagif Abilov
@object
Apr 13 2016 13:52
SQL Server persistence plugin works in 1.0.7 if I build it from sources but when I use a version from NuGet I get TypeLoadException
{"Method 'DeleteBatchMessages' in type 'Akka.Persistence.SqlServer.Journal.SqlServerJournalQueryBuilder' from assembly 'Akka.Persistence.SqlServer, Version=1.0.6.3, Culture=neutral, PublicKeyToken=null' does not have an implementation.":"Akka.Persistence.SqlServer.Journal.SqlServerJournalQueryBuilder"}
Marc Piechura
@marcpiechura
Apr 13 2016 13:54
@object you need Akka.Persistence.SqlServer, Version=1.0.7 for akka 1.0.7
Vagif Abilov
@object
Apr 13 2016 13:55
@Silv3rcircl3 but where can I get it from? It's not on NuGet.
I see that none of NuGet packages for the actual persistence plugins has been updated to 1.0.7 on NuGEt.
Thomas Lazar
@thomaslazar
Apr 13 2016 13:56
so i have a question. i have an actor that gets a message from a remote client. in this message is information about a class this actor should retrieve from the container and a method and a bunch of params that the actor should call as well as the return type. so i have this actor that retrieves the object form the container, checks if there's a method on that class that fits the description of the message and then tries to call it with Invoke(). so far so good. it is all working so far. i put this Invoke() call inside a try catch block because i basically want to tell the sender if something happened to while calling the method and basically return the thrown exception as a message back to sender. but when the invoked method itself throws a TargetInvocationException because of reasons it seems the actor just dies. and i get some disassociation messages in the log and stuff like that. it's like the try catch block inside the receive method is just not working. any hints?
Marc Piechura
@marcpiechura
Apr 13 2016 13:57
@object indeed, then you can't use akka 1.0.7 with persistence until the plugin get's updated
@object there is a PR akkadotnet/Akka.Persistence.SqlServer#24 that updates the plugin, so you need to wait until this was merged and released
Vagif Abilov
@object
Apr 13 2016 13:58
Oh I see, thanks.
ilhadad
@ilhadad
Apr 13 2016 14:12
What does this mean when building Akka.net
---------------------------------------------------------------------
  1) Building C:\CF\SourceCode\akka.net\src\Akka.sln failed with exitcode 1.
  2) MSB4126: C:\CF\SourceCode\akka.net\src\Akka.sln.metaproj(0,0): The specified solution configuration "Release|MCD" is invalid. Please specify a valid solution configuration using the Configuration and Platform properties (e.g. MSBuild.exe Solution.sln /p:Configuration=Debug /p:Platform="Any CPU") or leave those properties blank to use the default solution configuration.
---------------------------------------------------------------------
How do I rectify this problem? I am building from the command line using build build
Aaron Stannard
@Aaronontheweb
Apr 13 2016 14:34
the .SLN does not have a build configuration that looks like that
@schepersk you need to exclude Lighthouse from your shard regions in your configuration
it will never work
under any circumstances
because it doesn't run Akka.Cluster.Sharding or Akka.Persistence or Akka.Cluster.Tools
use the roles setting
Chris G. Stevens
@cgstevens
Apr 13 2016 14:36
Are there any examples using Akka.Cluster.Tools ... I want to take my Cluster Monitor WinForms and be able to get the cluster info without having to part of the cluster.
Chris Constantin
@cconstantin
Apr 13 2016 14:54
@andreabalducci what @Horusiath said :)
Aaron Stannard
@Aaronontheweb
Apr 13 2016 15:27
@cgstevens there are some in the main repo
Bartosz Sypytkowski
@Horusiath
Apr 13 2016 15:31
@schepersk your log suggest that your actor may be dead after persisting message inside the journal
ilhadad
@ilhadad
Apr 13 2016 15:39

I am trying to run the cluster sharding example. Since I cannot compile the akka project I pulled the ClusterSharding.Node out into a clean solution. Installed all the references via Nuget. I am getting an error in the following line:

        public override string PersistenceId { get; } = Context.Parent.Path.Name + "/" + Context.Self.Path.Name;

The error is...

Akka.Persistence.UntypedPersistentActor.Context' is a 'property' but is used like a 'type'

What's missing?

Zetanova
@Zetanova
Apr 13 2016 16:43
Is the Ask valid in this sence or should i try to remove it in general?
var creditor = Context.ActorOf(PaymentCreditor.GetProps());
            service.Ask(AccountCommands.GetIdentity(state.AccountId))
                .PipeTo(creditor, success: m => PaymentProcessCommands.Credit(Id, m, state.Description, state.Amount));
Bartosz Sypytkowski
@Horusiath
Apr 13 2016 16:54
@Zetanova you could use service.Tell(AccountCommands.GetIdentity(state.AccountId), creditor) and set message mapping on either sender or receiver side to have a valid value
this will set creditor as message sender
Zetanova
@Zetanova
Apr 13 2016 16:56
i am resolving one field of the command
of course the PaymentCreditor could do it to, but i would need to reduce the PaymentProcessCommands.Credit to AccountId-GUID
If i am sending the accountIdentity to the creditor before the credit command to set up the state, i would need to remove the account field of the credit command
Zetanova
@Zetanova
Apr 13 2016 17:15
Soem like a jumbo command generator pattern or actor initialize message pattern is missing me