davidmoten / davidmoten/rxjava2-jdbc

Transaction is not committing

Open
#45 3 comments 4 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
394
Forks
41
Avg merge
2m
Merged PRs (30d)
1

Description

I have a function that executes 2 updates in a transaction. After running the code, I don't see any change in the db. I suspect the transaction is not committed. I'm sure there is no error with the queries since doOnError is not fired. Removing transaction would work. Any idea why transaction not working?

below is my code
```
public Mono update() {
Flowable updates = db.update("UPDATE ...")
.parameters(...)
.transacted()
.counts()
.doOnError(e-> {
LOGGER.debug(e);
})
.flatMap(tx -> {
return tx.update("UPDATE ...")
.parameters(...)
.counts()
.doOnError(e-> {
LOGGER.debug(e);
});
});

return Mono.from(updates);
}
```

below is the log
```
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.jdbc.SqlInfo][] - sqlAfterSubs=
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.jdbc.TransactedUpdateBuilder][] - creating deferred flowable
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - subscribed
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - drain called
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - drain loop starting
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - requested=1
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - poll of available members returns DecoratingMember [value=com.mysql.cj.jdbc.ConnectionImpl@65d2b0cb]
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - trying to emit member
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - schedule.now=1557250484152, lastCheck=1557250476191
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - queueing member for health check DecoratingMember [value=com.mysql.cj.jdbc.ConnectionImpl@65d2b0cb]
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - scheduling check of DecoratingMember [value=com.mysql.cj.jdbc.ConnectionImpl@65d2b0cb]
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - poll of available members returns null
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - scheduling member creation
Thread: pool-2-thread-4] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - performing health check on DecoratingMember [value=com.mysql.cj.jdbc.ConnectionImpl@65d2b0cb]
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - poll of available members returns null
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - insufficient demand to initialize DecoratingMember [value=null]
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - drain called
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - drain loop starting
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - requested=1
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - poll of available members returns null
Thread: pool-2-thread-3] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - insufficient demand to initialize DecoratingMember [value=null]
Thread: pool-2-thread-5] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - creating value
Thread: pool-2-thread-4] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - drain called
Thread: pool-2-thread-4] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - drain loop starting
Thread: pool-2-thread-4] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - requested=1
Thread: pool-2-thread-4] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - poll of available members returns DecoratingMember [value=com.mysql.cj.jdbc.ConnectionImpl@65d2b0cb]
Thread: pool-2-thread-4] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - trying to emit member
Thread: pool-2-thread-4] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - schedule.now=1557250484155, lastCheck=1557250484155
Thread: pool-2-thread-4] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - no health check required for DecoratingMember [value=com.mysql.cj.jdbc.ConnectionImpl@65d2b0cb]
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.Util][] - creating new TransactedConnection
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.TransactedConnection][] - constructing TransactedConnection from org.davidmoten.rx.jdbc.pool.internal.PooledConnection@140a7cbd, 1
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.Update][] -
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.SqlInfo][] - sqlAfterSubs=
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.Util][] - preparing statement:
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.Util][] - setting parameter ...
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.Update][] - batch added with [...]
Thread: pool-2-thread-5] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - checking in DecoratingMember [value=com.mysql.cj.jdbc.ConnectionImpl@779e8a73]
Thread: pool-2-thread-5] DEBUG [org.davidmoten.rx.pool.DecoratingMember][] - scheduled release in 1800000ms of DecoratingMember [value=com.mysql.cj.jdbc.ConnectionImpl@779e8a73]
Thread: pool-2-thread-5] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - drain called
Thread: pool-2-thread-5] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - drain loop starting
Thread: pool-2-thread-5] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - requested=0
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.Update][] - batch executed
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.TransactedConnection][] - forking connection
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.TransactedConnection][] - constructing TransactedConnection from org.davidmoten.rx.jdbc.pool.internal.PooledConnection@140a7cbd, 3
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.SqlInfo][] - sqlAfterSubs=
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.TransactedUpdateBuilder][] - creating deferred flowable
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.Update][] -
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.SqlInfo][] - sqlAfterSubs=
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.Util][] - preparing statement:
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.Util][] - setting parameter ...
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.Update][] - batch added with [...]
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.Update][] - batch executed
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - drain called
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - drain loop starting
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.pool.MemberSingle][] - requested=0
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.Util][] - closing org.davidmoten.rx.jdbc.TransactedPreparedStatement@53da613f
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.Util][] - closing TransactedConnection [con=org.davidmoten.rx.jdbc.pool.internal.PooledConnection@140a7cbd, counter=4]
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.TransactedConnection][] - TransactedConnection attempt close
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.Util][] - closing org.davidmoten.rx.jdbc.TransactedPreparedStatement@5340c1b2
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.Util][] - closing TransactedConnection [con=org.davidmoten.rx.jdbc.pool.internal.PooledConnection@140a7cbd, counter=4]
Thread: pool-2-thread-6] DEBUG [org.davidmoten.rx.jdbc.TransactedConnection][] - TransactedConnection attempt close
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.