Конфигурация персистентности SQL сервера Akka.Net не загружается

Я пытаюсь обновить существующий (демо) проект с Akka.Net 1.0.8 до чего-то более свежего (1.3.2 или чего-то еще).

Я застрял при получении постоянства загрузки сервера SQL. Я предпринял следующие шаги:

  1. Создан пустой проект и включен пакет Akka.Persistence.SqlServer и все его зависимости
  2. Скопировал пример конфигурации HOCON отсюда:
    • Изменены строки подключения БД к существующей БД
    • Установите автоматическую инициализацию на "вкл"
    • Исправлена ​​проблема двойных кавычек в akka.persistence.journal-store.sql-server.plugin-dispatcher
  3. Создана система актеров
  4. Проверил конфигурацию сервера SQL на наличие моей строки подключения

Результаты:

  • 1.3.2: строка подключения отсутствует (похоже на резервную конфигурацию по умолчанию), в БД ничего не происходит
  • 1.0.8: строка подключения присутствует, конфигурация кажется корректной, таблицы создаются в пустой БД.

Вот конфигурация HOCON, которую я использовал:

akka.persistence{
journal {
  plugin = "akka.persistence.journal.sql-server"
    sql-server {
        # qualified type name of the SQL Server persistence journal actor
        class = "Akka.Persistence.SqlServer.Journal.SqlServerJournal, Akka.Persistence.SqlServer"

        # dispatcher used to drive journal actor
        plugin-dispatcher = "akka.actor.default-dispatcher"

        # connection string used for database access
        connection-string = "Data Source=(LocalDB)\\MSSQLLocalDB;Initial Catalog=AkkaPersistence;Integrated Security=True"

        # default SQL commands timeout
        connection-timeout = 30s

        # SQL server schema name to table corresponding with persistent journal
        schema-name = dbo

        # SQL server table corresponding with persistent journal
        table-name = EventJournal

        # should corresponding journal table be initialized automatically
        auto-initialize = on

        # timestamp provider used for generation of journal entries timestamps
        timestamp-provider = "Akka.Persistence.Sql.Common.Journal.DefaultTimestampProvider, Akka.Persistence.Sql.Common"

        # metadata table
        metadata-table-name = Metadata
    }
}

snapshot-store {
  plugin = "akka.persistence.snapshot-store.sql-server"
    sql-server {

        # qualified type name of the SQL Server persistence journal actor
        class = "Akka.Persistence.SqlServer.Snapshot.SqlServerSnapshotStore, Akka.Persistence.SqlServer"

        # dispatcher used to drive journal actor
        plugin-dispatcher = "akka.actor.default-dispatcher"

        # connection string used for database access
        connection-string = "Data Source=(LocalDB)\\MSSQLLocalDB;Initial Catalog=AkkaPersistence;Integrated Security=True"

        # default SQL commands timeout
        connection-timeout = 30s

        # SQL server schema name to table corresponding with persistent journal
        schema-name = dbo

        # SQL server table corresponding with persistent journal
        table-name = SnapshotStore

        # should corresponding journal table be initialized automatically
        auto-initialize = on
    }
}
}

Есть ли способ устранения неполадок загрузки загрузки конфигурации HOCON?

1 ответ

Решение

Проблема здесь заключается в том, что SQL, используемый в Akka.Persistence.SqlServer, значительно изменился между 1.0.8 и 1.3.2.

ИМХО, сбросьте и воссоздайте таблицу, если это просто демонстрационное приложение. Это самый простой маршрут.

В противном случае вам придется написать сценарий миграции для перехода с формата 1.0.8 на стабильный формат в 1.3.2: https://github.com/akkadotnet/Akka.Persistence.SqlServer.

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