Конфигурация персистентности SQL сервера Akka.Net не загружается
Я пытаюсь обновить существующий (демо) проект с Akka.Net 1.0.8 до чего-то более свежего (1.3.2 или чего-то еще).
Я застрял при получении постоянства загрузки сервера SQL. Я предпринял следующие шаги:
- Создан пустой проект и включен пакет Akka.Persistence.SqlServer и все его зависимости
- Скопировал пример конфигурации HOCON отсюда:
- Изменены строки подключения БД к существующей БД
- Установите автоматическую инициализацию на "вкл"
- Исправлена проблема двойных кавычек в akka.persistence.journal-store.sql-server.plugin-dispatcher
- Создана система актеров
- Проверил конфигурацию сервера 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.