Published on InterSystems Developer Community (https://community.intersystems.com)

Home > Mirror Backup vs. R/O Database Behavior - Scheduled Task for HL7 Message Dumps

Question
Jeffrey Drumm · Sep 17, 2019

Mirror Backup vs. R/O Database Behavior - Scheduled Task for HL7 Message Dumps

I've created a scheduled task that dumps HL7 messages to flat files. It uses the OutputToLibraryStream() method of EnsLib.HL7.Message. I'd like to be able to run it on a mirror member host whether it's primary or backup.

When run against a database that's mounted read-only, it works fine. However, when I attempt to run it against a mirror backup database, I get the following error:

#5002: Cache error: <PROTECT>%LoadData+7^EnsLib.HL7.Message.1

Tracing that back to the source, I find:

Lock +(^EnsLib.H.MessageD(id)#"SE"):$zu(115,4)

Can someone help me understand how locking might behave differently on a "conventional" R/O database vs. a mirror backup R/O database? I can rationalize the behavior due to the fact that dejournaling is still doing sets/kills and that a lock would potentially mean bad things for mirror consistency, but I don't know why I wouldn't see this behavior on a database that is purposely mounted R/O.

Oh, and I'd also like to make this work :D

#Failover #Mirroring #ObjectScript #Ensemble

Source URL:https://community.intersystems.com/post/mirror-backup-vs-ro-database-behavior-scheduled-task-hl7-message-dumps