MYSQLでテーブル名「test」を使用しています。これはトランザクションT1中にロックされ、20分で完了します。この20分以内に別のトランザクションT2によってこのテーブルを更新しているとき。例外が発生しています:-
11:58:38,584 ERROR [STDERR] java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
11:58:38,584 ERROR [STDERR] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2928)
11:58:38,584 ERROR [STDERR] at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
11:58:38,584 ERROR [STDERR] at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1124)
11:58:38,584 ERROR [STDERR] at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:676)
この例外を取得せずにこのトランザクションT2を実行するにはどうすればよいかという解決策を教えてください。
この例外を解決するために、mysqlデータベースのinnodb_lock_wait_timeoutの値を更新するのは正しいですか。この問題の有用な解決策が得られることを楽しみにしています。