Hi!

Sorry about the late reply.

1. In my opinion it is not question about provisioning as as soon as the
rhythym application starts up, it tries to select from khepri_beats (see
logs below).
I'm not using demo server at all. I use Postman scripts for provisioning. I
wonder if I should run some step before starting rhythm micro service.
I get the error on both with latest docker image of rhythm as well as when
starting the service locally.
I logged bug report here: https://issues.apache.org/jira/browse/FINCN-177

Here are the logs when running from localhost

13:56:54.948 [main] INFO  o.s.b.c.e.j.JettyEmbeddedServletContainer - Jetty
started on port(s) 2022 (http/1.1)
13:56:54.958 [main] INFO  o.a.f.c.r.service.RhythmApplication - Started
RhythmApplication in 13.207 seconds (JVM running for 14.079)
[EL Finer]: transaction: 2019-09-18
13:56:54.998--UnitOfWork(641160635)--Thread(Thread[pool-2-thread-1,5,main])--begin
unit of work flush
[EL Finer]: transaction: 2019-09-18
13:56:54.999--UnitOfWork(641160635)--Thread(Thread[pool-2-thread-1,5,main])--end
unit of work flush
[EL Finest]: query: 2019-09-18
13:56:54.999--UnitOfWork(641160635)--Thread(Thread[pool-2-thread-1,5,main])--Execute
query ReadAllQuery(referenceClass=BeatEntity )
[EL Finest]: connection: 2019-09-18
13:56:55.013--ServerSession(988179589)--Connection(1724597978)--Thread(Thread[pool-2-thread-1,5,main])--Connection
acquired from connection pool [default].
[EL Finer]: transaction: 2019-09-18
13:56:55.013--ClientSession(571004194)--Connection(1724597978)--Thread(Thread[pool-2-thread-1,5,main])--begin
transaction
[EL Finest]: connection: 2019-09-18
13:56:55.013--ClientSession(571004194)--Thread(Thread[pool-2-thread-1,5,main])--reconnecting
to external connection pool
[EL Fine]: sql: 2019-09-18
13:56:55.014--ClientSession(571004194)--Connection(1203869313)--Thread(Thread[pool-2-thread-1,5,main])--SELECT
id, alignment_hour, application_identifier, beat_identifier, next_beat,
tenant_identifier FROM khepri_beats WHERE (next_beat < ?) FOR UPDATE
bind => [2019-09-18 13:56:54.923]
[EL Fine]: sql: 2019-09-18
13:56:55.053--ClientSession(571004194)--Thread(Thread[pool-2-thread-1,5,main])--SELECT
1
[EL Warning]: 2019-09-18
13:56:55.055--UnitOfWork(641160635)--Thread(Thread[pool-2-thread-1,5,main])--Local
Exception Stack:
Exception [EclipseLink-4002] (Eclipse Persistence Services -
2.6.4.v20160829-44060b6):
org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: ERROR: relation
"khepri_beats" does not exist
  Position: 103
Error Code: 0
Call: SELECT id, alignment_hour, application_identifier, beat_identifier,
next_beat, tenant_identifier FROM khepri_beats WHERE (next_beat < ?) FOR
UPDATE
bind => [2019-09-18 13:56:54.923]
Query: ReadAllQuery(referenceClass=BeatEntity sql="SELECT id,
alignment_hour, application_identifier, beat_identifier, next_beat,
tenant_identifier FROM khepri_beats WHERE (next_beat < ?) FOR UPDATE")
at
org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:340)
at
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.processExceptionForCommError(DatabaseAccessor.java:1620)

Regards
Juhan

Kontakt Ebenezer Graham (<egraha...@alustudent.com>) kirjutas kuupƤeval R,
6. september 2019 kell 14:28:

