При инициализации системы акторов Akka.NET неожиданно возникли исключения EndpointDisassociatedExceptions. (F#)

Я новичок в Акке; локальная система акторов общалась с удаленной системой на другом компьютере в нашей сети в течение пары дней, а затем просто перестала работать по причинам, которые я не смог понять.

Я знаю, что разрыв ассоциации не обязательно является проблемой (#6 на http://petabridge.com/blog/top-7-akkadotnet-stumbling-blocks/), но в моем случае это определенно не что-то это должно происходить. Я не могу получить результат любой работы, которую я хочу выполнить от удаленного субъекта, и когда я захожу на удаленный компьютер и смотрю на его вывод, я не вижу ни одного из сообщений, подтверждающих получение запроса, который я закодировал это, чтобы напечатать к его консоли.

Это то, что я вижу на удаленной машине, как только я порождаю актера и развертываю его на удаленной машине (spawne myActorSystem actorName <@ expression @> [ SpawnOption.Deploy (Akka.Actor.Deploy (RemoteScope parsedAddress)) ]):

(См. Вывод на http://www.miloonline.net/stash/akka_remote_error.txt)

Конфигурация моей локальной системы:

sprintf
    """akka {
        actor {
            provider = "Akka.Remote.RemoteActorRefProvider, Akka.Remote"
            serializers {
                wire = "Akka.Serialization.WireSerializer, Akka.Serialization.Wire"
            }
            serialization-bindings {
                "System.Object" = wire
            }
        }
        remote {
            helios.tcp {
                hostname = %s
                port = 0        // Auto-configure port
            }
        }
    }"""
    (Net.Dns.GetHostName ())

... и на удаленной машине:

sprintf
    """akka {
        actor {
            provider = "Akka.Remote.RemoteActorRefProvider, Akka.Remote"
            serializers {
                wire = "Akka.Serialization.WireSerializer, Akka.Serialization.Wire"
            }
            serialization-bindings {
                "System.Object" = wire
            }
        }
        remote {
            helios.tcp {
                hostname = %s
                port = 1234
            }
        }
    }"""
    (Net.Dns.GetHostName ())

Опять же, они работали нормально в течение двух или трех дней; Я изучил изменения кода в Git, и нет ничего, что могло бы объяснить внезапный и постоянный сбой.

РЕДАКТИРОВАТЬ: Первоначально у меня был remote блок конфигурации HOCON внутри actor блок на моей локальной машине. Я переместил это из actor block, и теперь вывод на удаленном компьютере изменился (я отредактировал blockquote удаленного вывода, чтобы отразить это). Тем не менее, я все еще вижу ошибки, и мои попытки заставить удаленного субъекта работать и вернуть значение по-прежнему терпят неудачу.

РЕДАКТИРОВАТЬ: я переместил мою систему удаленного актера на компьютер с Windows Server, который устранил ошибки SocketException. К сожалению, проблема, с которой я сталкиваюсь сейчас, заключается в том, что после того, как моя удаленная система обменивается данными с моей локальной системой в течение одного сеанса, она больше не работает после того, как я завершаю удаленный процесс. Все последующие попытки установить точно такой же результат установки приводят к знакомым сбоям EndpointDisassociatedException, даже после того, как я перезагружаю обе машины. (Как указано выше, см. http://www.miloonline.net/stash/akka_remote_error.txt для вывода из удаленной системы субъекта.) Существуют ли какие-либо стандартизированные средства завершения или создания экземпляра системы субъекта, которая решает эту проблему?

0 ответов

Другие вопросы по тегам