diff --git a/apps/emqx/src/emqx_exclusive_subscription.erl b/apps/emqx/src/emqx_exclusive_subscription.erl index b43511b41..2eae1f203 100644 --- a/apps/emqx/src/emqx_exclusive_subscription.erl +++ b/apps/emqx/src/emqx_exclusive_subscription.erl @@ -70,7 +70,7 @@ check_subscribe(#{clientid := ClientId}, Topic) -> Fun = fun() -> try_subscribe(ClientId, Topic) end, - case mnesia:transaction(Fun) of + case mria:transaction(?EXCLUSIVE_SHARD, Fun) of {atomic, Res} -> Res; {aborted, Reason} -> @@ -81,7 +81,7 @@ check_subscribe(#{clientid := ClientId}, Topic) -> end. unsubscribe(Topic, #{is_exclusive := true}) -> - _ = mnesia:transaction(fun() -> mnesia:delete({?TAB, Topic}) end), + _ = mria:transaction(?EXCLUSIVE_SHARD, fun() -> mnesia:delete({?TAB, Topic}) end), ok; unsubscribe(_Topic, _SubOpts) -> ok. diff --git a/apps/emqx/src/emqx_mqtt_caps.erl b/apps/emqx/src/emqx_mqtt_caps.erl index cde97394d..fbe4684a7 100644 --- a/apps/emqx/src/emqx_mqtt_caps.erl +++ b/apps/emqx/src/emqx_mqtt_caps.erl @@ -68,7 +68,7 @@ wildcard_subscription => true, subscription_identifiers => true, shared_subscription => true, - exclusive_subscription => true + exclusive_subscription => false }). -spec check_pub( diff --git a/apps/emqx/src/emqx_schema.erl b/apps/emqx/src/emqx_schema.erl index d9ebc2faf..5652b37f7 100644 --- a/apps/emqx/src/emqx_schema.erl +++ b/apps/emqx/src/emqx_schema.erl @@ -443,7 +443,7 @@ fields("mqtt") -> sc( boolean(), #{ - default => true, + default => false, desc => ?DESC(mqtt_exclusive_subscription) } )},