このリリースの『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』の変更内容

ここでは、次の内容について説明します。

Oracle Database Advanced Queuingリリース23aiの変更内容

Oracle Databaseリリース23aiの『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』における変更内容は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • Transactional Event Queue (TxEventQ)の伝播

    Transactional Event Queue (TxEventQ)の伝播では、JMSセッション・レベルの順序付けによる順序付けセマンティクスに確実に準拠しながら、ソースでのイベントを宛先キューに送信できます。

    TxEventQは、構成可能な「イベント・ストリーム」のセットで作成され、アプリケーションは複数のサブスクライバを使用することでパブリッシュ動作をパラレル化できます。「イベント・ストリーム」は、TxEventQのストレージ・メカニズムと見なされます。アプリケーションは、「イベント・ストリーム」の下でTxEventQイベントをパブリッシュします

    伝播機能により、パブリッシュされたメッセージをリモートで処理する機能や、重要なデータをリモートの場所などにパックアップできる機能など、複数のメリットが得られます。

    詳細は、伝播機能を参照してください

  • Transactional Event Queuesに対応するためのKafka実装の拡張

    クライアント・ライブラリに対する拡張により、Kafkaアプリケーションでは、Transactional Event Queues (TxEventQ)の複数のキューからのメッセージをアトミックに生成または利用できるようになりました。使用可能なKafkaコンシューマ間でのトピック・パーティションの分配を容易にする、Kafkaリバランスのサポートも利用できるようになりました。

    詳細は、Oracle Transactional Event QueuesのKafka APIを参照してください

  • Oracle Databaseアドバンスト・キューイング(AQ)からトランザクション・イベント・キュー(TxEventQ)へのオンライン移行ツール

    AQからTxEventQへのオンライン移行ツールでは、AQデプロイメントを次世代のメッセージング製品TxEventQにオンラインおよび自動で移行できます。移行インタフェースは、キューイング操作をブロックせずに機能します。移行されるAQに対して内部Oracle管理TxEventQが作成されます。移行フレームワークは、AQからメッセージを内部的にドレイン(またはデキュー)し、内部TxEventQにエンキューします。適切な時点で、TxEventQはAQの名前を引き継ぎ、AQは削除されます。

    オンライン移行ツールは、最初にAQとTxEventQ間の機能マッピングを評価して、不一致にフラグを付けるのに役立ちます。このフェーズが完了すると、オンライン移行が試行され、移行を続行するか取り消すかをしばらくしてから選択できます。

    詳細は、AQからTxEventQへの移行およびDBMS_AQMIGTOOLを参照してください

  • Transactional Event Queues (TxEventQ)用のPython、Node.jsおよびRESTドライバ

    Oracle Database 23ai以降、Transactional Event Queues (TxEventQ)は、Python、Node.jsおよびRESTの各ドライバもサポートしています。

    詳細は、トランザクション・イベント・キューを使用した多言語プログラミングを参照してください。

  • Prometheus/Grafana for Oracle

    Oracle Database 23aiでは、Prometheus/Grafana for Oracle (PGO)が導入されています。これは、Kubernetes/Docker (K8S)環境で実行しているデータベースのメトリックを開発者に提供します。データベース・メトリックは時系列データベースのPrometheusに格納され、開発者向けに整形されたメトリックがGrafanaダッシュボードを使用して表示されます。

    メトリックによって、各種アプリケーションと、それが構成するモジュールが色分けされたデータベース・パフォーマンスの全体像が示されます。

    詳細は、Transactional Event Queuesの監視を参照してください。

非推奨の機能

このリリースの非推奨機能は次のとおりです。

  • Oracle Messaging Gateway

    • DBMS_MGWADM

詳細は、「Oracle Messaging Gateway」を参照してください。

Oracle Database Advanced Queuingリリース21cの変更内容

