MySQL (and I assume MariaDB) does not allow external connections by default. So ensure you have configured the database to listen for external connections.
@David_Douma I’m just getting a chance to view your catalina.out file from my computer and noticed that while the beginning of the stacktrace is usually an indication of a failed database connection, the file doesn’t include the full stacktrace. Can you upload the full catalina.out file? Or send it via email to support@openboxes.com?
Hello Hello,
I Figured that out, seemed to work now (the install) however to an external database the install was already taking over a hour… any idea how to speed this up?
Otherwise I’m gonna update my MariaDB to version 10.1 this should work.
Stupid question, do you recommend Grails 3 or? Because you also provide a installation manual for v3 with java 8 instead of java 7
however to an external database the install was already taking over a hour… any idea how to speed this up?
That seems like a normal amount of time regardless of whether the app is internal / external. You do need to make sure you’ve provided Tomcat enough memory (at least 1-2 GB for heap space and 128-256kb of permgen) to avoid sluggishness / out of memory errors during this process.
Stupid question, do you recommend Grails 3 or? Because you also provide a installation manual for v3 with java 8 instead of java 7
That’s a version that represents an in-progress / stalled upgrade. The application “works” but there are a lot of regressions / bugs due to the migration that need to be fixed. I would not recommend using it.
Thnx for reply.
Installing again. Has enough memory (4GB) for tomcat.
But install seems slow because:
2021-12-30 14:36:00,519 [DefaultPluginScheduler_Worker-3] INFO jobs.AssignIdentifierJob - Postponing job execution until liquibase migrations are complete
2021-12-30 14:37:00,518 [DefaultPluginScheduler_Worker-4] INFO jobs.AssignIdentifierJob - Postponing job execution until liquibase migrations are complete
2021-12-30 14:38:00,518 [DefaultPluginScheduler_Worker-5] INFO jobs.AssignIdentifierJob - Postponing job execution until liquibase migrations are complete
2021-12-30 14:39:00,518 [DefaultPluginScheduler_Worker-6] INFO jobs.AssignIdentifierJob - Postponing job execution until liquibase migrations are complete
2021-12-30 14:40:00,519 [DefaultPluginScheduler_Worker-7] INFO jobs.AssignIdentifierJob - Postponing job execution until liquibase migrations are complete
2021-12-30 14:40:01,036 [DefaultPluginScheduler_Worker-8] INFO jobs.DataCleaningJob - Postponing job execution until liquibase migrations are complete
2021-12-30 14:41:00,517 [DefaultPluginScheduler_Worker-9] INFO jobs.AssignIdentifierJob - Postponing job execution until liquibase migrations are complete
2021-12-30 14:42:00,518 [DefaultPluginScheduler_Worker-10] INFO jobs.AssignIdentifierJob - Postponing job execution until liquibase migrations are complete
That snippet is normal on its own. There are a lot of database migrations so it takes a really long time (sometimes an hour or more) to execute them all. If you send the entire log I can see if something is wrong.
Thanks for the quick Reply. Seems if ‘postponing’ the java/tomcat worker does also nothing so the system seems to be idling.
See attached log. System is still running the installer (about 45 mins now).
catalina.docx (55.6 KB)
Oh yeah those stacktraces in the log file don’t look good. I’ll take a closer look when I’m in front of my computer.
Thanks!
I will let it run for now, hoping it will successfully end!
2021-12-30 16:37:00,552 [DefaultPluginScheduler_Worker-9] INFO jobs.AssignIdentifierJob - Postponing job execution until liquibase migrations are complete
2021-12-30 16:37:53,500 [localhost-startStop-1] INFO liquibase - Changeset 0.5.x/rename-request-to-requisition.xml::1295640983194-12::PZ DM::(MD5Sum: 1af7b6e73daf1c127c5e4bb9ab1fcfb2)
There’s no need to keep it running if it’s stuck on one of those early 0.5.x changesets. It should be completing changesets at a clip of one every few seconds or minutes.
So, back again. I have update to MariaDB 10.6 on the production server. Now the database is running local again and it’s flying! Installing, so with a bit of luck it works this time (no errors so far)
I was going to recommend creating the database locally and then copying it over to production.
However I still need to look at the log file because it seems you have another issue going on that is preventing the app from connecting to that database. Or perhaps it’s a thread issue?
For now no errors, it’s still running. Database is created. (if I look into it with phpmyadmin).
Java is firing up the CPU cores right now
Sooo… up and running.
I attached the log file, maybe you can see if there are any errors I need to fix? Or is it 100% running? :).
Anyway, normally i’m programming in PHP/MySQL so this is very new to me working with java. I will look into it the coming weeks to make some changes. Starting with translation the language to Dutch. :).
catalina.docx (55.6 KB)
Looking at the logs, it seems like OB is definitely stuck. If the following is the last changeset that was run then it’s definitely stuck.
2021-12-30 15:05:39,696 [localhost-startStop-1] INFO liquibase - Changeset 0.5.x/rename-request-to-requisition.xml::1295640983194-04b::PZ DM::(MD5Sum: 8c2aedd41a27c9626174e0f6f7dac793)
Within all of the database-centric Quartz jobs (background jobs) we check to see if we’re running the Liquibase database migrations so that the two (Quartz and Liquibase) don’t compete against each other. This prevents the background jobs from encountering race conditions where they try to execute code on non-existent tables because Liquibase has not finished running yet. Anyway, it seems like you might be running out of database connections or some other weird issue is occurring when we do that check.
2021-12-30 14:35:00,630 [DefaultPluginScheduler_Worker-1] WARN liquibase - Can not set auto commit to false on connection
2021-12-30 14:35:00,630 [DefaultPluginScheduler_Worker-1] WARN impl.NewPooledConnection - [c3p0] A PooledConnection that has already signalled a Connection error is still in use!
2021-12-30 14:35:00,631 [DefaultPluginScheduler_Worker-1] WARN impl.NewPooledConnection - [c3p0] Another error has occurred [ com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed. ] which will not be reported to listeners!
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:527)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.Util.getInstance(Util.java:408)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:898)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:887)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:861)
at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1192)
at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1187)
at com.mysql.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java:2382)
at com.mysql.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java:2366)
at com.mysql.jdbc.ConnectionImpl.getMetadataSafeStatement(ConnectionImpl.java:2912)
at com.mysql.jdbc.ConnectionImpl.getMetadataSafeStatement(ConnectionImpl.java:2908)
at com.mysql.jdbc.DatabaseMetaData.getTables(DatabaseMetaData.java:4611)
at com.mchange.v2.c3p0.impl.NewProxyDatabaseMetaData.getTables(NewProxyDatabaseMetaData.java:2938)
at liquibase.database.AbstractDatabase.doesChangeLogLockTableExist(AbstractDatabase.java:691)
at liquibase.lock.LockHandler.listLocks(LockHandler.java:114)
at liquibase.lock.LockHandler$listLocks.call(Unknown Source)
at util.LiquibaseUtil.isRunningMigrations(LiquibaseUtil.groovy:37)
at util.LiquibaseUtil$isRunningMigrations.call(Unknown Source)
at org.pih.warehouse.jobs.AssignIdentifierJob.execute(AssignIdentifierJob.groovy:24)
at sun.reflect.GeneratedMethodAccessor436.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:607)
at grails.plugin.quartz2.GrailsArtefactJob.execute(GrailsArtefactJob.java:59)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 600,090 milliseconds ago. The last packet sent successfully to the server was 77 milliseconds ago.
More importantly, I noticed that you’re running MySQL 5.5. This will definitely lead to issues as we are using features that were added in MySQL 5.7 (see requirements GitHub - openboxes/openboxes: OpenBoxes is a supply chain management system designed to manage inventory and track stock movements for healthcare facilities.)
2021-12-30 14:18:01,003 [localhost-startStop-1] INFO bootstrap.BootStrap - Product Version: 5.5.5-10.3.24-MariaDB
2021-12-30 14:18:01,003 [localhost-startStop-1] INFO bootstrap.BootStrap - Database Version: 5.5
If you can’t figure out a way to run MySQL 5.7 using Centos package manager (yum?) then I’d recommend using Docker (if you are familiar with it).
https://hub.docker.com/_/mysql
Otherwise we can go back to figuring out how to get this working on your external production database.
We have multiple discussions in the same thread, so if you want to continue these let’s create separate discussions for each topic.
- Centos platform
- Hide fields on Edit Product page
- Translating to Dutch
- Any other topic you want to discuss
I split the three threads as best as I could. Unfortunately, some of the posts contained multiple topics so it might be a little confusing.