Closed NicolasGoeddel closed 1 year ago
Sorry for the trouble. I have to tell you that Oracle+RelStorage is barely supported and not regularly tested. If possible, I encourage people to migrate to PostgreSQL 11+.
However if I start Plone a second time it works without a problem
Do you mean, you stop plone and just start it again? Or you start a second instance? I'm not sure what difference it makes because I don't know why you would be getting this.
Once you start a second instance, the trouble disappears for good?
ORA-08177: can't serialize access for this transaction
IIRC, the error you're getting means that there are multiple transactions in progress that conflict. I don't know enough about Zope/Plone startup to guess why that would be. Normally I wouldn't expect that. Perhaps you're starting multiple worker processes at the same time?
Especially here, when it's just trying to load the root object conn.get(z64)
.
Googling suggests that this may be a problem related to particular versions of Oracle and how it handles the undo segments. If that's the case, simply connecting to the database from a single client (ZODB.config.open(…)
) before attempting to start multiple processes/threads ought to initialize the rollback segments and solve the issue.
I start just one instance (./bin/client1 fg
), nothing more. However I think one client usually spawns multiple worker threads.
I am assuming that the error only happens while the database is created. After that it works normal.
We have a customer who wishes to use its Oracle database, so we do it with our application. I don't think we can switch to an other database backend now. For other projects we usually use Postgres as well.
I am assuming that the error only happens while the database is created. After that it works normal.
I don't know what to suggest, other than what I suggested before (open a "pre-flight" connection).
Closing; no updates since 2021.
After deleting all the tables, sequences and packages from my oracle schema and starting Plone in foreground I get this error:
However if I start Plone a second time it works without a problem. I tried RelStorage in version 3.3.2 and 3.4.0. Plone was installed using the UnifiedInstaller for Version 5.2.2 on a CentOS docker image.
Any idea what the reason what that is? And what can I do about it if I want to automate the startup process of the docker build?