| Author | Message | 
		
		  | inMo | 
			  
				|  Posted: Tue Feb 09, 2016 7:56 am    Post subject: MQTT Channel Protocol |   |  | 
		
		  |  Master
 
 
 Joined: 27 Jun 2009Posts: 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 2003Posts: 20767
 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 2009Posts: 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 2008Posts: 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 2009Posts: 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 2008Posts: 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 2009Posts: 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 2008Posts: 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 2009Posts: 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 2008Posts: 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 2009Posts: 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 2003Posts: 20767
 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 2009Posts: 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 2003Posts: 20767
 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 2008Posts: 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 |  | 
		
		  |  | 
		
		  |  |