Recently I've encountered a scenario where it's become desirable to write a value to a PI tag (in a collective) while that point is buffered by a realtime interface. In this scenario, I had a recently created point with a value of PtCreated -no snapshot or archive values present. When attempting to write a value using the OSISoft SMT, Error -11414 buffered point does not accept new events... was raised. This is as expected. I hit upon the idea of using the PI-SDK as a work-around, using the PI-SDK UpdateValue() function...
Attempting to write to the same tag a recent value via the UpdateValue() method was successful. I need to clarify the mechanism by which the write occurs. The SDK CHM states "Send a single value (snapshot or archive) to PI" as the method descriptor. In the case above, I would have expected the value to go to the snapshot (???) but instead it appears it was sent directly to the archive. I'm confused by the behaviour. I expected the UpdateValue() call to fail with -11414 error.
My deployment configuration is a PI collective with 5 servers. I can scale up my code to write values to all collective members individually since the SDK doesn't support buffered writes. But I only want to take this approach if I can be sure there are no cases where the UpdateValue() call would fail.
Setting aside the (valid) concerns associated with writing recent values to a buffered point, would the above approach of using UpdateValue() on each collective member work? Are there failure scenarios I have overlooked?