AMQ Clients 2.10 リリースノート

Red Hat AMQ 2021.Q3

Red Hat AMQ Clients のリリースノート

概要

本リリースノートには、AMQ Clients 2.10 リリースに含まれる新機能、改良された機能、修正、および問題に関する最新情報が含まれています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージをご覧ください。

注記

本リリースでは、C++、Java、および Python の最小バージョン (C++11、Java 11、および Python 3.6) が追加されました。詳細は、「Red Hat AMQ 7 Supported Configurations」を参照してください。

注記

今回のリリースで、Python および Ruby クライアントで、デフォルトで SSL/TLS ホスト名および証明書の検証が可能になります。これは、C++、JMS、および .NET クライアントの既存の動作と一致します。

第1章 新機能および変更された機能

1.1. AMQ C++

  • ENTMQCL-1083 - リンクのアプリケーションプロパティー

    C++ クライアントは、AMQP リンクでアプリケーション固有のプロパティーをクエリーし、設定する機能を提供するようになりました。

1.2. AMQ Python および AMQ Ruby

  • ENTMQCL-2961 - デフォルトでは SSL/TLS ホスト検証を有効にします。

    Python クライアントおよび Ruby クライアントは、デフォルトで SSL/TLS ホスト名および証明書の検証を有効にするようになりました。これは、C++、JMS、および .NET クライアントの既存の動作と一致します。

第2章 修正された問題

2.1. AMQ JMS

  • ENTMQCL-2681 - プロデューサーを閉じるときに Wait() が永久にブロックされることがある

    以前のリリースの製品のリリースでは、プロデューサーの wait() 操作は、メッセージの送信失敗時に無期限にブロックする可能性がありました。

    本リリースでは、wait() 操作は予想通りに完了するようになりました。

  • ENTMQCL-2784 - 名前解決に基づいてフェイルオーバー URI を重複しない

    以前のリリースの製品のリリースでは、クライアントはフェイルオーバーリストで重複を削除する前に DNS 解決手順を実行していました。これにより、プロキシーの背後で実行しているサーバーの問題が発生しました。

    本リリースでは、クライアントはフェイルオーバー一覧で指定された名前を使用して重複を削除します。

本リリースで修正された問題の完全リストは、「AMQ Clients 2.10.x Resolved Issues」を参照してください。

2.2. AMQ C++

  • ENTMQCL-2583 - CMake 2.8 を使用したビルドの例

    以前のリリースの製品のリリースでは、この例は CMake 2.8 を使用する場合にビルドできませんでした。

    本リリースでは、サンプルビルドが予想通りになりました。

第3章 重要事項

3.1. 長期サポート

AMQ Clients 2.10 と並行して、AMQ Clients 2.9 は長期サポート (LTS) リリースバージョンとして利用できます。バグ修正およびセキュリティーアドバイザリーは、少なくとも 12 カ月間、多数のマイクロリリース (2.9.1、2.9.2、2.9.3 など) で、AMQ Clients 2.9 で提供されています。

LTS リリースストリームに関する次の重要な点に注意してください。

  • LTS リリースストリームでは、バグ修正のみが提供されます。このストリームには新しい機能拡張は追加されません。
  • サポート対象の設定を維持するには、LTS リリースストリームの最新マイクロリリースにアップグレードする必要があります。
  • LTS バージョンは、AMQ Clients 2.9.0 GA から少なくとも 12 カ月間サポートされます。

3.2. AMQ C++

  • 未設定のインターフェース

    AMQ C++ メッセージング API には、まだ証明されておらず、将来のリリースで変更される可能性のあるクラスとメソッドが含まれています。これらのインターフェースを使用するには、今後アプリケーションコードの変更が必要になる場合があることに注意してください。

    これらのインターフェースは、API リファレンスで Unsettled API と表示されています。これには、proton::codec and proton::io namespace のインターフェースと、proton namespace における以下のインターフェースが含まれます。

    • listen_handler
    • messaging_handleron_sender_drain_start および on_sender_drain_finish メソッド
    • 送信側での draining および return_credit メソッド
    • 受信側での draining および drain メソッド

    ヘッダーファイルに存在してもまだ文書化されていない API 要素は未解決 (unsettled) と見なされ、変更になる可能性があります。

  • 非推奨のインターフェース

    API リファレンスで deprecated と表示されるインターフェースは、今後のリリースで削除される予定です。

    本リリースでは、proton namespace で以下のインターフェースが非推奨になります。

    • void_function0: 代わりに work クラスまたは C++11 lambda を使用します。
    • default_container: 代わりに container クラスを使用してください。
    • URL および url_error: 代わりにサードパーティーの URL ライブラリーを使用してください。

3.3. 優先クライアント

通常、AMQP 1.0 標準仕様をサポートする AMQ クライアントが、新しいアプリケーションの開発に推奨されます。ただし、以下の例外が適用されます。

  • 実装で分散トランザクションが必要な場合は、AMQ Core Protocol JMS クライアントを使用します。
  • (たとえば IoT アプリケーション用) で MQTT または STOMP が必要な場合は、コミュニティーがサポートする MQTT クライアントまたは STOMP クライアントを使用します。

3.4. レガシークライアント

  • AMQ OpenWire JMS クライアントが非推奨になる

    AMQ OpenWire JMS クライアントが AMQ 7 で非推奨になりました。このクライアントのユーザーは、AMQ JMS または AMQ Core Protocol JMS に移行することが推奨されます。

  • CMS および NMS API が非推奨になる

    ActiveMQ CMS および NMS メッセージング API は AMQ 7 で非推奨となりました。CMS API のユーザーは AMQ C++ に移行し、NMS API のユーザーは AMQ .NET に移行することが推奨されます。CMS および NMS API の機能が AMQ 7 では縮小されている可能性があります。

  • レガシー AMQ C++ クライアントの非推奨

    AMQ C++ クライアント (以前は MRG Messaging で提供されていた C++ クライアント) は、AMQ 7 で非推奨となりました。この API のユーザーは、AMQ C++ に移行することが推奨されます。

  • コア API はサポート対象外

    Artemis Core API クライアントはサポートされません。このクライアントは、サポートされる AMQ Core Protocol JMS クライアントとは異なります。

3.5. アップストリームのバージョン