6

jboss5.1.x、EJB3.0、JPA3 を使用しています。

dblinkを介して別のデータベースに接続されているビューから「選択」クエリを実行しようとしています。

ソース データベースはOracle 9、宛先データベースはOracle 8です。

このエラーが発生しています:

15:27:06,625 WARN [JDBCExceptionReporter] SQL Error: 24777, SQLState: 99999

15:27:06,625 ERROR [JDBCExceptionReporter] ORA-24777: use of non-migratable database link not allowed

XAの使用中にdblinkを使用できないことを理解した後、このエラーの解決策を見つけました。したがって、次のように共有データベースリンクを作成するようにdblinkスクリプトを変更することで解決できました。

 CREATE SHARED DATABASE LINK CONNECT TO IDENTIFIED BY AUTHENTICATED BY IDENTIFIED BY USING 

このテスト環境では、すべてが正常に機能しました。

ここで、ソースデータベースはOracle 11であり、宛先はまだOracle 8である本番環境にアプリケーションを移動しました。

今回は使用したトリックが機能せず、解決策を見つけることができませんでした。これは私が得ている新しい例外です:

    Caused by: org.hibernate.exception.GenericJDBCException: could not execute query
    at ....Caused by: java.sql.SQLException: ORA-01012: not logged on
    ORA-02063: preceding line from TO_VANTIVE

ご協力いただきありがとうございます、

レイ、

4

4 に答える 4

4
ORA-01012: not logged on

新しいリンクを正しく構成していないことを示唆しているようです。データベースは現在 11g であるため、最初に確認する必要がある大文字と小文字を区別するパスワードが含まれている可能性があります。

リモート スキーマのパスワードに大文字と小文字が区別される場合は、CREATE LINK のパスワードを引用符で囲みます。したがって

CREATE SHARED DATABASE LINK
CONNECT TO bob IDENTIFIED  BY "MyNewPasswd1"
AUTHENTICATED BY jim IDENTIFIED BY "JimsPass23" USING 'DB01';
于 2011-03-31T11:06:55.540 に答える
0

使用している DB リンクがパブリックで共有されていることを確認してください。DB リンクがパブリックで共有されていない場合、例外 ORA-24777 がスローされます: 移行不可能なデータベース リンクの使用は許可されていません。ただし、Java または XA トランザクションを使用せずに、同じクエリを DB で直接実行しようとすると、問題なく動作します。

于 2013-09-23T14:16:05.100 に答える
0

ここで、Oracle 11g (ORA-24777) で同じ問題が発生していました。単一のテーブル (スキーマ内) とビュー (データベース リンクによって作成された) の間で結合を実行しました。XA モードで JBoss データソース全体を実行しました。

うまく機能させるために、dblink ビューのモードを変更する必要がありました。この場合、AUTHENTICATED BY「ORA-01012: ログオンしていません」というメッセージが表示されないように、正確な句を指定することが非常に重要です。

于 2012-02-28T10:17:26.430 に答える