These are chat archives for akkadotnet/akka.net

27th
Nov 2015
Yin Zhang
@melcloud
Nov 27 2015 05:03

Mmm... I think the Delivery method on Akka.net is not as clear as the scalar one.

.net version: During recovery this method will not send out the message, but it will be sent later until corresponding ConfirmDelivery will be invoked.

java version: During recovery this method will not send out the message, but it will be sent later if no matching confirmDelivery was performed.

Freeman Ke
@freemanke
Nov 27 2015 05:40
Hello everybody.
How can i config the hostname=? to allow actorsystem to listen on all interface?
I have try hostname = 0.0.0.0 , it doesn't work.
Yin Zhang
@melcloud
Nov 27 2015 06:19
@guang810828 host name should be your host name of the PC or IP will do
to listen on port, needs to use 0 in port
MartinNiemandt
@MartinNiemandt
Nov 27 2015 07:09
Hi, I keep getting dead letters to my service, I went over to using your server chat applications config but still just getting dead letters, if i do the same in an application it connects any ideas?
Yin Zhang
@melcloud
Nov 27 2015 07:10
@MartinNiemandt could you kindly post your config file? you can mask sensitive data
MartinNiemandt
@MartinNiemandt
Nov 27 2015 07:14
@melcloud I removed my entire config and defaulted to the akka chat sample server config but still no luck,
var config = ConfigurationFactory.ParseString(@"akka { actor { provider = ""Akka.Remote.RemoteActorRefProvider, Akka.Remote"" } remote { helios.tcp { transport-class = ""Akka.Remote.Transport.Helios.HeliosTcpTransport, Akka.Remote"" applied-adapters = [] transport-protocol = tcp port = 8081 hostname = 192.16.28.14 } } } ");
The system is running on a service, and I print the actor addresses to Sentinal and the whole system starts up correctly. I have tried a few different ports. thanks for your assistance
I also tried running my service on my user account, local system, and local service user with no luck
Freeman Ke
@freemanke
Nov 27 2015 07:15
@melcloud thanks
Yin Zhang
@melcloud
Nov 27 2015 07:17
@MartinNiemandt So the above configuration works in code but not working if you put into app.config it doesn't?
MartinNiemandt
@MartinNiemandt
Nov 27 2015 07:19
Hi no sorry if I was unclear, I used it exactly like that. not in the app.config; It works fine when I test it in a console application, but as soon as I put it in my windows service I just get dead letters when trying to send messages to it, do you want to see the ActorSelection?
Yin Zhang
@melcloud
Nov 27 2015 07:19
@MartinNiemandt if that is the case, try turn on logging and set log-config-on-start = on. This will print the entire config to the log system
MartinNiemandt
@MartinNiemandt
Nov 27 2015 07:22
@melcloud Ok I will try, thank you
Yin Zhang
@melcloud
Nov 27 2015 07:26
@MartinNiemandt this is my config for debugging locally. works fine
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="akka" type="Akka.Configuration.Hocon.AkkaConfigurationSection, Akka" />
  </configSections>

  <akka>
    <hocon>
      <![CDATA[
          akka {
            # here we are configuring log levels
            log-config-on-start = off
            stdout-loglevel = DEBUG
            loglevel = DEBUG
            loggers = ["Akka.Logger.Serilog.SerilogLogger, Akka.Logger.Serilog"]

            actor {
              debug {
                receive = off
                autoreceive = off
                lifecycle = on
                event-stream = on
                unhandled = on
              }

              # enable akka.net remote
              provider = "Akka.Remote.RemoteActorRefProvider, Akka.Remote"
            }

            remote {
              log-remote-lifecycle-events = DEBUG
              log-received-messages = on
              log-sent-messages = on

              helios.tcp {
                hostname = "localhost"
                # select a port by computer
                port = 0
              }
            }
          }
      ]]>
    </hocon>
  </akka>

  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
