Hi Folks, I get a problem as following,anyone can gvie an idea? ERROR info: 2017-09-01 22:15:15,925 | WARN | lt-dispatcher-43 | ConcurrentDOMDataBroker | 207 - org.opendaylight.controller.sal-distributed-datastore - 1.5.0.Carbon | Tx: DOM-65 Error during phase CAN_COMMIT, starting Abort OptimisticLockFailedException{message=Optimistic lock failed., errorList=[RpcError [message=Optimistic lock failed., severity=ERROR, errorType=APPLICATION, tag=resource-denied, applicationTag=null, info=null, cause=org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException: Node was replaced by other transaction.]]} at org.opendaylight.controller.cluster.datastore.ShardDataTree.lambda$processNextPendingTransaction$0(ShardDataTree.java:750)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.ShardDataTree.processNextPending(ShardDataTree.java:788)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.ShardDataTree.processNextPendingTransaction(ShardDataTree.java:733)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.ShardDataTree.startCanCommit(ShardDataTree.java:814)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.SimpleShardDataTreeCohort.canCommit(SimpleShardDataTreeCohort.java:105)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.CohortEntry.canCommit(CohortEntry.java:97)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleCanCommit(ShardCommitCoordinator.java:236)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleReadyLocalTransaction(ShardCommitCoordinator.java:200)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.Shard.handleReadyLocalTransaction(Shard.java:623)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.Shard.handleNonRaftCommand(Shard.java:313)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.raft.RaftActor.handleCommand(RaftActor.java:270)[671:org.opendaylight.controller.sal-akka-raft:1.5.0.Carbon] at org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.onReceiveCommand(AbstractUntypedPersistentActor.java:31)[670:org.opendaylight.controller.sal-clustering-commons:1.5.0.Carbon] at akka.persistence.UntypedPersistentActor.onReceive(PersistentActor.scala:170)[188:com.typesafe.akka.persistence:2.4.17] at org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(MeteringBehavior.java:104)[670:org.opendaylight.controller.sal-clustering-commons:1.5.0.Carbon] at akka.actor.ActorCell$$anonfun$become$1.applyOrElse(ActorCell.scala:544)[181:com.typesafe.akka.actor:2.4.17] at akka.actor.Actor$class.aroundReceive(Actor.scala:497)[181:com.typesafe.akka.actor:2.4.17] at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(PersistentActor.scala:168)[188:com.typesafe.akka.persistence:2.4.17] at akka.persistence.Eventsourced$$anon$1.stateReceive(Eventsourced.scala:664)[188:com.typesafe.akka.persistence:2.4.17] at akka.persistence.Eventsourced$class.aroundReceive(Eventsourced.scala:183)[188:com.typesafe.akka.persistence:2.4.17] at akka.persistence.UntypedPersistentActor.aroundReceive(PersistentActor.scala:168)[188:com.typesafe.akka.persistence:2.4.17] at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)[181:com.typesafe.akka.actor:2.4.17] at akka.actor.ActorCell.invoke(ActorCell.scala:495)[181:com.typesafe.akka.actor:2.4.17] at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)[181:com.typesafe.akka.actor:2.4.17] at akka.dispatch.Mailbox.run(Mailbox.scala:224)[181:com.typesafe.akka.actor:2.4.17] at akka.dispatch.Mailbox.exec(Mailbox.scala:234)[181:com.typesafe.akka.actor:2.4.17] at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[177:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8] at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)[177:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8] at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[177:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8] at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[177:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8] Caused by: org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException: Node was replaced by other transaction. at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkConflicting(SchemaAwareApplyOperation.java:78)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkNotConflicting(SchemaAwareApplyOperation.java:106)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkWriteApplicable(SchemaAwareApplyOperation.java:170)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:128)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.StructuralContainerModificationStrategy.checkApplicable(StructuralContainerModificationStrategy.java:99)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:305)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:288)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.RootModificationApplyOperation.checkApplicable(RootModificationApplyOperation.java:72)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractDataTreeTip.validate(AbstractDataTreeTip.java:35)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.controller.cluster.datastore.ShardDataTree.lambda$processNextPendingTransaction$0(ShardDataTree.java:742)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] ... 28 more 2017-09-01 22:15:15,923 | ERROR | lt-dispatcher-27 | LocalThreePhaseCommitCohort | 207 - org.opendaylight.controller.sal-distributed-datastore - 1.5.0.Carbon | Failed to prepare transaction member-1-datastore-config-fe-61-txn-37-0 on backend OptimisticLockFailedException{message=Optimistic lock failed., errorList=[RpcError [message=Optimistic lock failed., severity=ERROR, errorType=APPLICATION, tag=resource-denied, applicationTag=null, info=null, cause=org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException: Node was replaced by other transaction.]]} at org.opendaylight.controller.cluster.datastore.ShardDataTree.lambda$processNextPendingTransaction$0(ShardDataTree.java:750)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.ShardDataTree.processNextPending(ShardDataTree.java:788)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.ShardDataTree.processNextPendingTransaction(ShardDataTree.java:733)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.ShardDataTree.startCanCommit(ShardDataTree.java:814)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.SimpleShardDataTreeCohort.canCommit(SimpleShardDataTreeCohort.java:105)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.CohortEntry.canCommit(CohortEntry.java:97)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleCanCommit(ShardCommitCoordinator.java:236)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleReadyLocalTransaction(ShardCommitCoordinator.java:200)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.Shard.handleReadyLocalTransaction(Shard.java:623)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.Shard.handleNonRaftCommand(Shard.java:313)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.raft.RaftActor.handleCommand(RaftActor.java:270)[671:org.opendaylight.controller.sal-akka-raft:1.5.0.Carbon] at org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.onReceiveCommand(AbstractUntypedPersistentActor.java:31)[670:org.opendaylight.controller.sal-clustering-commons:1.5.0.Carbon] at akka.persistence.UntypedPersistentActor.onReceive(PersistentActor.scala:170)[188:com.typesafe.akka.persistence:2.4.17] at org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(MeteringBehavior.java:104)[670:org.opendaylight.controller.sal-clustering-commons:1.5.0.Carbon] at akka.actor.ActorCell$$anonfun$become$1.applyOrElse(ActorCell.scala:544)[181:com.typesafe.akka.actor:2.4.17] at akka.actor.Actor$class.aroundReceive(Actor.scala:497)[181:com.typesafe.akka.actor:2.4.17] at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(PersistentActor.scala:168)[188:com.typesafe.akka.persistence:2.4.17] at akka.persistence.Eventsourced$$anon$1.stateReceive(Eventsourced.scala:664)[188:com.typesafe.akka.persistence:2.4.17] at akka.persistence.Eventsourced$class.aroundReceive(Eventsourced.scala:183)[188:com.typesafe.akka.persistence:2.4.17] at akka.persistence.UntypedPersistentActor.aroundReceive(PersistentActor.scala:168)[188:com.typesafe.akka.persistence:2.4.17] at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)[181:com.typesafe.akka.actor:2.4.17] at akka.actor.ActorCell.invoke(ActorCell.scala:495)[181:com.typesafe.akka.actor:2.4.17] at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)[181:com.typesafe.akka.actor:2.4.17] at akka.dispatch.Mailbox.run(Mailbox.scala:224)[181:com.typesafe.akka.actor:2.4.17] at akka.dispatch.Mailbox.exec(Mailbox.scala:234)[181:com.typesafe.akka.actor:2.4.17] at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[177:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8] at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)[177:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8] at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[177:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8] at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[177:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8] Caused by: org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException: Node was replaced by other transaction. at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkConflicting(SchemaAwareApplyOperation.java:78)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkNotConflicting(SchemaAwareApplyOperation.java:106)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkWriteApplicable(SchemaAwareApplyOperation.java:170)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:128)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.StructuralContainerModificationStrategy.checkApplicable(StructuralContainerModificationStrategy.java:99)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:305)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:288)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.RootModificationApplyOperation.checkApplicable(RootModificationApplyOperation.java:72)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractDataTreeTip.validate(AbstractDataTreeTip.java:35)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.controller.cluster.datastore.ShardDataTree.lambda$processNextPendingTransaction$0(ShardDataTree.java:742)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] ... 28 more 2017-09-01 22:15:15,925 | INFO | Event Dispatcher | SecuritydomainservProvider | 668 - org.opendaylight.ticomm.allinone.securitydomain.serv-impl - 0.1.0.SNAPSHOT | SecuritydomainservProvider Session Initiated 2017-09-01 22:15:15,928 | ERROR | on-dispatcher-79 | MDSALUtil | 338 - org.opendaylight.genius.mdsalutil-api - 0.2.0.Carbon | Error writing to datastore (path, data) : (InstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.secdomainserv.rev170802.SecurityDomains, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.secdomainserv.rev170802.SecurityDomains]}, SecurityDomains [_securityDomain=[SecurityDomain [_key=SecurityDomainKey [_securityDomainId=0], _securityDomainId=0, _switches=[Switches [_key=SwitchesKey [_switchId=Uri [_value=openflow:1]], _switchId=Uri [_value=openflow:1], _switchPortId=[Uri [_value=openflow:1:LOCAL], Uri [_value=openflow:1:2], Uri [_value=openflow:1:1]], augmentation=[]], Switches [_key=SwitchesKey [_switchId=Uri [_value=openflow:1]], _switchId=Uri [_value=openflow:1], _switchPortId=[Uri [_value=openflow:1:2], Uri [_value=openflow:1:1], Uri [_value=openflow:1:LOCAL]], augmentation=[]]], _vlanId=0, augmentation=[]]], augmentation=[]]) 2017-09-01 22:15:15,929 | ERROR | on-dispatcher-79 | DataChangeListener | 670 - org.opendaylight.controller.sal-clustering-commons - 1.5.0.Carbon | Error notifying listener org.opendaylight.ticomm.allinone.securitydomain.securitydomainserv.impl.SecdomainservImpl java.lang.RuntimeException: OptimisticLockFailedException{message=Optimistic lock failed., errorList=[RpcError [message=Optimistic lock failed., severity=ERROR, errorType=APPLICATION, tag=resource-denied, applicationTag=null, info=null, cause=org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException: Node was replaced by other transaction.]]} at org.opendaylight.genius.mdsalutil.MDSALUtil.syncWrite(MDSALUtil.java:555)[338:org.opendaylight.genius.mdsalutil-api:0.2.0.Carbon] at org.opendaylight.ticomm.allinone.securitydomain.securitydomainserv.impl.SecdomainservImpl.writeDataStoreModel(SecdomainservImpl.java:459)[668:org.opendaylight.ticomm.allinone.securitydomain.serv-impl:0.1.0.SNAPSHOT] at org.opendaylight.ticomm.allinone.securitydomain.securitydomainserv.impl.SecdomainservImpl.onDataChanged(SecdomainservImpl.java:386)[668:org.opendaylight.ticomm.allinone.securitydomain.serv-impl:0.1.0.SNAPSHOT] at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker$TranslatingDataChangeInvoker.onDataChanged(AbstractForwardedDataBroker.java:143)[169:org.opendaylight.controller.sal-binding-broker-impl:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.DataChangeListener.dataChanged(DataChangeListener.java:72)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.DataChangeListener.handleReceive(DataChangeListener.java:43)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:28)[670:org.opendaylight.controller.sal-clustering-commons:1.5.0.Carbon] at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:165)[181:com.typesafe.akka.actor:2.4.17] at akka.actor.Actor$class.aroundReceive(Actor.scala:497)[181:com.typesafe.akka.actor:2.4.17] at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:95)[181:com.typesafe.akka.actor:2.4.17] at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)[181:com.typesafe.akka.actor:2.4.17] at akka.actor.ActorCell.invoke(ActorCell.scala:495)[181:com.typesafe.akka.actor:2.4.17] at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)[181:com.typesafe.akka.actor:2.4.17] at akka.dispatch.Mailbox.run(Mailbox.scala:224)[181:com.typesafe.akka.actor:2.4.17] at akka.dispatch.Mailbox.exec(Mailbox.scala:234)[181:com.typesafe.akka.actor:2.4.17] at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[177:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8] at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)[177:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8] at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[177:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8] at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[177:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8] Caused by: OptimisticLockFailedException{message=Optimistic lock failed., errorList=[RpcError [message=Optimistic lock failed., severity=ERROR, errorType=APPLICATION, tag=resource-denied, applicationTag=null, info=null, cause=org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException: Node was replaced by other transaction.]]} at org.opendaylight.controller.cluster.datastore.ShardDataTree.lambda$processNextPendingTransaction$0(ShardDataTree.java:750)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.ShardDataTree.processNextPending(ShardDataTree.java:788)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.ShardDataTree.processNextPendingTransaction(ShardDataTree.java:733)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.ShardDataTree.startCanCommit(ShardDataTree.java:814)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.SimpleShardDataTreeCohort.canCommit(SimpleShardDataTreeCohort.java:105)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.CohortEntry.canCommit(CohortEntry.java:97)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleCanCommit(ShardCommitCoordinator.java:236)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleReadyLocalTransaction(ShardCommitCoordinator.java:200)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.Shard.handleReadyLocalTransaction(Shard.java:623)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.datastore.Shard.handleNonRaftCommand(Shard.java:313)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] at org.opendaylight.controller.cluster.raft.RaftActor.handleCommand(RaftActor.java:270)[671:org.opendaylight.controller.sal-akka-raft:1.5.0.Carbon] at org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.onReceiveCommand(AbstractUntypedPersistentActor.java:31)[670:org.opendaylight.controller.sal-clustering-commons:1.5.0.Carbon] at akka.persistence.UntypedPersistentActor.onReceive(PersistentActor.scala:170)[188:com.typesafe.akka.persistence:2.4.17] at org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(MeteringBehavior.java:104)[670:org.opendaylight.controller.sal-clustering-commons:1.5.0.Carbon] at akka.actor.ActorCell$$anonfun$become$1.applyOrElse(ActorCell.scala:544)[181:com.typesafe.akka.actor:2.4.17] at akka.actor.Actor$class.aroundReceive(Actor.scala:497)[181:com.typesafe.akka.actor:2.4.17] at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(PersistentActor.scala:168)[188:com.typesafe.akka.persistence:2.4.17] at akka.persistence.Eventsourced$$anon$1.stateReceive(Eventsourced.scala:664)[188:com.typesafe.akka.persistence:2.4.17] at akka.persistence.Eventsourced$class.aroundReceive(Eventsourced.scala:183)[188:com.typesafe.akka.persistence:2.4.17] at akka.persistence.UntypedPersistentActor.aroundReceive(PersistentActor.scala:168)[188:com.typesafe.akka.persistence:2.4.17] ... 9 more Caused by: org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException: Node was replaced by other transaction. at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkConflicting(SchemaAwareApplyOperation.java:78)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkNotConflicting(SchemaAwareApplyOperation.java:106)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkWriteApplicable(SchemaAwareApplyOperation.java:170)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:128)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.StructuralContainerModificationStrategy.checkApplicable(StructuralContainerModificationStrategy.java:99)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:305)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:288)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.RootModificationApplyOperation.checkApplicable(RootModificationApplyOperation.java:72)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractDataTreeTip.validate(AbstractDataTreeTip.java:35)[86:org.opendaylight.yangtools.yang-data-impl:1.1.0.Carbon] at org.opendaylight.controller.cluster.datastore.ShardDataTree.lambda$processNextPendingTransaction$0(ShardDataTree.java:742)[207:org.opendaylight.controller.sal-distributed-datastore:1.5.0.Carbon] ... 28 more
codes: @SuppressWarnings("deprecation") private void writeDataStoreModel(HashMap<HashMap<String,Integer>,HashMap<Uri,List<Uri>>> securityDomain2Port) { SwitchesBuilder switchBuilder = null; SecurityDomainBuilder securityDomainBuilder = null; List<Switches> switchesList = null; // 1 生成IID InstanceIdentifier<SecurityDomains> securityDomainsIID = InstanceIdentifier.builder(SecurityDomains.class).build(); if(null == securityDomain2Port){ // 2.初始化DataStore yang模型 // 2.1 生成数据 System.out.println("Enter writeDataStoreModel... init"); securityDomainBuilder = new SecurityDomainBuilder(); SecurityDomain securityDomain = securityDomainBuilder.setKey(new SecurityDomainKey(DEFAULT_SECURITY_DOMAIN)) .setSecurityDomainId(DEFAULT_SECURITY_DOMAIN) .setVlanId(DEFAULT_VLAN_DOMAIN) .build(); List<SecurityDomain> securityDomainList = new ArrayList<SecurityDomain>(); securityDomainList.add(securityDomain); SecurityDomainsBuilder securityDomainsBuilder = new SecurityDomainsBuilder(); securityDomainsBuilder.setSecurityDomain(securityDomainList); // 2.2 写入DataStore MDSALUtil.syncWrite(this.dataBroker, LogicalDatastoreType.CONFIGURATION, securityDomainsIID, securityDomainsBuilder.build()); // WriteTransaction wx = this.dataBroker.newWriteOnlyTransaction(); // wx.put(LogicalDatastoreType.OPERATIONAL, securityDomainsIID, securityDomainsBuilder.build()); System.out.println("Out writeDataStoreModel... init"); }else{ // 3 重写DataStore yang模型 // 3.1 生成数据 String secDomId = null; Set<Uri> switchIdSet = null; List<SecurityDomain> securityDomainList = new ArrayList<SecurityDomain>(); HashMap<Uri,List<Uri>> switch2Port = null; Set<HashMap<String,Integer>> secId2VlanIdSet = securityDomain2Port.keySet(); for(HashMap<String,Integer> secId2VlanId:secId2VlanIdSet){ secDomId = secId2VlanId.keySet().iterator().next(); switch2Port = securityDomain2Port.get(secId2VlanId); switchIdSet = switch2Port.keySet(); switchesList = new ArrayList<Switches>(); for(Uri switchId:switchIdSet){ switchBuilder = new SwitchesBuilder(); switchBuilder.setKey(new SwitchesKey(switchId)) .setSwitchId(switchId) .setSwitchPortId(switch2Port.get(switchId)); switchesList.add(switchBuilder.build()); } securityDomainBuilder = new SecurityDomainBuilder(); securityDomainBuilder.setKey(new SecurityDomainKey(secDomId)) .setSecurityDomainId(secDomId) .setVlanId(secId2VlanId.get(secDomId)) .setSwitches(switchesList); securityDomainList.add(securityDomainBuilder.build()); } SecurityDomainsBuilder securityDomainsBuilder = new SecurityDomainsBuilder(); securityDomainsBuilder.setSecurityDomain(securityDomainList); // 3.2 写入DataStore MDSALUtil.syncWrite(this.dataBroker, LogicalDatastoreType.CONFIGURATION, securityDomainsIID, securityDomainsBuilder.build()); // WriteTransaction wx = this.dataBroker.newWriteOnlyTransaction(); // wx.put(LogicalDatastoreType.OPERATIONAL, securityDomainsIID, securityDomainsBuilder.build()); } } yang model: container security-domains{ description "securtiy domains"; config true; list security-domain{ key security-domain-id; leaf security-domain-id{ type string; } leaf vlan-id{ type uint16; } list switches{ key switch-id; // protocol:node-id,eg.openflow:1 leaf switch-id{ description ""; type inet:uri; } // protocol:node-id:port-id,eg.openflow:1:1 leaf-list switch-port-id{ type inet:uri; } } } } huqiwei...@163.com
_______________________________________________ controller-dev mailing list controller-dev@lists.opendaylight.org https://lists.opendaylight.org/mailman/listinfo/controller-dev