861e3ad01f
* Replaced PostgreSQL and Oracle connection pools with HikariCP. Replaced C3P0 with HikariCP. HikariCP is a Apache licensed connection pool with substantially better performance and better resilience to failure (DB disconnects, etc.) then C3P0. Read more about it here: https://github.com/brettwooldridge/HikariCP . Cleaned up the `getCachedConnection` method. With HikariCP there is no need to retry to obtain a connection since getting an connection will block until a free connection is available or until a timeout is reached (default 30 seconds) at which point an `SQLException` is thrown. This also removed calling `Runtime.getRuntime().runFinalization();`. HikariCP is currently configured to detect / log leaks when a connection hasn't returned to the pool for longer then 5 minutes. Loading of pool config properties was cleaned up. Defaults are now loaded from a single file instead of defaults coming from both file and hardcoded properties. It is now also possible to specify any HikariCP property in the user pool property file. Initialization of the datasource must happen in the `getDataSource()` method because at object construction not all JDBC config is known. However this method could (as far as I could tell) be called concurrently from multiple threads but had no mechanism to prevent initializing the DB pool multiple times. The variable in which the pool itself was stored (`m_ds`) also was not marked volatile or immutable which could lead to visibility issues. Instead of lazy initialization of the pool in the `getDataSource()` method the pool could probably better be initialized at object construction. However I wasn't able to achieve that without breakage therefor I made the initialization mechanism work correctly with concurrent invocations. Various config options such as the `MaxStatementsPerConnection` options were removed because HikariCP doesn't support them. * (Re)added Sequence time-out. |
||
---|---|---|
.github | ||
db | ||
doc | ||
event.test | ||
lib | ||
migration | ||
migration-historic | ||
org.adempiere.base | ||
org.adempiere.base-feature | ||
org.adempiere.base.callout | ||
org.adempiere.base.process | ||
org.adempiere.eclipse.equinox.http.servlet | ||
org.adempiere.install | ||
org.adempiere.payment.processor | ||
org.adempiere.payment.processor-feature | ||
org.adempiere.pipo | ||
org.adempiere.pipo-feature | ||
org.adempiere.pipo.handlers | ||
org.adempiere.plugin.utils | ||
org.adempiere.replication | ||
org.adempiere.replication-feature | ||
org.adempiere.replication.server | ||
org.adempiere.replication.server-feature | ||
org.adempiere.report.jasper | ||
org.adempiere.report.jasper-feature | ||
org.adempiere.report.jasper.library | ||
org.adempiere.server | ||
org.adempiere.server-feature | ||
org.adempiere.ui | ||
org.adempiere.ui.zk | ||
org.adempiere.ui.zk-feature | ||
org.apache.ecs | ||
org.compiere.db.oracle.provider | ||
org.compiere.db.postgresql.provider | ||
org.compiere.db.provider-feature | ||
org.idempiere.eclipse.platform-feature | ||
org.idempiere.equinox.p2.director-feature | ||
org.idempiere.felix.webconsole | ||
org.idempiere.felix.webconsole-feature | ||
org.idempiere.hazelcast.service | ||
org.idempiere.hazelcast.service-feature | ||
org.idempiere.javadoc | ||
org.idempiere.jetty.osgi.boot.fragment | ||
org.idempiere.keikai | ||
org.idempiere.maven.to.p2 | ||
org.idempiere.p2 | ||
org.idempiere.p2.repackaged | ||
org.idempiere.p2.targetplatform | ||
org.idempiere.p2.targetplatform.mirror | ||
org.idempiere.p2.targetplatform.mirror.aggregator | ||
org.idempiere.p2.targetplatform.mirror.feature | ||
org.idempiere.parent | ||
org.idempiere.printformat.editor | ||
org.idempiere.test | ||
org.idempiere.test-feature | ||
org.idempiere.webservices | ||
org.idempiere.webservices-feature | ||
org.idempiere.webservices.client-feature | ||
org.idempiere.zk-feature | ||
org.idempiere.zk.billboard | ||
org.idempiere.zk.billboard.chart | ||
org.idempiere.zk.extra | ||
utils_dev | ||
.gitignore | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
Credits.html | ||
LICENSE.md | ||
README.md | ||
RUN_SyncDBDev.sh | ||
SECURITY.md | ||
adempiere-local-template.properties | ||
license.html | ||
note.for.update.readme | ||
pom.xml | ||
testTemplate.properties | ||
zk.xml |
README.md
iDempiere. Community Powered Enterprise
iDempiere Business Suite ERP/CRM/SCM done the community way. Focus is on the Community that includes Subject Matter Specialists, Implementors and End-Users.
Please visit the project front page containing links for most of our resources: https://www.idempiere.org/
You can have a first-hand experience about the software in one of our live cloud test sites: https://www.idempiere.org/test-sites
If you want to install it by yourself, the most used way is to follow the guide: https://wiki.idempiere.org/en/Installing_iDempiere
In case of doubts please use our support forums at http://groups.google.com/group/idempiere
Or our Mattermost support channel in https://mattermost.idempiere.org/
Don't forget to check our code of conduct and our contribution guide
If you find a bug or want to register a feature request please consider discussing it first in our forums, and after you're totally sure, please use the JIRA ticketing system: https://idempiere.atlassian.net
Continuous integration when changing this repository is managed with Jenkins at http://ci.idempiere.org/