0

myJDBCTemplate.queryForList()の前に asetQueryTimeout(1)が設定されているに対して例外が発生すると、次のエラーが発生します。120万行のデータベースがあり、タイムアウト例外が出力されるか、ステートメントが実行されたときに発生するかを探しています。したがって、基本的にタイムアウトは発生しますが、例外はそれについて言及していません。

pom.xml で springFramework-version => 4.1.3.RELEASE を使用しています

    INFO: org.springframework.beans.factory.xml.XMLBeanDefinitionReader - Loading XML bean definition for class path resource [org/springframework/jdbc/support/sql-error-code.xml]



    org.springframework.jdbc.UncategorizedSQLException: StatementCallback; uncategorized SQLException for SQL [select * from myTable where userCategory='1']; SQL state [70100]; error code [1317]; Query execution was interrupted; nested exception is java.sql.SQLException: Query execution was interrupted
        at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)
        at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
        at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
        at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:416)
        at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:471)
        at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:481)
……..
caused by java.sql.SQLExcepion: Query execution was interrupted.

Query execution was interrupted, error #1317 states で見つかった回答から、タイムアウトが原因で中断が発生し、これが原因であると考えられます。

また、例外は java.sql.SQLException が原因であると述べていますが、正確な詳細はありません。なぜ発生したのですか? だから、タイムアウトか何かが原因かどうかはわかりません。

4

1 に答える 1

1

エラーはスタック トレースで明らかです:-

エラーコード [1317]; クエリの実行が中断されました

、これは、クエリが実行時間制限によって中断されていることを意味します。このエラーは、クエリの実行に予想外に長い時間がかかる場合に発生します。

このエラーは、特定のデータ範囲に対してクエリを繰り返し実行して、データをバッチでフェッチすることで解決できます。

于 2015-08-23T17:09:53.807 に答える