feat(GWC-37,WRK-32): refresh live alarm watch lists
This commit is contained in:
File diff suppressed because it is too large
Load Diff
+1796
-608
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -130,6 +130,7 @@ message MxCommand {
|
||||
WriteSecuredBulkCommand write_secured_bulk = 41;
|
||||
WriteSecured2BulkCommand write_secured2_bulk = 42;
|
||||
ReadBulkCommand read_bulk = 43;
|
||||
UpdateAlarmWatchListCommand update_alarm_watch_list = 44;
|
||||
PingCommand ping = 100;
|
||||
GetSessionStateCommand get_session_state = 101;
|
||||
GetWorkerInfoCommand get_worker_info = 102;
|
||||
@@ -174,6 +175,7 @@ enum MxCommandKind {
|
||||
MX_COMMAND_KIND_WRITE_SECURED_BULK = 32;
|
||||
MX_COMMAND_KIND_WRITE_SECURED2_BULK = 33;
|
||||
MX_COMMAND_KIND_READ_BULK = 34;
|
||||
MX_COMMAND_KIND_UPDATE_ALARM_WATCH_LIST = 35;
|
||||
MX_COMMAND_KIND_PING = 100;
|
||||
MX_COMMAND_KIND_GET_SESSION_STATE = 101;
|
||||
MX_COMMAND_KIND_GET_WORKER_INFO = 102;
|
||||
@@ -344,8 +346,8 @@ enum AlarmProviderMode {
|
||||
// Subscription expression follows the canonical
|
||||
// `\\<machine>\Galaxy!<area>` format (literal "Galaxy" provider). The
|
||||
// worker spins up a wnwrapConsumer-backed subscription on its STA on
|
||||
// first call; subsequent calls are an error (use UnsubscribeAlarms then
|
||||
// SubscribeAlarms to reconfigure).
|
||||
// first call; subsequent calls are an error. Use UpdateAlarmWatchList to
|
||||
// replace the standby targets without restarting the primary subscription.
|
||||
message SubscribeAlarmsCommand {
|
||||
string subscription_expression = 1;
|
||||
// UNSPECIFIED = auto-failover/failback. ALARMMGR/SUBTAG force one provider.
|
||||
@@ -354,6 +356,17 @@ message SubscribeAlarmsCommand {
|
||||
// alarmmgr mode; in subtag mode it bounds what the consumer can observe.
|
||||
repeated AlarmSubtagTarget watch_list = 3;
|
||||
AlarmFailoverConfig failover = 4;
|
||||
// True when auto mode should retain subtag-fallback capability even if the
|
||||
// gateway's initial discovery produced an empty watch list. False leaves an
|
||||
// empty list as an intentional alarm-manager-only subscription.
|
||||
bool fallback_enabled = 5;
|
||||
}
|
||||
|
||||
// Replace the live alarm subscription's subtag standby targets. The worker
|
||||
// constructs and attaches the replacement before swapping it into service, so
|
||||
// a setup failure leaves the existing standby and active provider unchanged.
|
||||
message UpdateAlarmWatchListCommand {
|
||||
repeated AlarmSubtagTarget watch_list = 1;
|
||||
}
|
||||
|
||||
// Tear down the worker's alarm consumer. No-op if no subscription is
|
||||
@@ -537,11 +550,14 @@ message MxCommandReply {
|
||||
MxValue return_value = 6;
|
||||
// Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
|
||||
// WRITE_SECURED2 replies the worker holds the reply for a bounded window
|
||||
// (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
|
||||
// (default 1.5 s, MxGateway:Worker:WriteCompletionWaitMilliseconds) waiting for
|
||||
// the matching MXAccess OnWriteComplete callback and copies its status rows
|
||||
// here, so statuses[0] carries the real MXAccess commit outcome (success OR
|
||||
// failure) while protocol_status/hresult still describe command acceptance
|
||||
// only. Empty statuses on a write reply means the completion did not arrive
|
||||
// only. Callback correlation is recency-based per item handle: after the
|
||||
// bounded wait, a sequential write's callback supersedes a timed-out
|
||||
// predecessor, and a later stale callback for that predecessor is ignored.
|
||||
// Empty statuses on a write reply means the completion did not arrive
|
||||
// within the window — the write is unconfirmed, not failed. Correlation is
|
||||
// best-effort per (server_handle, item_handle): MXAccess's callback carries
|
||||
// no transaction id, so concurrent writes to the same item within the
|
||||
|
||||
Reference in New Issue
Block a user