Oracle Databaseリリース21cの『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』における変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • Advanced Queuing: Transactional Event Queues対応のKafka Javaクライアント

    Transactional Event Queues (TxEventQ)対応のKafka Javaクライアントにより、KafkaアプリケーションとOracle Databaseの互換性を実現します。これにより、KafkaアプリケーションのTxEventQへの移行が簡単になります。

    Oracle Database 21c以降、Kafka Java APIはOracle Databaseサーバーに接続して、メッセージング・プラットフォームとしてTransactional Event Queues (TxEventQ)を使用できます。開発者は、Kafkaを使用する既存のJavaアプリケーションをOracle Databaseに移行できます。クライアント側ライブラリを使用すると、KafkaアプリケーションはKafkaクラスタのかわりにOracle Databaseデータベースに接続して、透過的にTxEventQのメッセージング・プラットフォームを使用できるようになります。Kafkaの相互運用性は、2つのメッセージング・システムの間でメッセージを移動するようにKafka JMSコネクタを構成することでサポートされます。

    詳細は、Oracle Transactional Event QueuesのKafka APIを参照してください

  • Transactional Event QueuesのJMSペイロードに対するPL/SQLエンキューおよびデキューのサポート

    PL/SQL APIでは、Transactional Event QueuesのJava Message Service (JMS)ペイロードに対してエンキュー操作とデキュー操作を実行できるようになりました。同様に、PL/SQL配列APIがTransactional Event QueuesのJMSユーザーに公開されています。JMSでの異種メッセージのサポート以降、デキューでは、5つのJMSメッセージ・タイプのうち1つを取得しますが、次に受信されるメッセージがどのタイプかを予測することはできません。そのため、PL/SQLの型の不一致でアプリケーション・エラーが発生することがあります。アプリケーションでは、常に汎用型のAQ$_JMS_MESSAGEを使用してTransactional Event Queuesからデキューするとをお薦めします。PL/SQL管理もサポートされています。

    詳細は、「Transactional Event Queuesとメッセージのエンキュー/デキュー」を参照してください。

  • Transactional Event QueuesのJMS以外のペイロードに対するPL/SQLエンキューおよびデキューのサポート

    スループットを向上させ、オーバーヘッドおよび待ち時間を削減するために、エンキューおよびデキューは、メッセージ・キャッシュ、ルール・エンジン、および可能な場合はバックグラウンド処理を使用するように最適化されています。

    詳細は、「Transactional Event Queuesとメッセージのエンキュー/デキュー」を参照してください。

  • パフォーマンスとスケーラビリティのためのTransactional Event Queues

    Oracle Database 21cには、パーティション化されたメッセージ・キューのTransactional Event Queues (TxEventQ)が導入されています。これは、メッセージング、ストリーミング、ダイレクト・メッセージ、およびパブリッシュ/サブスクライブの利点を組み合せたものです。TxEventQは、複数のイベント・ストリームにパーティション化されたキュー表を保持します。これは、イベントのメッセージングとストリーミングのスループットを向上するために複数のRACノードに分散されています。

    詳細については、「Oracle Transactional Event QueuesおよびAdvanced Queuingのパフォーマンスとスケーラビリティ」を参照してください。

  • Transactional Event Queuesのメタデータとスキーマの単純化

    Oracle Database 21cには、パーティション化されたメッセージ・キューのTransactional Event Queues (TxEventQ)が導入されています。これは、メッセージング、ストリーミング、ダイレクト・メッセージ、およびパブリッシュ/サブスクライブの利点を組み合せたものです。TxEventQは、Oracle Databaseの規模で動作します。TxEventQは、トランザクション・イベント・ストリーミングを提供し、オンプレミスとクラウドの両方のOracle RACデータベース(2ノードから8ノード)で1日当たり数十億から数千億のメッセージ規模のデータベースで実行します。TxEventQにはKafkaクライアントとの互換性があるため、KafkaプロデューサとコンシューマはKafkaブローカのかわりにOracle DatabaseのTxEventQを使用できます。

  • Transactional Event Queuesのメッセージ保存とシーク可能なサブスクライバのサポート

    ユーザーは、サブスクライバがメッセージを使用した後でも、メッセージを保存できる期間を指定できます。保存時間は、ユーザーによって秒単位で指定されます。これは、0からINIFINITEまで可能です。保存しないと、メッセージは、シャード・キューにおいてすべてのサブスクライバによってデキューされた場合には、キューイング・システムから完全に削除されます。

    サブスクライバがキューから使用するための一般的な方法は、デキュー操作の使用です。この操作では、メッセージ・キューへのオフセットのシークがサポートされるようになりました。多くのキューイング・アプリケーションでは、サブスクライバは、その作成前にエンキューされたメッセージを使用する必要があります。サブスクライバのこのシーク機能を使用すると、アプリケーションで、サブスクライバ作成の前にエンキューされたメッセージに対して、デキュー・ポイントを再配置できます。これにより、アプリケーションに柔軟性がもたらされ、メッセージのプロデューサとコンシューマとの間の通信が真に非同期になります。

    詳細は、「Transactional Event Queuesとメッセージ保存」および「Transactional Event Queuesとシーク可能なサブスクライバ」を参照してください。

  • AQおよびTransactional Event QueuesでのネイティブJSONデータ型のサポート

    Oracle Database 21c以降では、Advanced QueuingもJSONデータ型をサポートしています。クラシック・キューのキュー表作成の間、およびシャード・キューのキュー作成の間に、RAW/ADTペイロード型に加えて、JSONペイロード型も指定できます。ユーザーは、埋込み要素JSONを単純なADTとともに指定することもできます。DBMS_AQ create_queue_table/create_sharded_queue/enqueue/dequeueなどのDBMS_AQADMプロシージャ、およびOGG/DGレプリケーションのプロシージャでも、JSONデータ型を使用できます。

