問題タブ [advanced-queuing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle - メッセージが例外キューに入るシナリオをシミュレートする
メッセージが例外キューに入るように、Oracle aq のエンキュー/デキュー/ブラウズ中に例外をシミュレートする方法。私は初心者で、まだ加入者と消費者を通過していません。私がやったことは----
私は今、エンキュー、デキュー、ブラウズ機能に慣れています。例外キューがどのように機能するかを確認し、例外キュー (ブラウズとデキュー) でいくつかの実験を行いたいだけです。理論的には、例外キューに入れることはできません。そのため、エンキュー、デキュー、またはブラウズ中にメッセージが例外キューに入るシナリオを生成する必要があります。
sql - aqapi Java を使用してエンキュー中に例外キューをメッセージ プロパティに設定する
助けを借りて[リンク] JavaでコミットしてOracle AQテーブルにエンキューし、JMSクライアントで消費する方法これを達成しようとしています-
これは、デフォルトのメッセージ プロパティを使用してメッセージをキューに入れる関数です。
例外キューをメッセージ プロパティに渡すにはどうすればよいですか??
java - Camel と JMS による Advanced Queue からの正しい順序でのメッセージの消費
Apache Camel を Oracle Advanced Queues および JMS と組み合わせて使用すると問題が発生します。
メッセージを配信するアプリです。Camel の助けを借りて、メッセージが受信され、Oracle Advanced Queues にエンキューされます。次に、それらは Camel で消費され、ターゲット システムに転送されます。メッセージ配信が失敗した場合のために、高度なキューで定義された再試行回数があり、メッセージ配信が繰り返されます。
Camel がメッセージをデキューし、利用できないターゲット システムに送信すると、HttpOperationFailedException または NoSuchEndpointException がスローされます。これらは捕捉され、ロールバックが実行されます。
この時点で、メッセージ配信が再試行回数で定義された回数だけ再試行され、例外キューに移動されることが期待されます。ただし、何が起こっているかというと、キュー内の次のメッセージが送信されます。
メッセージの内容は相互に部分的に依存しているため、順次処理する必要があります。
JMS ライブラリの使用方法に設定ミスがあると思いますが、よくわかりませんし、この動作に影響を与えるものは何も見つかりませんでした。
使用する JMS ライブラリは Oracle AqApi v 11.2.0.3 です。
Camel ルートのコードは次のとおりです。
JmsComponent の構成は次のとおりです。
よろしくお願いします。
アップデート
説明されている動作の理由を見つけたと思います。アドバンスト キューに構成された遅延があります。遅延が続く限り、キューからの次のメッセージがデキューされます。メッセージはランダムにデキューされるのではなく、優先度に従ってデキューされます。
これは、消費者で構成する必要があるものだと本当に思います。例外キューにコミットまたは移動されていない限り、キューからの最初のメッセージを消費するように camel-jms-component を構成するトリックはありますか? キャメルで直接設定するオプションが見つかりませんでした...
java - Oracle Advanced Queue - 消費率のパフォーマンスの問題
Oracle DB 環境で Oracle Advanced Queue を使用してパフォーマンス テストを実行しました。次のスクリプトを使用して、キューとキュー テーブルを作成しました。
PL/SQL クライアントを使用して、2380 TPS で 1000000 メッセージを発行しました。また、Oracle JMS API クライアントを使用して、292 TPS で 1000000 メッセージを消費しました。コンシューマーの速度はパブリッシャーよりも約 10 倍遅く、その速度は私たちの要件を満たしていません。
以下は、メッセージを消費するために使用する Java コードの一部です。
消費者側でパフォーマンスを向上させる方法について何か提案はありますか?
jms - Oracle Advanced Queue - RabbitMQ 統合
一部のプロジェクトでは、メッセージは Oracle Advanced Queue から消費され、RabbitMQ に発行されます。
Oracle Advanced Queue を RabbitMQ と統合するにはどうすればよいですか?
oracle - PL/SQL: DBMS_AQ.DEQUEUE のタイムアウトの処理方法
PL/SQL プログラムから DBMS_AQ.DEQUEUE を呼び出しています。永遠に待ちたくはありませんが、キューにデータがない場合は、デキューを再試行する前に定期的にタイムアウトします。DEQUEUE プロシージャのOracle ドキュメントには、タイムアウトの指定方法が明確に記載されています (dequeue_options の待機フィールドを使用)。ただし、タイムアウトの場合に何が起こるかについては言及していません。
ドキュメントでタイムアウトのケースの処理方法を指定することを期待していましたが、それを見落としたか、ドキュメントの見落としであるか、明らかなはずであり、PL/SQLの経験が不足しているため、方法がわかりません。いずれにせよ、DEQUEUE タイムアウトを最適に処理/キャッチする方法についてのアドバイスをいただければ幸いです。
oracle - Camel から Oracle OAQ キューを読み取る方法
Oracle oaq (「ANYDATA」) キューから LCR を読み取る Camel アプリを作成しています。私たちは Weblogic を使用しておらず、Spring Boot で実行しています。現在、LCR を読み取ってログにダンプする最小限のアプリを作成しようとしています。次のような例外が発生します (下部に完全なトレースを示します)。
セッションを取得して型マップを設定する必要があると思います。LCR は XML 形式です。私が見たWeb上の1つの例から、おそらく次のようなことができるでしょう:
..しかし、私はキャメルの初心者であり(ANYDATAの初心者は言うまでもありません)、それが機能するかどうか、またはその方法がわかりません。また、間違ったドライバーを使用していないかどうか疑問に思っています (thin ドライバー (私が使用している) を示すものや、oci を指している他のものが表示されます。lcr を生成するまで何も起こらないため、接続していることに注意してください。
Camel で lcr を読み取り、ログにダンプするように最小限のアプリをセットアップする方法についての指針は、非常に高く評価されます。
現在、ルートは次のようになっています。
from("oracleAQ:{{xyz.oracleaq.datasource.srcaq}}") .to("log:out");
.. 参照されるコンポーネントは次のとおりです。
ティア。
スタック トレースは次のとおりです。