-
Notifications
You must be signed in to change notification settings - Fork 1
/
Changes.html
2411 lines (2305 loc) · 114 KB
/
Changes.html
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
<?xml version="1.0" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Changes.src</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:[email protected]" />
</head>
<body style="background-color: white">
<p><a name="__index__"></a></p>
<!-- INDEX BEGIN -->
<ul>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#changes_for_1_34">Changes for 1.34</a></li>
<li><a href="#changes_for_1_33">Changes for 1.33</a></li>
<ul>
<li><a href="#major_work_on_statistics_messages_and_pcf_types">Major work on Statistics messages and PCF types</a></li>
<li><a href="#mqsc_and_pcf_enhancements">MQSC and PCF enhancements</a></li>
<li><a href="#minor_tweaks">Minor tweaks</a></li>
<li><a href="#important_note_for_mqv5_and_perl_5_6_users">Important note for MQv5 and perl 5.6 users</a></li>
</ul>
<li><a href="#changes_for_1_32">Changes for 1.32</a></li>
<ul>
<li><a href="#reasonqualifier_macro_translation">ReasonQualifier Macro Translation</a></li>
<li><a href="#ssl_improvements">SSL Improvements</a></li>
<li><a href="#mqseries__command_fix_for_inquirechannelnames">MQSeries::Command fix for InquireChannelNames</a></li>
<li><a href="#portability___better_code">Portability / Better code</a></li>
<li><a href="#mqseries__command_fix_for_createobject">MQSeries::Command fix for CreateObject</a></li>
</ul>
<li><a href="#changes_for_1_31">Changes for 1.31</a></li>
<ul>
<li><a href="#xs_code_cleanup">XS code cleanup</a></li>
<li><a href="#minor_bugfixes">Minor bugfixes</a></li>
</ul>
<li><a href="#changes_for_1_30">Changes for 1.30</a></li>
<ul>
<li><a href="#support_for_properties__mq_v7_">Support for properties (MQ v7)</a></li>
<li><a href="#support_for_asynchronous_put_status_information__mq_v7_">Support for asynchronous put status information (MQ v7)</a></li>
<li><a href="#mqseries__command_enhancements_for_mq_v7">MQSeries::Command enhancements for MQ v7</a></li>
<li><a href="#mqseries__command_enhancements_to_support_filter_commands">MQSeries::Command enhancements to support filter commands</a></li>
<li><a href="#xs_code_cleanup">XS code cleanup</a></li>
<li><a href="#updated_examples">Updated examples</a></li>
</ul>
<li><a href="#changes_for_1_29">Changes for 1.29</a></li>
<ul>
<li><a href="#initial_support_for_mq_v7">Initial support for MQ v7</a></li>
<li><a href="#mqseries__command_fixes">MQSeries::Command fixes</a></li>
<li><a href="#support_securityparms_in_mqconnx">Support SecurityParms in MQCONNX</a></li>
<li><a href="#ssl_tutorial">SSL tutorial</a></li>
<li><a href="#minor_bugfixes">Minor bugfixes</a></li>
<li><a href="#channeltable_fixes">ChannelTable fixes</a></li>
<li><a href="#mqseries__command_fixes">MQSeries::Command fixes</a></li>
</ul>
<li><a href="#changes_for_1_28">Changes for 1.28</a></li>
<ul>
<li><a href="#compilation_fixes_when_used_with_mq_v5">Compilation fixes when used with MQ v5</a></li>
<li><a href="#fix_client_server_detection_on_windows">Fix client/server detection on Windows</a></li>
</ul>
<li><a href="#changes_for_1_27">Changes for 1.27</a></li>
<ul>
<li><a href="#new_entries_in_the_amqerr0x_log_parser">New entries in the AMQERR0x.LOG parser</a></li>
<li><a href="#other_changes_made_">Other changes made:</a></li>
</ul>
<li><a href="#changes_for_1_26">Changes for 1.26</a></li>
<ul>
<li><a href="#updated_entries_for_amq9001_and_amq9002">Updated entries for AMQ9001 and AMQ9002</a></li>
<li><a href="#correct_the_requestparameterorder_for_setauthorityrecord">Correct the RequestParameterOrder for SetAuthorityRecord</a></li>
<li><a href="#fix_the_inquirechannelstatus_pcf_command">Fix the InquireChannelStatus PCF command</a></li>
</ul>
<li><a href="#changes_for_1_25">Changes for 1.25</a></li>
<ul>
<li><a href="#add_missing_generated_files">Add missing generated files</a></li>
<li><a href="#fix_link_rpath_glitches_on_64bit_linux">Fix link RPATH glitches on 64-bit Linux</a></li>
<li><a href="#remove_vestigial_mq_v2_and_os_390_support">Remove vestigial MQ v2 and OS/390 support</a></li>
<li><a href="#remove_outdated_pubsub_support">Remove outdated PubSub support</a></li>
<li><a href="#switch_to_params__validate">Switch to Params::Validate</a></li>
</ul>
<li><a href="#changes_for_1_24">Changes for 1.24</a></li>
<ul>
<li><a href="#add_support_for_mq_v6_in_mqseries__command">Add support for MQ v6 in MQSeries::Command</a></li>
<li><a href="#fix_a_bug_in_mqseries__config__qmgr">Fix a bug in MQSeries::Config::QMgr</a></li>
<li><a href="#fix_documentation_for_carp_parameter">Fix documentation for Carp parameter</a></li>
</ul>
<li><a href="#changes_for_1_23">Changes for 1.23</a></li>
<ul>
<li><a href="#new_mqseries__message__rfh2_class">New MQSeries::Message::RFH2 class</a></li>
<li><a href="#support_for_nonpersistentmsgclass">Support for NonPersistentMsgClass</a></li>
</ul>
<li><a href="#changes_for_1_22">Changes for 1.22</a></li>
<ul>
<li><a href="#support_for_the_mq_client_on_linux___itanium">Support for the MQ Client on Linux / Itanium</a></li>
<li><a href="#support_for_sco_openserver___mqseries_5_0">Support for SCO OpenServer / MQSeries 5.0</a></li>
<li><a href="#mqseries__command_fixes">MQSeries::Command fixes</a></li>
</ul>
<li><a href="#changes_for_1_21">Changes for 1.21</a></li>
<ul>
<li><a href="#fixes_for_mqseries__message__iih">Fixes for MQSeries::Message::IIH</a></li>
<li><a href="#fix_for_mqseries__queue_get___failure_with_mqrc_format_error">Fix for MQSeries::Queue <code>Get()</code> failure with MQRC_FORMAT_ERROR</a></li>
<li><a href="#use_version_2_of_mqmd__mqgmo__mqpmo_by_default">Use version 2 of MQMD, MQGMO, MQPMO by default</a></li>
<li><a href="#handle_tooshort_input_data">Handle too-short input data</a></li>
<li><a href="#add_support_for_ssl_connect_options_to_mqconnx_and_mqseries__queuemanager">Add support for SSL connect options to MQCONNX and MQSeries::QueueManager</a></li>
<li><a href="#mqseries__command_supports_direct_mainframe_connectivity">MQSeries::Command supports direct mainframe connectivity</a></li>
<li><a href="#improve_support_for_wmq_5_3_queuesharing_groups">Improve support for WMQ 5.3 queue-sharing groups</a></li>
<li><a href="#support_for_v7_channel_tables_in_mqseries__config__channeltable">Support for V7 channel tables in MQSeries::Config::ChannelTable</a></li>
<li><a href="#alter_link_libraries_for_aix">Alter link libraries for AIX</a></li>
<li><a href="#drop_deprecated_options__methods_for_mqseries__queue">Drop deprecated options, methods for MQSeries::Queue</a></li>
<li><a href="#drop_deprecated_option_for_mqseries__queuemanager">Drop deprecated option for MQSeries::QueueManager</a></li>
</ul>
<li><a href="#changes_for_1_20">Changes for 1.20</a></li>
<ul>
<li><a href="#improve_mqseries__command__pcf_support_for_clusters">Improve MQSeries::Command::PCF support for clusters</a></li>
<li><a href="#support_file_handles_in_writefile___for_mqseries__config__channeltable">Support file handles in <code>writeFile()</code> for MQSeries::Config::ChannelTable</a></li>
<li><a href="#support_for_v6_channel_tables_in_mqseries__config__channeltable">Support for V6 channel tables in MQSeries::Config::ChannelTable</a></li>
<li><a href="#new_mqseries__message__trigger_class">New MQSeries::Message::Trigger class</a></li>
<li><a href="#alter_link_libraries_for_linux_and_hpux">Alter link libraries for Linux and HP-UX</a></li>
<li><a href="#fix_the_mqseries__command_escape___method">Fix the MQSeries::Command-><code>Escape()</code> method</a></li>
<li><a href="#deprecated_parameters_generate_a_warning">Deprecated parameters generate a warning</a></li>
<li><a href="#deprecated_methods_generate_a_warning">Deprecated methods generate a warning</a></li>
<li><a href="#drop_old_platforms_and_releases">Drop old platforms and releases</a></li>
</ul>
<li><a href="#changes_for_1_19">Changes for 1.19</a></li>
<ul>
<li><a href="#api_change_for_get_put_methods_of_mqseries__queue">API change for Get/Put methods of MQSeries::Queue</a></li>
<li><a href="#new_mqseries__message__configevent_class">New MQSeries::Message::ConfigEvent class</a></li>
<li><a href="#new_mqseries__message__iih_class">New MQSeries::Message::IIH class</a></li>
<li><a href="#add_support_for_websphere_mq_5_3_on_z_os">Add support for WebSphere MQ 5.3 on z/OS</a></li>
<li><a href="#new_features_for_mqseries__command">New features for MQSeries::Command</a></li>
<li><a href="#better_decoding_of_mqsc_results">Better decoding of MQSC results</a></li>
<li><a href="#parameter_verification_for_mqseries__queuemanager">Parameter verification for MQSeries::QueueManager</a></li>
<li><a href="#parameter_verification_for_mqseries__queue">Parameter verification for MQSeries::Queue</a></li>
<li><a href="#new__convert__option_for_mqseries__queue_get_method">New 'Convert' option for MQSeries::Queue Get method</a></li>
<li><a href="#deprecated_parameters_generate_a_warning_if_w_is_enabled">Deprecated parameters generate a warning if -w is enabled</a></li>
<li><a href="#deprecated_methods_generate_a_warning_if_w_is_enabled">Deprecated methods generate a warning if -w is enabled</a></li>
</ul>
<li><a href="#changes_for_1_18">Changes for 1.18</a></li>
<ul>
<li><a href="#add_support_for_websphere_mq_5_3">Add support for WebSphere MQ 5.3</a></li>
<li><a href="#support_channeltable_reading_writing_on_windows_nt">Support ChannelTable reading/writing on Windows NT</a></li>
<li><a href="#improved_client_server_api_detection">Improved client/server API detection</a></li>
<li><a href="#add_support_for_mqsc_inquirequeuestatus_command">Add support for MQSC InquireQueueStatus command</a></li>
<li><a href="#remove_support_for_perl5_004">Remove support for perl5.004</a></li>
<li><a href="#strict_argument_checking_for_mqseries__command_constructor">Strict argument checking for MQSeries::Command constructor</a></li>
<li><a href="#modified_message_retry_handling_in_mqseries__queue_get__">Modified message retry handling in MQSeries::Queue <code>Get()</code></a></li>
<li><a href="#reduced_memory_usage_for_mqseries__command">Reduced memory usage for MQSeries::Command</a></li>
<li><a href="#support_for_clientconn_options_with_mqconnx">Support for ClientConn options with MQCONNX</a></li>
<li><a href="#support_mq_5_2_csd03_and_csd04">Support MQ 5.2 CSD03 and CSD04</a></li>
</ul>
<li><a href="#changes_for_1_17">Changes for 1.17</a></li>
<ul>
<li><a href="#parameter_order_for_pcf_commands">Parameter order for PCF commands</a></li>
<li><a href="#final_message_for_mainframe_mqsc_commands">Final message for mainframe MQSC commands</a></li>
<li><a href="#invalid_handling_of_zerolength_messages_and_zerolength_pcf_strings">Invalid handling of zero-length messages and zero-length PCF strings</a></li>
<li><a href="#rename_noautoconnect_flag_for_mqseries__queuemanager_constructor">Rename NoAutoConnect flag for MQSeries::QueueManager constructor</a></li>
<li><a href="#rename_noautoopen_flag_for_mqseries__queue_constructor">Rename NoAutoOpen flag for MQSeries::Queue constructor</a></li>
<li><a href="#add_queuemanager_method_to_mqseries__queue">Add QueueManager method to MQSeries::Queue</a></li>
</ul>
<li><a href="#changes_for_1_16">Changes for 1.16</a></li>
<ul>
<li><a href="#mqseries__config__channeltable">MQSeries::Config::ChannelTable</a></li>
<li><a href="#mqseries__queue_set_was_horrible_broken">MQSeries::Queue->Set was horrible broken</a></li>
</ul>
<li><a href="#changes_for_1_15">Changes for 1.15</a></li>
<ul>
<li><a href="#add__afs__principal_type_to_authority_api">Add 'AFS' principal type to Authority API</a></li>
</ul>
<li><a href="#changes_for_1_14">Changes for 1.14</a></li>
<ul>
<li><a href="#support_for_a_comparecallback_method_in_createobject">Support for a compare-callback method in CreateObject</a></li>
<li><a href="#support_for_storageclass_objects_in_mqsc_commands">Support for StorageClass objects in MQSC commands</a></li>
<li><a href="#mqseries__command__base_getconvert_preserves_original_message_buffer">MQSeries::Command::Base->GetConvert preserves original message Buffer</a></li>
<li><a href="#mqseries__queuemanager_connecttimeout_logic_fixed">MQSeries::QueueManager ConnectTimeout logic fixed</a></li>
<li><a href="#mqseries__config__machine_reparsing_bug">MQSeries::Config::Machine re-parsing bug</a></li>
</ul>
<li><a href="#changes_for_1_13">Changes for 1.13</a></li>
<ul>
<li><a href="#support_for_mqseries_version_5_2_on_the_mainframe">Support for MQSeries version 5.2 on the mainframe</a></li>
<li><a href="#mqseries__queuemanager_autocommit_off_by_default">MQSeries::QueueManager AutoCommit off by default</a></li>
<li><a href="#unbloat_the_code">Un-bloat the code</a></li>
<li><a href="#mqseries__command_inquirechannelstatus_handles_mqrccf_chl_status_not_found_more_elegantly">MQSeries::Command->InquireChannelStatus handles MQRCCF_CHL_STATUS_NOT_FOUND more elegantly</a></li>
<li><a href="#mqseries__message__rulesformat_tolerant_of_leading_whitespace">MQSeries::Message::RulesFormat tolerant of leading whitespace</a></li>
<li><a href="#mqseries__message__xmldumper_removed">MQSeries::Message::XML-Dumper removed</a></li>
<li><a href="#bug_in_extended_pcf_command_inquireauthority_fixed">Bug in Extended PCF Command ``InquireAuthority'' fixed</a></li>
<li><a href="#minor_bug_in_handling_of_compcode_reason_values_from_mqsc_commands">Minor bug in handling of CompCode/Reason values from MQSC Commands</a></li>
<li><a href="#mqseries__command_reasontext_documented">MQSeries::Command->ReasonText documented</a></li>
<li><a href="#mqseries__command_createobject_takes_force_argument">MQSeries::Command->CreateObject takes Force argument</a></li>
</ul>
<li><a href="#changes_for_1_12">Changes for 1.12</a></li>
<ul>
<li><a href="#mqseries__command_responses">MQSeries::Command->Responses</a></li>
<li><a href="#support_for_control_of_implicitly_commited_transactions">Support for control of implicitly commited transactions</a></li>
<li><a href="#mqseries__queuemanager_connect___timeout_logic">MQSeries::QueueManager-><code>Connect()</code> timeout logic</a></li>
<li><a href="#os_390_support">OS/390 Support</a></li>
<li><a href="#mqseries__config__authority">MQSeries::Config::Authority</a></li>
<li><a href="#mqseries__command_createobject_fix__change__not_create">MQSeries::Command->CreateObject fix: Change, not Create</a></li>
<li><a href="#mqseries__command_createobject_fix__comparing_lists">MQSeries::Command->CreateObject fix: Comparing lists</a></li>
<li><a href="#limit_the_max___of_open_files_for_mqseries__fdc__tail">Limit the max # of open files for MQSeries::FDC::Tail</a></li>
<li><a href="#support_for_symbolic_wait_and_expiry_values">Support for symbolic Wait and Expiry values</a></li>
<li><a href="#use_of_getconvert___error_checked_properly">Use of <code>GetConvert()</code> error checked properly</a></li>
<li><a href="#getconvertreason___and_putconvertreason___methods_added"><code>GetConvertReason()</code> and <code>PutConvertReason()</code> methods added</a></li>
<li><a href="#mqseries__command__support_for_ordered_attributes">MQSeries::Command: Support for ordered attributes</a></li>
</ul>
<li><a href="#changes_for_1_11">Changes for 1.11</a></li>
<ul>
<li><a href="#mqseries__config____classes">MQSeries::Config::* classes</a></li>
<li><a href="#mqseries__errorlog____classes">MQSeries::ErrorLog::* classes</a></li>
<li><a href="#mqseries__fdc____classes">MQSeries::FDC::* classes</a></li>
<li><a href="#mqseries__message__deadletter_object">MQSeries::Message::DeadLetter object</a></li>
<li><a href="#use_of_putconvert___error_checked_properly">Use of <code>PutConvert()</code> error checked properly</a></li>
<li><a href="#mqseries__command_createobject_method_handles_lists_correctly">MQSeries::Command->CreateObject method handles lists correctly</a></li>
<li><a href="#all_getconvert___methods_save_raw_buffer">All <code>GetConvert()</code> methods save raw Buffer</a></li>
<li><a href="#mqseries__pubsub_____modelqname_dynamicqname_configurable">MQSeries::PubSub::*, ModelQName DynamicQName configurable</a></li>
<li><a href="#mqseries__pubsub__adminmessage__translatepcf">MQSeries::PubSub::AdminMessage->_TranslatePCF</a></li>
<li><a href="#mqseries__queue_open___was_silent_on_nonretried_errors">MQSeries::Queue-><code>Open()</code> was silent on non-retried errors</a></li>
</ul>
<li><a href="#changes_for_1_10">Changes for 1.10</a></li>
<ul>
<li><a href="#mqseries__command_mqsc_bugs">MQSeries::Command MQSC bugs</a></li>
<li><a href="#mqseries__message_allows_bufferlength_of_0">MQSeries::Message allows BufferLength of 0</a></li>
<li><a href="#mqseries__command_createobject_enhancements_and_documentation">MQSeries::Command->CreateObject enhancements and documentation</a></li>
</ul>
<li><a href="#changes_for_1_09">Changes for 1.09</a></li>
<ul>
<li><a href="#support_for_win32">Support for Win32</a></li>
<li><a href="#retry_logic_in_mqseries__queuemanager_connect___and_mqseries__queue_open__">Retry logic in MQSeries::QueueManager-><code>Connect()</code> and MQSeries::Queue-><code>Open()</code></a></li>
<li><a href="#mqseries__command_new_takes_additional_arguments_">MQSeries::Command->new takes additional arguments.</a></li>
<li><a href="#mqseries__command_createobject___method_added">MQSeries::Command-><code>CreateObject()</code> method added</a></li>
<li><a href="#mqseries__queuemanager_hconn_reference_counting">MQSeries::QueueManager Hconn reference counting</a></li>
<li><a href="#mqseries__queuemanager_constructor_arguments">MQSeries::QueueManager constructor arguments</a></li>
<li><a href="#mqseries__queue_open___ignores_the_hobj_on_errors">MQSeries::Queue-><code>Open()</code> ignores the Hobj on errors</a></li>
<li><a href="#mqseries__message_buffer___method_added">MQSeries::Message-><code>Buffer()</code> method added</a></li>
<li><a href="#mqseries__message__event_getconvert___saves_raw_buffer">MQSeries::Message::Event-><code>GetConvert()</code> saves raw Buffer</a></li>
</ul>
<li><a href="#changes_for_1_08">Changes for 1.08</a></li>
<ul>
<li><a href="#mqseries__message__event_was_broken">MQSeries::Message::Event was broken</a></li>
<li><a href="#mqseries__command_error_checking_enhancement">MQSeries::Command error checking enhancement</a></li>
<li><a href="#mqseries__queuemanager_and_mqseries__queue_constructor_bug">MQSeries::QueueManager and MQSeries::Queue constructor bug</a></li>
<li><a href="#mqseries__queue_put___method_wasn_t_setting_mqpmo_fail_if_quiescing">MQSeries::Queue-><code>Put()</code> method wasn't setting MQPMO_FAIL_IF_QUIESCING</a></li>
<li><a href="#mqseries__pubsub__broker_stream_api_enhanced_to_support_alternate_users">MQSeries::PubSub::Broker/Stream API enhanced to support alternate users</a></li>
</ul>
<li><a href="#changes_for_1_07">Changes for 1.07</a></li>
<ul>
<li><a href="#mqseries__message__pcf_memory_leak">MQSeries::Message::PCF memory leak</a></li>
<li><a href="#change_to_simplify_static_compiles">Change to simplify static compiles</a></li>
<li><a href="#default_expiry_values_were_wrong">Default Expiry values were wrong</a></li>
</ul>
<li><a href="#changes_for_1_06">Changes for 1.06</a></li>
<ul>
<li><a href="#mqseries__pubsub___">MQSeries::PubSub::*</a></li>
<li><a href="#mqseries__message__pcf">MQSeries::Message::PCF</a></li>
<li><a href="#mqseries__message__rulesformat">MQSeries::Message::RulesFormat</a></li>
<li><a href="#mqseries__message__xmldumper">MQSeries::Message::XML-Dumper</a></li>
<li><a href="#mqseries__command">MQSeries::Command</a></li>
<li><a href="#mqseries__queuemanager">MQSeries::QueueManager</a></li>
<li><a href="#mqseries__queue">MQSeries::Queue</a></li>
<li><a href="#mqseries_core_module">MQSeries core module</a></li>
<li><a href="#installation_procedures__and_other_miscellany">Installation Procedures, and other Miscellany</a></li>
</ul>
<li><a href="#changes_for_1_05">Changes for 1.05</a></li>
<ul>
<li><a href="#installation_procedures">Installation Procedures</a></li>
<li><a href="#mqseries">MQSeries</a></li>
<li><a href="#mqseries__queuemanager">MQSeries::QueueManager</a></li>
<li><a href="#mqseries__queue">MQSeries::Queue</a></li>
<li><a href="#mqseries__command">MQSeries::Command</a></li>
</ul>
<li><a href="#changes_for_1_04">Changes for 1.04</a></li>
<ul>
<li><a href="#mqseries">MQSeries</a></li>
<li><a href="#mqseries__command">MQSeries::Command</a></li>
<li><a href="#mqseries__message__storable">MQSeries::Message::Storable</a></li>
</ul>
<li><a href="#changes_for_1_03">Changes for 1.03</a></li>
<li><a href="#changes_for_1_02">Changes for 1.02</a></li>
</ul>
<!-- INDEX END -->
<hr />
<p>
</p>
<h1><a name="introduction">Introduction</a></h1>
<p>This file documents the changes to each and every release of the
MQSeries perl API, going back as far as the 1.02 release.</p>
<p>
</p>
<hr />
<h1><a name="changes_for_1_34">Changes for 1.34</a></h1>
<p>MQClient/typemap.PL will handle MQINT64 like how it handles MQHMSG.</p>
<p>MQSeries/Comamnd/Base.pm: In untraslatePCF, the filters handled
properly. Filters may also apply to MQCFT_INTEGER64 and
MQCFT_INTEGER64_LIST as well as the shorter kinds.</p>
<p>MQSeries/Command.pm : Added support for ChlAuth and Comminfo objects
of mqv7.1.</p>
<p>MQSeries/ErrorLog/Parser.pm: addied a 'ip.ad.dre.ss (port)' parser
for the error log</p>
<p>MQSeries/ErrorLog/descriptions.pl:
Allow single-character hostnames. more likely this is the first
character of an ip address where the first octet is a single digit.
Add AMQ6048 for dbcs error.</p>
<p>MQSeries/Message/RFH2.pm : Modified based CPAN user's input. It
handles NameValueData correctly. Also sets the default Format to
MQFMT_NONE instead of undef.</p>
<p>util/parse_headers:
Some defines are now both compound (ie, they are multiple macros |'ed
together) and the last one ends in L, so the check for the former must
move above the check for the latter so that it works with 7.1
string leading and trailing spaces from or'ed values. This makes the
postponed parsing of or'ed defines work, where the or'ed define has
spaces inside the parentheses.</p>
<p>
</p>
<hr />
<h1><a name="changes_for_1_33">Changes for 1.33</a></h1>
<p>
</p>
<h2><a name="major_work_on_statistics_messages_and_pcf_types">Major work on Statistics messages and PCF types</a></h2>
<p>Support for the decoding of MQ v6 Accounting/Statistics messages was
added to the PCF decoder, along with the new types these messages use.
Though not strictly necessary, support for these types (MQCFT_GROUP,
MQCFT_INTEGER64, and MQCFT_INTEGER64_LIST) is intended to be complete
throughout the PCF framework, so encoding should work as well.</p>
<p>New message subtypes MQSeries::Message::Accounting and
MQSeries::Message::Statistics were added for this, both of which are
derived from the new MQSeries::Message::System class, which mainly
exists to handle the decoding of the messages. The already existing
MQSeries::Message::Event class was reparented to here.</p>
<p>
</p>
<h2><a name="mqsc_and_pcf_enhancements">MQSC and PCF enhancements</a></h2>
<p>The encoding/decoding for KeepAliveInterval has been addressed, and
support for more PCF and MQSC commands have been added, and more MQ v7
items and types were included as well. This should make the
administration of a z/OS queue manager more complete.</p>
<p>Note that as a part of this, the CreateAuthInfo and ChangeAuthInfo
commands now require the AuthInfoType parameter which was previously
optional.</p>
<p>
</p>
<h2><a name="minor_tweaks">Minor tweaks</a></h2>
<p>MQSeries::Queue now allows a queue to be called ``0''. Previously this
was mistaken to be a false value (ok, it is, but it's also a defined
and non-zero-length string, so you should be able to use it).</p>
<p>MQSeries::Command was mixing up the DefinitionType setting on queues
when creating or updating local and model queues. In particular, you
may end up with a PermDyn model queue where this is wrong, or the
failure to delete a dynamic queue, in order to recreate as a local
queue.</p>
<p>MQSeries::QueueManager now explicitly sets the get/put counters it
keeps to 0. This is to eliminate messages of the form:</p>
<pre>
Currently puts and 3 gets pending</pre>
<p>where the number of ``puts'' is simply missing.</p>
<p>An old bug in MQSeries::Message::PCF was removed (wrt the Header and
Parameters methods) once the new MQSeries::Message::System class was
added. It was completely wrong, so clearly no one had used it before
now. It's better now. An old memory leak in MQEncodePCF in PCF.xs
was also squashed (affected parties may have noticed a slow but
continuing increase in memory size of a process that was sending lots
of PCF messages).</p>
<p>
</p>
<h2><a name="important_note_for_mqv5_and_perl_5_6_users">Important note for MQv5 and perl 5.6 users</a></h2>
<p>With the addition of the MQ v6 Statistics and Accounting support in
this release, as well as the new PCF stuff, the possibility exists
that the MQSeries perl module no longer supports either MQ v5 or perl
5.6. Support for these will be at a best effort kind of basis, but
with the caveat that the maintainers no longer use either of these amy
will likely not be able to replicate anything close to an environment
involving either of this if you have any problems.</p>
<p>
</p>
<hr />
<h1><a name="changes_for_1_32">Changes for 1.32</a></h1>
<p>The following fixes are included in the 1.32 release:</p>
<p>
</p>
<h2><a name="reasonqualifier_macro_translation">ReasonQualifier Macro Translation</a></h2>
<p>Markus Sonderegger requested MQReasonQualifierToStrings(),
MQReasonQualifierToMacro(), and <code>MQReasonQualifierToText()</code> functions
(and the associated hashes) to translate the ReasonQualifier values to
something more human-friendly.</p>
<p>
</p>
<h2><a name="ssl_improvements">SSL Improvements</a></h2>
<p>SSLPeerName is now handled as part of the ClientConn passed to
MQCONNX(), and also when passed as part of a channel definition when
writing a channel table file.</p>
<p>More SSL-related event types are now defined.</p>
<p>
</p>
<h2><a name="mqseries__command_fix_for_inquirechannelnames">MQSeries::Command fix for InquireChannelNames</a></h2>
<p>Investigation of a problem report with InquireChannelNames led to the
discovery of a gap between the documentation and server-side
implementation of InquireChannelNames. Channel names are now taken
from the last PCF response instead of the first on the grounds that
that one is much more likely to contain the actual answer.</p>
<p>
</p>
<h2><a name="portability___better_code">Portability / Better code</a></h2>
<p>Some types were adjusted to better match the places where they are
used and to avoid compiler warnings from some platforms/compilers.
Similarly, some C++ style comments were changed to C comments so that
pre-C99 compilers will be happy.</p>
<p>The MQHMSG type is now translated to/from a perl type better.</p>
<p>Macros that are defined to enable backwards compatible building
against older MQ installs are now wrapped in #ifdef/#endif to avoid
compiler warnings.</p>
<p>The <code>hex()</code> function is now used to translate stringified hexadecimal
into a number instead of eval(). Fix suggested by an anonymous
well-intentioned problem ticket.</p>
<p>A number of places in the code path for generation of a channel table
could lead perl to emit warnings about undef. Reasonable defaults
have been applied to eliminate these.</p>
<p>The test for <code>MQSTAT()</code> has been updated to match the current state of
the art.</p>
<p>
</p>
<h2><a name="mqseries__command_fix_for_createobject">MQSeries::Command fix for CreateObject</a></h2>
<p><code>CreateObject()</code> would fail to create a local queue if a dynamic queue
already existed with the same name because they have the same QType (a
previously existing remote queue would be deleted first because the
QType is different). Now we also check the DefinitionType to see if a
dynamic queue should be replaced with a local queue.</p>
<p>
</p>
<hr />
<h1><a name="changes_for_1_31">Changes for 1.31</a></h1>
<p>The following fixes are included in the 1.31 release:</p>
<p>
</p>
<h2><a name="xs_code_cleanup">XS code cleanup</a></h2>
<p>Fix support for builds on Solaris, and a few places where filters
weren't completely supported properly. Add some type casts to quiet
some compiler warnings, and a workaround for non-C99 systems.</p>
<p>
</p>
<h2><a name="minor_bugfixes">Minor bugfixes</a></h2>
<p>Adjust the projected test count for one script to match the number of
tests, fix an undefined variable use warning in MQSeries/Command.pm,
and a parameter validation inaccuracy in MQSeries/QueueManager.pm.</p>
<p>
</p>
<hr />
<h1><a name="changes_for_1_30">Changes for 1.30</a></h1>
<p>The following changes are included in the 1.30 release:</p>
<p>
</p>
<h2><a name="support_for_properties__mq_v7_">Support for properties (MQ v7)</a></h2>
<p>The low-level API and the MQSeries::XXX classes have been extended
with support for properties. There is a new MQSeries::Properties
class and the existing MQSeries::Queue and MQSeries::Message
classes have been extended with new methods.</p>
<p>
</p>
<h2><a name="support_for_asynchronous_put_status_information__mq_v7_">Support for asynchronous put status information (MQ v7)</a></h2>
<p>The low-level API and the MQSeries::QueueManager class have been
extended with support for asynchronous put status information. In the
low-level API, the function is MQSTAT; in the MQSeries::QueueManager
class, the method is StatusInfo.</p>
<p>
</p>
<h2><a name="mqseries__command_enhancements_for_mq_v7">MQSeries::Command enhancements for MQ v7</a></h2>
<p>The MQSeries::Command class now supports the new MQ v7 attributes for
PCF commands on distributed platforms, i.e. it supports querying and
modifying the new queue manager, queue and channel attributes
introduced with MQ v7. Support for Topic and Subscription objects has
been added to MQSeries::Command.</p>
<p>
</p>
<h2><a name="mqseries__command_enhancements_to_support_filter_commands">MQSeries::Command enhancements to support filter commands</a></h2>
<p>The MQSeries::Command class now supports filter commands for MQ v6 and
above. This allows Inquire commands to include a filter that is
evaluated by the queue manager and reduces the result set to items
matching the filter (query).</p>
<p>
</p>
<h2><a name="xs_code_cleanup">XS code cleanup</a></h2>
<p>Significant cleanups in the low-level XS code should make it possible
to run with warnings enabled without getting large numbers of ``use of
uninitialized value'' messages at run-time.</p>
<p>
</p>
<h2><a name="updated_examples">Updated examples</a></h2>
<p>The example scripts have been updated; most notably, a new set of
request/reply scripts demonstrates handling syncpoint, poison
messages, and dynamic queues.</p>
<p>
</p>
<hr />
<h1><a name="changes_for_1_29">Changes for 1.29</a></h1>
<p>The following fixes are included in the 1.29 release:</p>
<p>
</p>
<h2><a name="initial_support_for_mq_v7">Initial support for MQ v7</a></h2>
<p>The module now compiles with MQ v7 and new constants are supported.
Support for new and enhanced APIs is not yet in place. During
configuration, some warnings will occur for unknown datatypes. This
is expected and can be ignored.</p>
<p>Feedback on which MQ v7 features should be supported in the next
module release is welcome.</p>
<p>
</p>
<h2><a name="mqseries__command_fixes">MQSeries::Command fixes</a></h2>
<p>Minor changes for queue-sharing groups and for the
HeaderCompression/MessageCompression attributes.</p>
<p>
</p>
<h2><a name="support_securityparms_in_mqconnx">Support SecurityParms in MQCONNX</a></h2>
<p>Duke Nguyen contributed support for the SecurityParms data structure
with the MQCONNX call</p>
<p>
</p>
<h2><a name="ssl_tutorial">SSL tutorial</a></h2>
<p>Morten Bjoernsvik contributed a cookbook on using SSL with the
MQSeries client and server.</p>
<p>
</p>
<h2><a name="minor_bugfixes">Minor bugfixes</a></h2>
<p>Morten Bjoernsvik contributed a bugfix to the MQSeries::Queue module,
avoiding a call to MQCLOSE if no queue manager connection exists.</p>
<p>
</p>
<h2><a name="channeltable_fixes">ChannelTable fixes</a></h2>
<p>Recent V6 client releases are more picky in how they parse v4 channel
table files (the format native to the MQ 5.0 client release). The
MQSeries::Config::ChannelTable file has been updated to reflect this.</p>
<p>
</p>
<h2><a name="mqseries__command_fixes">MQSeries::Command fixes</a></h2>
<p>Add the missing ChannelStatistics attribute for Channel commands.</p>
<p>
</p>
<hr />
<h1><a name="changes_for_1_28">Changes for 1.28</a></h1>
<p>The following fixes are included in the 1.28 release:</p>
<p>
</p>
<h2><a name="compilation_fixes_when_used_with_mq_v5">Compilation fixes when used with MQ v5</a></h2>
<p>The changes for release 1.27 broke MQSeries::Command when used with
an MQ v5 client.</p>
<p>
</p>
<h2><a name="fix_client_server_detection_on_windows">Fix client/server detection on Windows</a></h2>
<p>Patrick Lanners supplied a patch to improve the testing for the client
or server API on Windows.</p>
<p>
</p>
<hr />
<h1><a name="changes_for_1_27">Changes for 1.27</a></h1>
<p>The following fixes are included in the 1.27 release:</p>
<p>
</p>
<h2><a name="new_entries_in_the_amqerr0x_log_parser">New entries in the AMQERR0x.LOG parser</a></h2>
<p>A number of additional message descriptions have been added to the
configuration file for the AMQERR0x.LOG parser
(MQSeries::ErrorLog::Parser). The newly supported messages are
specific to MQ v6 on Linux/Unix/Windows.</p>
<p>The AMQERR0x.LOG parser does not yet support all new MQ v6 messages.
Error reports (including AMQERR0x.LOG files) are welcome.</p>
<p>
</p>
<h2><a name="other_changes_made_">Other changes made:</a></h2>
<ul>
<li>
<p>Updated MQSC command attributes for OS/390 WMQ6 queue managers.</p>
</li>
<li>
<p>Added/Updated PCF commands/attributes for both Mainframe and Distributed queue managers.</p>
</li>
<li>
<p>Added support for BYSTRING parameters like ConnectionId.</p>
</li>
</ul>
<p>
</p>
<hr />
<h1><a name="changes_for_1_26">Changes for 1.26</a></h1>
<p>The following fixes are included in the 1.26 release:</p>
<p>
</p>
<h2><a name="updated_entries_for_amq9001_and_amq9002">Updated entries for AMQ9001 and AMQ9002</a></h2>
<p>IBM has changed the AMQERR log format for the above codes.
Updated descriptions.pl file in the Errorlog directory.</p>
<p>
</p>
<h2><a name="correct_the_requestparameterorder_for_setauthorityrecord">Correct the RequestParameterOrder for SetAuthorityRecord</a></h2>
<p>Thanks to ``Jean-Yves Baudy <a href="mailto:[[email protected]]''">[[email protected]]''</a> for pointing this out.
Corrected the RequestParameterOrder file to expect the correct order.</p>
<p>
</p>
<h2><a name="fix_the_inquirechannelstatus_pcf_command">Fix the InquireChannelStatus PCF command</a></h2>
<p>Updated the ChannelStatus block in RequestParameters file with
all the necessary optional parameters.</p>
<p>
</p>
<hr />
<h1><a name="changes_for_1_25">Changes for 1.25</a></h1>
<p>The 1.24 release, though long-delayed, was plagued by glitches. Our
only excuse is that it had been too long since the last release and we
were out of practice. Let's hope the 1.25 release is better.</p>
<p>
</p>
<h2><a name="add_missing_generated_files">Add missing generated files</a></h2>
<p>The MQSeries 1.24 release accidentally went out without the required
generated files. This has been corrected.</p>
<p>
</p>
<h2><a name="fix_link_rpath_glitches_on_64bit_linux">Fix link RPATH glitches on 64-bit Linux</a></h2>
<p>The RPATH for 64-bit linux systems ended up as /opt/mqm/lib6464 due to
duplicate addition of the '64' postfix. This has been fixed.</p>
<p>
</p>
<h2><a name="remove_vestigial_mq_v2_and_os_390_support">Remove vestigial MQ v2 and OS/390 support</a></h2>
<p>Support for the MQ v2 release has been removed. The lowest supported
MQ release is now 5.2 and the lowest supported perl release is now
perl 5.6.</p>
<p>In a similar manner, the incomplete and known to be broken OS/390
support is removed. The module will still work with z/OS queue
managers; it just won't try and compile on OS/390 anymore.</p>
<p>
</p>
<h2><a name="remove_outdated_pubsub_support">Remove outdated PubSub support</a></h2>
<p>Support for the outdated pre-MQSI v2 publish/subscribe classes
(MQSeries::PubSub, MQSeries::Message::RulesFormat) has been removed.</p>
<p>
</p>
<h2><a name="switch_to_params__validate">Switch to Params::Validate</a></h2>
<p>The VerifyNamedParams method in the MQSeries::Utils has been dropped
and is replaced by the use of the Params::Validate module. This is a
new dependency that must be installed before the MQSeries module.</p>
<p>
</p>
<hr />
<h1><a name="changes_for_1_24">Changes for 1.24</a></h1>
<p>
</p>
<h2><a name="add_support_for_mq_v6_in_mqseries__command">Add support for MQ v6 in MQSeries::Command</a></h2>
<p>Support for all new parameters in PCF and MQSC commands; support for
mainframe PCF commands; and several new PCF commands such as
<code>InquireQueueManagerStatus</code>, <code>InquireUsage</code> and the
authority-related commands.</p>
<p>
</p>
<h2><a name="fix_a_bug_in_mqseries__config__qmgr">Fix a bug in MQSeries::Config::QMgr</a></h2>
<p>Monique Diaz reported a bug in MQSeries::Config::QMgr, where
re-parsing a changed queue manager config file would lead to an
incorrect method invocation.</p>
<p>
</p>
<h2><a name="fix_documentation_for_carp_parameter">Fix documentation for Carp parameter</a></h2>
<p>Herb Williams reported that the examples for the 'Carp' parameter were
broken. They should now make more sense and actually work.</p>
<p>
</p>
<hr />
<h1><a name="changes_for_1_23">Changes for 1.23</a></h1>
<p>
</p>
<h2><a name="new_mqseries__message__rfh2_class">New MQSeries::Message::RFH2 class</a></h2>
<p>A new class to support RFH2 messages; this allows interaction with JMS
clients and the various WMQ Integrator products.</p>
<p>This message type is experimental and lightly tested (bugreports and
patches welcome). Thanks to Tim Kimber for working on this.</p>
<p>
</p>
<h2><a name="support_for_nonpersistentmsgclass">Support for NonPersistentMsgClass</a></h2>
<p>The new queue attribute <code>NonPersistentMsgClass</code>, which is available
for Local and Model queues starting with WMQ 5.3 CSD06, is now
supported by MQSeries::Command::PCF and MQSeries::Command::MQSC.</p>
<p>
</p>
<hr />
<h1><a name="changes_for_1_22">Changes for 1.22</a></h1>
<p>
</p>
<h2><a name="support_for_the_mq_client_on_linux___itanium">Support for the MQ Client on Linux / Itanium</a></h2>
<p>Add 64-bit client support for Linux / Itanium. This should also make
it easy to add support for other 64-bit clients - but note that each
scuh platform will need to adjust the util/parse_headers script.
Patches for other platforms are welcome.</p>
<p>
</p>
<h2><a name="support_for_sco_openserver___mqseries_5_0">Support for SCO OpenServer / MQSeries 5.0</a></h2>
<p>Leonid Lisovskiy contributed patches to make the MQSeries module
compile on SCO OpenServer 5.0.6 using the WillowTech MQSeries 5.0
client.</p>
<p>
</p>
<h2><a name="mqseries__command_fixes">MQSeries::Command fixes</a></h2>
<p>Support IndexType ``GroupId'' for shared queues on z/OS in
MQSeries::Command::MQSC.</p>
<p>
</p>
<hr />
<h1><a name="changes_for_1_21">Changes for 1.21</a></h1>
<p>
</p>
<h2><a name="fixes_for_mqseries__message__iih">Fixes for MQSeries::Message::IIH</a></h2>
<p>Jeff Dunn contributed patches to the IMBS Bridge Header class
MQSeries::Message::IIH that make it work on both little-endian and
big-endian platforms. By default, the module assumes client and
server will run on platforms with the same endian-ness; this can be
overridden if this is not the case.</p>
<p>
</p>
<h2><a name="fix_for_mqseries__queue_get___failure_with_mqrc_format_error">Fix for MQSeries::Queue <code>Get()</code> failure with MQRC_FORMAT_ERROR</a></h2>
<p>When a message has format MQFMT_NONE; sender and receiver run on
platforms with different endian-ness; and the receiver specifies
Get-Message Option MQGMO_CONVERT; then MQ returns completion code
MQCC_WARNING and reason code MQRC_FORMAT_ERROR.</p>
<p>The MQSeries::Queue <code>Get()</code> method used to treat this as an error. In
this particular case (Format MQFMT_NONE), the warning can be ignored.
The method now treats this as a succesful read.</p>
<p>
</p>
<h2><a name="use_version_2_of_mqmd__mqgmo__mqpmo_by_default">Use version 2 of MQMD, MQGMO, MQPMO by default</a></h2>
<p>The MQGET, MQPUT and MQPUT1 functions now use MQMD version 2 and MQGMO
version2 by default; MQPUT and MQPUT1 now use MQPMO version2 by
default if a distribution list is specified. Applications using
message grouping, segmentation, or distribution lists no longer have
to specify the MsgDesc, GetMsgOpts or PutMsgOpts version explicitly.</p>
<p>It is still possible to set a higher MQMD, MQGMO or MQPMO version
explicitly. Note that this change will break use of older (pre-5.0)
queue managers, but as these are over 5 years out of date, this should
not matter.</p>
<p>
</p>
<h2><a name="handle_tooshort_input_data">Handle too-short input data</a></h2>
<p>Howard Muten noted that specifiying a too-short correlation id on
MQPUT resulted in garbage bytes written to MQ. This turned out to be
a generic problem, where user-supplied data that was too short was
copied in with whatever memory contenst was following. This has been
fixed in the typemap code.</p>
<p>
</p>
<h2><a name="add_support_for_ssl_connect_options_to_mqconnx_and_mqseries__queuemanager">Add support for SSL connect options to MQCONNX and MQSeries::QueueManager</a></h2>
<p>Brian Bumpass contributed XS code to add support for the SSLConfig
options to the <code>MQCONNX</code> call, as well as support for the additional
ClientConn parameters introduced in WMQ 5.3. These options have also
been added to the MQSeries::QueueManager class. Use of these options
obviously requires a WMQ 5.3 client with the optional SSL support
installed and configured.</p>
<p>
</p>
<h2><a name="mqseries__command_supports_direct_mainframe_connectivity">MQSeries::Command supports direct mainframe connectivity</a></h2>
<p>The MQSeries::Command class now supports connecting directly to the
mainframe (z/OS) using client connections. As the default syncpoint
behavior on MQPUT for this platform is different, this module now
explicitly specifies MQPMO_NO_SYNCPOINT when writing a message.</p>
<p>
</p>
<h2><a name="improve_support_for_wmq_5_3_queuesharing_groups">Improve support for WMQ 5.3 queue-sharing groups</a></h2>
<p>On the mainframe (z/OS), WMQ 5.3 supports queue-sharing groups. The
MQSeries::Command::MQSC classes have been extended to support the
following features:</p>
<ul>
<li>
<p>Add the 'Shared' option to the queue DefinitionType parameter values</p>
</li>
<li>
<p>In CreateObject(), do not alter the object but delete and recreate it
when either the QSharingGroupDisposition or CFStruct attributes has
changed.</p>
</li>
</ul>
<p>
</p>
<h2><a name="support_for_v7_channel_tables_in_mqseries__config__channeltable">Support for V7 channel tables in MQSeries::Config::ChannelTable</a></h2>
<p>Mike Surikov contributed further patches to support reading and
writing of channel table files, including fields new with version 7 of
this file (WMQ 5.3). Generation and parsing of the older versions is
still supported.</p>
<p>
</p>
<h2><a name="alter_link_libraries_for_aix">Alter link libraries for AIX</a></h2>
<p>James FitzGibbon contributed some configure options for Makefile.PL to
pick the right MQ libraries on AIX.</p>
<p>
</p>
<h2><a name="drop_deprecated_options__methods_for_mqseries__queue">Drop deprecated options, methods for MQSeries::Queue</a></h2>
<p>The deprecated option <code>NoAutoOpen</code> for the MQSeries::Queue
constructor <code>new</code> is no longer supported.</p>
<p>The deprecated MQSeries::Queue methods <code>Commit</code>, <code>Backout</code> and
<code>Pending</code> are no longer supported. Obviously, these methods are
still supported on the MQSeries::QueueManager object.</p>
<p>
</p>
<h2><a name="drop_deprecated_option_for_mqseries__queuemanager">Drop deprecated option for MQSeries::QueueManager</a></h2>
<p>The deprecated option <code>NoAutoConnect</code> for the MQSeries::QueueManager
constructor <code>new</code> is no longer supported.</p>
<p>
</p>
<hr />
<h1><a name="changes_for_1_20">Changes for 1.20</a></h1>
<p>
</p>
<h2><a name="improve_mqseries__command__pcf_support_for_clusters">Improve MQSeries::Command::PCF support for clusters</a></h2>
<p>Minor fixes for the <code>InquireClusterQueueManager</code> command; add support
for <code>RefreshCluster</code> command. At this time, support for
<code>ResetCluster</code>, <code>SuspendQueueManagerCluster</code> and
<code>ResumeQueueManagerCluster</code> is not planned (patches are welcome).</p>
<p>
</p>
<h2><a name="support_file_handles_in_writefile___for_mqseries__config__channeltable">Support file handles in <code>writeFile()</code> for MQSeries::Config::ChannelTable</a></h2>
<p>T. Rob Wyatt requested the ability to write to a caller-supplied
filehandle in the MQSeries::Config::ChannelTable <code>writeFile</code> method;
this allows him to supply channel tables from a CGI script without
having to create temporary files.</p>
<p>Support for this is now provided using the new <code>FileHandle</code> parameter
to the <code>writeFile</code> method.</p>
<p>
</p>
<h2><a name="support_for_v6_channel_tables_in_mqseries__config__channeltable">Support for V6 channel tables in MQSeries::Config::ChannelTable</a></h2>
<p>Mike Surikov contributed patches to support reading and writing of
version 6 client channel table files. Previous releases did not
handle all fields. The default version of files written is now
version 6, though generation and parsing of the older version format
is still supported.</p>
<p>
</p>
<h2><a name="new_mqseries__message__trigger_class">New MQSeries::Message::Trigger class</a></h2>
<p>A new class to support trigger monitor messages; this allows you to
write a trigger monitor in perl.</p>
<p>
</p>
<h2><a name="alter_link_libraries_for_linux_and_hpux">Alter link libraries for Linux and HP-UX</a></h2>
<p>On Linux and HP-UX, the MQ libraries are different for single- and
multi-threaded programs. The makefile now tries to pick the right
libraries based on the 'usethread' parameter in Config.pm.</p>
<p>
</p>
<h2><a name="fix_the_mqseries__command_escape___method">Fix the MQSeries::Command-><code>Escape()</code> method</a></h2>
<p>Mike Surikov supplied a patch that makes the 'Escape' method of
MQSeries::Command work. This is used when sending MQSC commands using
PCF.</p>
<p>
</p>
<h2><a name="deprecated_parameters_generate_a_warning">Deprecated parameters generate a warning</a></h2>
<p>The deprecated parameters <code>NoAutoConnect</code> for
<code>MQSeries::QueueManager</code> and <code>NoAutoOpen</code> for <code>MQSeries::Queue</code>
will generate a run-time warning whether -w is enabled or not. In the
next release, the warning becomes a fatal error.</p>
<p>
</p>
<h2><a name="deprecated_methods_generate_a_warning">Deprecated methods generate a warning</a></h2>
<p>The deprecated <code>MQSeries::Queue</code> methods <code>Commit</code>, <code>Backout</code> and
<code>Pending</code> will generate a run-time warning whether -w is enabled or
not. In the next release, the warning becomes a fatal error.</p>
<p>
</p>
<h2><a name="drop_old_platforms_and_releases">Drop old platforms and releases</a></h2>
<p>This release drops support for MQSeries 5.0, Solaris 2.5.1 and IRIX.
We have not made any changes to the code that should affect these
platforms and releases, but no longer have hese host types around.
If you care about these platforms, we'll be happy to merge patches to
keep them working.</p>
<p>
</p>
<hr />
<h1><a name="changes_for_1_19">Changes for 1.19</a></h1>
<p>
</p>
<h2><a name="api_change_for_get_put_methods_of_mqseries__queue">API change for Get/Put methods of MQSeries::Queue</a></h2>
<p>In previous releases, specifying the <code>PutMsgOpts</code> with the <code>Put</code>
method or the <code>GetMsgOpts</code> with the <code>Get</code> method of
<code>MQSeries::Queue</code> meant that <code>Sync</code>, <code>Wait</code> and <code>Convert</code>
parameters were ignored.</p>
<p>This has now changed: the <code>Sync</code>, <code>Wait</code> and <code>Convert</code> parameters
will be honored and be combined with the get/put options specified
with the <code>PutMsgOpts</code> or <code>GetMsgOpts</code> parameters.</p>
<p>The <code>Get</code> method <code>Wait</code> and <code>Convert</code> parameters will override the
<code>GetMsgOpts</code> options flag.</p>
<p>The <code>Get</code> and <code>Put</code> method <code>Sync</code> paramater will check the
<code>GetMsgOpts</code> or <code>PutMsgOpts</code> options flag for compatibility. If a
coflicting syncpoint option is already set, a fatal error will be
raised. If no conflicting option is set (this means the options flkag
either has no syncpoint flag set at all, or has the requested flag set
already), the requested <code>Sync</code> paramater will be added to the options
flag.</p>
<p>This means the following will now work:</p>
<pre>
my $result = $request_queue->
Get('Message' => $get_message,
'GetMsgOpts' =>
{
'Options' => (MQSeries::MQGMO_SYNCPOINT_IF_PERSISTENT |
MQSeries::MQGMO_FAIL_IF_QUIESCING),
},
'Wait' => '30s',
);</pre>
<p>In the past, this would cause the <code>Wait</code> flag to be silently ignored.</p>
<p>This incompatible API change may break your code. As it significantly
enhances the safety of your code, this is deemed a price worth paying.</p>
<p>
</p>
<h2><a name="new_mqseries__message__configevent_class">New MQSeries::Message::ConfigEvent class</a></h2>
<p>WebSphere MQ 5.3 on z/OS can generate configuration change events that
cannot be read on Unix and NT queue managers - distributed queue
managers are not able to convert PCF version2 messages. The
MQSeries::Message::ConfigEvent class can be used to process such
messages - highly useful to create an audit log.</p>
<p>
</p>
<h2><a name="new_mqseries__message__iih_class">New MQSeries::Message::IIH class</a></h2>
<p>A new class to support IMS Bridge Header (IIH) messages. This is due
to Nathan Dupra of Xerox USA. This class is based on reverse
engineering and somewhat experimental - feedback on functionality or
the API is welcome.</p>
<p>
</p>
<h2><a name="add_support_for_websphere_mq_5_3_on_z_os">Add support for WebSphere MQ 5.3 on z/OS</a></h2>
<p>A number of minor changes have been made to support MQSeries::Command
with the 5.3 release (now branded WebSphere MQ) on z/OS. Note that
PTF UQ68236 is required - the MQSC output of ``Display Queue'' is
invalid without that PTF, leading to errors with the <code>InquireQueue</code>
method.</p>
<ul>
<li>
<p>Support for AuthInfo objects in <code>MQSeries::Command</code>, mostly through
changes in the <code>MQSeries::Command::MQSC::*</code> tables.</p>
</li>
<li>
<p>Support for CFStruct (Coupling Facility Application Structure) objects
in <code>MQSeries::Command</code>, mostly through changes in the
<code>MQSeries::Command::MQSC::*</code> tables.</p>
</li>
<li>
<p>Support for the new Channel attributes in <code>MQSeries::Command</code>, mostly
through changes in the <code>MQSeries::Command::MQSC::*</code> tables. The new
attributes are <code>BatchHeartBeat</code>, <code>KeepAliveInterval</code>,
<code>LocalAddress</code>, <code>SSLCipherSpec</code>, <code>SSLClientAuth</code> and
<code>SSLPeerName</code>.</p>
</li>
<li>
<p>Support for the new QueueManager attributes in <code>MQSeries::Command</code>,
mostly through changes in the <code>MQSeries::Command::MQSC::*</code> tables.