※本記事は、Todd Sharp による “Quick Pub/Sub Testing for Oracle Advanced Queuing With a Command Line Interface (CLI)” を翻訳したものです。

2021年 11月 5日


最近、かなり長い時間、Oracle Advanced Queuing(Oracle AQ)をあれこれいじっていましたが、1つ気になることがありました。それは、テスト・メッセージのエンキュー(公開)とデキュー(サブスクライブ)を素早く実行できるコマンドライン・インタフェース(CLI)がないことです。2、3のメッセージを公開してキューが想定どおりに動作しているかを確認するだけのためにサンプル・アプリケーション全体を起動するのは面倒なことがあります。MQTTからKafkaまで、他のメッセージング・ソリューションもかなりの時間をかけて操作してみましたが、いずれのソリューションも、エンキューとデキューに使える何らかのCLIを備えています。そこで、このことについてTwitterで文句を言う代わりに、自作することにしました。CLIはMicronautPicocliを使用)で構築し、Graalに変換しました(Windows、Mac、Linuxをサポート)。この記事では、CLIの構築方法に関する詳細は省きますが、GitHubでソース・コードを確認していただくことは大歓迎です。構築方法ではなく、使い方について見ていきましょう。この記事で取り上げる内容は次のとおりです。

ダウンロードとインストール

まず、最新リリースをダウンロードしてください(この記事の時点ではv0.0.1)。OSによっては、バイナリ実行可能ファイルを作成したり、パスに移したりして起動しやすくする必要があります。それが終わったらすぐに使えます。手間ひまかからないダウンロードとインストールに万歳!私は、 aqで実行できるようにMac版をダウンロードしてパスに追加しました。

CLI の使用方法

使い方は難しくありません。 enqueue と dequeue の2つのコマンドがあります。CLIが認証を実行できるように資格証明も渡す必要があります。認証は次の3つの方法のいずれかで実行できます。

  • ウォレットを使用する (自動的にダウンロードされています)
  • TLS と接続文字列を使用する 
  • 直接接続を使用する (ホスト、ポート、サービス名)

これらの認証タイプの例を以下に示します。必要なときにいつでもヘルプを呼び出すには、 aq --help を使用します。次のようなヘルプ・ドキュメントが出力されます。

メッセージのエンキュー

メッセージのエンキューは enqueue コマンドで実行します。 

自律型 DB ウォレットによるエンキュー 

: 自律型 DB ウォレットを使用するには、 OCI CLI を事前に構成して 、ローカル構成ファイルを設定済みにしておく必要があります。

ウォレットの OCID、使用する OCI プロファイル、プロファイルへのパスが必要になります。

TLS 対応自律型 DB の接続文字列によるエンキュー

ホスト、ポート、サービス名によるエンキュー

エンキューの出力

上記のいずれかの方法を使用すると、次のような出力が表示されるはずです。

メッセージのデキュー

デキューは dequeue コマンドで実行します。メッセージをデキューすると、 CTRL+Cで中断するまですべての着信メッセージが流れてきます。

自律型 DB ウォレットによるデキュー 

TLS 対応自律型 DB の接続文字列によるデキュー

ホスト、ポート、サービス名によるデキュー

デキューの出力

まとめ

これで完了です。CLIからOracle AQに素早く簡単に公開/サブスクライブできます。ご質問やご意見がある場合は、GitHubに質問を提出するか、以下のコメント欄にどうぞ。