What is the "nimid" on UIM messages and how does it work?
Why do alarms seem to all have different nimid's when they come in, but when I look at the transaction history, all transactions for a single alarm have the same nimid?
There are really two different "kinds" of nimid, one on a message on the bus, and one on an alarm specifically.
When a probe generates a message for the bus - whether that be an alarm, QoS, probe_discovery, or something else - the spooler generates and assigns the nimid. This is always a unique value for every message. Using DrNimbus you can observe this at the message bus level - you should never see a nimid repeated on two individual messages in DrNimbus.
Once an alarm message for a new, unique alarm appears in NAS, NAS uses the nimid as an identifier for that alarm. he only relation it has to a spooler-based nimid is that the nimid is taken from the very first instance of the alarm. After that, NAS completely ignores nimid's (among other things..) on incoming messages if the suppression key matches an existing, open alarm, and the "nimid" is just used as an identifier for all instances of that alarm.
So on the 2nd, 3rd, 4th etc instances of the same alarm, the nimid will always be different on the incoming alarm message, but this is discarded once the NAS correlates it with an existing open alarm, and the "original" nimid is used as the identifier for the alarm overall.