My interest piqued by your pointer of forcing negotiation for getting
"settled" messages s.t. server can keep sending them without awaiting
client to acknowledge them. So i tried your recommendation of setting the
link option AtMostOnce. I went further and force the AtMostOnce to set the
"settled" for both send and receive message. However i still see server
doesn't release the next batch till it receive the acknowledgement from
client. this is puzzling, any other suggestion ?

I wanted to experiment by disabling the flowControl. i did that by setting
"prefetch"="None" , but that didn't get going. what would be way to disable
the flow control to try out ?

[0x24b0cd0]:0 -> @open(16)
[container-id="3feb8312-b228-4052-87ec-5ab12633be0c", hostname="
nebhubsb.servicebus.windows.net", channel-max=32767]

[0x24b0cd0]:0 -> @begin(17) [next-outgoing-id=0,
incoming-window=2147483647, outgoing-window=2147483647]

[0x24b0cd0]:0 -> @attach(18)
[name="3feb8312-b228-4052-87ec-5ab12633be0c-kukatopic/Subscriptions/kukasub",
handle=0, role=true, snd-settle-mode=1, rcv-settle-mode=1,
source=@source(40) [address="kukatopic/Subscriptions/kukasub", durable=0,
timeout=0, dynamic=false], target=@target(41) [durable=0, timeout=0,
dynamic=false], initial-delivery-count=0, max-message-size=0]

[0x24b0cd0]:0 -> @flow(19) [incoming-window=2147483647, next-outgoing-id=0,
outgoing-window=2147483647, handle=0, delivery-count=0, link-credit=100,
drain=false]

[0x24b0cd0]:  <- AMQP

[0x24b0cd0]:0 <- @open(16)
[container-id="2fdaeda28fb7483a9922790398ad1f0a_G20", max-frame-size=65536,
channel-max=4999, idle-time-out=240000]

[0x24b0cd0]:0 <- @begin(17) [remote-channel=0, next-outgoing-id=1,
incoming-window=5000, outgoing-window=2147483647, handle-max=255]

[0x24b0cd0]:0 <- @attach(18)
[name="3feb8312-b228-4052-87ec-5ab12633be0c-kukatopic/Subscriptions/kukasub",
handle=0, role=false, snd-settle-mode=1, source=@source(40)
[address="kukatopic/Subscriptions/kukasub", durable=0, timeout=0,
dynamic=false], target=@target(41) [durable=0, timeout=0, dynamic=false],
initial-delivery-count=0, max-message-size=266240]

[0x24b0cd0]:0 <- @transfer(20) [handle=0, delivery-id=0, delivery-tag=b"",
message-format=0, settled=true, more=false, batchable=true] (1220)

[0x24b0cd0]:0 <- @transfer(20) [handle=0, delivery-id=1, delivery-tag=b"",
message-format=0, settled=true, more=false, batchable=true] (1231)

[0x24b0cd0]:0 <- @transfer(20) [handle=0, delivery-id=2, delivery-tag=b"",
message-format=0, settled=true, more=false, batchable=true] (1219)

[0x24b0cd0]:0 <- @transfer(20) [handle=0, delivery-id=3, delivery-tag=b"",
message-format=0, settled=true, more=false, batchable=true] (1219)

[0x24b0cd0]:0 <- @transfer(20) [handle=0, delivery-id=4, delivery-tag=b"",
message-format=0, settled=true, more=false, batchable=true] (1219)

[0x24b0cd0]:0 <- @transfer(20) [handle=0, delivery-id=5, delivery-tag=b"",
message-format=0, settled=true, more=false, batchable=true] (1270)

[0x24b0cd0]:0 <- @transfer(20) [handle=0, delivery-id=6, delivery-tag=b"",
message-format=0, settled=true, more=false, batchable=true] (1218)

[0x24b0cd0]:0 <- @transfer(20) [handle=0, delivery-id=7, delivery-tag=b"",
message-format=0, settled=true, more=false, batchable=true] (1229)

[0x24b0cd0]:0 <- @transfer(20) [handle=0, delivery-id=8, delivery-tag=b"",
message-format=0, settled=true, more=false, batchable=true] (826)

[0x24b0cd0]:0 <- @transfer(20) [handle=0, delivery-id=9, delivery-tag=b"",
message-format=0, settled=true, more=false, batchable=true] (1218)

[0x24b0cd0]:0 <- @transfer(20) [handle=0, delivery-id=10, delivery-tag=b"",
message-format=0, settled=true, more=false, batchable=true] (1220)

[0x24b0cd0]:0 <- @transfer(20) [handle=0, delivery-id=11, delivery-tag=b"",
message-format=0, settled=true, more=false, batchable=true] (1216)

[0x24b0cd0]:0 <- @transfer(20) [handle=0, delivery-id=12, delivery-tag=b"",
message-format=0, settled=true, more=false, batchable=true] (1216)

2017-08-10 01:49:00.417 pkt_seq = 1 remaining_in_batch = 12, 879

2017-08-10 01:49:00.417 pkt_seq = 2 remaining_in_batch = 11, 890

2017-08-10 01:49:00.417 pkt_seq = 3 remaining_in_batch = 10, 878

2017-08-10 01:49:00.418 pkt_seq = 4 remaining_in_batch = 9, 878

2017-08-10 01:49:00.419 pkt_seq = 5 remaining_in_batch = 8, 878

2017-08-10 01:49:00.419 pkt_seq = 6 remaining_in_batch = 7, 929

2017-08-10 01:49:00.419 pkt_seq = 7 remaining_in_batch = 6, 877

2017-08-10 01:49:00.420 pkt_seq = 8 remaining_in_batch = 5, 888

2017-08-10 01:49:00.420 pkt_seq = 9 remaining_in_batch = 4, 500

2017-08-10 01:49:00.421 pkt_seq = 10 remaining_in_batch = 3, 877

2017-08-10 01:49:00.421 pkt_seq = 11 remaining_in_batch = 2, 879

2017-08-10 01:49:00.421 pkt_seq = 12 remaining_in_batch = 1, 875

2017-08-10 01:49:00.422 pkt_seq = 13 remaining_in_batch = 0, 875

[0x24b0cd0]:0 -> @flow(19) [next-incoming-id=14,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=13, link-credit=99, drain=false]

[0x24b0cd0]:0 <- @transfer(20) [handle=0, delivery-id=13, delivery-tag=b"",
message-format=0, settled=true, more=false, batchable=true] (1218)


and cycle continues ..




On Thu, Aug 10, 2017 at 3:01 AM, Gordon Sim <g...@redhat.com> wrote:

> On 10/08/17 00:13, Pankaj Bhagra wrote:
>
>> Gordon,
>>
>> Further digging on network level sniffing shows that the bulk msg_size is
>> limited to = 16373 (16K). this observation is inline with previously
>> reported issue
>>
>
> What do you mean by msg_size here?
>
> http://grokbase.com/t/qpid/users/163z91rhdy/ssl-maximum-message-size
>>
>
> Interesting that the limit is the same, not sure what to make of that,
> perhaps its just a commonly used buffer size. The 'solution' in that issue
> was to break up large messages into multiple frames. In your case as I
> understood it, the individual messages were smaller than this limit already.
>
> As suggested I posted the q on the Azure SB forum too to find if there are
>> knobs in the SB configuration to make this un-ack buffer size bigger on
>> the
>> amqp ssl.
>>
>> Coming back on your suggestion about unsettled messages. Can u guide me
>> what should be client side configuration (if any) to force server to keep
>> sending without waiting for flow control ack from the client (number of
>> unsettled messages ?). I would like server to stop on the link-credit
>> running out, but not on the max_buffer of 16kb. Ideally  i need is a
>> behavior of atleast-once, but I am ready to sacrifice this requirement to
>> get better perf.
>>
>
> To request that message be sent settled, you can create your receiver with
> the AtMostOnce option (imported from proton.reactor), e.g.:
>
>   container.create_receiver(url, options=[AtMostOnce()])
>
> or
>
>   container.create_receiver(conn, 'mysource', options=[AtMostOnce()])
>
> You could see if that has any effect.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
> For additional commands, e-mail: users-h...@qpid.apache.org
>
>

Reply via email to