Oracle Database 19cでのメッセージ・キューイング
Oracle Advanced Queuing(Oracle AQ)は、多くの業界にわたってエンタープライズ・メッセージ機能を提供し、データベース自体の内部でも広く使用されています。Oracle AQでは、永続メッセージと非永続メッセージの両方をサポートし、Oracle AQのキューは、ポイントツーポイントやパブリッシュ・サブスクライブ型などの異なるキューイングモデルで設定して、ビジネス・アプリケーションどうしが柔軟かつ信頼性の高い方法で通信できるようにすることができます。
Oracle AQでは、関係するクライアントに、メッセージやデータベースイベントについて非同期で通知します。メッセージは、同じまたは別のデータベースのキュー間で非同期に伝播させることができます。
Oracle AQに対するインタフェースには、PL/SQL、JMS 1.1、JDBC、ODP.NET、OCIなどがあります。Oracle WebLogic Serverアプリケーションは、JMS APIを介してOracle AQと相互動作します。
データベースと統合すれば、Oracle AQにより、2フェーズコミットのオーバーヘッドまたはXAインタフェースを必要とせずに、他のデータベース操作と同時にエンキューおよびデキューを自動的にコミットできます。標準SQLでは、メッセージとそのメタデータのクエリを行うことができます。索引を使用すれば、メッセージのアクセスを最適化することが可能です。高可用性、スケーラビリティ、セキュリティ、信頼性などのOracleデータベースの動作上のすべての利点は、Oracle AQでのメッセージとキューに適用できます。Oracle AQでは、Oracle Dataguard、Oracle Real Application Clusters(Oracle RAC)、Oracle Enterprise Manager、およびその他のオラクルのテクノロジーを使用できます。
Oracle AQの概要および簡単なチュートリアルについては、以下のホワイトペーパーを参照してください。
Oracle Database 19c:Advanced Queuing技術概要(PDF)
AQ Sharded Queuesは、高パフォーマンスでスケーラビリティに優れたデータベースキューで、シングル・インスタンス・データベース、Oracle RACデータベース、またはExadata Database Machineで能力を発揮するように設計されています。Sharded Queuesには、JMS、多数のサブスクライバ、Oracle RACインスタンスでのスケーラビリティに対応した最適化機能が用意されています。
AQ Sharded Queuesを使用すると、トランザクション・メッセージングを用いたマイクロサービスの構築とデプロイが容易になります。マイクロサービスには非同期メッセージングが不可欠であり、マイクロサービスはコンテキストに縛られた疎結合のサービス指向アーキテクチャと定義されています。一般的に、REST APIのブロックを伴う同期通信は、マイクロサービス・アーキテクチャをスケーリングするうえで障害となります。
Oracle AQ-JMS Sharded Queueのパフォーマンスについて詳しくは、以下のホワイトペーパーを参照してください。