Hide
When generating a new key, using the 'number table' it will first do an update, then a select. It should do this in a transaction, because those two statemens should be atomic. Otherwise there is a small chance that another server will end up creating another node with the same number:
org.mmbase.storage.StorageException: Duplicate entry '10853709' for key 1
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '10853709' for key 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2019)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1937)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1922)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
at org.mmbase.storage.implementation.database.DatabaseStorageManager.executeUpdate(DatabaseStorageManager.java:1152)
at org.mmbase.storage.implementation.database.DatabaseStorageManager.executeUpdateCheckConnection(DatabaseStorageManager.java:1124)
at org.mmbase.storage.implementation.database.DatabaseStorageManager.create(DatabaseStorageManager.java:1062)
at org.mmbase.storage.implementation.database.DatabaseStorageManager.create(DatabaseStorageManager.java:1015)
at org.mmbase.storage.implementation.database.RelationalDatabaseStorageManager.simpleCreate(RelationalDatabaseStorageManager.java:58)
at org.mmbase.storage.implementation.database.RelationalDatabaseStorageManager.create(RelationalDatabaseStorageManager.java:76)
at org.mmbase.storage.implementation.database.DatabaseStorageManager.createWithoutEvent(DatabaseStorageManager.java:980)
at org.mmbase.storage.implementation.database.DatabaseStorageManager.create(DatabaseStorageManager.java:991)
at org.mmbase.module.core.MMObjectBuilder.insert(MMObjectBuilder.java:627)
at org.mmbase.module.corebuilders.InsRel.insert(InsRel.java:216)
at org.mmbase.module.core.MMObjectNode.insert(MMObjectNode.java:322)
at org.mmbase.module.core.MMObjectBuilder.safeInsert(MMObjectBuilder.java:1072)
at org.mmbase.module.core.MMObjectNode.insert(MMObjectNode.java:334)
at org.mmbase.bridge.implementation.BasicNode.commit(BasicNode.java:526)
at org.mmbase.bridge.implementation.BasicRelation.commit(BasicRelation.java:237)
at org.mmbase.bridge.jsp.taglib.edit.CreateRelationTag.doStartTag(CreateRelationTag.java:62)
at org.apache.jsp.onderhoud.migratie.neweditors.pages_jsp._jspx_meth_mm_005fcreaterelation_005f0(pages_jsp.java:1702)
at org.apache.jsp.onderhoud.migratie.neweditors.pages_jsp._jspx_meth_c_005fotherwise_005f0(pages_jsp.java:1575)
at org.apache.jsp.onderhoud.migratie.neweditors.pages_jsp._jspx_meth_c_005fchoose_005f0(pages_jsp.java:1466)
at org.apache.jsp.onderhoud.migratie.neweditors.pages_jsp._jspx_meth_c_005fif_005f0(pages_jsp.java:791)
at org.apache.jsp.onderhoud.migratie.neweditors.pages_jsp._jspx_meth_mm_005flistnodes_005f0(pages_jsp.java:494)
at org.apache.jsp.onderhoud.migratie.neweditors.pages_jsp._jspx_meth_mm_005flistnodescontainer_005f0(pages_jsp.java:246)
at org.apache.jsp.onderhoud.migratie.neweditors.pages_jsp._jspx_meth_mm_005fcloud_005f0(pages_jsp.java:141)
at org.apache.jsp.onderhoud.migratie.neweditors.pages_jsp._jspx_meth_mm_005fcontent_005f0(pages_jsp.java:91)
at org.apache.jsp.onderhoud.migratie.neweditors.pages_jsp._jspService(pages_jsp.java:53)
Show
When generating a new key, using the 'number table' it will first do an update, then a select. It should do this in a transaction, because those two statemens should be atomic. Otherwise there is a small chance that another server will end up creating another node with the same number:
org.mmbase.storage.StorageException: Duplicate entry '10853709' for key 1
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '10853709' for key 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2019)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1937)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1922)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
at org.mmbase.storage.implementation.database.DatabaseStorageManager.executeUpdate(DatabaseStorageManager.java:1152)
at org.mmbase.storage.implementation.database.DatabaseStorageManager.executeUpdateCheckConnection(DatabaseStorageManager.java:1124)
at org.mmbase.storage.implementation.database.DatabaseStorageManager.create(DatabaseStorageManager.java:1062)
at org.mmbase.storage.implementation.database.DatabaseStorageManager.create(DatabaseStorageManager.java:1015)
at org.mmbase.storage.implementation.database.RelationalDatabaseStorageManager.simpleCreate(RelationalDatabaseStorageManager.java:58)
at org.mmbase.storage.implementation.database.RelationalDatabaseStorageManager.create(RelationalDatabaseStorageManager.java:76)
at org.mmbase.storage.implementation.database.DatabaseStorageManager.createWithoutEvent(DatabaseStorageManager.java:980)
at org.mmbase.storage.implementation.database.DatabaseStorageManager.create(DatabaseStorageManager.java:991)
at org.mmbase.module.core.MMObjectBuilder.insert(MMObjectBuilder.java:627)
at org.mmbase.module.corebuilders.InsRel.insert(InsRel.java:216)
at org.mmbase.module.core.MMObjectNode.insert(MMObjectNode.java:322)
at org.mmbase.module.core.MMObjectBuilder.safeInsert(MMObjectBuilder.java:1072)
at org.mmbase.module.core.MMObjectNode.insert(MMObjectNode.java:334)
at org.mmbase.bridge.implementation.BasicNode.commit(BasicNode.java:526)
at org.mmbase.bridge.implementation.BasicRelation.commit(BasicRelation.java:237)
at org.mmbase.bridge.jsp.taglib.edit.CreateRelationTag.doStartTag(CreateRelationTag.java:62)
at org.apache.jsp.onderhoud.migratie.neweditors.pages_jsp._jspx_meth_mm_005fcreaterelation_005f0(pages_jsp.java:1702)
at org.apache.jsp.onderhoud.migratie.neweditors.pages_jsp._jspx_meth_c_005fotherwise_005f0(pages_jsp.java:1575)
at org.apache.jsp.onderhoud.migratie.neweditors.pages_jsp._jspx_meth_c_005fchoose_005f0(pages_jsp.java:1466)
at org.apache.jsp.onderhoud.migratie.neweditors.pages_jsp._jspx_meth_c_005fif_005f0(pages_jsp.java:791)
at org.apache.jsp.onderhoud.migratie.neweditors.pages_jsp._jspx_meth_mm_005flistnodes_005f0(pages_jsp.java:494)
at org.apache.jsp.onderhoud.migratie.neweditors.pages_jsp._jspx_meth_mm_005flistnodescontainer_005f0(pages_jsp.java:246)
at org.apache.jsp.onderhoud.migratie.neweditors.pages_jsp._jspx_meth_mm_005fcloud_005f0(pages_jsp.java:141)
at org.apache.jsp.onderhoud.migratie.neweditors.pages_jsp._jspx_meth_mm_005fcontent_005f0(pages_jsp.java:91)
at org.apache.jsp.onderhoud.migratie.neweditors.pages_jsp._jspService(pages_jsp.java:53)
<property name="database">mysql-binaryasfile-transactions-keybuffer</property>