2
使用持久性參與者將消息持久存入SQL Server數據庫。初始消息格式如下。系統幾次運行這種格式,並且這些消息中的許多消息被保存。目前我改變了消息格式以包含如下的幾個屬性。有人能給我一個想法如何解決這個問題嗎?Akka.net持久性參與者恢復失敗,消息更改爲新屬性
目前我面臨的問題是恢復最初的持久消息與新的更改失敗,並給出如下錯誤。
「重播persistenceId [tz-persistent-factory]的事件時發生持久性失敗。最後已知序列號[0]」
public class PlacedMissionDataCommand : IEntityActorMessage
{
public PlacedMissionDataCommand(int trafficzoneId, int missionId, DateTime finishedTime)
{
TrafficzoneId = trafficzoneId;
MissionId = missionId;
FinishedTime = finishedTime;
TaskGroupId = taskGroupId;
TaskGroupActivated = taskGroupActivated;
TaskGroupCreated = taskGroupCreated;
TestData = testData;
}
public int TrafficzoneId { get; }
public int MissionId { get; private set; }
public DateTime FinishedTime { get; }
public string EntityId => TrafficzoneId.ToString();
}
修改完成後,包括一些屬性
public class PlacedMissionDataCommand : IEntityActorMessage
{
public PlacedMissionDataCommand(int trafficzoneId, int missionId, DateTime finishedTime, int taskGroupId, DateTime? taskGroupActivated, DateTime? taskGroupCreated)
{
TrafficzoneId = trafficzoneId;
MissionId = missionId;
FinishedTime = finishedTime;
TaskGroupId = taskGroupId;
TaskGroupActivated = taskGroupActivated;
TaskGroupCreated = taskGroupCreated;
}
public int TrafficzoneId { get; }
public int MissionId { get; private set; }
public DateTime FinishedTime { get; }
public int TaskGroupId { get; }
public DateTime? TaskGroupActivated { get; }
public DateTime? TaskGroupCreated { get; }
public string EntityId => TrafficzoneId.ToString();
}
也許是Akka.NET待辦事項列表的項目:如果您不應該使用默認的序列化程序,那麼它不應該是默認的:-) – mwardm
不幸的是,這裏有2個問題;)1.有在存儲永久數據時,沒有像默認串行器那樣的東西。 2)有些人已經在使用Akka.Persistence進行製作 - 我猜他們不會很高興,因爲在將庫升級到更高版本後,他們將無法再讀取他們的數據。 – Horusiath
@Horusiath什麼意思由版本容忍通過線序列化?如何在hocon配置中啓用它。它解決了這個問題嗎? https://github.com/akkadotnet/Hyperion#version-tolerance –