0

Oracleデータベースを使用している比較的単純なWebアプリケーションをWebLogicにデプロイしています。アプリの開発が終了し、本番のWebLogicインスタンスが存在する実際のLinuxサーバーにアプリをデプロイする準備ができたとき、アプリはすべての挿入でDuplicateKeyExceptionをスローしました。ローカルのWindowsマシンでアプリを実行し、リモートデータベースを指定すると、アプリは正常に機能します。また、データベースからのすべての読み取りは、両方の環境で問題なく完全に機能することにも注意してください。

その後、問題を絞り込むためにテーブルの主キー制約を削除しましたが、Linuxデプロイメントで挿入クエリを実行するたびに失敗します。同じコード、同じリモートデータベース、同じバージョンのWL(10.3.6)をローカルで使用すると、完全に機能します。したがって、ここでの大きな変数は、同じWARファイルがLinux 10.3.6 WLサーバーでDuplicateKeyExceptionをスローすることですが、Windowsではスローしません。また、Linuxインスタンスは実際にはOracleホスト環境上にあるため、DBとWLは異なるサーバー上にありますが、読み取りコマンドは機能するため、ホスト環境は挿入の失敗とは何の関係もないと思います。

これに関する提案や助けをいただければ幸いです。私はLinuxの人ではなく、Java開発者であり、これについては頭がおかしいです。ありがとう。

4

1 に答える 1

1

そこで、この問題を追跡しました。継承した GWT コードの一部が例外をキャッチし、DuplicateKeyException をクライアントにスローしていました。この例外がスローされた理由はわかりませんが、大量のログが記録されている DB の一部を実行するクラスからの継承を停止するという考えがありました。ロギングは Windows ではなく Linux ファイル システムと対話するため、違いがあると考えられます。すべての DB インタラクションをより生の方法で行い、余分なコードの使用をやめるとすぐに、すべてが機能しました。Linux にデプロイされたときにログの何かが壊れていることを知った以外は、これについて深く掘り下げることはありませんでした。この特定のプログラムは、一部のビジネス関係者向けにいくつかの CSV を生成するのに役立つように私が使用する予定であり、通常は「

于 2012-10-03T23:18:59.647 に答える