This repository has been archived by the owner on Jun 13, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathrelease.txt
2247 lines (1758 loc) · 97 KB
/
release.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
+ Unstable branch
++ 1.4c1 - 2010/10/07
* fixed: WireAPI was not clearing messages out of IO thread if client thread was too slow.
* fixed: two access violations in amq_console due to improper multithreading code (http://www.openamq.org/issue:88).
* fixed: OPF config framework did not properly free filename property of object class.
* fixed: renamed min, max macros to MIN, MAX for C++ safety (http://www.openamq.org/issue:62)
* fixed: build process crashed in ipr_time_selftest for some timezones (http://www.openamq.org/issue:75)
* fixed: server crash when multiple consumers ack on shared queue (http://www.openamq.org/issue:67)
++ 1.4c0 - 2009/05/23
* fixed: returned messages were not triggering wait end (http://www.openamq.org/issue:58)
* added: WireAPI amq_client_session_wait () allows -1 timeout meaning 'polled' (http://www.openamq.org/issue:65)
* added: if BOOM_NOTEST environment variable is 1, build.sh does not run regression tests (http://www.openamq.org/issue:64)
* added: APR build is configurable via the environment (http://www.openamq.org/issue:62)
* added: implemented acknowledgements on shared queues (Basic.Consume/no-ack, Basic.Ack) (http://www.openamq.org/issue:21)
* added: --no-ack option to keep old behaviour in which no-ack is ignored
* added: new WireAPI connection property "connection->id" holds unique connection ID string assigned by server
* added: WireAPI option /config/sequence/set that sets Sender-Id and Timestamp on published messages
* added: WireAPI option /config/sequence/check that verifies Sender-Id and Timestamp on received messages
++ 1.4b3 - 2009/05/01
* fixed: socket management layer was leaking socket descriptors
* fixed: WireAPI Direct Mode layer was leaking connections (DAMQ-33)
* fixed: WireAPI Direct Mode layer could abort at shutdown (AMQ-599)
* changed: response to socket exhaustion improved (BASE2-312)
* added: in amq_server console, you can see all bindings for a queue
* added: in amq_server console, verbose option to see all private queues, must be superuser
* added: --user and --group options to switch to unprivileged user
* added: new option --accept-retry-timeout tunes server response to socket exhaustion (BASE2-312)
++ 1.4b2 - 2009/04/22
* fixed: failover detects attempt to connect to self as primary or backup (AMQ-597)
* fixed: federation detects attempt to connect to self (--attach localhost) (AMQ-597)
* fixed: server assertion on large direct mode messages (http://www.openamq.org/issue:53)
* fixed: detect and reject attempts to declare durable queues (http://www.openamq.org/issue:54)
* fixed: if icl_system_initialise() not called in client apps, iCL issues error.
* fixed: checks channel-nbr from misbehaving clients (http://www.openamq.org/issue:44)
* changed: Connection.Start 'id' property renamed to 'connection' for clarity
* changed: log files are now written to /var/log/openamq (http://www.openamq.org/issue:48)
* changed: removed archive_path from log file configuration (http://www.openamq.org/issue:48)
* changed: saves message to panic.log in case of abort (http://www.openamq.org/issue:50)
* changed: added --syslog support (--syslog option) (http://www.openamq.org/issue:51)
* changed: cleaned up use of logging to work better with syslog
* added: new Connection.Start property, 'identifier' is server process ID
* added: regular expression exchange (http://www.openamq.org/issue:51, http://www.pcre.org)
* added: amq.regexp is default regexp exchange
* added: semi-active failover feature added (http://www.openamq.org/issue:21)
* added: zyre: debug facility for RestMS processing.
++ 1.4b1 - 2009/03/29
* fixed: Basic.Consume sometimes failed http://www.openamq.org/issue:52/
* fixed: build on Windows failed on MSVC when InputDir path had spaces
* fixed: renamed 'template' property in ipr_dict_table_file_save to make it C++ compatible
* fixed: Zyre: content-type on new resources is now same as that of POST request
* changed: Zyre: Slug: header replaced by 'name' attribute in document (RestMS spec change)
* changed: Zyre: ETag calculation and now includes Content-Type (RestMS spec change)
* changed: Zyre: error responses now sent as text/plain instead of text/html (RestMS spec change)
* fixed: Zyre: eliminate 'client connection timed-out' messages (http://www.xitami.com/issue:3)
* fixed: Zyre: fixed crash on unrecognized HTTP methods (http://www.xitami.com/issue:1)
++ 1.4b0 - 2009/02/17
* fixed: if server runs out of sockets, dies with clear error message (http://www.openamq.org/issue:45)
* changed: apr updated to 1.3.3, apr-util updated to 1.3.4 (1.4, FOR-21, BASE2-305)
* removed: legacy platforms from 'c' script (everything except "modern gcc system" and "AIX with CCNAME=xlc_r") (1.4, FOR-22)
* changed: if CCNAME and CCOPTS are unset, 'c' script looks for gcc on PATH, if found assumes a modern system and uses gcc and pthreads, if not then exits with error (1.4, FOR-22)
* changed: if CCNAME and CCOPTS are set, 'c' does no autodetection of anything (including libraries) and just uses the provided values ("you're on your own mode"). this is done to massively simplify logic in 'c' script (1.4, FOR-22)
* changed: when using gcc, detect standard "modern" libraries and link with them if present (includes libcrypt) (1.4, FOR-22)
* changed: default BOOM_MODEL for all POSIX platforms is st,release (1.4, FOR-22)
* changed: default ALLOCATOR for release is direct, for debug is fat (1.4, FOR-22)
* removed: lockfree allocator and support code from iCL (1.4)
* changed: ST builds on POSIX now identical to MT builds except for -DBASE_THREADSAFE (1.4, FOR-22)
* added: build system for Windows (VisualC 2008)
++ 1.4a3 - 2009/02/06
OpenAMQ:
* fixed: crash in amq_content_basic_get_body() if content size was zero (http://www.openamq.org/issue:43)
* fixed: amq_server_base.cfg now built into binary (http://www.openamq.org/issue:35)
* added: console interface now shows bindings per exchange (http://www.openamq.org/issue:10)
* added: ipr_config class now reports config files loaded (http://www.openamq.org/issue:34)
* added: HTTP server checks Host: against ".", "..", and / characters
* added: runs CoreMark performance test at startup (--coremark_cycles)
* fixed: various Win32 compile errors and warnings
Zyre:
* fixed: implemented RestMS/0.2 specification, many additions to X5 web service
* added: support for Digest-AMQP spec, with full test/demo case
* added: portal for backend peering, digest-amqp spec and examples
* added: in X5: access modules, driver modules, password management, digest auth
++ 1.4a2 - 2008/12/30
Zyre:
* fixed: large POSTs did not work systematically (regression test failure)
* fixed: assertion failure on nozzles (regression test failure)
* fixed: JSON output for repeated items was incorrect.
++ 1.4a1 - 2008/12/27
Zyre:
* fixed: Zyre asserted on normal connection close in RestMS Hello World test
* added: support for RestMS-reply-to and RestMS-message-id headers on POST address and GET message
* added: zyre_cml.pl example of remote OpenAMQ administration over HTTP
* added: defines predefined OpenAMQ feeds at startup
* added: added support for OpenAMQ "system" exchange type
* fixed: occasional assert on message delivery to pipe due to died content
* fixed: joins properly deleted if their feed is deleted
* fixed: XML responses incorrectly used <zyre> instead of <restms> for root
* added: implemented JSON support for RestMS responses via "Accept: application/json" header
OpenAMQ:
* fixed: console crashed when supplied malformed CML data.
++ 1.4a0 - 2008/12/25
All changes in 1.3c3 onwards plus:
* added: IPR portals and made http server work with current base2
* changed: removed rwlock from wireapi connection & session
* added: --debug_route prints exchange creation and destruction (like queues)
* added: amq_rest.asl class for RESTful access to server resources
* fixed: PAL assert did not work with symbolic variables
* changed: auto-named queues are now called "auto.nnn" instead of "#nnn"
+ Stable branch
++ 1.3d1 - 2010/10/07
* fixed: WireAPI was not clearing messages out of IO thread if client thread was too slow.
* fixed: two access violations in amq_console due to improper multithreading code (http://www.openamq.org/issue:88).
* fixed: build process crashed in ipr_time_selftest for some timezones (http://www.openamq.org/issue:75)
* fixed: renamed min, max macros to MIN, MAX for C++ safety (http://www.openamq.org/issue:62)
* added: APR build is configurable via the environment (http://www.openamq.org/issue:62)
++ 1.3d0 - 2009/05/23
* fixed: returned messages were not triggering wait end (http://www.openamq.org/issue:58)
* added: WireAPI amq_client_session_wait () allows -1 timeout meaning 'polled' (http://www.openamq.org/issue:65)
* added: if BOOM_NOTEST environment variable is 1, build.sh does not run regression tests (http://www.openamq.org/issue:64/)
* added: implemented acknowledgements on shared queues (Basic.Consume/no-ack, Basic.Ack) (http://www.openamq.org/issue:21)
* added: --no-ack option to keep old behaviour in which no-ack is ignored
* added: new WireAPI connection property "connection->id" holds unique connection ID string assigned by server
* added: WireAPI option /config/sequence/set that sets Sender-Id and Timestamp on published messages
* added: WireAPI option /config/sequence/check that verifies Sender-Id and Timestamp on received messages
++ 1.3c7 - 2009/05/03
* fixed: socket management layer was leaking socket descriptors
* fixed: WireAPI Direct Mode layer was leaking connections (DAMQ-33)
* fixed: WireAPI Direct Mode layer could abort at shutdown (AMQ-599)
* changed: response to socket exhaustion improved (BASE2-312)
* added: --user and --group options to switch to unprivileged user
* added: new option --accept_retry_timeout tunes server response to socket exhaustion (BASE2-312)
++ 1.3c6 - 2009/04/22
* added: semi-active failover feature added (http://www.openamq.org/issue:21)
* fixed: server assertion on large direct mode messages (http://www.openamq.org/issue:53)
* fixed: detect and reject attempts to declare durable queues (http://www.openamq.org/issue:54)
* fixed: Basic.Consume sometimes failed: http://www.openamq.org/issue:52/
* fixed: checks channel-nbr from misbehaving clients (http://www.openamq.org/issue:44)
++ 1.3c5 - 2009/02/20
* fixed: demo_content_class selftest died on Unix systems (AIX) (DAMQ-27).
* fixed: version number in server was wrong
* fixed: if server runs out of sockets, dies with clear error message (http://www.openamq.org/issue:45)
++ 1.3c4 - 2009/02/05
* fixed: crash in amq_content_basic_get_body() if content size was zero (http://www.openamq.org/issue:43)
* fixed: malloc now aborts if the process runs out of memory (DAMQ-22)
* fixed: amq_server_base.cfg now built into binary (http://www.openamq.org/issue:35)
* fixed: aborts if peering credentials are not found (AMQ-595)
* fixed: various Win32 compile errors and warnings
* added: console interface now shows bindings per exchange (http://www.openamq.org/issue:10)
* added: ipr_config class now reports config files loaded (http://www.openamq.org/issue:34)
* added: -S command line option to snapshot config data
++ 1.3c3 - 2008/12/17
* added: support for AMQP/0.9.1
* added: PAL scripts can now set command timeout in session
* added: session->timestamp property indicating when session was opened
* added: session includes tables returned by AMQP methods
* added: latency measurement framework, see http://www.openamq.org/doc:user-3-advanced#toc36
* added: when server takes action on queue overflow, displays client IP address in logs
* fixed: SMT sockets crashed after constant use for 2^31 operations (BASE2-301)
* fixed: PAL scripts did not free client config
* fixed: queue deletion could crash on destroyed channel
* fixed: Direct Mode did not handle mandatory and immediate (http://www.openamq.org/issue:36)
* fixed: Basic.Publish 'immediate' functionality was broken since 1.3a
* fixed: queue overflow code crashed on shared queues (DAMQ-18)
* fixed: on slow networks, broker sometimes asserted on setup_timer destroy (DAMQ-19)
* fixed: PAL crashed when receiving contents greated than 1024 large
* fixed: Direct Mode lease management had thread safety issues
* fixed: credit-based flow control in normal mode was not robust
* fixed: WireAPI Direct Mode fixed to allow unlimited connections (AMQ-598)
++ 1.3c2 - 2008/11/04
* added: new header file wireapi.h for WireAPI applications (includes all needed headers)
* fixed: log file naming did not work when name with no extension was specified
* fixed: connections were not properly destroyed, causing memory leaks (AMQ-593)
* fixed: packaging of 1.3c1 was screwed up, and did not include 1.3c1 fixes
++ 1.3c1 - 2008/10/30
* fixed: Basic.Cancel returned error if consumer did not exist, should return Cancel-Ok.
* fixed: http://www.openamq.org/issue:32 fix caused WireAPI wait() to wait unduly (http://www.openamq.org/issue:33)
++ 1.3c0 - 2008/10/21
* fixed: mixing deliveries with sync methods confused WireAPI (http://www.openamq.org/issue:32)
* fixed: Queue.Destroy was not working properly (http://www.openamq.org/issue:31)
* fixed: zero-sized content crashes server & client (http://www.openamq.org/issue:30)
* fixed: asl_field_list_dump () wrote into unallocated memory. (http://www.openamq.org/issue:29)
* fixed: PAL did not allow nested repeat blocks (confused the counters).
* fixed: amq_client.asl crashed when using default exchange (http://www.openamq.org/issue:28)
* fixed: amq_server let applications delete pre-defined exchanges (http://www.openamq.org/issue:27)
* fixed: in direct mode, queue & connection transfer statistics were not updated
* Java JMS client moved to public git at http://github.com/pieterh/openamq-jms/tree/master
++ 1.3b2 - 2008/10/09
* amq_shell did not work with Direct Mode (http://www.openamq.org/issue:19)
* Fixed loss of messages caused by Direct Mode heartbeating (http://www.openamq.org/issue:20)
* Implemented warn/drop on Direct Mode for slow network links, using private queue config (http://www.openamq.org/issue:22)
* Added WIREAPI_FAKESLOW environment variable to simulate slow network at client end (http://www.openamq.org/issue:22)
* Fixed crash in content wire_get with malformed content (http://www.openamq.org/issue:24)
* Improved amq_client test tool to report lost messages, if any, on interrupt
* Improved amq_server --dump_state output to show direct messages in/out/sunk/fed
++ 1.3b1 - 2008/10/03
This update includes all fixes in 1.2d5.
++ 1.3b0 - 2008/09/29
This update includes all fixes in 1.2d3 and 1.2d4 as well as:
* Implemented Direct Mode message batching, with a significant performance kick.
* Direct Mode batching is configurable in wireapi.cfg and amq_server.cfg via config/direct/batching setting.
* Added support for client-side high-water overflow in Direct Mode via config/tuning/on_overflow setting.
* Fixed: consumer-tag was wrongly set in WireAPI for Direct Mode messages (http://www.openamq.org/issue:2)
* Fixed: Direct Mode caused aborts in client applications at shut-down (http://www.openamq.org/issue:14)
With slow clients, Direct Mode has the big advantage of holding messages in the client-side WireAPI queues, not at the server. This means servers won't get overloaded by slow clients. You can configure clients to handle abnormally large queues using similar semantics as the server-side queue limits (warn, drop, trim, kill).
++ 1.3a1 - 2008/09/16
This update includes all fixes in 1.2d2 as well as:
* Protocol version was incompatible with 1.2d, fixed (http://www.openamq.org/issue:9).
* Direct mode properly records input/output rates (trunk) (http://www.openamq.org/issue:11)
* Added server-side credit-based flow control on private queues (when Direct Mode is not used)
++ 1.3a0 - 2008/09/07
* Added support for Direct Message Protocol (see http://wiki.amqp.org).
* Added config/tuning/direct option to wireapi.cfg
* Added config/tuning/direct option to server config (--direct 1 on cmdline)
* In PAL, <session failover = "n"> option changed to seconds for consistency
* In PAL, added <session direct = "1"> option to enable Direct Mode
+ Legacy branch
++ 1.2e2 - unreleased
* fixed: if server runs out of sockets, dies with clear error message (http://www.openamq.org/issue:45)
++ 1.2e1 - 2009/02/05
* fixed: malloc now aborts if the process runs out of memory (DAMQ-22)
* fixed: amq_server_base.cfg now built into binary (http://www.openamq.org/issue:35)
* added: ipr_config class now reports config files loaded (http://www.openamq.org/issue:34)
++ 1.2e0 - 2008/12/17
* fixed: queue deletion could crash on destroyed channel
* fixed: SMT sockets crashed after constant use for 2^31 operations (BASE2-301)
++ 1.2d8 - 2008/11/04
* fixed: PAL code generation wrongly tried to set session->silent (property was deprecated)
* fixed: log file naming did not work when name with no extension was specified
* fixed: packaging of 1.2d7 was screwed up, and did not include 1.2d7 fixes
++ 1.2d7 - 2008/10/30
* fixed: Basic.Cancel returned error if consumer did not exist, should return Cancel-Ok.
* fixed: http://www.openamq.org/issue:32 fix caused WireAPI wait() to wait unduly (http://www.openamq.org/issue:32)
++ 1.2d6 - 2008/10/21
* fixed: mixing deliveries with sync methods confused WireAPI (http://www.openamq.org/issue:32)
* fixed: Queue.Destroy was not working properly (http://www.openamq.org/issue:31)
* fixed: zero-sized content crashes server & client (http://www.openamq.org/issue:30)
* fixed: asl_field_list_dump () wrote into unallocated memory. (http://www.openamq.org/issue:29)
* fixed: PAL did not allow nested repeat blocks (confused the counters).
* fixed: amq_client.asl crashed when using default exchange (http://www.openamq.org/issue:28)
* fixed: amq_server let applications delete pre-defined exchanges (http://www.openamq.org/issue:27)
++ 1.2d5 - 2008/10/03
* allow signal to be registered by multiple threads (http://www.openamq.org/issue:16)
* fixed error in WIREAPI_SILENT handling (http://www.openamq.org/issue:18)
++ 1.2d4 - 2008/09/29
* WireAPI Connection->silent property now taken from WIREAPI_SILENT environment variable if any
* Fixed: documentation still referred to WIREAPI_VERBOSE variable, which was replaced by WIREAPI_SILENT
* Improved internal server event flow between queues and protocol agents, using credit based flow controls.
This change is designed to make the server more manageable when using very high message rates, and slow clients. Prior to this change, messages were offloaded from message queues to protocol threads (for sending to clients), at full speed. This meant that the configurable queue limits would never be reached, so server memory could grow to excess. This change implements a credit-based flow control so that the bulk of messages will remain on the message queue, where they can be properly managed by the queue limit handling (e.g. discard old messages if queue is too full).
++ 1.2d3 - 2008/09/25
* Fixed rare server crash (BASE2-299)
* Fixed failover logic in JMS client (JAMQ-125)
++ 1.2d2 - 2008/09/16
* Implemented Basic.Qos (http://www.openamq.org/issue:5)
* Fixed use of C++ words in amq_queue.icl ('private') and amq_cml ('class') (http://www.openamq.org/issue:6)
* Fixed error in topic routing key (foo.# matched fruit.bar) (http://www.openamq.org/issue:7)
* Fixed setting of last routing key on binding (http://www.openamq.org/issue:12)
* amq_queue reported bad client ip address on shared queues with no connections (http://www.openamq.org/issue:12)
* Fixed amq_shell, which blocked when listing shared queues without consumers.
* Improved internal assertion macros to provide more info in case of crashes (BASE2-296).
* Fixed occasional server crashes caused by race condition on closing client connections (BASE2-298).
* Fixed occasional server memory corruption in handling of Basic.Cancel-Nowait method (AMQ-589)
* Added support for AMQP nowait methods in PAL scripting language.
++ 1.2d1 - 2008/09/07
* Session now accurately holds content exchange, routing-key, and consumer-tag. (http://www.openamq.org/issue:2)
* Fixed: on Windows the server crashed on startup if it could not resolve its own hostname. (http://www.openamq.org/issue:3)
* Fixed: High-availability would randomly break and fall into a split-brain mode where both nodes would accept application connections. (http://www.openamq.org/issue:4)
* Support for AMQP File, Stream, Tx, Dtx, Access, and Tunnel classes removed.
* Fanout exchange did not properly accept bindings. Fixed.
+++ Configuration file syntax changes
* In wireapi config, renamed arrived_high_water/low_water to high_water/low_water.
* In server config, /failover/failover_timeout changed to /failover/timeout.
* In server config, removed /failover/monitor option, is now timeout divided by 2.
* In server config, timeout defaults to 5 seconds instead of 1 second.
* In server config, timeout verified to not exceed 60 seconds.
++ 1.2d0 - 2008/06/05
* The configuration syntax for failover functionality (formerly "cluster") has changed. Please see http://wiki.openamq.org/user:3-advanced#toc28 for details.
* New simplified semantics and automatic configuration for federation functionality. The configuration syntax (formerly "cluster_mta") has changed. Please see http://wiki.openamq.org/user:3-advanced#toc46 for details.
* Stability and build fixes:
* JAMQ-116 - Assertion failure in C Client
* JAMQ-113 - Queue not deleted immediatly even when 'queue timeout' is set to zero
* JAMQ-109 - Intermitten latency as high as 30 seconds was observed in OpenAMQ
* JAMQ-67 - Fix some SMT errors
* FOR-19 - Cannot build on Mac OS/X
* BASE2-293 - Make client layer error reporting more controllable
* BASE2-292 - icl_smt.gsl does not expand variables in "async header" and "async footer" <private> blocks
* BASE2-290 - Add debugging support for config files
* BASE2-288 - Remove unused 'name' field from server connection properties
* BASE2-287 - Extend ASL contants class to include macros for soft/hard errors
* BASE2-286 - Change config file inheritence to allow entities without name attribute
* BASE2-284 - SMT gives warnings when compiled with G++
* BASE2-282 - ASL: Correct timeout handling during connection setup/teardown
* BASE2-207 - Implement native atomic operations for Linux/AMD64
* BASE-58 - OSX porting - smt dies horribly
* AMQ-584 - Improve logging/verbosity settings in amq_client_agent, amq_peer_agent
* AMQ-583 - unsafe initialisation in amq_failover can cause asserts or bad behaviour
* AMQ-582 - build.sh does not detect intermediate failures
* AMQ-579 - Change failover times to msec instead of sec
* AMQ-578 - Remove broker 'shake' command
* AMQ-577 - Remove the resources/max_memory_mb and resources/per_client options
* AMQ-576 - Clarify use of vhost identifier
* AMQ-575 - Simplify federation semantics
* AMQ-574 - ASL: server sends connection.open-ok before executing server_connection_open method
* AMQ-573 - HA timeout is hardcoded in code (10 seconds), should be configurable
* AMQ-571 - Apply queue limits systematically to all queues
* AMQ-570 - Delete queues immediately if queue-timeout is set to zero
* AMQ-569 - Topic exchange should route same message to same queue no more than one time
* AMQ-567 - Multiple instances of a single message delivered to the queue
* AMQ-564 - Reimplement MTA peering debugging
* AMQ-563 - Use 'exchange' in place of name for MTA configuration
* AMQ-562 - Use names instead of numbers for MTA modes
* AMQ-561 - Apply patch: --listen to set the address to listen on
* AMQ-560 - Routing key is lost when message passes MTA
* AMQ-559 - Headers exchange is not conformant with 0.9 spec for x-match
* AMQ-550 - Refactor server shutdown handling to close all connections cleanly
* AMQ-523 - Match blank routing key with the # binding key
1.2c4 - 2007/09/04
---------------------------------------------------------------------
Summary of changes:
Build and documentation fixes only, no changes to functionality.
Full list of fixes:
BASE2-283 BASE2-277 changes break single threaded build
BASE-60 Boom: Enclose <set> values in quotes
FOR-18 PCRE: Inherit CCDEFINES from environment
AMQ-555 WireAPI: Documentation updates
1.2c3 - 2007/08/24
---------------------------------------------------------------------
Summary of changes:
The "packio" configuration option has been removed. This was a workaround to
support systems without working scatter/gather socket I/O which is not
necessary on any of our supported platforms (Linux, Solaris, Windows), and was
causing other issues with the transport of large messages.
The "poll_frequency" configuration option has been replaced by an adaptive
algorithm that provides optimal performance without the need for tuning by the
user.
Known issues:
BASE2-282 ASL: Correct timeout handling during connection setup/teardown
Does not affect normal operation, only corner cases with
deliberately misbehaving clients.
AMQ-550 Refactor server shutdown handling to close all connections
cleanly
May cause the server to loop on shutdown in combination with
a misbehaving client (see BASE2-282), or cause issues with a
clean shutdown of peering connections. In either case, sending
the server a second SIGINT will cause it to shut down normally.
AMQ-553 Fanout exchange doesn't dispatch messages after binding
recreation
AMQ-554 Direct exchange doesn't work with empty routing key
JAMQ-78 Make heartbeat configurable for peering connections
JAMQ-97 The max_memory_mb broker setting is not functional when used
with the default direct allocator
Please do not rely on the max_memory_mb setting to limit the
total amount of memory used by the server, this is not currently
working correctly.
None of the above should impact a normal production environment. We hope to
release fixes for these with the "ultra-stable" OpenAMQ 1.2d0 release,
tentatively scheduled for the 7th of September.
Full list of fixes:
BASE2-279 Correctly set socket options (TCP_NDELAY, SO_SNDBUF, SO_RCVBUF)
in SMT/ASL
BASE2-280 ASL: remove packio
JAMQ-96 Kill command for certain connections doesnt work.
(Duplicate, already fixed in OpenAMQ 1.2c2 by JAMQ-87)
BASE2-277 Review SMT socket polling strategy (poll_frequency)
BASE2-281 SMT doesn't always trigger master thread when threads go idle
BASE-59 Add MT build support for AIX with xlc to 'c' script
1.2c2 - 2007/07/19
---------------------------------------------------------------------
Internal prelease for testing before 1.2c3 public release.
Summary of changes:
JAMQ-87 is a refactoring of the ASL agent state machines, and either directly
or indirectly fixes or obsoletes the fix for AMQ-542, AMQ-549, JAMQ-32,
JAMQ-54, JAMQ-57, JAMQ-71, JAMQ-73, JAMQ-79, JAMQ-82 and JAMQ-83.
As part of this refactoring we have explicitly removed support for more than
one protocol channel on a connection, since there is no direct requirement for
this and the code was problematic and untested.
WireAPI and broker error handling and reporting is now greatly improved and
more robust. The generic "unexpected disconnection" message has been removed,
and the broker and client will report the specific cause of disconnection
(protocol error, network error, etc.).
JAMQ-94 fixes some non-critical bugs in the way SMT handles error conditions on
sockets, which were discovered during the work on JAMQ-87.
IMPORTANT NOTES:
A major improvement has been made to the way large message contents (>1 frame)
are processed in the broker and WireAPI layers, which will result in better
connection stability under high broker or client load.
In order to take advantage of this, please ensure that you are running the
broker with the "packio" setting turned *off*. The "packio" functionality is
likely to be removed in the next release, since it interferes badly with
multi-frame messages.
The "read timeout" and "write timeout" broker and client configuration settings
have been removed since they are no longer required.
The WireAPI configuration file has been renamed from amq_wireapi.cfg to
wireapi.cfg.
The default "poll frequency" setting has been changed from 0 to 256, and the
WireAPI configuration now also includes "poll frequency". However, for correct
behaviour, we encourage users to keep the default setting (256) and to *ensure*
this setting is not manually set to 0. We are testing a new polling algorithm
which will completely replace "poll frequency" in the next release.
Known issues:
The broker shutdown process has been modified to initiate a clean shutdown of
connections when the broker receives a SIGINT or SIGTERM. This has not yet been
intergrated into the console shutdown code, and this change may have adverse
impact on HA failover in situations where a failover is to be triggered by
shutting down a running broker. We will evaluate the value of this change and
provide a definite solution in the next release.
Due to a programming error, the "tcp sndbuf" and "tcp rcvbuf" broker
configuration settings have no effect. This will be fixed in the next release.
The documentation on www.openamq.org has not been updated to reflect the
changes in this release.
Full list of fixes:
AMQ-542 Handle invalid protocol version in protocol header correctly
AMQ-547 Wrong operator precedence assumed in amq_queue_message_count can
lead to crash
AMQ-548 Set packio default to 0
AMQ-549 AMQ client API not able to support more than single connection
BASE-57 OSX porting - smt 'thread_create' function name clash
BASE2-266 "new style" iterator lists are inconsistent with the rest of iCL
and should be removed
BASE2-268 Ctrl+C leads to looping forever
BASE2-269 Clean up PAL and add read function
BASE2-270 smt_signal has allocation (link) issues
BASE2-271 Remove support for nested contents
BASE2-273 Multiple calls to _destroy on sync objects don't handle links
correctly
BASE2-274 PAL scripts need to be able to set config options
BASE2-276 Client uses 100% CPU on SIGINT while attempting to connect
BASE2-278 Automate sharing of thread context
FOR-16 c.bat and pal.bat do not accept file names with extensions
FOR-17 apr_socket_opt_get: Implement APR_SO_ERROR
JAMQ-32 E: Illegal sequence: Write request follows Close request
JAMQ-54 ASL: Design flaw in heartbeat algorithm
JAMQ-57 ASL client layer: Fix heartbeat design flaws
JAMQ-71 Assertion failure at amq_server:
smt_socket_request_by_socket.c:935: smt_socket_request_by_socket_first_:
Assertion `self' failed.
JAMQ-73 Assertion with debug build - amq_server: icl_mem_fat.c:695:
icl_mem_fat_possess_: Assertion `self->tag == 0xFABB' failed.
JAMQ-79 Design error in client/server agent state machine can block SMT
engine when sending large contents
JAMQ-80 PAL: Add support for testing failover
JAMQ-82 C API needs to report shutdown event properly
JAMQ-83 amq_client_agent aborts if there are still pending contents in
input thread and session has already been closed
JAMQ-84 Need PAL to support generated contents larger than 2MB (the
current limit)
JAMQ-85 PAL: <repeat> no longer works outside of <session>
JAMQ-86 SMT: smt_os_thread in ACTIVE status not polling for socket input
JAMQ-87 SMT not calling thread catcher in all cases/ASL client trying to
do socket operations on closed socket
JAMQ-88 ASL: Remove read_timeout and write_timeout from client agent
JAMQ-90 Verify OpenAMQ 1.2 HA clustering code meets agreed requirements
for delivery
JAMQ-91 SMT: <default> functionality for a <state> not implemented
correctly
JAMQ-92 SMT: Add priority attribute to method definition
JAMQ-93 SMT: Allow a thread to register more than one signal with
smt_signal_register
JAMQ-94 SMT not handling poll returning APR_POLLIN with a combination of
APR_POLLERR or APR_POLLHUP on a socket
JAMQ-95 amq_server aborts with (smt_socket_request.c 536) Could not find
specified socket in poll list.
1.2c1 - 2007/03/26
---------------------------------------------------------------------
This release fixes some interoperability problems with other AMQP 0.9
implementations, and removes the dependency on libuuid which was causing
build problems for some people (BASE2-267).
Bugfixes:
AMQ-546 AMQP 0.9 interoperability fixes for OpenAMQ 1.2c1
Changes:
BASE2-267 Change channel id to use 64-bit atomic sequence
1.2c0 - 2007/03/15
---------------------------------------------------------------------
Initial Open Source release.
IMPORTANT NOTE for users of previous releases:
This release is now AMQP 0.9 compliant. This means that your old 1.0,
1.1 clients will *NOT* interoperate with this release and will need to
be rebuilt using new client libraries.
Also note that the library names and openamq/ directory structure have
changed, so if you are linking applications without the use of iMatix
Boom, you will have to update your build process.
Bugfixes:
JAMQ-66 Use Queue.Unbind in MTA
FOR-14 Build system fixes for Solaris x86
BASE2-263 Bitrot: SMT single-threaded build is broken
JAMQ-74 ipr_str_matches: Incorrect buffer size allocated for converted
regexp can cause memory corruption
BASE2-264 smt_thread, smt_os_thread: Replace _status_e enumerated types
with #defines
JAMQ-75 Fix for JAMQ-51 introduced uninitialized use of variable in
amq_queue_basic.icl
BASE2-265 ASL: Incorrect code generation in asl_client.asl
FOR-15 Win32: Link with LIBRPCRT4.LIB to get UuidCreate
AMQ-537 Remove remains of old clustering code from v1.1
Changes:
BASE2-74 Integrate native atomic operations available in Solaris 10
BASE2-262 Change default memory allocator to direct for some MT builds
BASE-55 Set default BOOM_MODEL to mt,release for Linux & Solaris
AMQ-539 Add channel-id and resume command to comply with AMQP 0-9
BASE2-258 Remove "alert" command from AMQP
BASE2-256 Add void field type to field tables
JAMQ-38 Add queue.unbind to protocol and server
AMQ-540 Implement field table within field table
AMQ-541 Change protocol version to 0.9
1.1b5 - 2007/03/01
---------------------------------------------------------------------
Bugfixes:
JAMQ-72 Frame errors in Java client with new OpenAMQ_Server
1.1b4 - 2007/02/19
---------------------------------------------------------------------
Bugfixes:
JAMQ-42 SEGFAULT in amq_server_connection_queue_unbind
JAMQ-67 Fix some SMT errors (catch-all issue for SMT stability
(BASE2-260) problems found by sustained testing)
JAMQ-68 Make 'function' methods reject zombies in synchronous
(BASE2-259) objects
JAMQ-69 Deadlock in amq_server_connection_exception
JAMQ-63 Solaris 5.8 version of Proxy AMQ Server core-dumps
1.1b3 - 2006/12/13
---------------------------------------------------------------------
Bugfixes:
JAMQ-59 Publish messages on Proxy Server from local clients are not
passed onto clients connected to remote Broker
1.1b2 - 2006/12/11
---------------------------------------------------------------------
Bugfixes:
BASE2-257 ICL: JAMQ-36 changes break ST build
JAMQ-43 SMT problem: assert (!thread->os_thread)
JAMQ-46 Console: 'top' command gives bogus output
JAMQ-49 ipr_str_matches: Bug in conversion of glob expression to regexp
could lead to incorrect matches
JAMQ-51 Broker dropping messages when channel flow is suspended
JAMQ-52 ipr_time_iso8601: timezone handling is broken
JAMQ-54 ASL: Design flaw in heartbeat algorithm (broker side fix only)
JAMQ-55 Broker: Throttle message flow on outgoing path (queue ->
connection threadlet -> TCP) (reporting fix only)
Changes:
JAMQ-50 Replace hash table container with a more suitable algorithm
JAMQ-48 Provide option to clean up pending messages in queue
(implemented as profile= argument on queue.declare)
Known issues:
* Client-side fix for JAMQ-54 will be in a future release
* Full fix for JAMQ-55 will be in a future release
* Correct functionality of JAMQ-48 change is dependent on a
full fix for JAMQ-55
1.1b1 - 2006/10/31
---------------------------------------------------------------------
Note the version number change - the new clustering code will as of now
use the 1.1 series. This release has no functional changes in
clustering from 1.0e0.
Bugfixes:
JAMQ-36 Memory leaks due to incorrect use of APR pools
(BASE2-250)
JAMQ-33 Negative number of consumers on queue
(AMQ-529)
JAMQ-31 amq_server: smt_socket_request.c:836:
(BASE2-255) smt_socket_request_destroy_: Assertion
`self->thread->pending_count' failed
JAMQ-22 Assertion failed: item->by_status_head == self, file
smt_thread_by_status.c, line 739
Changes:
JAMQ-35 Remove message/traffic statistics from asl_broker
(BASE2-254)
JAMQ-34 Make destroying queues more efficient
(AMQ-534) Also resolves: JAMQ-25, JAMQ-7
BASE2-252 Add random values to PAL
BASE2-251 PAL: Add -i option to clients to enable setting instance name
passed to server
AMQ-533 Move flow control to consumer
AMQ-532 Implement Client API flow control using channel.flow
1.0e0 - 2006/09/25
---------------------------------------------------------------------
This is an initial release of the new high availability and briding
functionality that replaces the old clustering implementation in OpenAMQ
1.0c and 1.0d.
This release incorporates all applicable bug fixes up to and including
those in OpenAMQ 1.0d5.
1.0d5 - 2006/09/25
---------------------------------------------------------------------
Bugfixes:
JAMQ-16 amq_server: amq_consumer_by_queue.c:1492:
amq_consumer_by_queue_count: Assertion `self' failed.
1.0d4 - 2006/09/07
---------------------------------------------------------------------
Bugfixes (backport):
JAMQ-10 Server assertion failure at amq_console_agent.c:2646:
action_register: Assertion `hash' failed.
JAMQ-11 debugging message removed from this release
AMQ-527 console: Race condition accessing destroyed objects can cause a
server crash
1.0d3 - 2006/08/04
---------------------------------------------------------------------
Bugfixes (backport):
JAMQ-9 amq_shell is missing certain features which are necessary for
monitoring individual connections.
AMQ-524 amq_console: "normal user attempted super-user function" message
should show client IP, instance name
AMQ-525 amq_console: Improve feedback when asked to manipulate objects
that have gone away
AMQ-526 Server needs to allow infinite read timeout when not
heartbeating (e.g. talking to ST clients)
1.0d2 - 2006/07/20
---------------------------------------------------------------------
Bugfixes (backport):
JAMQ-9 amq_shell is missing certain features which are necessary for
monitoring individual connections.
1.0d1 - 2006/06/08
---------------------------------------------------------------------
Bugfixes (backport):
JAMQ-4 Old queues are recreated on primary server after restart in
cluster mode.
JAMQ-2 Assertion failure on `self->object_tag == 0xFABB' in
amq_consumer_unlink_ at amq_consumer.c:1238
JAMQ-3 amq_shell does not display the correct start time of a
connection
JAMQ-1 server dumps while setting trace level using amq_shell
Bugfixes:
AMQ-504 amq_shell does not display the correct start time of a
connection
BASE2-236 smt_thread item inserted into multiple queue containers
1.0d0 - 2006/06/08
---------------------------------------------------------------------
Changes:
AMQ-512 The connection name of the client should be logged (along with
the ip) for any logging in server log regarding a particular client
BASE2-243 Optimise link/unlink operations in icl/smt objects
AMQ-509 Change server monitoring to reflect real network i/o
AMQ-458 Server-generated queue names need their own namespace
AMQ-465 Proposed protocol modification to improve startup/failover performance
AMQ-506 Changes for AMQP/0.7
AMQ-496 Dynamic logging to be implemented in server
AMQ-505 amq_shell should have an option to display only the instance
names for the connections and exit
AMQ-502 Split console functions into normal/super functions
Bugfixes:
AMQ-513 Assertion failure at self->tag ==
ICL_CACHE_ALIVE,icl_mem_thin.h, line 548 while attempting failover
AMQ-511 Branch and deliver OpenAMQ 1.0c3 release with fix for BASE2-236
AMQ-510 Assertion failure in file smt_thread_queue.c, line 760 for
item->queue_head == NULL
BASE2-241 Missing file license.gsl
AMQ-498 Missing link on amq_consumer object
AMQ-499 Remove dependency on external console schema file
BASE2-240 all pal clients abort with amq_client_agent.c:5602:
amq_client_agent_manager: Assertion `thread->manager ==
amq_client_agent_manager' failed.
BASE2-239 Types get converted to lower case, breaking 'Bool' declarations
BASE2-237 Hashed object tags causing problems in openamq
AMQ-507 perf_tests build failure
AMQ-503 OpenAMQ tests fail to build
AMQ-504 amq_shell does not display the correct start time of a connection
1.0c3 - 2006/05/12
---------------------------------------------------------------------
Changes:
BASE-50 Upgrade to the latest version of ZLIB
BASE-48 Upgrade to latest version of PCRE
BASE-52 Move 'c' script into foreign package
AMQ-438 Don't send content body frame when body length is zero
BASE-51 Disable PCRE and ZLIB support in gsl3
AMQ-478 Improve topic performance
AMQ-470 Implement heartbeat in clients and servers
AMQ-469 Include routing key in summary for a queue
AMQ-468 Implement "-e" option for amq_shell; running shell commands
AMQ-467 Display hostname instead of ip in summary for a connection
shown by amq_shell
Bugfixes:
AMQ-501 server segfault due to use of self->stats even if not
configured
AMQ-495 Tracing level cannot be set to 3 via amq_shell
AMQ-500 amq_shell unable to kill a connection
AMQ-489 Assertion failure at amq_server_agent.c:5638: s_write_payload
BASE2-234 Heavy socket activity causes timers to get delayed or lost
BASE2-235 ASL demo server/client broken
AMQ-486 Change log is not sent to primary after its restart
AMQ-485 Cluster reporting nonsense error after primary restart
AMQ-493 Cluster cannot be started because of authentication issues
AMQ-473 Cluster: After primary restart secondary server looks to
accept new connections, but is not able to route them for some
time (6 sec)
AMQ-472 Cluster disconnects when clients are disconnected unexpectedly
AMQ-492 With heartbeats of 5 seconds clients get disconnected after
some time
BASE2-233 Memory leaks in MT server build
FOR-13 apr-util/xml/expat/Makefile.in should not attempt to
regenerate configure
AMQ-491 With ALLOCATOR=direct , the server dumps at startup
AMQ-490 server dump in asl_log_agent_manager for RHAS4
AMQ-484 Authentication: PLAIN description in specification and
implementation on C broker is not compliant
AMQ-480 With default heartbeat settings clients are disconnected after
some time
BASE2-232 Race condition on writing history of unlink
AMQ-487 Server should provide provision for connection to have a name
AMQ-488 Heartbeat with ST clients can lead to slightly pathological
situations
BASE2-231 Make heartbeat code more clear
AMQ-464 cluster disconnects and reconnects by itself while running
grm_c tests
AMQ-479 Cluster controller should check common for invalid 'internal'
addresses
AMQ-471 Protocol change for SASL implementation
AMQ-475 What are the warning messages in AMQ server for limits being
reached?
AMQ-477 amq_shell has no option for providing vhost
AMQ-476 Cluster Mode: amq_consumer_table reaches its limit very soon
(csm=9725)
BASE2-230 smt_socket_request_monitor timeouts do not work correctly
AMQ-474 Windows build fails with 1.0c1 kit
1.0c1 - 2006/04/19
---------------------------------------------------------------------
Changes:
AMQ-461 Review valid characters for queue names
AMQ-462 review topic matching algorithm (topic_to_regexp)
AMQ-332 Closing connection should destroy its exclusive queues
AMQ-459 Server should reject attempts to create queues using
server-generated queue names
AMQ-456 Add more tracing to console when shell sends invalid data
BASE2-58 ICL - icl_console_print and below needs tuning.
AMQ-435 Cluster should have internal and external connections
BASE2-221 Tracking objects that are freed too early (the mosquito
catcher)
AMQ-404 Client agent: Change to a design that uses a single queue to
communicate between threads
BASE-47 Add 'noopt' model to Boom
BASE-46 Add 'gprof' model to Boom
AMQ-434 server should validate cluster addresses
AMQ-425 Update the documentation for custom.cfg in Wiki
AMQ-436 Allow cluster balancing to be switched off
BASE2-54 Compile time option macros should be reviewed and standardised
BASE2-214 Simplify list option settings
Bugfixes:
AMQ-463 Secondary server assertion failure while running GRM_C tests
in cluster mode
AMQ-448 Failover does not happen for some clients with multiple
resubscriptions under heavy load
AMQ-460 Topic exchange failing to route message.
AMQ-457 Failure to connect during mass start-up/connect.
BASE2-191 GSL string.replace function is not safe, allows memory
overwrite
BASE2-196 ipr_process waits forever when terminating
AMQ-450 Under heavy load the server cannot create new exclusive queues
AMQ-451 Assertion failure in server at ipr_bucket.c:931 in
ipr_bucket_dump
AMQ-454 amq_shell is not functional
AMQ-455 amq_client sometimes fails with assertion failure on content
header size
BASE2-226 SMT: Incorrect usage of condition variables
AMQ-453 Master election fails when backup is killed in 3-server
cluster setup (split brain issue)
AMQ-452 amq_server does not unlink amq_peer_list when started with
unknown clustername
AMQ-437 Shorten server-generated queue names
BASE2-222 demo_client_config_tests fails in the build process