</configuration>
MartinNiemandt
@MartinNiemandt
Nov 27 2015 08:14
@melcloud It is not receiving the messages at all :shipit:
Onat Yiğit Mercan
@onatm
Nov 27 2015 08:24
i'm experiencing unexpected failures in local and CI envs on test stage.
in CI there is a problem with MultiNodeTestRunner. You can find the build info here: http://petabridge-ci.cloudapp.net/viewLog.html?buildId=2903&buildTypeId=AkkaNet_AkkaNetPrBuild&guest=1
Yin Zhang
@melcloud
Nov 27 2015 08:28
@MartinNiemandt so you have two actor system and connected by akka remote? You probably need to make sure there is no firewall between them (the port is accessible). Do you get association errors? probably need to see both config for it
MartinNiemandt
@MartinNiemandt
Nov 27 2015 08:31
@melcloud I made both my systems use your configuration in the app.config and I copied the address while debugging, and the messages started working now. I am just going to check a few more, but it seems to work now. :) thank you.
Yin Zhang
@melcloud
Nov 27 2015 08:32
cool. just make sure you specify a port, I found that is easier in production
MartinNiemandt
@MartinNiemandt
Nov 27 2015 08:34
Will do, thank you for the help! really needed it..
Yin Zhang
@melcloud
Nov 27 2015 08:35
@MartinNiemandt BTW, if you are using my config, probably should turn some logging off, and change loglevel to info. I found serilog and seq log server is your best friend in production.
MartinNiemandt
@MartinNiemandt
Nov 27 2015 08:40
@melcloud aah will do that as well, I used NLog separately because I just found out about sentinal and harvester(useful while developing), but I will try this method of yours for production. thank you
LukePearce-agent3
@LukePearce-agent3
Nov 27 2015 16:11
can someone help me with clustering? I would like to be able to spin up multiple nodes of the same service and have message distributed evenly across them all, can't get my head around cluster router and routerselection for this
*actorselection sorry
is there a way to select on role or something?
Bartosz Sypytkowski
@Horusiath
Nov 27 2015 16:24
Weston
@ronnyek
Nov 27 2015 16:28
do I need to worry about security etc of my actor network?
eg, I start it up, do I need to worry about actors getting messages from outliers or anything weird like that
Bartosz Sypytkowski
@Horusiath
Nov 27 2015 16:32
@ronnyek until DotNetty transport layer with tls support will land, akka.net doesn't handle security by itself. But it's very unlike, that something like that will happen, and you always have logs alerted when any two nodes will connect to each other
Weston
@ronnyek
Nov 27 2015 16:33
what is dotnetty?
Bartosz Sypytkowski
@Horusiath
Nov 27 2015 16:34
DotNetty is MS port of JVM Netty socket server framework
I guess it will replace Helios (our own socket server framework) soon
Weston
@ronnyek
Nov 27 2015 16:35
and thats going to honestly be better?
I dont know, I know akka.net is a port from java
just seems like aside from api's and stuff, I'd be hesitant to port stuff over
Bartosz Sypytkowski
@Horusiath
Nov 27 2015 16:37
transport layer is plugable, and DotNetty is already used internally by some of the Azure team services. It has small community and people willing to work on it. On the other side, Helios is hard to keep up, as @Aaronontheweb is the only person who know this stuff... and he is also DotNetty contributor
Weston
@ronnyek
Nov 27 2015 17:33
nice
Chris Constantin
@cconstantin
Nov 27 2015 17:36
Hi all, great job on porting akka to .net. I can’t find this info anywhere: what are the plans wrt porting akka streams and persistent query? Waiting on the API and implementation to stabilize in the Java version?
Bartosz Sypytkowski
@Horusiath
Nov 27 2015 17:44

@cconstantin My guess/wish would be:

  1. We add DotNetty transport layer for Akka.Remote and get Akka.Cluster out of beta - IMO it's stable enough for some time already.
  2. We have semi-advanced Akka.Cluster.Tools - working proof of concept is ready, we need to cover the test specs and fix remaining bugs.
  3. Then probably Akka.Cluster.Sharding as it has been ported already, but still requires some work.
  4. Then my guess, Akka.Streams will be the next - I've ported around 14,5KLOC of it already, but it's nowhere close to finish.

We want to have out cluster history nice and complete.

But for all of this, we have a lot of work and not much time to spare ;)
Chris Constantin
@cconstantin
Nov 27 2015 17:45
so a rough ETA would be? I’m not making any promises yet, but I might be able to contribute to Akka.Streams
Bartosz Sypytkowski
@Horusiath
Nov 27 2015 17:46
for akka streams? next year I guess ;)
Chris Constantin
@cconstantin
Nov 27 2015 17:47
haha :) I figured as much
Bartosz Sypytkowski
@Horusiath
Nov 27 2015 17:48
It's one of the biggest plugins in whole akka project and I guess we need some strategy to share work over it, as it's too big for one person in reasonable amount of time.
Chris Constantin
@cconstantin
Nov 27 2015 17:48
for now a poor man’s solution can be put together with persistent views, I think
Bartosz Sypytkowski
@Horusiath
Nov 27 2015 17:50
I've created some poor man's querying capabilities for sql-based journals in PR #1306
but it's not reactive streaming by any means
I wanted to get some similar querying capabilities for other plugins and get some unique advantages for each of the persistent journal depending of the backend they use i.e. for Postgres events serialized to jsonb data type or tailable cursors for MongoDB
Chris Constantin
@cconstantin
Nov 27 2015 18:07
Alright, I’ll take a look
Chris Constantin
@cconstantin
Nov 27 2015 23:43
if I’m only interested to persist current state, is a PersistentActor still the best way to go (with calls to DeleteMessages to remove history)?