Inconsistency in creating DB records

15 views
Skip to first unread message

sanmit mallapur

unread,
Apr 19, 2016, 1:17:44 AM4/19/16
to Activate Persistence Framework
Hi, 

I am using activate with futures for storing data into postgres 

Controller.scala:

Action.async { implicit request =>
      {
         asyncTransactionalChain { implicit ctx =>
                    s => {
                                 var date = s.values("date").toString
                    this.date1 = date
                   
                    var product_amount = s.values("product_amount").toString
                    this.product_amount1 = product_amount

                       Future{
                     s.asyncCreateEntity.map { computer =>
                   
                     {   
                      txn_id = computer.id.toString
                                          }
                                    }
                            }
                       }
                  }
            }
         }

Models.scala:


class Computer(
    var date: String,
    var product_amount : String
) extends Entity


When I execute this action, records are sometimes getting created in db and sometimes not.
I am totally confused and not getting why this inconsistency is happening.

Following are scenarios:
a) Sometimes records get created
b) Sometimes records don't get created
c) On getting below error, sometimes records get created and sometimes not.

Complete error message:
java.lang.IllegalStateException: ExclusiveThreadLocal: value is bound to another thread.
        at net.fwbrasil.radon.util.ExclusiveThreadLocal.set(ExclusiveThreadLocal.scala:30)
        at net.fwbrasil.radon.transaction.TransactionManager.activate(TransactionManager.scala:28)
        at net.fwbrasil.radon.transaction.TransactionManager.runInTransaction(TransactionManager.scala:51)
        at net.fwbrasil.radon.transaction.Required.execute(Propagation.scala:21)
        at net.fwbrasil.radon.transaction.TransactionContext$class.transactional(TransactionContext.scala:57)
        at net.fwbrasil.radon.transaction.TransactionContext$class.transactional(TransactionContext.scala:47)
        at models.computerPersistenceContext$.transactional(PersistenceContext.scala:10)
        at net.fwbrasil.radon.transaction.TransactionContext$class.transactional(TransactionContext.scala:44)
        at models.computerPersistenceContext$.transactional(PersistenceContext.scala:10)
        at net.fwbrasil.radon.transaction.TransactionalExecutionContext.transactional(TransactionContext.scala:115)
        at net.fwbrasil.radon.transaction.TransactionalExecutionContext$$anon$1.run(TransactionContext.scala:108)
        at scala.concurrent.impl.ExecutionContextImpl$$anon$3.exec(ExecutionContextImpl.scala:107)
        at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

Reply all
Reply to author
Forward
0 new messages