非推奨の機能

このリリースの非推奨機能は次のとおりです。

  • シャード・キューAPI

    • CREATE_SHARDED_QUEUE

    • DROP_SHARDED_QUEUE

    • ALTER_SHARDED_QUEUE

    • ISSHARDEDQUEUE

    • VERIFY_SHARDED_QUEUE

  • シャード・キュー・ビュー

    • ALL_QUEUE_SHARDS

    • DBA_QUEUE_SHARDS

    • USER_QUEUE_SHARDS

    • GV$AQ_CACHED_SUBSHARDS

    • GV$AQ_CROSS_INSTANCE_JOBS

    • GV$AQ_DEQUEUE_SESSIONS

    • GV$AQ_INACTIVE_SUBSHARDS

    • GV$AQ_MESSAGE_CACHE

    • GV$AQ_MESSAGE_CACHE_ADVICE

    • GV$AQ_MESSAGE_CACHE_STAT

    • GV$AQ_NONDUR_SUBSCRIBER_LWM

    • GV$AQ_REMOTE_DEQUEUE_AFFINITY

    • GV$AQ_SHARDED_SUBSCRIBER_STAT

    • GV$AQ_SUBSCRIBER_LOAD

    • GV$AQ_UNCACHED_SUBSHARDS

    • GV$AQ_NONDUR_SUBSCRIBER

    • GV$AQ_PARTITION_STATS

    • GV$AQ_MESSAGE_CACHE_STAT

詳細は、非推奨のシャード・キューを参照してください。

Oracle Database Advanced Queuingリリース19c, バージョン19.2の変更内容

