問題タブ [oracle-aq]
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.
jndi - Oracle AQ キューを使用した Web Logic JMS モジュールの構成
Oracle AQ JMS 実装を使用できる Web ロジック サーバーの設定をテストしていますが、何らかの理由で、WLS 接続プールが作成したキューを認識できません。 Web ロジック データソース接続プールは、キューを作成した DB ユーザーの資格情報を使用します。
admin_user として次のことを行いました。
キュー テーブルを作成しました
キューを作成しました
キューを開始しました
CPOOL ユーザー権限が付与されている
Web Logic で 2 つの JDBC DataSource を設定する データベースに接続する Web Logic で 2 つのデータソースを設定します。一方はcpoolユーザーを使用し、もう一方はadmin_userを使用することを除いて、どちらも同じです。
JMS モジュールの作成 次に、jms モジュールを JDBC データソースに登録し、ローカルおよび外部 JDNI 名を接続します。
admin_userを使用する DataSource を使用すると、すべて正常に動作し、デプロイされたアプリケーションは JNDI でキューを見つけることができます。
問題cpool を使用するデータ ソースを使用すると、JNDI で接続プールが見つかりませんが、キューは見つかりません (admin_user で機能したにもかかわらず)。WL から次のエラーが表示されます。
データソースに admin_user アカウントを使用しない限り、WL がキューの JNDI 名を解決できない理由を知っている人はいますか?
weblogic - JavaはOracle AQからメッセージをデキューできません
Spring DefaultMessageListenerContainer に基づくアプリケーションを weblogic にデプロイしようとしています。外部サーバーを使用して weblogic をセットアップし、JNDI 名で AQ 接続ファクトリと宛先にアクセスできるようにしました。
受信したメッセージをログに記録する単純なメッセージ リスナーがあります (テストのみ)。このメッセージ リスナーを以下に示す Spring DMLC でラップします。
このアプリケーションを weblogic にデプロイしようとすると、DMLC から次の例外が発生します。
Javaがキューでメッセージを受信できるように、これを解決する方法を知っている人はいますか?
ありがとう
oracle - OracleAQ が無効なサブスクライバをキューに残すのはなぜですか?
これは Oracle 11.2.0.3 です。
OracleAQ を介して Oracle の JMS を使用する場合に問題が発生します。これは問題なく動作しますが、キューが数千のメッセージでいっぱいになり、時間の経過とともに数百万のメッセージでいっぱいになることに気付き始めました。これらのいくつかは PROCESSED 状態にありますが、ほとんどは READY です。この動作は、「ゾンビ」またはトピックの購読者の死亡にまで遡ることができました。Java プロセスが終了し、それ自体を登録解除する機会が得られない場合、サブスクライバー レコードがキューに残され、Oracle はプロセスが停止していることを検出しないようです。数か月後、マルチサブスクライバー キューに送信された新しいメッセージはサブスクライバーの数で乗算され、実際よりもはるかに多いと見なされます。(これは、登録者数の上限に達したときに初めて気付きました。)
qmon プロセスが実行されています。プロセスの最小数を増やしても効果がありませんでした。キューに死んだサブスクライバがない限り、キューのクリーンアップは非常にうまく行われます。
誰もこれを前に見たことがありますか?うまくいけば解決策を見つけましたか?
oracle - ODP.Netを使用したOracleAQ。接続時に自動的にデキューします
エンキューとデキューにOracleODP.Netを使用しています。
プロセスA:エンキュープロセスB:MessageAvailableイベントでデキュー
プロセスAとBが実行されている場合、問題はありません。「プロセスB」では、イベントは常に発生します。
ただし、「プロセスB」がオフで「プロセスA」がオンの場合、「プロセスB」を再起動すると、オフ時間中に挿入されたキューは失われます。
過去に挿入されたすべてのキューに対してイベントを発生させるオプションはありますか?
どうもありがとう
spring - Spring JMS Oracle AQ - デキュー オプションの指定
Oracle AQ に Spring JMS を使用しています。Dequeue オプションを指定するにはどうすればよいですか? consumer
名前とdequeue_mode
オプションを指定したい。
jms - jmsトピックメッセージをOracleAQに移動する方法
Javaコードを使用してjmsトピックのメッセージをOracleAQにエンキューするにはどうすればよいですか?
jms - OracleAQ-リスナーがキューをリッスンしているかどうかを判別する方法
AQを設定しているのに、リスナー(Mule JMSエンドポイント)がメッセージを受信していない場合。Oracleがキューに接続されていると考えるリスナーを判別するために照会できるビューはありますか?)
java - 11.2.0.3のOraclejarファイルの入手先-xdb、aq、i18n、xmlparser
Oracle11gバージョン11.2.0.3と互換性があるようにレガシーJavaアプリケーションを更新しようとしています。
アプリケーションはOracle10gバージョン10.2.0.4で実行されており、OracleAdvancedQueuesを使用しています。Mavenの依存関係が次のように宣言されています。
- aq 10.2.0.4.0
- xdb 10.2.0.4.0
- xmlparser 10.2.0.4.0
- i18n 10.2.0.4.0
11g、特に11.2.0.3で同じファイルを見つけるのに苦労しています。Oracleのホーム・ディレクトリ、JDeveloperのインストール、オンラインなど、さまざまな場所を調べたところ、候補となるが必要なものではない、さまざまな名前とバージョンのさまざまなjarファイルが見つかりました。
適切なjarファイルの場所を教えてもらえますか?
JDBCドライバーにはいくつかのクラスがあるようですaq
が、パッケージ名がからoracle.aq
に変更されましたoracle.jdbc.aq
。リファクタリングを行うことができてうれしいですが、先に進む前にこれが正しいことであると確信したいと思います。ここでのアドバイスは価値があります。
編集: 私が見つけたバージョンのミッシュマッシュで実行しようとすると、アプリの単体テストを実行しようとすると次のエラーが発生します:
編集:OracleのOracle Database 11g Release 2 JDBC Driversページからダウンロードorai18n.jar
し
て、単体テストでエラーの原因となった問題を解決することができました。しかし、私はまだとが不足しています。xdb6.jar
aq
xmlparser
編集:取得するのに有望に見えるOracle XDKホームページを
見つけましたxmlparser
が、明らかな場所で利用できるダウンロードはありません。
transactions - JMSを使用してAQからADT(ユーザータイプ)メッセージをデキューします
JMSを介してADTペイロードメッセージを使用してOracleAQを操作する必要があります。問い合わせは簡単でした(記事http://blog.nominet.org.uk/tech/2007/10/04/spring-jms-with-oracle-aq/に従ってください):
ここで、MyMessageCreatorはmyADTMessage(jpubを使用して作成)をMessageにラップしました。正常に動作し、トランザクション内で動作します-例外はクエリをロールバックし、メッセージはキューに挿入されません。
問題はdequeingで始まりました。メッセージを同期して受信する必要があるため、最初の試行は次のとおりです。
「ADTペイロードのある宛先にはJMS-137ペイロードファクトリを指定する必要があります」と表示されます。
その問題の解決策が見つからないため、基になるオブジェクトを手動で初期化しようとしました。
ここで、aqConnectionFactoryは自動配線されたSpringBeanです。
メッセージは適切にデキューされますが、ローカルjmsトランザクションで!queueSession.commit()がないと、それらはキューにとどまり、セッションの作成をに変更するとcreateQueueSession(false, Session.AUTO_ACKNOWLEDGE)
、デキューは自動コミットモードで実行されます。
だからここで私は立ち往生しました。JmsTemplateを使用してreceive()メソッドでADTタイプのメッセージをデキューする方法、またはAQjmsSessionを既存のトランザクションにプッシュする方法について誰かが考えていますか?
oracle11g - oracleトリガー実行DBMS_AQが不十分な特権エラーを取得します
私はオラクル11.2を使用しています。
データベースユーザー:
- AQADM:ユーザーはキューを所有し、AQ_ADMINISTRATOR_ROLEを持っています
- SCOTT:jmsユーザー、次の権限があります。
私は次のストアドプロシージャを持っていますが、コンパイルはOKです。テーブルのトリガーから呼び出されます。
私はユーザーにGRANTをフォローしています
上記のストアドプロシージャを実行するか、トリガーコードを起動するテーブルを更新すると、次のエラーが発生します。
編集:
これが特権ビューです。すべてがSYSDBAとしてSYSとして付与されます