1

.csv から入力を取得し、各行に対して SOAP 呼び出しを行ってデータを外部システムに追加する Grails アプリケーションがあります。このプロセスは、たとえば 200 レコードなどの小さなデータ セットでは問題なく機能します。ただし、より大きなデータ セットを使用すると、プロセスは明らかな問題を伴わずに途切れることなく、2 番目の「インスタンス」が開始され、最初のインスタンスと並行して実行されます。これにより、外部システムに重複したエントリが作成されます。重複が発生するしきい値が正確にはわかりません。

過去に、私は ColdFusion アプリケーションでほぼ同じ問題を抱えていました。そのアプリは、Web サービス呼び出しで xml 入力を取得し、xml 内の電子メール受信者を反復処理して、電子メールを送信します。ファイルに 500 人の受信者がいる場合、メールは問題なく送信されます。ただし、ファイルに 10000 人の受信者がいると、プロセスが実行されて電子メールが送信される場所で同じ「重複」の問題が発生し、リストの先頭で 2 番目の「インスタンス」が起動して重複の送信が開始されることがあります。メール。

Java を基盤として共有している 2 つの異なる環境で問題を確認したので、問題は Java 環境のチューニングのどこかにあると考えています。この問題を解決するために環境内で何を見なければならないかについて、誰かが私を正しい方向に向けることができますか? または、問題が環境以外にあると思われる場合は、他に何を調べればよいですか? コードはあなたが指示したことだけを実行することは知っていますが、プロセスの途中でもう一度開始するようにプロセスに指示するコードは何もないことは 100% 確信しています。コードに問題がある場合は、メモリ リークを誘発しているコードのようなものか、それらに沿った何かである必要があります。

4

0 に答える 0