summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* refactoringAlexandru Scvortov2010-08-133-12/+7
| | | | | | | | | | | | | | | What's done: - PubAck after transient messages - PubAck after basic.returns - PubAck after message delivered to a consumer (disregarding consumer acks) - PubAck after message got - out of order ack'ing - multiple ack'ing Whant's not done: - PubAck de-duplication - PubAck after message hits disk
* puback for persistent non-mandatory, non-immediate, unrouted messagesAlexandru Scvortov2010-08-131-1/+7
|
* pubacks are sent right after basic.returnsAlexandru Scvortov2010-08-131-8/+12
|
* simplified code a bitAlexandru Scvortov2010-08-131-9/+7
|
* puback is also sent after something basic.gets the messageAlexandru Scvortov2010-08-131-0/+1
|
* partial acks for persistent messagesAlexandru Scvortov2010-08-134-29/+28
| | | | | | | | | | | The publisher gets an ack in the following cases: - the broker receives a transient message (after the exchange has been resolved), - the broker sends the persistent message to a consumer (regardless of whether the consumer acks that message, rejects it, etc.). Still to do: - the broker writes the message to disk.
* only transient messages are immediately ack'd (so far)Alexandru Scvortov2010-08-133-10/+22
| | | | | | In addition, a message sequence number is recorded in the #delivery{} sent to the exchange. If the message doesn't need to be ack'd, this sequence number is undefined.
* new logicAlexandru Scvortov2010-08-131-21/+26
| | | | | | | | | | | | | Message sequence numbers are assigned uniquely when the basic.publish is received. If confirm is not enabled, this is undefined. Rabbit_channel gains a new API method: confirm. This schedules an ack for the given sequence number. The idea is that repeated acks are allowed at this point and de-duplication is done by the channel. This way, in order to confirm a message, another module just needs to know 1) the channel and 2) the message sequence number. No de-duplication is done at this point.
* some instrumentationAlexandru Scvortov2010-08-133-5/+24
|
* only have one ack timer running at a timeAlexandru Scvortov2010-08-121-4/+3
|
* type; all java tests pass nowAlexandru Scvortov2010-08-121-1/+1
|
* minor clarificationAlexandru Scvortov2010-08-121-1/+1
|
* refactor timer code; looks more like msg_store nowAlexandru Scvortov2010-08-121-75/+86
|
* refactor + timer cancelled on channel terminateAlexandru Scvortov2010-08-121-27/+31
| | | | | | | | | When the channel terminates (for whatever reason), any outstanding acks are simply lost. The reasoning behind this is that: 1) if the channel closed due to an exception, it should close immediately; 2) if the client wants to close the channel, but receive all of the acks first, it should wait for the acks and only then send channel.close.
* support for multiple confirmationsAlexandru Scvortov2010-08-121-6/+27
| | | | | | | | | | | | | | | | | | | Suppose the channel is in confirm multiple mode, and acks for the following messages are outstanding: > 3 4 5 7 10 13 The server sends one confirm-up-to 5 ack and three more acks for 7, 10 and 13. If the client receives a basic.ack, it should interpret it like this: basic.ack{delivery-tag=N, multiple=false} => the published message with sequence number N has been handled basic.ack{delivery-tag=N, multiple=true} => all the published messages with sequence numbers up to and including N have been handled
* added support for multiple publisher acks for transient messagesAlexandru Scvortov2010-08-111-5/+33
| | | | | When in confirm multiple mode, transient messages queue up in a gb_set. Every 5s, these acks are sent out (individually, for now).
* subsequent confirm.selects cannot change the multiple settingAlexandru Scvortov2010-08-111-4/+24
|
* rename pubAck -> confirmAlexandru Scvortov2010-08-112-36/+31
|
* check that messages are transient before ack'ing blindlyAlexandru Scvortov2010-08-111-5/+5
|
* added counter and single pubacks for transient messagesAlexandru Scvortov2010-08-111-17/+34
| | | | | | | | Publishes are counter starting with the first one after pubAck.select(). If many is set to false, transient messages are ack'd as soon as the are received, but after the exchange name is resolved.
* added pubAck handlers in rabbit_channelAlexandru Scvortov2010-08-101-4/+32
| | | | | A transactional channel cannot be made pubAck. A pubAck channel cannot be made transactional.
* added puback to framing codecsAlexandru Scvortov2010-08-101-7/+7
|
* Remerge bug23038 into defaultDavid Wragg2010-08-101-0/+2
|\ | | | | | | Plugins directory should always exist
| * Make a plugin directory for the Windows package as wellMichael Bridgen2010-08-101-0/+2
| |
* | merge bug23098 into defaultMatthias Radestock2010-08-091-1/+1
|\ \
| * | On reaching the max_restart_intensited, don't remove the child spec. Instead ↵Matthew Sackman2010-08-091-1/+1
| | | | | | | | | | | | just blank out the child's pid, thus ensuring terminate works correctly even for simple_one_for_one_terminate
* | | Merge bug21875 into defaultDavid Wragg2010-08-0916-359/+73
|\ \ \ | |/ / |/| | | | | allow erlang and rabbit to be upgraded even when plugins are present
| * | Fix stupid error, more consistency.Simon MacMullen2010-08-062-2/+3
| | |
| * | Unpack plugins into appdata on Windows.Simon MacMullen2010-08-062-2/+8
| | |
| * | Default to the real Unix-y scratch dir, override in the Makefile.Simon MacMullen2010-08-063-4/+5
| | |
| * | Make similar fixes for Windows.Simon MacMullen2010-08-022-6/+6
| | |
| * | Fix typo.Simon MacMullen2010-08-021-1/+1
| | |
| * | Move unpacked plugins and boot script to /var/lib/rabbitmq/plugins-scratch.Simon MacMullen2010-08-025-10/+8
| | |
| * | Merging default into bug21875Simon MacMullen2010-08-0291-1597/+8644
| |\ \
| * | | Don't include the (de)activation scripts in the windows package.Tony Garnock-Jones2010-05-141-2/+0
| | | |
| * | | Attempt at an equivalent patch for the Windows scripts. Untested!Tony Garnock-Jones2010-05-144-126/+37
| | | |
| * | | Move plugin activation into the startup script for unixes. Update packaging ↵Tony Garnock-Jones2010-05-149-221/+20
| | | | | | | | | | | | | | | | and some docs.
* | | | merge headsMatthias Radestock2010-08-092-31/+47
|\ \ \ \
| * \ \ \ merging bug23039 into defaultVlad Alexandru Ionescu2010-08-092-31/+47
| |\ \ \ \
| | * | | | include method name in error if possibleMatthias Radestock2010-08-061-18/+20
| | | | | |
| | * | | | oopsMatthias Radestock2010-08-061-1/+1
| | | | | |
| | * | | | exit the framing_channel normally on unexected_frame errorMatthias Radestock2010-08-062-30/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and use explicit signalling to the reader instead of exiting abnormally. This avoids cluttering the error log.
* | | | | | merge bug23095 into defaultMatthias Radestock2010-08-091-31/+30
|\ \ \ \ \ \ | |/ / / / / |/| | | | |
| * | | | | cosmeticMatthew Sackman2010-08-091-4/+3
| | | | | |
| * | | | | cosmeticMatthew Sackman2010-08-091-1/+1
| | | | | |
| * | | | | Move parent inside of #v1 in readerMatthew Sackman2010-08-091-28/+28
| | | | | |
* | | | | | Export gen_server2:enter_loop6 (oversight from the past)Matthew Sackman2010-08-091-1/+1
|/ / / / /
* | | | | Merge bug23091 (use protocol in #content rather than supplying it)Michael Bridgen2010-08-085-16/+69
|\ \ \ \ \
| * | | | | expand and rewrite testsMatthias Radestock2010-08-081-9/+27
| | | | | | | | | | | | | | | | | | | | | | | | make it more obvious what we are testing and handle more cases
| * | | | | improve test coverageMatthias Radestock2010-08-071-0/+28
| | | | | |