Hello,
Thank you both very much for taking the trouble to respond.
I'm unsure how to disable sasl in Qpid Proton but will try and work it out.
I was having trouble with Wireshark, but have now got it working.
The protocol interaction in Wireshark (when executing a simple Qpid Proton send
example) is included below. Apologies for not sending this initially.
I have also included the send "test code", below.
The server running is HornetQ 2.4.0.Final with the proton-j and proton jms jars
upgraded (to 0.10, from 0.4).
Thanks & regards,
Matthew
################## WIRESHARK OUTPUT ######################
No. Time Source Destination Protocol Length
Info
1 0.000000 10.20.51.60 10.30.50.0 TCP 66
65285→5672 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1
Frame 1: 66 bytes on wire (528 bits), 66 bytes captured (528 bits)
Ethernet II, Src: DellInc_d7:96:d4 (18:03:73:d7:96:d4), Dst: CiscoInc_19:8c:d9
(00:22:55:19:8c:d9)
Internet Protocol Version 4, Src: 10.20.51.60 (10.20.51.60), Dst: 10.30.50.0
(10.30.50.0)
Transmission Control Protocol, Src Port: 65285 (65285), Dst Port: 5672 (5672),
Seq: 0, Len: 0
No. Time Source Destination Protocol Length
Info
2 0.004513 10.30.50.0 10.20.51.60 TCP 66
5672→65285 [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1
Frame 2: 66 bytes on wire (528 bits), 66 bytes captured (528 bits)
Ethernet II, Src: CiscoInc_19:8c:d9 (00:22:55:19:8c:d9), Dst: DellInc_d7:96:d4
(18:03:73:d7:96:d4)
Internet Protocol Version 4, Src: 10.30.50.0 (10.30.50.0), Dst: 10.20.51.60
(10.20.51.60)
Transmission Control Protocol, Src Port: 5672 (5672), Dst Port: 65285 (65285),
Seq: 0, Ack: 1, Len: 0
No. Time Source Destination Protocol Length
Info
3 0.004577 10.20.51.60 10.30.50.0 TCP 54
65285→5672 [ACK] Seq=1 Ack=1 Win=65536 Len=0
Frame 3: 54 bytes on wire (432 bits), 54 bytes captured (432 bits)
Ethernet II, Src: DellInc_d7:96:d4 (18:03:73:d7:96:d4), Dst: CiscoInc_19:8c:d9
(00:22:55:19:8c:d9)
Internet Protocol Version 4, Src: 10.20.51.60 (10.20.51.60), Dst: 10.30.50.0
(10.30.50.0)
Transmission Control Protocol, Src Port: 65285 (65285), Dst Port: 5672 (5672),
Seq: 1, Ack: 1, Len: 0
No. Time Source Destination Protocol Length
Info
4 0.059284 10.20.51.60 10.30.50.0 AMQP 87
Protocol-Header 1-0-0 sasl.init
Frame 4: 87 bytes on wire (696 bits), 87 bytes captured (696 bits)
Ethernet II, Src: DellInc_d7:96:d4 (18:03:73:d7:96:d4), Dst: CiscoInc_19:8c:d9
(00:22:55:19:8c:d9)
Internet Protocol Version 4, Src: 10.20.51.60 (10.20.51.60), Dst: 10.30.50.0
(10.30.50.0)
Transmission Control Protocol, Src Port: 65285 (65285), Dst Port: 5672 (5672),
Seq: 1, Ack: 1, Len: 33
Advanced Message Queueing Protocol
Advanced Message Queueing Protocol
No. Time Source Destination Protocol Length
Info
5 0.072613 10.30.50.0 10.20.51.60 AMQP 62
Protocol-Header 1-0-0
Frame 5: 62 bytes on wire (496 bits), 62 bytes captured (496 bits)
Ethernet II, Src: CiscoInc_19:8c:d9 (00:22:55:19:8c:d9), Dst: DellInc_d7:96:d4
(18:03:73:d7:96:d4)
Internet Protocol Version 4, Src: 10.30.50.0 (10.30.50.0), Dst: 10.20.51.60
(10.20.51.60)
Transmission Control Protocol, Src Port: 5672 (5672), Dst Port: 65285 (65285),
Seq: 1, Ack: 34, Len: 8
Advanced Message Queueing Protocol
No. Time Source Destination Protocol Length
Info
6 0.072614 10.30.50.0 10.20.51.60 AMQP 84
open close
Frame 6: 84 bytes on wire (672 bits), 84 bytes captured (672 bits)
Ethernet II, Src: CiscoInc_19:8c:d9 (00:22:55:19:8c:d9), Dst: DellInc_d7:96:d4
(18:03:73:d7:96:d4)
Internet Protocol Version 4, Src: 10.30.50.0 (10.30.50.0), Dst: 10.20.51.60
(10.20.51.60)
Transmission Control Protocol, Src Port: 5672 (5672), Dst Port: 65285 (65285),
Seq: 9, Ack: 34, Len: 30
Advanced Message Queueing Protocol
Advanced Message Queueing Protocol
No. Time Source Destination Protocol Length
Info
7 0.072655 10.20.51.60 10.30.50.0 TCP 54
65285→5672 [ACK] Seq=34 Ack=39 Win=65536 Len=0
Frame 7: 54 bytes on wire (432 bits), 54 bytes captured (432 bits)
Ethernet II, Src: DellInc_d7:96:d4 (18:03:73:d7:96:d4), Dst: CiscoInc_19:8c:d9
(00:22:55:19:8c:d9)
Internet Protocol Version 4, Src: 10.20.51.60 (10.20.51.60), Dst: 10.30.50.0
(10.30.50.0)
Transmission Control Protocol, Src Port: 65285 (65285), Dst Port: 5672 (5672),
Seq: 34, Ack: 39, Len: 0
No. Time Source Destination Protocol Length
Info
8 61.490947 10.30.50.0 10.20.51.60 TCP 60
5672→65285 [FIN, ACK] Seq=39 Ack=34 Win=65536 Len=0
Frame 8: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
Ethernet II, Src: CiscoInc_19:8c:d9 (00:22:55:19:8c:d9), Dst: DellInc_d7:96:d4
(18:03:73:d7:96:d4)
Internet Protocol Version 4, Src: 10.30.50.0 (10.30.50.0), Dst: 10.20.51.60
(10.20.51.60)
Transmission Control Protocol, Src Port: 5672 (5672), Dst Port: 65285 (65285),
Seq: 39, Ack: 34, Len: 0
No. Time Source Destination Protocol Length
Info
9 61.491003 10.20.51.60 10.30.50.0 TCP 54
65285→5672 [ACK] Seq=34 Ack=40 Win=65536 Len=0
Frame 9: 54 bytes on wire (432 bits), 54 bytes captured (432 bits)
Ethernet II, Src: DellInc_d7:96:d4 (18:03:73:d7:96:d4), Dst: CiscoInc_19:8c:d9
(00:22:55:19:8c:d9)
Internet Protocol Version 4, Src: 10.20.51.60 (10.20.51.60), Dst: 10.30.50.0
(10.30.50.0)
Transmission Control Protocol, Src Port: 65285 (65285), Dst Port: 5672 (5672),
Seq: 34, Ack: 40, Len: 0
No. Time Source Destination Protocol Length
Info
10 61.492852 10.20.51.60 10.30.50.0 TCP 54
65285→5672 [FIN, ACK] Seq=34 Ack=40 Win=65536 Len=0
Frame 10: 54 bytes on wire (432 bits), 54 bytes captured (432 bits)
Ethernet II, Src: DellInc_d7:96:d4 (18:03:73:d7:96:d4), Dst: CiscoInc_19:8c:d9
(00:22:55:19:8c:d9)
Internet Protocol Version 4, Src: 10.20.51.60 (10.20.51.60), Dst: 10.30.50.0
(10.30.50.0)
Transmission Control Protocol, Src Port: 65285 (65285), Dst Port: 5672 (5672),
Seq: 34, Ack: 40, Len: 0
No. Time Source Destination Protocol Length
Info
11 61.496639 10.30.50.0 10.20.51.60 TCP 60
5672→65285 [ACK] Seq=40 Ack=35 Win=65536 Len=0
Frame 11: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
Ethernet II, Src: CiscoInc_19:8c:d9 (00:22:55:19:8c:d9), Dst: DellInc_d7:96:d4
(18:03:73:d7:96:d4)
Internet Protocol Version 4, Src: 10.30.50.0 (10.30.50.0), Dst: 10.20.51.60
(10.20.51.60)
Transmission Control Protocol, Src Port: 5672 (5672), Dst Port: 65285 (65285),
Seq: 40, Ack: 35, Len: 0
################## SEND CODE ######################
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
/**
* Based on:
* Example/test of the java Messenger/Message API.
* Based closely qpid src/proton/examples/messenger/py/send.py
* @author [email protected]
* @since 8/4/2013
*/
package qpid;
import org.apache.qpid.proton.TimeoutException;
import org.apache.qpid.proton.amqp.Symbol;
import org.apache.qpid.proton.amqp.messaging.*;
import org.apache.qpid.proton.message.Message;
import org.apache.qpid.proton.messenger.Messenger;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
public class SendOld {
private static Logger tracer = Logger.getLogger("proton.example");
//private String address =
"amqp://guest:guest@localhost:5672/jms.topic.ContentOperations";
private String address =
"amqp://guest:guest@hangerlane:5672/exampleQueue1"; //?amqp.saslLayer=false";
//private String address = "amqp://guest:guest@localhost:5672/NewQueue";
//jms.queue.publishQueue & NewQueue
private String subject = "change";
private String body = new String("Message string");
private SendOld() {
}
public static void main(String args[]) {
SendOld o = new SendOld();
o.run();
}
private void run() {
try {
System.out.println("Create messenger 'guest'");
Messenger mng =
org.apache.qpid.proton.messenger.impl.MessengerImpl.Factory.create("guest");
System.out.println("Set password");
mng.setPassword("guest");
System.out.println("Start messenger");
mng.start();
System.out.println("Create message");
Message msg =
org.apache.qpid.proton.message.impl.MessageImpl.Factory.create();
System.out.println("Set message address");
msg.setAddress(address);
System.out.println("Set subject");
//msg.setSubject(subject);
System.out.println("Set delivery annotations");
Map<Symbol,Object> map = new HashMap<>();
map.put(Symbol.getSymbol("modify"), "yes");
DeliveryAnnotations da = new DeliveryAnnotations(map);
msg.setDeliveryAnnotations(da);
System.out.println("Set message body");
Section s = new AmqpValue(body);
msg.setBody(s);
mng.put(msg);
System.out.println("Send message");
try {
mng.send();
} catch (TimeoutException e){
e.printStackTrace();
}
System.out.println("Stop messenger");
mng.stop();
} catch (Exception e) {
tracer.log(Level.SEVERE, "proton error", e);
}
}
}
-----Original Message-----
From: Chuck Rolke [mailto:[email protected]]
Sent: 27 October 2015 20:39
To: [email protected]
Subject: Re: "unknown frame type: 0" after upgrading proton-j jar and proton
jms jar (0.4 -> 0.10) in HornetQ (final).
----- Original Message -----
> From: "Gordon Sim" <[email protected]>
> To: [email protected]
> Sent: Tuesday, October 27, 2015 3:24:37 PM
> Subject: Re: "unknown frame type: 0" after upgrading proton-j jar and
> proton jms jar (0.4 -> 0.10) in HornetQ (final).
>
> On 10/27/2015 03:43 PM, Matthew Karlsen wrote:
> > Hello again,
> >
> > Last time I contacted the list I was having issues with the basic
> > sending and receiving of AMQP messages to/from HornetQ.
> > I have got quite a bit further by myself (+ docs & e.g.s) but am
> > sorry to say that I am stumped again...
> >
> > I have got HornetQ and the Qpid Proton examples configured and
> > working with proton-api-0.4.jar, proton-j-impl-0.4.jar and
> > proton-jms-0.4.jar. I have also set up a divert with a filter such
> > that some messages are diverted from one queue to another.
> >
> > It all works fine...
> >
> > Unfortunately, the Qpid Proton library versions that I am using have
> > a connection timeout hard-coded at 60 seconds (if I understand correctly).
> >
> > I believe this relates to
> > https://developer.jboss.org/thread/233539?start=0&tstart=0 [How to
> > set AMQP idle-timeout / ping frequency / TTL?]
> >
> > As I understand it, upgrading to proton-j-0.10.jar and
> > proton-jms-0.10.jar should fix this issue by letting you specify the
> > timeout.
> >
> > However, with the new jars, when trying to send/receive the message
> > I am getting the error at the end of the message (below).
> >
> > I realise that this topic bridges Qpid and HornetQ (unfortunately).
> > I can confirm that HornetQ does support SASL and my config should be
> > sufficient (indeed, it worked before the upgrade). From the HornetQ
> > manual: "The HornetQ Server accepts AMQP SASL Authentication and
> > will use this to map onto the underlying session created for the
> > connection so you can use the normal HornetQ security configuration."
> >
> > Does anyone have an idea what may be going on?
> >
> > I have tried reading the documentation, wiki, e.t.c. (have spent
> > about a day on this so far).
>
> Can you get a capture of the protocol interaction, e.g. using wireshark?
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected] For
> additional commands, e-mail: [email protected]
>
>
It sounds like the java code is expecting a Sasl header (type 3) but is
receiving a normal AMQP header (type 0).
You could try disabling Sasl at your end to see if the connection goes through.
A protocol trace will show for sure.
-Chuck
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected] For additional
commands, e-mail: [email protected]