Hi Sathish,

... work on this has started and parts of the solution are already
available in the "develop" branch. Documentation is still a bit thin
(actually the best at the moment would be to have a look at recent
pull requests... especially those that happened after the 1.6
release).

Development towards the next 1.7.0 release has already started and
more improvements along those lines are to be expected... but it will
take some time until we reach the next release.

The message you pointed to is already a bit dated and some of the
issues are not relevant anymore... most importantly we ditched the
Drizzle driver (actually, the official MySQL driver was always
recommended anyway for production deployments... we just couldn't ship
our releases with it, because of the license incompatibilities);
MariaDD's JDBC driver is now used by default (LGPL is not ideal, but
we can ship). OpenJPA is next on our radar (again, we can't use
Hibernate, because of the licenses involved).

... and just to go through your bullet points:

1. This is being worked on... whenever something obvious pops up; any
specific improvements via pull requests are highly appreciated...
ideally showing how much of an improvement it would be (tests)
2. ... not sure if I follow the reasoning here and/or if I have an
opinion about this
3. ... have to guess here a bit: do you mean the usage of some kind of
retry framework via annotations (e. g. like Resilience4j)? To be
honest, I don't think that this would really help that much.
4. This is being worked on... the only thing I'm not sure of is if
SavingsAccount was already covered...

Note: everything that I said is happening in the current develop
branch which is not stable; we try to make everything that lands in
develop as good as we can, but there might be the occasional oversight
or side effect that was not yet tested or didn't appear on anyone's
radar. Another thing you have to keep in mind if you want to test
develop: we've changed the database migration mechanics from Flyway to
Liquibase; if you have a previous database you want to run your tests
on then you have to make sure you used Fineract 1.6 with it first and
then switch to the latest develop code (see also notes in README).

Hope this helps a little bit... again, pull requests always appreciated.

Cheers,

Aleks

On Tue, Mar 1, 2022 at 7:44 PM Sathish Thangathurai
<[email protected]> wrote:
>
> Dear All,
>
> I have started working on a fineract 1.6 banking solution product. However, 
> during the testing process we encountered the error as 
> OptimisticLockException during withdrawal and deposit. Our database has 
> 10,000 transactions for a single savings account. During testing we triggered 
> 100 iterations using the POSTMAN rest client.
>
> I'm thinking in the following ways to change the code.
> 1. Using @Transaction with isolation level as serializable so that It will 
> lock the row
> 2. Using to retrieve latest version of a savings account @Version value and 
> set that value in the old entity which is going to update in the database.
> 3. Using @retry to retrieve failed transaction.
> 4. change code from cascade type all to persist in the SavingsAccount.java 
> for SavingsAccountTransaction mapping.
>
> Any other way to solve this problem?
>
> https://lists.apache.org/thread/2klx9c28jd7rmty7p65qbgs2wmmo25jh. I followed 
> this link and didn't get clarity on this.
>
> Thanks,
> Sathish
>

Reply via email to