2016-11-16 10 views
0

バッチジョブによるデータの取り込みにspring-xdを使用しています。適切な数のジョブが4つのコンテナで並行して実行されます。 10と40の間のジョブ。これらのほとんどは1分以内で完了します。私は、データストアにredis(rabbitmqではなく)とmysqlを使用しています。 Spring-xd-batchは、ジョブ/ステップの統計に異なるmysql-dbを使用し、私のアプリケーションは独自の目的で別のmysql-dbを使用します。どちらのmysql-dbsも同じサーバ上にあります。すべての4つのコンテナと管理者が同じmysql-dbを指しています。引き起こさSpring-xd-batchジョブのロックアップ

私が気づいたことは、私は以下の例外を得るか、ほとんどの時間は、すべてが(毎日少なくとも1回)正常に動作しますが、たまにということですorg.springframework.dao.DataAccessResourceFailureException :last_insert_id()を取得できませんでした。ネストされた例外はjava.sql.SQLExceptionです。ロック待ちタイムアウトを超えました。トランザクションを再起動してみてください。

これはspring-xd(私のアプリケーションではない)によってスローされます。例外は、特定のコンテナに固有のものではなく(特定のコンテナにランダムに発生します)、特定のジョブに固有ではありません。

私は時間を浪費する時間を費やしました。私はinnodb_lock_wait_timeoutを50から600に更新しました。私はtrx_isolationを繰り返し読み込みから読み込みコミットに更新しましたが、これらのどれもが何の違いもないようです。また、低速クエリのログを有効にしましたが、ログに記録されたすべてのクエリは、例外がスローされる時間枠と一致しません。

すべてのポインタは非常に高く評価されます。

+0

[リンク](http://stackoverflow.com/questions/9058816/how-to-generate-a-dynamic-sequence-table-in-mysql)があなたを助けることを願って – Faiz

+0

いいえ、申し訳ありませんが、どのようにその関連性を参照してください。多分私は何かを欠いているでしょうか? –

答えて

0

私の回避策は、* _seqテーブルをinnodbからmysam engineに変更することでした。今のところそれを1ヶ月以上にわたって実行しており、テーブルのロックアップはありませんでした。

関連する問題