※本記事は、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はMicronaut(Picocliを使用)で構築し、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に質問を提出するか、以下のコメント欄にどうぞ。
