MySQL Cluster NDB를 사용하여 일괄 처리 작업을하고 있습니다 : 단일 트랜잭션으로 10000 또는 5000 개의 행 삽입 및 제거. 삽입이 잘 작동하지만 제거는 예외와 함께 실패 행동의 변화를 초래하지 않았다 MaxNoOfFiredTriggers을 증가NDBCLUSTER에서 동시 트리거 (MaxNoOfFiredTriggers 증가)가 너무 많습니다.
java.sql.SQLException: Got temporary error 221 'Too many concurrently fired triggers (increase MaxNoOfFiredTriggers)' from NDBCLUSTER
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1086) ~[mysql-connector-java-5.1.29-bin.jar:na]
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4237) ~[mysql-connector-java-5.1.29-bin.jar:na]
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4169) ~[mysql-connector-java-5.1.29-bin.jar:na]
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2617) ~[mysql-connector-java-5.1.29-bin.jar:na]
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2778) ~[mysql-connector-java-5.1.29-bin.jar:na]
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2828) ~[mysql-connector-java-5.1.29-bin.jar:na]
at com.mysql.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1748) ~[mysql-connector-java-5.1.29-bin.jar:na]
at com.mchange.v2.c3p0.impl.NewProxyConnection.commit(NewProxyConnection.java:981) ~[c3p0-0.9.5.1.jar:0.9.5.1]
at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doCommit(JdbcTransaction.java:112) [hibernate-core-4.1.0.Final.jar:4.1.0.Final]
at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:178) [hibernate-core-4.1.0.Final.jar:4.1.0.Final]
시도합니다.
확실히 작은 배치로 트랜잭션을 나눌 수 있지만 5000 행은 그 수만큼 거대하게 들리고 특히 삽입이 실제로 잘 작동한다는 것은 이상하지 않습니다.
정직하게 말하자면, MaxNoOfFiredTriggers 값이 무엇인지 더 이상 기억하지 않고 질문에서 언급하지 않았습니다 ... – divanov