Author |
Message
|
inMo |
Posted: Tue Feb 09, 2016 7:56 am Post subject: MQTT Channel Protocol |
|
|
 Master
Joined: 27 Jun 2009 Posts: 216 Location: NY
|
I have a local install of MQ 7.5.02 running an MQTT channel called 'HTTP'. The HTTP channel has a PROTOCOL property set to (MQTTV3, HTTP). This channel is used to run a local proof of concept.
The local proof of concept is being migrated to a server. The server is running MQ 7.5.03. Established an MQTT channel called 'HTTP'. However, when trying to run the alter channel command to enable HTTP, it doesn't seem to recognize the PROTOCOL property as valid.
Question 1 - Anyone have any ideas on why this is?
Question 2 - The POC uses a javascript client. It is assumed the JS client requires the HTTP protocol. Is that a valid assumption?
Thanks in advance. |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Feb 09, 2016 8:04 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Do not get confused between channel name and channel protocol...
By the way I would never name a channel HTTP... way to confusing...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
inMo |
Posted: Tue Feb 09, 2016 8:18 am Post subject: |
|
|
 Master
Joined: 27 Jun 2009 Posts: 216 Location: NY
|
Thanks for the response. The name is just for simple POC purposes. (If you have any MQTT channel naming standard suggestions I'm all ears )
The local properties on 7.5.0.2 are where POC is working fine:
Code: |
AMQ8414: Display Channel details.
CHANNEL(HTTP) CHLTYPE(MQTT)
TRPTYPE(TCP) PORT(1884)
LOCLADDR( ) MCAUSER(Guest)
USECLTID(NO) BACKLOG(4096)
DESCR( ) SSLCIPH( )
SSLCAUTH(NEVER) SSLKEYP( )
SSLKEYR( ) JAASCFG( )
PROTOCOL(MQTTV3,HTTP)
|
The server properties on 7.5.0.3 are (no PROTOCOL option?):
Code: |
AMQ8414: Display Channel details.
CHANNEL(HTTP) CHLTYPE(MQTT)
TRPTYPE(TCP) PORT(1886)
LOCLADDR( ) MCAUSER(nobody)
USECLTID(NO) BACKLOG(4096)
DESCR( ) SSLCIPH( )
SSLCAUTH(OPTIONAL) SSLKEYP( )
SSLKEYR( ) JAASCFG( )
|
Any help/explanation/MQ Telemetry for dummies type guidance is appreciated. |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Feb 09, 2016 8:38 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
The only reference I see for HTTP with the MQ Telemetry Service is in v8.
So. Your server needs to be at v8...
Note that it only supports MQTT over WebSockets, too. Not a mapping between a normal HTTP request and an MQTT operation. _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
inMo |
Posted: Tue Feb 09, 2016 8:53 am Post subject: |
|
|
 Master
Joined: 27 Jun 2009 Posts: 216 Location: NY
|
Causing an error on purpose, during the alter command the following is shown on v7.5.0.2:
AMQ8427: Valid syntax for the MQSC command:
ALTER CHANNEL( channel_name ) CHLTYPE(MQTT)
[ BACKLOG( integer ) ] [ DESCR( string ) ]
[ JAASCFG( string ) ] [ LOCLADDR( string ) ]
[ MCAUSER( string ) ] [ PORT( integer ) ]
[ PROTOCOL( MQTTV3, HTTP ) ]
[ SSLCAUTH( REQUIRED | OPTIONAL | NEVER ) ]
[ SSLCIPH( string ) ] [ SSLKEYP( string ) ]
[ SSLKEYR( string ) ] [ TRPTYPE( TCP ) ]
[ USECLTID( NO | YES ) ]
On v7.5.0.3 the PROTOCOL option dissapears:
AMQ8427: Valid syntax for the MQSC command:
ALTER CHANNEL( channel_name ) CHLTYPE(MQTT)
[ BACKLOG( integer ) ] [ DESCR( string ) ]
[ JAASCFG( string ) ] [ LOCLADDR( string ) ]
[ MCAUSER( string ) ] [ PORT( integer ) ]
[ SSLCAUTH( REQUIRED | OPTIONAL ) ] [ SSLCIPH( string ) ]
[ SSLKEYP( string ) ] [ SSLKEYR( string ) ]
[ TRPTYPE( TCP ) ] [ USECLTID( NO | YES ) ] |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Feb 09, 2016 9:06 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Sure.
Did you verify that the HTTP support worked in v7.5.0.2?
Maybe it's just a bug in runmqsc... _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
inMo |
Posted: Tue Feb 09, 2016 9:06 am Post subject: |
|
|
 Master
Joined: 27 Jun 2009 Posts: 216 Location: NY
|
https://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.mig.doc/q121540_.htm
Quote: |
WebSphere® MQ Version 7.5.0, Fix Pack 1 and later supports the MQTT protocol over WebSockets. This enables it to be a server for clients using the MQTT messaging client for JavaScript.
A new communication protocol parameter (PROTOCOL) has been added to the MQTT channel ... |
Is there a way an MQ installation reporting to be at level 7.5.0.3 is not actually active at that particular level? |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Feb 09, 2016 9:10 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Is there a way? Dunno.
The knowledge center for v7.5 doesn't mention anything about the PROTOCOL parameter. That matches up with your runmqsc results.
Did you verify that WebSockets works? _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
inMo |
Posted: Tue Feb 09, 2016 9:14 am Post subject: |
|
|
 Master
Joined: 27 Jun 2009 Posts: 216 Location: NY
|
Yes - websockets are working great locally on v7.5.0.2.
Can't connect via websockers to server running version v7.5.0.3 |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Feb 09, 2016 9:17 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
PMR time.
Sounds like they dropped a feature without necessarily clearly documenting it...
Or maybe it's a config option in the MQXR service somewhere. _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
inMo |
Posted: Tue Feb 09, 2016 9:20 am Post subject: |
|
|
 Master
Joined: 27 Jun 2009 Posts: 216 Location: NY
|
OK. As always, I appreciate the help. |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Feb 09, 2016 12:29 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
inMo wrote: |
Thanks for the response. The name is just for simple POC purposes. (If you have any MQTT channel naming standard suggestions I'm all ears )
The local properties on 7.5.0.2 are where POC is working fine:
Code: |
LOCLADDR( ) MCAUSER(Guest)
PROTOCOL(MQTTV3,HTTP)
|
The server properties on 7.5.0.3 are (no PROTOCOL option?):
Code: |
LOCLADDR( ) MCAUSER(nobody)
|
Any help/explanation/MQ Telemetry for dummies type guidance is appreciated. |
And you don't think that the difference of MCAUser has no implications??
As naming conventions, how about including somewhere the name of the client application??  _________________ MQ & Broker admin |
|
Back to top |
|
 |
inMo |
Posted: Tue Feb 09, 2016 12:43 pm Post subject: |
|
|
 Master
Joined: 27 Jun 2009 Posts: 216 Location: NY
|
Those are IBM generated based on the platform. |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Feb 09, 2016 1:56 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
inMo wrote: |
Those are IBM generated based on the platform. |
And here I thought they came from the equivalent SYSTEM.DEFAULT channel...
'nobody' sounds like a default put in place to prevent anybody from using the channel... so may be it is not the value you want...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Feb 09, 2016 1:58 pm Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
fjb_saper wrote: |
inMo wrote: |
Those are IBM generated based on the platform. |
And here I thought they came from the equivalent SYSTEM.DEFAULT channel...
'nobody' sounds like a default put in place to prevent anybody from using the channel... so may be it is not the value you want...  |
It is *slightly* possible this is blocking the websockets connection... but it doesn't change the fact that v7.5.0.3 doesn't support the same config that v7.5.0.2 did. _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
|