> Thanks for the update,
>
> 1. For the error below, I believe that is because you didn't provision the
> microservices. Can you please confirm if you set
> -Ddemoserver.provision=true on the first run. Also, you can use
> https://github.com/apache/fineract-cn-demo-server/blob/develop/scripts/Unix/initial-setup.sh
>  to
> test the integration. I have deleted a few of the branches in the
> eclipselink-test-script.sh
>
> 1. Rhythm keeps giving me this error:
>> rhythm-ms_1       | Internal Exception:
>> org.postgresql.util.PSQLException: ERROR: relation "khepri_beats" does not
>> exist
>> rhythm-ms_1       |   Position: 103
>
>
> 2. I will make the make the changes and submit the necessary PRs asap.
>
> 3. I have updated the Setup Guide to cater for PostgreSQL. However, I need
> someone to test the MacOS instructions work correctly.
>
> Regards
>
> On Wed, 4 Sep 2019 at 15:54, Juhan Aasaru <aas...@gmail.com> wrote:
>
>> Hi Graham and Isaac!
>>
>> Great progress and excellent work regarding Postgresql and EclipseLink
>> migration!
>> I did some tests (using the official docker images I'm working on). This
>> is what I found
>>
>> 1. Rhythm keeps giving me this error:
>> rhythm-ms_1       | Internal Exception:
>> org.postgresql.util.PSQLException: ERROR: relation "khepri_beats" does not
>> exist
>> rhythm-ms_1       |   Position: 103
>> rhythm-ms_1       | Error Code: 0
>> rhythm-ms_1       | Call: SELECT id, alignment_hour,
>> application_identifier, beat_identifier, next_beat, tenant_identifier FROM
>> khepri_beats WHERE (next_beat < ?) FOR UPDATE
>> rhythm-ms_1       |     bind => [2019-09-04 11:34:43.778]
>> rhythm-ms_1       | Query: ReadAllQuery(referenceClass=BeatEntity
>> sql="SELECT id, alignment_hour, application_identifier, beat_identifier,
>> next_beat, tenant_identifier FROM khepri_beats WHERE (next_beat < ?) FOR
>> UPDATE")
>>
>> 2. many services (provisioner, office, customer, accounting, teller,
>> reporting, payroll) now define data source properties twice
>> in service/src/main/resources/application.yaml
>> The problem is that if I want to overwrite some value I have to pass it
>> in as two separate parameters.
>>
>> For example:
>> https://github.com/apache/fineract-cn-provisioner/commit/4327ce032c97cc961ce15e39c22863654cefc230
>>  has:
>>
>> postgresql:
>>   driverClass: org.postgresql.Driver
>>   database: seshat
>>   host: localhost
>>   port: 5432
>>   user: postgres
>>   password: postgres
>>
>>  spring:
>>   datasource:
>>     driver-class-name: org.postgresql.Driver
>>     url: jdbc:postgresql://localhost:5432/seshat
>>     username: postgres
>>     password: postgres
>>
>> Please change the last block to something like this:
>>
>>  spring:
>>   datasource:
>>     driver-class-name: org.postgresql.Driver
>>     url: jdbc:postgresql://${postgresql.host}:${postgresql.port}/seshat
>>     username: ${postgresql.user}
>>     password: ${postgresql.password}
>>
>> Then there should be no need to pass in the variables twice if I want to
>> change some value.
>>
>> 3. Instructions should be updated as well and MariaDB/Mysql replaced with
>> Postgresql:
>>
>> https://cwiki.apache.org/confluence/display/FINERACT/How+To+Build+Apache+Fineract+CN
>>
>> Also Vishwas has some good instructions that need to be updated
>> https://github.com/vishwasbabu/ProvisioningFineractCN
>>
>> Kind regards
>> Juhan
>>
>> Kontakt Ebenezer Graham (<egraha...@alustudent.com>) kirjutas kuupƤeval
>> E, 2. september 2019 kell 15:03:
>>
>>> Thank you for the update.
>>>
>>> I will resolve the conflicts on the notification service and revert to
>>> you.
>>>
>>>
>>> On Mon, 2 Sep 2019, 03:52 Isaac Kamga, <u2is...@gmail.com> wrote:
>>>
>>>> Hello Graham,
>>>>
>>>> That's some very good work you've done so far.
>>>>
>>>> I have executed the script and everything works well on my end right
>>>> through to the fims-web-app.
>>>>
>>>> EclipseLink configurations was merged into PostgreSQL library last week
>>>> and the changes to fineract-cn-test library on FINCN-114 which migrate it
>>>> from MariaDB to PostgreSQL have been merged into the develop branch. The
>>>> latter causes the Travis checks on the other repositories to succeed.
>>>>
>>>> However, the Thymeleaf templating PR heading to Notifications develop
>>>> branch needs your attention.
>>>>
>>>> More grease to your elbows.
>>>>
>>>> Cheers,
>>>> Isaac Kamga.
>>>>
>>>> On Sun, Aug 25, 2019 at 2:43 PM Ebenezer Graham <
>>>> egraha...@alustudent.com> wrote:
>>>>
>>>>> Hello Devs,
>>>>>
>>>>> I would like to revive the topic discussed in the previous mail.
>>>>>
>>>>> I have been running Fineract CN on EclipseLink and PostgreSQL for a
>>>>> while now and I believe it's ready to be merged into the develop branches.
>>>>> But before that, it is paramount that other experienced developers in the
>>>>> community examine what has been done so far and QA it.
>>>>>
>>>>> Simply execute this script
>>>>> https://raw.githubusercontent.com/ebenezergraham/fineract-cn-demo-server/FINCN-141/scripts/Unix/eclipselink-test-setup.sh
>>>>>  to
>>>>> get all the necessary branches.
>>>>>
>>>>> *PS: *I have experienced better performance with PostgreSQL and
>>>>> EclipseLink on my workstation.
>>>>>
>>>>> For instance, Application Startup + Provisioning took 14 mins
>>>>>                       Application Startup alone took 12 mins
>>>>>
>>>>> With MariaDB and Hibernate out of the way, we will be closer to making
>>>>> Fineract CN compliant. On top of that, if we are able to upgrade the 
>>>>> spring
>>>>> versions, this should significantly improve Fineract CN's response time,
>>>>> performance and memory usage.
>>>>>
>>>>> Looking forward to hearing from you.
>>>>>
>>>>> Regards.
>>>>>
>>>>>
>>>>> On Tue, 16 Jul 2019 at 04:47, Ebenezer Graham <
>>>>> egraha...@alustudent.com> wrote:
>>>>>
>>>>>> Hello Fineracters,
>>>>>>
>>>>>> I just finished integrating EclipseLink into Fineract CN. I would
>>>>>> like to request your participation in the testing of the new ORM. Your
>>>>>> constructive feedback will help me to fine-tune the integration and 
>>>>>> resolve
>>>>>> all known issues with PostgreSQL.
>>>>>>
>>>>>> *Approach Used *
>>>>>> Migrating from Hibernate to EclipseLink in Spring is actually very
>>>>>> simple and seamless.
>>>>>>
>>>>>> 1. I simply removed hibernate core and entity-manager from
>>>>>> spring-data-jpa [1]
>>>>>> 2. Then, I added the recommended EclipseLink JPA dependency [2] to
>>>>>> the MariaDB and PostgreSQL libraries.
>>>>>> 4. I extended the JpaBaseConfiguration and configured it to use
>>>>>> EclipseLink as the provider. As discussed earlier, Spring provides an
>>>>>> adapter for EclipseLink so it was quite straightforward.
>>>>>> 5. One critical decision I made, was choosing static weaving over the
>>>>>> default dynamic weaving done at runtime. Static weaving improves
>>>>>> performance and stability as it occurs during build-time. In addition, 
>>>>>> this
>>>>>> approach is recommended for large applications with lots of entities. 
>>>>>> Read
>>>>>> more at [3] and let me know what you think.
>>>>>>
>>>>>> Please conduct your tests and report any issues on this thread so
>>>>>> that I can work on them.
>>>>>>
>>>>>> *Testing EclipseLink and PostgreSQL*
>>>>>> You can test EclipseLink and PostgreSQL by using this script [4]. The
>>>>>> eclipselink-test-setup script will clone and publish the relevant 
>>>>>> artefacts.
>>>>>>
>>>>>> NB: Remember to shut down your Postgres server when doing component
>>>>>> tests so that the embedded db can start.
>>>>>>
>>>>>> NB: Use this for full integration tests
>>>>>> java -Ddemoserver.persistent=true -Dcustom.cassandra.contactPoints=
>>>>>> 127.0.0.1:9042 -Dcassandra.cluster.user=cassandra
>>>>>> -Dcassandra.cluster.pwd=password -Dcustom.postgresql.host=localhost
>>>>>> -Dcustom.postgresql.user=postgres -jar
>>>>>> ~/<fineract-cn-dir>/integration-tests/fineract-cn-demo-server/build/libs/demo-server-0.1.0-BUILD-SNAPSHOT.jar
>>>>>>
>>>>>> NB: The logs are a bit excessive as I'm currently outputting all
>>>>>> EclipseLink logs but once testing is over, I will tone it down.
>>>>>>
>>>>>> I have conducted component test for each microservice and a full
>>>>>> integration test. A few tests failed during the component test however, 
>>>>>> the
>>>>>> causes are not from the ORM but the test cases themselves. I will try and
>>>>>> fix them once I have met all of my milestones for this project or raise
>>>>>> issues for them in Jira.
>>>>>>
>>>>>> *Known Issues in Postgres (My current focus):*
>>>>>> 1. ERROR: relation "khepri_beats" does not exist. click on the link
>>>>>> at [5] to see the full log. This issue is not directly related to the 
>>>>>> ORM.
>>>>>> I actually identified this error whiles testing Postgres and Hibernate.
>>>>>> This is related to Postgres and I am currently looking into it.
>>>>>>
>>>>>> 2. Error: org.postgresql.util.PSQLException: FATAL: sorry, too many
>>>>>> clients already. click on the link [6] to see the full log.
>>>>>>
>>>>>> *Solution*, Increase max_connections found in the postgresql.conf.
>>>>>> *260* worked for me.
>>>>>> Rational, each microservice can have up to 20 unique connections to
>>>>>> the db per the BoneCP configuration.
>>>>>>
>>>>>> Also, you can test EclipseLink and MariaDB by pulling the FINCN-2
>>>>>> branch into fineract-cn-mariadb link [7] and rebuilding all of the
>>>>>> microservices.
>>>>>>
>>>>>> *Identified Issue when using embedded dbs in full integration test  *
>>>>>> Tenant context not set, resulting in this error [8]
>>>>>>
>>>>>> Which brings me to my concern about MariaDB. Given that MariaDB is
>>>>>> not compliant with Apache, can I safely assume that it's not relevant to
>>>>>> migrate it's ORM as well?
>>>>>>
>>>>>> Looking forward to hearing from you all.
>>>>>>
>>>>>> *At your service,*
>>>>>> Graham.
>>>>>>
>>>>>> [1]
>>>>>> https://github.com/ebenezergraham/fineract-cn-postgresql/blob/FINCN-2/build.gradle#L76-L80
>>>>>> [2]
>>>>>> https://github.com/ebenezergraham/fineract-cn-postgresql/blob/FINCN-2/build.gradle#L74
>>>>>> / https://www.baeldung.com/spring-eclipselink
>>>>>> [3]
>>>>>> https://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Performance/Weaving/Static_Weaving
>>>>>> https://pastebin.com/FDAzd6bx
>>>>>> [4]
>>>>>> https://raw.githubusercontent.com/ebenezergraham/fineract-cn-demo-server/FINCN-2/scripts/Unix/eclipselink-test-setup.sh
>>>>>> [5] https://pastebin.com/WFQ9satu
>>>>>> [6] https://pastebin.com/M8GAHsit
>>>>>> [7]
>>>>>> https://github.com/ebenezergraham/fineract-cn-mariadb/tree/FINCN-2
>>>>>> [8] https://pastebin.com/FDAzd6bx
>>>>>>
>>>>>

Reply via email to