Quantcast
Channel: Akka Libraries - Discussion Forum for Akka technologies
Viewing all articles
Browse latest Browse all 1362

Exception during recovery. Last known sequence number [0]. PersistenceId [abc], due to: null

$
0
0

Hi,
I’m getting the following error when I use Akka persistence with Cassandra plugin:

Caused by: akka.persistence.typed.internal.JournalFailureException: Exception during recovery. Last known sequence number [0]. PersistenceId [abc], due to: null
	at akka.persistence.typed.internal.ReplayingEvents.onRecoveryFailure(ReplayingEvents.scala:221)
	at akka.persistence.typed.internal.ReplayingEvents.onJournalResponse(ReplayingEvents.scala:143)
	... 31 more

my build.sbt is :

libraryDependencies += "com.typesafe.akka" %% "akka-persistence-typed" % "2.6.4"
libraryDependencies += "org.slf4j" % "slf4j-simple" % "1.8.0-beta4"
val AkkaVersion = "2.6.4"
libraryDependencies ++= Seq(
  "com.typesafe.akka" %% "akka-persistence-cassandra" % "1.0.0",
  "com.typesafe.akka" %% "akka-persistence" % AkkaVersion,
  "com.typesafe.akka" %% "akka-persistence-query" % AkkaVersion,
  "com.typesafe.akka" %% "akka-cluster-tools" % AkkaVersion
)

my code is:

object MyPersistentBehavior {

  sealed trait Command
  final case class Add(data: String) extends Command
  case object Clear extends Command
  case class Read(id: String) extends Command

  sealed trait Event
  final case class Added(data: String) extends Event
  case object Cleared extends Event

  final case class State(history: List[String] = Nil)

  val commandHandler: (State, Command) => Effect[Event, State] = { (state, command) =>
    command match {
      case Add(data) =>
          println("接收到Add命令")
          Effect.persist(Added(data))
      case Clear     => Effect.persist(Cleared)
      case Read(id) =>
        println("接收到Read命令")
          println(state)
          Effect.none
    }
  }

  val eventHandler: (State, Event) => State = { (state, event) =>
    event match {
      case Added(data) =>
        println("持久化成功")
        state.copy((data :: state.history).take(5))
      case Cleared     => State(Nil)

    }
  }

  def apply(id:String): Behavior[Command] =
    EventSourcedBehavior[Command, Event, State](
      persistenceId = PersistenceId.ofUniqueId(id),
      emptyState = State(Nil),
      commandHandler = commandHandler,
      eventHandler = eventHandler)

}

and:

def main(args: Array[String]): Unit = {
    val theSystem = ActorSystem(MyPersistentBehavior("abc"),"cook")   
    theSystem ! Add("lklk")
}

Am I doing something wrong here?

5 posts - 2 participants

Read full topic


Viewing all articles
Browse latest Browse all 1362

Trending Articles