1

When using a Microstream database with a backup directory, all files but "PersistenceTypeDictionary.ptd" are cloned within backup directory.

When trying to use backup directory as origin database, Microstream tries to reproduce this missing file but I get a NullPointerException:

Exception in thread "main" java.lang.RuntimeException: Problem in channel 0
    at one.microstream.storage.types.StorageChannelTask$Abstract.checkForProblems(StorageChannelTask.java:61)
    at one.microstream.storage.types.StorageChannelTask$Abstract.waitOnCompletion(StorageChannelTask.java:123)
    at one.microstream.storage.types.StorageManager$Default.startThreads(StorageManager.java:280)
    at one.microstream.storage.types.StorageManager$Default.internalStartUp(StorageManager.java:449)
    at one.microstream.storage.types.StorageManager$Default.start(StorageManager.java:519)
    at one.microstream.storage.types.StorageManager$Default.start(StorageManager.java:1)
    at one.microstream.storage.types.EmbeddedStorageManager$Default.start(EmbeddedStorageManager.java:233)
    at one.microstream.storage.types.EmbeddedStorageManager$Default.start(EmbeddedStorageManager.java:1)
    at one.microstream.storage.types.EmbeddedStorage.createAndStartStorageManager(EmbeddedStorage.java:580)
    at one.microstream.storage.types.EmbeddedStorage.start(EmbeddedStorage.java:464)
    at com.packenius.book.microstream.examples.backup.Backup_03_CountBackupListEntries.main(Backup_03_CountBackupListEntries.java:12)
Caused by: java.lang.NullPointerException
    at one.microstream.storage.types.StorageFileManager$Default.clearRegisteredFiles(StorageFileManager.java:299)
    at one.microstream.storage.types.StorageFileManager$Default.clearState(StorageFileManager.java:1186)
    at one.microstream.storage.types.StorageFileManager$Default.initializeStorage(StorageFileManager.java:871)
    at one.microstream.storage.types.StorageChannel$Default.initializeStorage(StorageChannel.java:621)
    at one.microstream.storage.types.StorageChannelTaskInitialize$Default.succeed(StorageChannelTaskInitialize.java:197)
    at one.microstream.storage.types.StorageChannelTaskInitialize$Default.succeed(StorageChannelTaskInitialize.java:1)
    at one.microstream.storage.types.StorageChannelSynchronizingTask$AbstractCompletingTask.synchronizedComplete(StorageChannelSynchronizingTask.java:61)
    at one.microstream.storage.types.StorageChannelSynchronizingTask$AbstractCompletingTask.complete(StorageChannelSynchronizingTask.java:109)
    at one.microstream.storage.types.StorageChannelTask$Abstract.processBy(StorageChannelTask.java:213)
    at one.microstream.storage.types.StorageChannel$Default.work(StorageChannel.java:281)
    at one.microstream.storage.types.StorageChannel$Default.run(StorageChannel.java:351)
    at java.lang.Thread.run(Thread.java:748)

What is wrong with my doing?

Joachim Sauer
  • 302,674
  • 57
  • 556
  • 614
Christian
  • 576
  • 1
  • 4
  • 16

1 Answers1

1

The exception indicates an incomplete type dictionary. It is not possible to load an existing storage without the correct type dictionary. The one that is created in your case is just a minimal default type dictionary.

Unfortunately, I can’t say why the PersistenceTypeDictionary.ptd was not written to the backup directory.

MSHG
  • 259
  • 1
  • 4