2

OracleでJavaストアドプロシージャを作成する必要があります。私はIBMのサンプル・クラスを使用して、JavaEE環境の外部の単純なクラスからMQメッセージを作成しました。クラスを単独でテストしましたが、機能しています。

私のOracleバージョンは11iです。

単純なアプリケーションで使用するjarを追加して、単純なクラスと一緒にOralceにロードしようとすると、同じjarがテストケースで機能する場合でも、クラスが見つからないというエラーが発生します。私はこれに1週間以上立ち往生しており、誰かが私を助けてくれることを切に望んでいます。

私が得ているエラーの種類は、クライアントのloadjavaユーティリティで-vフラグから次のようになります

326/327行目に、次のように表示されます。

作成:クラスcom / ibm / mq / jms / admin / APロード:クラスcom / ibm / mq / jms / admin / AP

そして、6224行目から最後まで、上記のクラスを解決できないことを示しています。

com / ibm / mq / jms / admin / APRCXI:ORA-29534:参照されるオブジェクトxxxx.com/ibm/mq/jms/admin/APを解決できませんでしたcom / ibm / mq / jms / admin / APSDX:ORA-29534 :参照されるオブジェクトxxxx.com/ibm/mq/jms/admin/APを解決できませんでした終了:クラスcom / ibm / mq / jms / admin/APの解決中にエラーが発生しました

私が使用したコマンドは次のとおりです。

c:\ Oracle \ product \ 11.2.0 \ client_1 \ bin \ loadjava.bat -f -jarsasdbobjects -prependjarnames -stoponerror -u xxxx / yyyy @ SID -v -resolve lib \ jms.jar lib\com.ibm.mqjms。 jar lib \ com.ibm.mq.jmqi.jar lib \ dhbcore.jar lib \ fscontext.jar src \ com \ test \ javasp \ mq \ JmsProducer.java

また、いくつかの追加のjar(ここで見つけたリスト)を使用して-genmissingオプションを試してみましたが、別のクラスでも同様のエラーが発生します。

私が直面しているこれに関する他の問題は、エラーが発生してOracleからdropjavaコマンドを使用しようとしても、機能しないことです。

また、このリンクから、この人は成功したことがわかりましたが、残念ながら、loadjavaを使用してjarをロードする方法を示していませんでした。

他に情報があれば教えてください。

JavaストアドプロシージャでIBMMQをOracle11iと連携させる方法について誰かが何か考えを持っているなら、私は本当に助けていただければ幸いです。

4

2 に答える 2

1

このブログエントリで詳細な回答が見つかりました。私はそれを試しました、そしてそれは私のために働きました。

于 2013-06-15T23:46:53.423 に答える
0

OracleにはCLASSPATHの概念がないため、標準のMQクライアントのインストールは役に立ちません。jar参照は、データベーススキーマ内のアプリでのみロードできます。オプションをロードすると、クラスが解決され-rます。-r -Resolverさらに、 (スキーマ)を使用して独自の解決済みを指定できます。(正確な形式については、Oracleドキュメントを確認してください)。したがって、事実上、データベーススキーマはクラスパスになります。

Java用のWebsphereMQクラスを使用すると、多くの問題が発生します。選択したMQサーバーのバージョンに接続するには、OracleJDKのバージョンが適切なサポートレベルにあることを確認する必要があります。websphereMQVx.xのシステム要件を確認してください。IBMのWebリファレンスを見つける必要があります。Java用に分類されたMQのサポートを確認してください。

Oracle10とJDK1.4.2を使用してMqに接続しようとすると、現時点でこのような問題が発生します。JDK1.4.xを使用してJavaコードを再コンパイルする必要がありました。これは機能しません。これは、少なくともJRE1.7が必要なMQ7.0.1.7に接続しているためだと思います。

于 2014-02-24T17:34:13.697 に答える