2016-05-28 4 views
0

私はストアドプロシージャを呼び出すJava Webアプリケーションを作成しています。ストアドプロシージャの呼び出し中にJava無限ループエラーが発生する

ストアドプロシージャが無限ループになった場合、Java側で無限ループをどのように処理できますか?

+6

これを処理できる唯一の方法は、タイムアウトを設定することです。 – litelite

+2

@ liteliteが言ったように、タイムアウトを追加することができます。また、ストアドプロシージャの無限ループを修正することを検討してください:) –

+0

無限ループを引き起こしているストアドプロシージャを投稿できますか? –

答えて

0

使用Try Catch声明あなたがwhileを使用している場合は、この例のようにしてみてください使用する必要があり、無限ループの原因となった例外をキャッチする:

While(true){ 
    try{ 
     // your code for calling the stored procedure 
     } 
    catch(Exception e) { 
     System.out.println(e.toString()); 
     } 
    } 

の例外があればたとえばSqlExceptionために、使用しているデータベースに依存しますあなたはSQLサーバーを使用しています。

+0

私はあなたが誤解していると思う、無限ループはストアドプロシージャの内部です。 OPは無限ループで手続きを呼びたくないので、彼はどのように反応するかを知りたがっています。 – litelite

0

ストアドプロシージャ内の無限ループを処理する唯一の実行可能な方法は、タイムアウトを設定することです。それはコンピュータがreliably detectの無限ループにできないという事実のためです。だからあなたができる最善の方法は、時間の共鳴可能な量の後にはあきらめることです。そのタイムアウトを設定する方法とそのタイムアウトが報告される方法は、ツールごとに異なります。設定方法を知りたい場合は、使用しているドキュメントのドキュメントを参照してください。

またはVishal Kamatと言います。可能であれば、ソースで無限ループを修正することを検討する必要があります。

関連する問題