I have found the message counts displayed by the GUI/IDE to be unreliable as you noted with excitement, especially after doing
hcimsiutil -Z
If I want the true story I use hcidbdump -r commands much like Jim Cobane pointed out already.
The good news is that even though the GUI/IDE display of message count has given me heart attacks like the one you just had, I’ve never experienced any message losss as a result of hcimsiutil -Z.
I do recall one case of unexpected message loss I encounter but that was a result of me doing a resend to an outbound thread and lossing them when the outbound thread was recycled.
In other words, hcimsiutil -Z can make it look like messages are lost but nothing really gets lost; where as, using the resend feature even with recovery DB turned on can result in message loss if threads get recycled before delivering the resend messages.
I’ve also found it prudent to recycle threads after all resend messages have been delivered because on occasion the normal inbound messages would not flow until I recycle the threads.
Another thing about the recovery database that confused me until I went to level II training is that for the most part it only makes sense to turn recovery database on for inbound threads.
If you want to understand that statement then turn off recovery database on the inbound thread and turn it on for the outbound thread, then let the messages que on the outbound thread, then start and stop the interfaces and your messages will all be gone.
Now reverse the process by turning recovery on for the inbound thread and turn recovery off for the outbound thread, then let messages que on outbound thread, then cycle interfaces and messages will all be preserved nice and safe.
To get the full depth of why, I will leave that up to the level II instructor.
PS: As far as I know, none of our prodcution outbound threads have recovery database turned on but all of our inbound threads in prodcution do have recovery DB turned on.
Russ Ross
RussRoss318@gmail.com