Oracle Databaseリリース19c, バージョン19.2の『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』における変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • 拡張キーベースのメッセージング

    AQシャード・キューのパフォーマンスはAQクラシック(非シャード)キューと比較して大幅に向上しています。これは、データベースの特定のインスタンスが各シャードを所有するように、キューがシャーディングされているためです。デフォルトでは、エンキュー操作とデキュー操作に関して、シャーディングはユーザーに対して完全に透過的です。AQでは、適切なシャードにメッセージを内部的に配置して、最大のパフォーマンスおよびJMS仕様で求められるセッション・レベルの順序付けを実現しています。セッション・レベルの順序付けでは、同じセッションでメッセージがエンキューされ、優先度と配信モードが同じである場合、2つのメッセージがエンキュー順序の逆順でデキューされることはありません。

    場合によっては、ユーザー・アプリケーションでシャーディングを制御する場合があります。メッセージがエンキューされるシャードをユーザー・アプリケーションで選択できます。アプリケーション・ロジックをサポートするために、シャード・キュー内のメッセージをシャードする方法を必要に応じてユーザーが決定できます。AQシャード・キューのパフォーマンスおよび順序付けの利点は、シャーディングをユーザーが制御する場合でもそのまま維持されます。アプリケーションでは、次のことを制御できます。

    • キューのシャード数

    • キー・ベースのエンキュー: エンキュー・セッションでエンキューするときにメッセージとともにキーを指定して、メッセージがエンキューされるキューのシャードを選択できます。AQサーバーにより、キーのすべてのメッセージが同じシャードにエンキューされます。1つのシャードは、異なるキーのメッセージを処理できます。

    • スティッキー・デキュー: シャードは、シングル・コンシューマ・キューまたはJMSキューのためのアクティブなデキュー・セッションを1つのみ持つことができます。同様に、シャードは、マルチ・コンシューマ・キューまたはJMSトピックのためのデキュー・セッションをサブスクライバごとに1つのみ持つことができます。そのデキュー・セッションは、セッションの存続期間中はキューのそのシャードに固定されたままになります。そのような機能は、JMSリスナーにも使用できます。

サポート対象外機能

次の機能は、このリリースではサポートされなくなりました。

  • Oracle Streamsのサポート終了

    Oracle Database 19c以降では、Oracle Streams機能はサポートされなくなりました。Oracle GoldenGateを使用して、Oracle Streamsのすべてのレプリケーション機能を置き換えます。

Oracle Database Advanced Queuing 12cリリース2 (12.2)の変更内容

Oracle Database 12cリリース2 (12.2)の『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』における変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • シャード・キューのJMSペイロードおよびJMS以外(ADTまたはRAW)のペイロードに対するPL/SQLエンキューおよびデキューのサポート

    Oracle Database 12cリリース2 (12.2)は、シャード・キューでJMS、ADTおよびRAWペイロードに対してエンキューおよびデキュー操作を実行するように、PL/SQL APIを拡張およびサポートします。PL/SQL配列APIもシャード・キューをサポートします。既存のJMS以外の多くのアプリケーションで、ほとんど変更することなくシャード・キューを使用できるようになりました。

    Oracle Database 12cリリース2 (12.2)以降では、シャード・キューを使用するJMSユーザーは、PL/SQL通知を使用してPL/SQLプロシージャを登録し、正常なエンキューでAQサーバーによって自動的に呼び出されるようにできます。PL/SQL通知を使用すると、サーバーでメッセージを自動的にデキューおよび処理できるため、クライアントがキューでメッセージをポーリングする必要がなくなります。

    詳細は、「シャード・キューの管理」を参照してください。

  • シャード・キューの診断性および管理性

    12cリリース2 (12.2)以降では、AQシャード・キューはSTREAMS_POOLのメモリー割当ておよびスループットを最適化するためのメッセージ・キャッシュのアドバイザ、ビューおよび自動管理を提供しています。

    詳細は、「Transactional Event Queuesのチューニング」を参照してください。

  • Oracle Database Advanced Queuingのより長い識別子

    12cリリース2 (12.2)以降では、AQキュー名の最大長が122バイトに増加しています。サブスクライバ名および受信者名の最大長が128文字に増加しています。AQルール・エンジンの場合、ルール名およびルール・セット名の最大長が128バイトになりました。

Oracle Database Advanced Queuing 12cリリース1 (12.1.0.2)の変更内容

Oracle Database 12c リリース1 (12.1.0.2)の『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』における変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • JMSストリーミング

    Oracle Database 12c リリース1 (12.1.0.2)では、Advanced Queuingは、大量のメッセージ・データまたはペイロードを送受信するアプリケーション用に、AQjmsBytesMessageおよびAQjmsStreamMessageを介したシャード・キューのエンキューおよびデキューでのJMSストリーミングを導入しました。

    詳細は、「JMSストリーミング」を参照してください。

