Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id E1C22200B5E for ; Wed, 10 Aug 2016 17:03:37 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id E0497160AA4; Wed, 10 Aug 2016 15:03:37 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id AEF9E160A8F for ; Wed, 10 Aug 2016 17:03:36 +0200 (CEST) Received: (qmail 71716 invoked by uid 500); 10 Aug 2016 15:03:35 -0000 Mailing-List: contact users-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@qpid.apache.org Delivered-To: mailing list users@qpid.apache.org Received: (qmail 71705 invoked by uid 99); 10 Aug 2016 15:03:35 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 10 Aug 2016 15:03:35 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 16D52C699A for ; Wed, 10 Aug 2016 15:03:35 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.299 X-Spam-Level: * X-Spam-Status: No, score=1.299 tagged_above=-999 required=6.31 tests=[HTML_MESSAGE=2, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id s43S10BlJjEO for ; Wed, 10 Aug 2016 15:03:31 +0000 (UTC) Received: from DUB004-OMC4S4.hotmail.com (dub004-omc4s4.hotmail.com [157.55.2.79]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id C241A5FC94 for ; Wed, 10 Aug 2016 15:03:29 +0000 (UTC) Received: from DUB112-W103 ([157.55.2.71]) by DUB004-OMC4S4.hotmail.com over TLS secured channel with Microsoft SMTPSVC(7.5.7601.23008); Wed, 10 Aug 2016 08:03:22 -0700 X-TMN: [d07S+5nPX4w+C1R7gp0v/Ru65WEymXtvmMlIRAHEpTE=] X-Originating-Email: [adelboutros@live.com] Message-ID: Content-Type: multipart/alternative; boundary="_6044561b-3c37-4ab9-a4a6-cd21784de478_" From: Adel Boutros To: "users@qpid.apache.org" Subject: RE: [Java Broker- 6.0.1] AMQP random errors when sending messages using Proton-c 0.12.2 Date: Wed, 10 Aug 2016 17:03:22 +0200 Importance: Normal In-Reply-To: <1470840610.3610.42.camel@redhat.com> References: ,,,<1470675421.4751.102.camel@redhat.com>,,,,,,,,,,,,,,<1470748953.2847.153.camel@redhat.com>,,,,<1470761082.2847.220.camel@redhat.com>,,<1470840610.3610.42.camel@redhat.com> MIME-Version: 1.0 X-OriginalArrivalTime: 10 Aug 2016 15:03:22.0170 (UTC) FILETIME=[563789A0:01D1F318] archived-at: Wed, 10 Aug 2016 15:03:38 -0000 --_6044561b-3c37-4ab9-a4a6-cd21784de478_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Done under https://issues.apache.org/jira/browse/PROTON-1278. I have attached a reproducer to the issue. Do you think reducing the MSL could be a temporary solution? If I am interested in also trying to fix the issue=2C could you please poin= t to where in the code I should look? Regards=2C Adel > Subject: Re: [Java Broker- 6.0.1] AMQP random errors when sending message= s using Proton-c 0.12.2 > From: aconway@redhat.com > To: users@qpid.apache.org > Date: Wed=2C 10 Aug 2016 15:50:10 +0100 >=20 > On Wed=2C 2016-08-10 at 16:06 +0200=2C Adel Boutros wrote: > > Hello guys=2C > >=20 > > We found the issue. It is actually related to the TCP protocol.=20 > > Using Wireshark=2C I can confirm: > > * At AMQP level=2C all required messages are being sent including the > > "detach" and "close. > > * At TCP level=2C all required messages are being sent including the > > "FIN" and "ACK" in both ways. > >=20 > > At that point=2C the connection is closed server-side but is in > > "TIME_WAIT" on client-side. >=20 > That sounds to me like a bug on the client side=2C possibly in the > library as your code is closing the connection. A connection stuck in > TIME_WAIT is definitely not properly closed. Can you attach a simple > reproducer to a JIRA for further investigation? >=20 > > What do you think about having a connection pool so that when we call > > e.container().connect() we actually reuse an available connection > > instead of opening a new one. >=20 > Re-using connections and senders is a good idea for performance - you > won't get good throughput with the overhead of making a connection for > every message. However=2C creating lots of short-lived connections should > work without leaking so I think there is a bug to fix here. > =20 > > Regards=2C > > Adel > >=20 > > [1] http://www.tcpipguide.com/free/t_TCPConnectionTermination-2.htm > > [2] http://hea-www.harvard.edu/~fine/Tech/addrinuse.html > >=20 > > >=20 > > > Subject: Re: [Java Broker- 6.0.1] AMQP random errors when sending > > > messages using Proton-c 0.12.2 > > > From: aconway@redhat.com > > > To: users@qpid.apache.org > > > Date: Tue=2C 9 Aug 2016 17:44:42 +0100 > > >=20 > > > On Tue=2C 2016-08-09 at 17:41 +0200=2C Adel Boutros wrote: > > > >=20 > > > > You were right. Using "netstat -t"=2C I found I had more than 17 > > > > 000 > > > > ports opened by the test and the count was rising with time. > > > >=20 > > > > I will try to find out why. For your info=2C we set the timeout to > > > > 0 so > > > > I don't believe it is the issue. > > >=20 > > > The timeout was a pretty wild guess :) > > >=20 > > > IMO your close() code *should* close the connection so some > > > speculations to investigate: > > >=20 > > > 1. it is never called - are you sure you are getting credit and no > > > exceptions are thrown from sender::send() or sender::close()? > > > 2. it is called but the close frame is never sent due to some > > > proton > > > bug=2C so the broker never closes. > > > 3. the closed frame is sent=2C the broker closes but somehow the > > > client > > > end is keeping the connection open due to some proton bug. > > > 4. something else... > > >=20 > > > PN_TRACE_FRM=3D1 should answer 1=2C if the right events are generated > > > it > > > was called. > > > wireshark or broker-side logs should answer 2. > > > Netstat should be able to answer 3.=20 > > > Good luck with 4. > > >=20 > > >=20 > > >=20 > > > >=20 > > > > Adel > > > >=20 > > > > >=20 > > > > >=20 > > > > > Subject: Re: [Java Broker- 6.0.1] AMQP random errors when > > > > > sending > > > > > messages using Proton-c 0.12.2 > > > > > From: aconway@redhat.com > > > > > To: users@qpid.apache.org > > > > > Date: Tue=2C 9 Aug 2016 14:22:33 +0100 > > > > >=20 > > > > > On Tue=2C 2016-08-09 at 11:59 +0200=2C Adel Boutros wrote: > > > > > >=20 > > > > > >=20 > > > > > > Hello Keith=2C > > > > > >=20 > > > > > > What's weird is I am closing the connection after each > > > > > > message > > > > > > send.=20 > > > > > >=20 > > > > > > Here is the main code: > > > > > > try > > > > > > { > > > > > > SimpleSenderHandler* simpleSenderHandler =3D new > > > > > > SimpleSenderHandler(m_url=2C m_destination=2C m_message=2C > > > > > > m_timeout)=3B > > > > > > proton::container c(simpleSenderHandler)=3B > > > > > > c.run()=3B > > > > > > } catch (const proton::error& e) > > > > > > { > > > > > > m_handler->signalErrorReceived(e.what())=3B > > > > > > } > > > > > >=20 > > > > > > Here is my proton::handler implementation: > > > > > >=20 > > > > > > SimpleSenderHandler::SimpleSenderHandler(const proton::url& > > > > > > url=2C > > > > > > const std::string& destination=2C const proton::message& > > > > > > message=2C > > > > > > int > > > > > > timeout) > > > > > > : m_url(url)=2C m_destination(destination)=2C > > > > > > m_message(message)=2Cm_timeout(timeout) > > > > > > {} > > > > > >=20 > > > > > > void SimpleSenderHandler::on_start(proton::event &e) > > > > > > { > > > > > > proton::duration duration(m_timeout)=3B > > > > > > proton::connection conn =3D e.container().connect(m_url=2C > > > > > > proton::connection_options().idle_timeout(duration))=3B > > > > > > conn.open_sender(m_destination)=3B > > > > > > } > > > > > >=20 > > > > > > void SimpleSenderHandler::on_sendable(proton::event &e) > > > > > > { > > > > > > e.sender().send(m_message)=3B > > > > > > e.sender().close()=3B > > > > > > e.connection().close()=3B > > > > > > } > > > > > >=20 > > > > > > Isn't the above code enough to make sure the connection is > > > > > > closed > > > > > > after each send? > > > > >=20 > > > > > It should be=2C but your symptoms sound a lot like they are not > > > > > fully > > > > > closed and you are running out of ephemeral ports (similar to > > > > > http: > > > > > //st > > > > > ackoverflow.com/questions/26019164/too-many-time-wait- > > > > > connections- > > > > > getting-cannot-assign-requested-address) > > > > >=20 > > > > > Some things to try: > > > > >=20 > > > > > - try dropping the idle_timeout setting. It shouldn't cause a > > > > > problem > > > > > but since connections seem to be hanging around=2C I speculate > > > > > wildly > > > > > that a client or broker bug related to the idle timeout might > > > > > be > > > > > delaying the close. > > > > >=20 > > > > > - Follow Keith's suggestions on checking broker management > > > > > stats > > > > > and > > > > > run `netstat -t` to see if the connections really are closed at > > > > > both > > > > > ends or are stuck open=2C possibly on the broker end in > > > > > TIME_WAIT. > > > > >=20 > > > > > - run wireshark to see if your client is really sending the > > > > > AMQP > > > > > close > > > > > frames in case a client-side bug is preventing the close from > > > > > completing even though your code is correct. The PN_TRACE_FRM=3D1 > > > > > output > > > > > only proves that proton is processing the close event=2C it is > > > > > still > > > > > possible that it didn't make it to the wire. > > > > >=20 > > > > >=20 > > > > > >=20 > > > > > >=20 > > > > > >=20 > > > > > > Adel > > > > > >=20 > > > > > > >=20 > > > > > > >=20 > > > > > > >=20 > > > > > > > From: keith.wall@gmail.com > > > > > > > Date: Tue=2C 9 Aug 2016 08:40:48 +0100 > > > > > > > Subject: Re: [Java Broker- 6.0.1] AMQP random errors when > > > > > > > sending > > > > > > > messages using Proton-c 0.12.2 > > > > > > > To: users@qpid.apache.org > > > > > > >=20 > > > > > > > Hi Adel > > > > > > >=20 > > > > > > > On 8 August 2016 at 19:11=2C Adel Boutros > > > > > > om> > > > > > > > wrote: > > > > > > > >=20 > > > > > > > >=20 > > > > > > > >=20 > > > > > > > > Hello Alain=2C Keith=2C > > > > > > > >=20 > > > > > > > > I updated the Java Broker to 6.0.4 and re-run my test > > > > > > > > case 5 > > > > > > > > times. > > > > > > > > The good news is that the "AMQP header mismatch" error > > > > > > > > has > > > > > > > > disappeared. > > > > > > >=20 > > > > > > > Great. > > > > > > >=20 > > > > > > > >=20 > > > > > > > >=20 > > > > > > > >=20 > > > > > > > > The bad news is every time I ran my test=2C I got the > > > > > > > > "on_transport_error: proton:io: connect: Cannot assign > > > > > > > > requested > > > > > > > > address" error. > > > > > > > >=20 > > > > > > > > I get the error after sending about 30 000 msgs. At each > > > > > > > > send=2C I > > > > > > > > am creating a new container which means new connection > > > > > > > > every > > > > > > > > time. > > > > > > >=20 > > > > > > > That sounds suspiciously like TCP/IP connections are not > > > > > > > being > > > > > > > closed. > > > > > > > Check your client coding/configuration to ensure that the > > > > > > > connections are being closed. You can confirm that > > > > > > > connections > > > > > > > are > > > > > > > being closed by checking the connections associated with > > > > > > > the > > > > > > > Virtualhost in the Web Management Console (you will see > > > > > > > them > > > > > > > disappear > > > > > > > from the table as they are closed=2C and check confirm all is > > > > > > > well > > > > > > > under > > > > > > > the bonnet with netstat/lsof. > > > > > > >=20 > > > > > > > Hope this helps. > > > > > > >=20 > > > > > > > Keith. > > > > > > >=20 > > > > > > >=20 > > > > > > > >=20 > > > > > > > >=20 > > > > > > > >=20 > > > > > > > >=20 > > > > > > > > Regards=2C > > > > > > > > Adel > > > > > > > >=20 > > > > > > > > >=20 > > > > > > > > >=20 > > > > > > > > >=20 > > > > > > > > > Subject: Re: [Java Broker- 6.0.1] AMQP random errors > > > > > > > > > when > > > > > > > > > sending messages using Proton-c 0.12.2 > > > > > > > > > From: aconway@redhat.com > > > > > > > > > To: users@qpid.apache.org > > > > > > > > > Date: Mon=2C 8 Aug 2016 17:57:01 +0100 > > > > > > > > >=20 > > > > > > > > > On Fri=2C 2016-08-05 at 19:16 +0200=2C Adel Boutros wrote= : > > > > > > > > > >=20 > > > > > > > > > >=20 > > > > > > > > > >=20 > > > > > > > > > > Hello=2C > > > > > > > > > >=20 > > > > > > > > > > I have a Proton-c C++ sender which sends messages > > > > > > > > > > using > > > > > > > > > > the > > > > > > > > > > container > > > > > > > > > > API. For each message to send=2C I open a new container > > > > > > > > > > which > > > > > > > > > > means > > > > > > > > > > that for each message=2C I open and close a new > > > > > > > > > > connection. > > > > > > > > > > I > > > > > > > > > > am > > > > > > > > > > getting 2 random exceptions on Linux in the > > > > > > > > > > "proton::handler::on_transport_error" method: > > > > > > > > > >=20 > > > > > > > > > > amqp:connection:framing-error: AMQP header mismatch: > > > > > > > > > > Insufficient > > > > > > > > > > data to determine protocol [''] (connection aborted). > > > > > > > > > > and > > > > > > > > > > proton:io: connect: Cannot assign requested address. > > > > > > > > > >=20 > > > > > > > > > > I have used PN_TRACE_FRM=3D1 on the sender and you can > > > > > > > > > > find > > > > > > > > > > below the > > > > > > > > > > output. > > > > > > > > > >=20 > > > > > > > > > > What can the issue be in your opinion? > > > > > > > > >=20 > > > > > > > > > Not a very well considered opinion but: you will see > > > > > > > > > this > > > > > > > > > kind > > > > > > > > > of trace > > > > > > > > > if something opens a TCP connection to your AMQP > > > > > > > > > listener > > > > > > > > > and > > > > > > > > > closes it > > > > > > > > > again without sending anything. Wireshark might help > > > > > > > > > you > > > > > > > > > see if > > > > > > > > > this is > > > > > > > > > the problem or if there actually is data arriving and > > > > > > > > > proton is > > > > > > > > > not > > > > > > > > > understanding it. > > > > > > > > >=20 > > > > > > > > >=20 > > > > > > > > > >=20 > > > > > > > > > >=20 > > > > > > > > > >=20 > > > > > > > > > > AMQP header mismatch > > > > > > > > > >=20 > > > > > > > > > > [0xe18730]: -> AMQP > > > > > > > > > > [0xe18730]:0 -> @open(16) [container-id=3D"a9335275- > > > > > > > > > > bb53- > > > > > > > > > > 4565- > > > > > > > > > > 8fdc- > > > > > > > > > > c802702b4933"=2C hostname=3D"machine_name:10455"=2C > > > > > > > > > > channel- > > > > > > > > > > max=3D32767] > > > > > > > > > > [0xe18730]:0 -> @begin(17) [next-outgoing-id=3D0=2C > > > > > > > > > > incoming- > > > > > > > > > > window=3D2147483647=2C outgoing-window=3D2147483647] > > > > > > > > > > [0xe18730]:0 -> @attach(18) [name=3D"1/1"=2C handle=3D0= =2C > > > > > > > > > > role=3Dfalse=2C snd- > > > > > > > > > > settle-mode=3D2=2C rcv-settle-mode=3D0=2C source=3D@sou= rce(40) > > > > > > > > > > [durable=3D0=2C > > > > > > > > > > timeout=3D0=2C dynamic=3Dfalse]=2C target=3D@target(41) > > > > > > > > > > [address=3D"perf.topic"=2C > > > > > > > > > > durable=3D0=2C timeout=3D0=2C dynamic=3Dfalse]=2C initi= al- > > > > > > > > > > delivery- > > > > > > > > > > count=3D0] > > > > > > > > > > [0xe18730]:0 -> @close(24) [error=3D@error(29) > > > > > > > > > > [condition=3D:"amqp:connection:framing-error"=2C > > > > > > > > > > description=3D"AMQP header > > > > > > > > > > mismatch: Insufficient data to determine protocol > > > > > > > > > > [''] > > > > > > > > > > (connection > > > > > > > > > > aborted)"]] > > > > > > > > > > [0xe18730]: <- EOS > > > > > > > > > > amqp:connection:framing-error: AMQP header mismatch: > > > > > > > > > > Insufficient > > > > > > > > > > data to determine protocol [''] (connection aborted) > > > > > > > > > >=20 > > > > > > > > > > Cannot assign requested address > > > > > > > > > >=20 > > > > > > > > > > [0x160e730]: -> AMQP > > > > > > > > > > [0x160e730]:0 -> @open(16) [container-id=3D""] > > > > > > > > > > [0x160e730]:0 -> @close(24) [error=3D@error(29) > > > > > > > > > > [condition=3D:"proton:io"=2C description=3D"connect: Ca= nnot > > > > > > > > > > assign > > > > > > > > > > requested address"]] > > > > > > > > > > proton:io: connect: Cannot assign requested address > > > > > > > > > >=20 > > > > > > > > > > Successful message sent > > > > > > > > > >=20 > > > > > > > > > > [0xe18730]: -> AMQP > > > > > > > > > > [0xe18730]:0 -> @open(16) [container-id=3D"95a81f15- > > > > > > > > > > 6bb1- > > > > > > > > > > 475f- > > > > > > > > > > b7a3- > > > > > > > > > > 1d7af71f6911"=2C hostname=3D"machine_name:10455"=2C > > > > > > > > > > channel- > > > > > > > > > > max=3D32767] > > > > > > > > > > [0xe18730]:0 -> @begin(17) [next-outgoing-id=3D0=2C > > > > > > > > > > incoming- > > > > > > > > > > window=3D2147483647=2C outgoing-window=3D2147483647] > > > > > > > > > > [0xe18730]:0 -> @attach(18) [name=3D"1/1"=2C handle=3D0= =2C > > > > > > > > > > role=3Dfalse=2C snd- > > > > > > > > > > settle-mode=3D2=2C rcv-settle-mode=3D0=2C source=3D@sou= rce(40) > > > > > > > > > > [durable=3D0=2C > > > > > > > > > > timeout=3D0=2C dynamic=3Dfalse]=2C target=3D@target(41) > > > > > > > > > > [address=3D"perf.topic"=2C > > > > > > > > > > durable=3D0=2C timeout=3D0=2C dynamic=3Dfalse]=2C initi= al- > > > > > > > > > > delivery- > > > > > > > > > > count=3D0] > > > > > > > > > > [0xe18730]: <- AMQP > > > > > > > > > > [0xe18730]:0 <- @open(16) [container-id=3D"5c480e45- > > > > > > > > > > a289- > > > > > > > > > > 4c16- > > > > > > > > > > 947b- > > > > > > > > > > f352419370af"=2C max-frame-size=3D32768=2C channel-max= =3D255=2C > > > > > > > > > > idle- > > > > > > > > > > time- > > > > > > > > > > out=3D0=2C properties=3D{:product=3D"qpid"=2C :version= =3D"6.0.1"=2C > > > > > > > > > > :"qpid.build"=3D"1731621"=2C > > > > > > > > > > :"qpid.instance_name"=3D"Broker"}] > > > > > > > > > > [0xe18730]:0 <- @begin(17) [remote-channel=3D0=2C next- > > > > > > > > > > outgoing- > > > > > > > > > > id=3D0=2C > > > > > > > > > > incoming-window=3D2048=2C outgoing-window=3D2048] > > > > > > > > > > [0xe18730]:0 <- @attach(18) [name=3D"1/1"=2C handle=3D0= =2C > > > > > > > > > > role=3Dtrue=2C > > > > > > > > > > snd- > > > > > > > > > > settle-mode=3D2=2C rcv-settle-mode=3D0=2C source=3D@sou= rce(40) > > > > > > > > > > [durable=3D0=2C > > > > > > > > > > timeout=3D0=2C dynamic=3Dfalse]=2C target=3D@target(41) > > > > > > > > > > [address=3D"perf.topic"=2C > > > > > > > > > > durable=3D0=2C timeout=3D0=2C dynamic=3Dfalse]] > > > > > > > > > > [0xe18730]:0 <- @flow(19) [next-incoming-id=3D0=2C > > > > > > > > > > incoming- > > > > > > > > > > window=3D2048=2C > > > > > > > > > > next-outgoing-id=3D0=2C outgoing-window=3D2048=2C handl= e=3D0=2C > > > > > > > > > > delivery- > > > > > > > > > > count=3D0=2C > > > > > > > > > > link-credit=3D20000=2C echo=3Dfalse] > > > > > > > > > > [0xe18730]:0 -> @transfer(20) [handle=3D0=2C delivery- > > > > > > > > > > id=3D0=2C > > > > > > > > > > delivery- > > > > > > > > > > tag=3Db"\x0b\x13\x00\x00\x00\x00\x00\x00"=2C message- > > > > > > > > > > format=3D0=2C > > > > > > > > > > settled=3Dfalse=2C more=3Dfalse] (254) > > > > > > > > > > "\x00Sp\xd0\x00\x00\x00\x0b\x00\x00\x00\x05BP\x04@BR\ > > > > > > > > > > x00\ > > > > > > > > > > x00S > > > > > > > > > > s\xd0\x0 > > > > > > > > > > 0\x00\x00- > > > > > > > > > > \x00\x00\x00\x0d@@@\xa1\x0atest@@@@\x83\x00\x00\x00\x > > > > > > > > > > 00\x > > > > > > > > > > 00\x > > > > > > > > > > 00\x00\x > > > > > > > > > > 00\x83\x00\x00\x00\x00\x00\x00\x00\x00@R\x00@\x00St\x > > > > > > > > > > d1\x > > > > > > > > > > 00\x > > > > > > > > > > 00\x00E\ > > > > > > > > > > x00\x00\x00\x06\xa1\x0ctest\xa1\x02test\xa1\x09test\x > > > > > > > > > > 81\x > > > > > > > > > > 00\x > > > > > > > > > > 00\x01V[ > > > > > > > > > > \x7f\x914\xa1\x10test\xa1\x07test\x00Sw\xa0d\x00\x00\ > > > > > > > > > > x00\ > > > > > > > > > > x00\ > > > > > > > > > > x00\x00\ > > > > > > > > > > x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x > > > > > > > > > > 00\x > > > > > > > > > > 00\x > > > > > > > > > > 00\x00\x > > > > > > > > > > 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 > > > > > > > > > > 0\x0 > > > > > > > > > > 0\x0 > > > > > > > > > > 0\x00\x0 > > > > > > > > > > 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 > > > > > > > > > > \x00 > > > > > > > > > > \x00 > > > > > > > > > > \x00\x00 > > > > > > > > > > \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ > > > > > > > > > > x00\ > > > > > > > > > > x00\ > > > > > > > > > > x00\x00\ > > > > > > > > > > x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x > > > > > > > > > > 00\x > > > > > > > > > > 00\x > > > > > > > > > > 00\x00\x > > > > > > > > > > 00\x00\x00\x00\x00\x00\x00\x00" > > > > > > > > > > [0xe18730]:0 -> @detach(22) [handle=3D0=2C closed=3Dtru= e] > > > > > > > > > > [0xe18730]:0 -> @close(24) [] > > > > > > > > > > [0xe18730]: -> EOS > > > > > > > > > > [0xe18730]:0 <- @disposition(21) [role=3Dtrue=2C first= =3D0=2C > > > > > > > > > > last=3D0=2C > > > > > > > > > > settled=3Dtrue=2C state=3D@accepted(36) []] > > > > > > > > > > [0xe18730]:0 <- @detach(22) [handle=3D0=2C closed=3Dtru= e] > > > > > > > > > > [0xe18730]:0 <- @close(24) [] > > > > > > > > > > [0xe18730]: <- EOS > > > > > > > > > >=20 > > > > > > > > > > Sender code > > > > > > > > > > void SimpleSenderHandler::on_start(proton::event &e) > > > > > > > > > > { > > > > > > > > > > proton::duration duration(9999999)=3B > > > > > > > > > > proton::connection conn =3D > > > > > > > > > > e.container().connect(m_url=2C > > > > > > > > > > proton::connection_options().idle_timeout(duration))=3B > > > > > > > > > > conn.open_sender(m_destination)=3B > > > > > > > > > > } > > > > > > > > > >=20 > > > > > > > > > > void SimpleSenderHandler::on_sendable(proton::event > > > > > > > > > > &e) > > > > > > > > > > { > > > > > > > > > > e.sender().send(m_message)=3B > > > > > > > > > > e.sender().close()=3B > > > > > > > > > > e.connection().close()=3B > > > > > > > > > > } > > > > > > > > > >=20 > > > > > > > > > > Regards=2C > > > > > > > > > > Adel > > > > > > > > > >=20 > > > > > > > > >=20 > > > > > > > > >=20 > > > > > > > > > ----------------------------------------------------- > > > > > > > > > ---- > > > > > > > > > ---- > > > > > > > > > -------- > > > > > > > > > To unsubscribe=2C e-mail: users-unsubscribe@qpid.apache.o > > > > > > > > > rg > > > > > > > > > For additional commands=2C e-mail: users-help@qpid.apache > > > > > > > > > .org > > > > > > > > >=20 > > > > > > > >=20 > > > > > > >=20 > > > > > > > --------------------------------------------------------- > > > > > > > ---- > > > > > > > ---- > > > > > > > ---- > > > > > > > To unsubscribe=2C e-mail: users-unsubscribe@qpid.apache.org > > > > > > > For additional commands=2C e-mail: users-help@qpid.apache.org > > > > > > >=20 > > > > > > =20 > > > > >=20 > > > > >=20 > > > > > ------------------------------------------------------------- > > > > > ---- > > > > > ---- > > > > > To unsubscribe=2C e-mail: users-unsubscribe@qpid.apache.org > > > > > For additional commands=2C e-mail: users-help@qpid.apache.org > > > > >=20 > > > > =20 > > >=20 > > >=20 > > > ----------------------------------------------------------------- > > > ---- > > > To unsubscribe=2C e-mail: users-unsubscribe@qpid.apache.org > > > For additional commands=2C e-mail: users-help@qpid.apache.org > > >=20 > > =20 >=20 >=20 > --------------------------------------------------------------------- > To unsubscribe=2C e-mail: users-unsubscribe@qpid.apache.org > For additional commands=2C e-mail: users-help@qpid.apache.org >=20 = --_6044561b-3c37-4ab9-a4a6-cd21784de478_--