【问题标题】:Akka.Net SQL server persistence configuration doesn't seem to loadAkka.Net SQL 服务器持久性配置似乎没有加载
【发布时间】:2018-02-22 02:09:17
【问题描述】:

我正在尝试将现有(演示)项目从 Akka.Net 1.0.8 升级到更新的版本(1.3.2 或其他)。

我一直坚持要加载 SQL 服务器持久性。我采取了以下步骤:

  1. 创建了一个空白项目,并包含 Akka.Persistence.SqlServer 包及其所有依赖项
  2. here复制了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配置的加载问题?

【问题讨论】:

  • 你有日志吗?

标签: akka.net akka.net-persistence


【解决方案1】:

这里的麻烦是Akka.Persistence.SqlServer中使用的SQL在1.0.8和1.3.2之间发生了很大的变化。

恕我直言,如果它只是一个演示应用程序,请删除并重新创建表。这是最简单的路线。

否则,您将不得不编写一个迁移脚本来从 1.0.8 格式转换到 1.3.2 中的稳定格式:https://github.com/akkadotnet/Akka.Persistence.SqlServer#table-schema

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    相关资源
    最近更新 更多