In our application I am using Distributed command bus with JDBCEventStore. In my application I need to handle multiple concurrent requests of same type, but dealing with new aggregate.
I found too many exceptions in logs when multiple requests comes, which impact the functionality of the application
- We are getting java.sql.SQLException: ORA-01000: maximum open cursors exceeded, during Event store and Daga Entry.
- Getting org.axonframework.repository.ConcurrencyException: Concurrent modification detected for Aggregate identifier, when two events tries to modify aggregate at the same time.
Is there any configuration suggestion, which can help us to avoid this concurrency exception. Reason being as per requirement we may get multiple events to modify the aggregate.
On our DB setup we have cusor set to 1000, still we see we are getting this exception and which results in insertion of jobs in quartz table and which is impacting the functionality.
Also one issue noticed that insertion to DomainEventEntry, Quartz table, SagaEntry and AssociationValueEntry table takes long time. This is not the case when application is started, this is noticed that 20-30 min after application startup, record insertion to these tables takes time. On DB side we found this is because of row contention and elapsed time. This is impacting the performance of the application.
Do you have any recommendations?