Oracle Database Advanced Queuing 12cリリース1 (12.1)の変更内容

Oracle Database 12c リリース1 (12.1)の『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』における変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • JMSシャード・キュー

    Oracle Database 12cリリース1 (12.1)のAdvanced Queuingは、高いパフォーマンスと可用性を持つシャードJMSキューを導入しています。シャード・キューとは、システムで管理されているパーティション化を使用して、独立した複数の物理キューに分割される1つの論理キューです。シャード・キューにより、異なるキュー・シャードにある2つのメッセージ間の順序付けがベスト・エフォートで実行されるため、エンキューおよびデキューのスループットが、特にOracle RACインスタンスで向上します。各シャードは、セッション内のエンキュー時刻に基づいて順序付けされます。シャード・キューは、エンキュー元およびデキュー元がそれら同士で競合しないように、表のパーティションを自動的に管理します。また、シャード・キューは、インメモリーのメッセージ・キャッシュを使用して、パフォーマンスを最適化し、AQ-JMSのエンキューおよびデキューのディスクおよびCPUのオーバーヘッドを削減します。シャード・キューは、Oracle RACインスタンス全体で使用されるキュー、エンキュー率またはデキュー率の高いキュー、またはサブスクライバの多いキューについて推奨されるJMSキューです。

    12.2では、JMS以上をサポートするようにシャード・キューが拡張されました。詳細は、「シャード・キュー」を参照してください。

  • 結果キャッシュ拡張

    Oracle Database 12cリリース1 (12.1)では、ルール・エンジンに、共通で使用される多数のルールのパフォーマンスを向上させる結果キャッシュが導入されました。結果キャッシュでは、属性が同一の式が以前に評価されている場合は、評価フェーズが省略されます。ルールの結果が確定的でない可能性がある場合や、評価されないルールがある場合、または属性に非スカラー・データ型が含まれる場合などには、すべてのルールがキャッシュされるわけではありません。アドバンスト・キューでは、サブスクリプションやそのデキュー・セッションの存続期間が長い場合に、キャッシュが非常に便利です。

  • LONG VARCHARのサポート

    Oracle Database 12cリリース1 (12.1)のOracle Database Advanced Queuingでは、LONG VARCHARデータ型がサポートされています。

  • 3層バックグラウンド・アーキテクチャ

    Oracle Database 12cリリース1 (12.1)には、新しい3層設計のAQバックグラウンド・プロセス・アーキテクチャが導入されています。

    詳細は、「AQバックグラウンド・アーキテクチャ」を参照してください。

  • Data Guardデータベースのローリング・アップグレードのサポート

    Oracle Database Advanced Queuingを使用するデータベースを、Data Guardデータベースのローリング・アップグレードを使用して、新しいOracleデータベースのリリースおよびパッチ・セットにアップグレードできるようになりました(一時ロジカル・スタンバイ・データベースのみ)。ローリング・アップグレードは、Oracle Database 12cリリース1 (12.1)からサポートされるようになりました。

    Data Guardデータベース・ローリング・アップグレードにより、ローリング方式で新しいデータベース・リリースまたはパッチ・セットへのアップグレードを行うことができ計画停止時間が短縮されます。このようなアップグレードでのデータベースの合計停止時間は、Data Guardスイッチオーバーを実行するために必要な短い時間に制限されます。

    次のパッケージを使用すると、ロジカル・スタンバイを使用したローリング・アップグレードがサポートされます。

    • DBMS_AQ

    • DBMS_AQJMS

    • DBMS_AQADM(次のプロシージャを除く):

      • SCHECULE_PROPAGATION

      • UNSCHEDULE_PROPAGATION

      • ALTER_PROPAGATION_SCHEDULE

      • ENABLE_PROPAGATION_SCHEDULE

      • DISABLE_PROPAGATION_SCHEDULE

    関連項目: