HornetQ support for STOMP (version, headers etc)
eustache Jun 19, 2012 7:50 AMHi there,
I've read the docs so far but found very few information regarding STOMP support in HornetQ.
Namely:
1/ Does-it support STOMP 1.1 (inc. heartbeat frames to revive connection TTL) ?
- from my experience it does not [1]
- in order to write persistent subscribers, this implies to send arbitrary frames to a dummy queue and/or to detect connection errors and try to reconnect automatically
2/ Which STOMP headers does it handles (e.g. durable-subscriber-name) ?
- again, I couldn't make 'durable-subscriber-name' work [2]
- how can I know by which means I can make the sequence described in [2] work with STOMP ?
- what about 'stomp_subscriber-id' on connection ?
Thanks for any insights,
Eustache
[1] see stacktrace:
"""
[Old I/O server worker (parentId: 1806276996, [id: 0x6ba99984, /0.0.0.0:61613])] 10:35:12,387 SEVERE [org.hornetq.core.protocol.stomp.StompProtocolManager] Failed to decode
org.hornetq.core.protocol.stomp.StompException: Invalid STOMP frame: S,T,O,M,P,10,a,c,c,e,p,t,-,v,e,r,s,i,o,n,:,1,.,1,10,h,e,a,r,t,-,b,e,a,t,:,1,0,0,,,1,0,0,10,10,0,
at org.hornetq.core.protocol.stomp.StompDecoder.throwInvalid(StompDecoder.java:566)
at org.hornetq.core.protocol.stomp.StompDecoder.decode(StompDecoder.java:375)
at org.hornetq.core.protocol.stomp.StompProtocolManager.handleBuffer(StompProtocolManager.java:161)
at org.hornetq.core.protocol.stomp.StompConnection.bufferReceived(StompConnection.java:269)
at org.hornetq.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:459)
at org.hornetq.core.remoting.impl.netty.HornetQChannelHandler.messageReceived(HornetQChannelHandler.java:73)
at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:100)
at org.jboss.netty.channel.StaticChannelPipeline.sendUpstream(StaticChannelPipeline.java:362)
at org.jboss.netty.channel.StaticChannelPipeline.sendUpstream(StaticChannelPipeline.java:357)
...
"""
[2] the following sequence fails at step:
"""
0. client-1 connects
1. client-1 subscribe to the topic with header 'durable-subscriber-name' set
2. client-2 sends message-1 to the topic
3. client-1 receives message-1
4. client-1 disconnects
5. client-2 sends message-2 to the topic
6. client-1 connects
7. client-1 subscribe to the topic with header 'durable-subscriber-name' set
8. client-1 receives message-2 # not working
"""