OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

mqtt message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: [OASIS Issue Tracker] (MQTT-260) Add a CONNACK code of 'Try Another Server'

    [ https://issues.oasis-open.org/browse/MQTT-260?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=63612#comment-63612 ] 

Ed Briggs commented on MQTT-260:

At the MQTT-TC Face to Face on 27 September, Ed Briggs proposed the following:

"A Server MAY return a CONNACK with a Try Another Server error code if it wants to redirect a client to a different server. If it does, a Server MAY also return a uri in CONNACK metadata."

The TC was not able to reach consensus on this for the following reasons:

1. The proposal needs to specify whether or not the client should expect the session state is intact or not.  Even though the CONNACK Session Present bit returned from the new server will indicate that the server state is present, it may not be stale, and not valid.  There is no way in MQTT to guarantee the session state will be valid on different servers. Similarly, the server has no way to know if another servers state is valid, so it can't issue an instruction to 'assume state is wrong, use clean session' along with the URI. The point of this objection is to let the user/developer know what to expect.

2. The proposed URI string may be too restrictive. For example, an alternate service tag in the spirit of RFC 7838 might allow the redirect string to provide a different port, different protocol or protocol version, etc. This might add flexibility.

> Add a CONNACK code of 'Try Another Server'
> ------------------------------------------
>                 Key: MQTT-260
>                 URL: https://issues.oasis-open.org/browse/MQTT-260
>             Project: OASIS Message Queuing Telemetry Transport (MQTT) TC
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 5
>            Reporter: Raphael Cohn
>            Assignee: Raphael Cohn
>            Priority: Critical
> If we add a CONNACK return code of 'Try Another Server', this makes it easier for over-loaded servers to tell clients to redirect. This works in conjunction with MQTT-259, which advocates the use of DNS SRV records.
> Indeed, if we also added server-originated DISCONNECT packets with this return code, we could get clients to cleanly migrate to another server when a server is shutdown for maintenance.
> Please note, I do not favour the server also reporting which new server to connect to. There in lies the route to madness, as it means the current server has to know the state of all the others. That's intimate knowledge.

This message was sent by Atlassian JIRA

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]