Ich mache Batch-Operationen mit MySQL Cluster NDB: Einfügen von 10000 oder 5000 Zeilen und Entfernen in einer einzigen Transaktion. Legen Sie funktioniert gut, aber die Entfernung nicht mit einer Ausnahme:Zu viele gleichzeitig ausgelöste Trigger (erhöhen MaxNoOfFiredTriggers) von NDBCLUSTER
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]
Versuch MaxNoOfFiredTriggers zu erhöhen in keiner Verhaltensänderung geführt hat.
Sicher könnte ich Transaktionen in kleinere Chargen aufteilen, aber 5000 Zeilen klingt nicht so riesig für eine Nummer und besonders seltsam, dass Einsatz wirklich gut funktioniert.
Ehrlich, ich erinnere mich nicht mehr was war MaxNoOfFiredTriggers Wert und ich habe dies nicht in der Frage erwähnt ... – divanov