Installation impossible

Un conseil pour l'installation? Un problème technique pour installer OpenConcerto?
Répondre
Agence Co Arve-Léman
Messages : 2
Enregistré le : jeu. oct. 05, 2017 8:39 am

jeu. oct. 05, 2017 8:46 am

Bonjour,
Cela fait plusieurs fois que je tente d'installer OpenConcerto Monoposte sur mon PC sous Windows 10.
Lorsque je clique sur l'icone, la boite de dialogue suivante s'affiche :

UncaughtException on thread Thread[main,5,main]

java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Impossible d'obtenir une connexion sur jdbc:h2:file:C:\Users\FRANCOIS\AppData\Roaming\OpenConcerto\Data\DBData/OpenConcerto;DATABASE_TO_UPPER=false
org.openconcerto.utils.ExceptionHandler: UncaughtException on thread Thread[main,5,main]
at org.openconcerto.utils.ExceptionHandler.handle(ExceptionHandler.java:121)
at org.openconcerto.utils.ExceptionHandler.handle(ExceptionHandler.java:125)
at org.openconcerto.erp.config.Gestion$2.uncaughtException(Gestion.java:198)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1057)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1052)
at java.lang.Thread.dispatchUncaughtException(Thread.java:1952)
Caused by: java.lang.IllegalStateException: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Impossible d'obtenir une connexion sur jdbc:h2:file:C:\Users\FRANCOIS\AppData\Roaming\OpenConcerto\Data\DBData/OpenConcerto;DATABASE_TO_UPPER=false
at org.openconcerto.sql.PropsConfiguration$Addable.get(PropsConfiguration.java:993)
at org.openconcerto.sql.PropsConfiguration.getDirectory(PropsConfiguration.java:1104)
at org.openconcerto.erp.config.Gestion.main(Gestion.java:309)
Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Impossible d'obtenir une connexion sur jdbc:h2:file:C:\Users\FRANCOIS\AppData\Roaming\OpenConcerto\Data\DBData/OpenConcerto;DATABASE_TO_UPPER=false
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at org.openconcerto.sql.PropsConfiguration$Addable.get(PropsConfiguration.java:989)
... 2 more
Caused by: java.lang.IllegalStateException: Impossible d'obtenir une connexion sur jdbc:h2:file:C:\Users\FRANCOIS\AppData\Roaming\OpenConcerto\Data\DBData/OpenConcerto;DATABASE_TO_UPPER=false
at org.openconcerto.sql.model.SQLDataSource.getRawConnectionThrow(SQLDataSource.java:1376)
at org.openconcerto.sql.model.SQLDataSource.getRawConnection(SQLDataSource.java:1394)
at org.openconcerto.sql.model.SQLDataSource._borrowConnection(SQLDataSource.java:1334)
at org.openconcerto.sql.model.SQLDataSource.borrowConnection(SQLDataSource.java:1321)
at org.openconcerto.sql.model.SQLDataSource.getNewConnection(SQLDataSource.java:1301)
at org.openconcerto.sql.model.SQLDataSource$QueryInfo.<init>(SQLDataSource.java:701)
at org.openconcerto.sql.model.SQLDataSource.execute(SQLDataSource.java:610)
at org.openconcerto.sql.model.SQLDataSource.execute(SQLDataSource.java:554)
at org.openconcerto.sql.model.SQLDataSource.getSchema(SQLDataSource.java:1878)
at org.openconcerto.sql.model.SQLDataSource.getSchema(SQLDataSource.java:1860)
at org.openconcerto.sql.model.DBSystemRoot.setRootPathFromDS(DBSystemRoot.java:632)
at org.openconcerto.sql.model.DBSystemRoot.setDS(DBSystemRoot.java:628)
at org.openconcerto.sql.model.SQLBase.<init>(SQLBase.java:142)
at org.openconcerto.sql.model.SQLServer.createBase(SQLServer.java:419)
at org.openconcerto.sql.model.SQLServer.getBase(SQLServer.java:408)
at org.openconcerto.sql.model.SQLServer.createSystemRoot(SQLServer.java:467)
at org.openconcerto.sql.model.SQLServer.getSystemRoot(SQLServer.java:445)
at org.openconcerto.sql.model.SQLServer.getSystemRoot(SQLServer.java:425)
at org.openconcerto.sql.PropsConfiguration.createSystemRoot(PropsConfiguration.java:608)
at org.openconcerto.erp.config.ComptaPropsConfiguration.createSystemRoot(ComptaPropsConfiguration.java:747)
at org.openconcerto.sql.PropsConfiguration.getSystemRoot(PropsConfiguration.java:1043)
at org.openconcerto.sql.PropsConfiguration.createRoot(PropsConfiguration.java:390)
at org.openconcerto.sql.PropsConfiguration.getRoot(PropsConfiguration.java:1033)
at org.openconcerto.sql.element.ConfSQLElement.<init>(ConfSQLElement.java:35)
at org.openconcerto.sql.element.ConfSQLElement.<init>(ConfSQLElement.java:30)
at org.openconcerto.task.config.ComptaBasePropsConfiguration.createDirectory(ComptaBasePropsConfiguration.java:183)
at org.openconcerto.erp.config.ComptaPropsConfiguration.createDirectory(ComptaPropsConfiguration.java:767)
at org.openconcerto.sql.PropsConfiguration$1.create(PropsConfiguration.java:243)
at org.openconcerto.sql.PropsConfiguration$1.create(PropsConfiguration.java:1)
at org.openconcerto.sql.PropsConfiguration$Addable$1.call(PropsConfiguration.java:969)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.openconcerto.sql.PropsConfiguration$Addable.get(PropsConfiguration.java:987)
... 2 more
Caused by: org.h2.jdbc.JdbcSQLException: Error opening database: "Lock file recently modified" [8000-175]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:332)
at org.h2.message.DbException.get(DbException.java:161)
at org.h2.store.FileLock.getExceptionFatal(FileLock.java:450)
at org.h2.store.FileLock.waitUntilOld(FileLock.java:305)
at org.h2.store.FileLock.lockFile(FileLock.java:342)
at org.h2.store.FileLock.lock(FileLock.java:133)
at org.h2.engine.Database.open(Database.java:591)
at org.h2.engine.Database.openDatabase(Database.java:244)
at org.h2.engine.Database.<init>(Database.java:239)
at org.h2.engine.Engine.openSession(Engine.java:56)
at org.h2.engine.Engine.openSession(Engine.java:160)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:139)
at org.h2.engine.Engine.createSession(Engine.java:122)
at org.h2.engine.Engine.createSession(Engine.java:28)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:323)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:105)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:90)
at org.h2.Driver.connect(Driver.java:73)
at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
at org.openconcerto.sql.model.SQLDataSource$4.makeObject(SQLDataSource.java:1584)
at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
at org.openconcerto.sql.model.SQLDataSource.createPoolableConnectionFactory(SQLDataSource.java:1599)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at org.openconcerto.sql.model.SQLDataSource.getRawConnection(SQLDataSource.java:1386)
... 32 more
SVP, pouvez-vous m'indiquer ce que je dois faire.
Dans l'attente et avec mes remerciements anticipés,
François Duc
doc
Messages : 196
Enregistré le : dim. févr. 26, 2017 4:39 pm

jeu. oct. 05, 2017 12:02 pm

Bonjour Francois,

A priori le problème viendrais du fichier de verrouillage de la base de donnée (une réinstallation ne changera rien).
Fermez toutes les instances d'OpenConcerto et allez dans le répertoire C:\Users\FRANCOIS\AppData\Roaming\OpenConcerto\Data\DBData\, vous devriez trouver un fichier nommé OpenConcerto.lock.db, renommez le comme ceci OpenConcerto.lock.db.bak puis relancer OpenConcerto.
Si tout est revenu dans l'ordre, supprimez le fichier que vous avez renommé (attention, pas le nouveau qui viens de se recréer mais bien celui que vous avez renommé OpenConcerto.lock.bd.bak)
Agence Co Arve-Léman
Messages : 2
Enregistré le : jeu. oct. 05, 2017 8:39 am

jeu. oct. 05, 2017 3:14 pm

Rebonjour,
Merci pour cette réponse. Malheureusement, dès que je rajoute .bak, il recrée un fichier OpenConcerto.lock.db et, à tentative d'ouverture dOpenConcerto, le même message Java revient, soit :
UncaughtException on thread Thread[main,5,main]

java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Impossible d'obtenir une connexion sur jdbc:h2:file:C:\Users\FRANCOIS\AppData\Roaming\OpenConcerto\Data\DBData/OpenConcerto;DATABASE_TO_UPPER=false
org.openconcerto.utils.ExceptionHandler: UncaughtException on thread Thread[main,5,main]
at org.openconcerto.utils.ExceptionHandler.handle(ExceptionHandler.java:121)
at org.openconcerto.utils.ExceptionHandler.handle(ExceptionHandler.java:125)
at org.openconcerto.erp.config.Gestion$2.uncaughtException(Gestion.java:198)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1057)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1052)
at java.lang.Thread.dispatchUncaughtException(Thread.java:1952)
Caused by: java.lang.IllegalStateException: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Impossible d'obtenir une connexion sur jdbc:h2:file:C:\Users\FRANCOIS\AppData\Roaming\OpenConcerto\Data\DBData/OpenConcerto;DATABASE_TO_UPPER=false
at org.openconcerto.sql.PropsConfiguration$Addable.get(PropsConfiguration.java:993)
at org.openconcerto.sql.PropsConfiguration.getDirectory(PropsConfiguration.java:1104)
at org.openconcerto.erp.config.Gestion.main(Gestion.java:309)
Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Impossible d'obtenir une connexion sur jdbc:h2:file:C:\Users\FRANCOIS\AppData\Roaming\OpenConcerto\Data\DBData/OpenConcerto;DATABASE_TO_UPPER=false
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at org.openconcerto.sql.PropsConfiguration$Addable.get(PropsConfiguration.java:989)
... 2 more
Caused by: java.lang.IllegalStateException: Impossible d'obtenir une connexion sur jdbc:h2:file:C:\Users\FRANCOIS\AppData\Roaming\OpenConcerto\Data\DBData/OpenConcerto;DATABASE_TO_UPPER=false
at org.openconcerto.sql.model.SQLDataSource.getRawConnectionThrow(SQLDataSource.java:1376)
at org.openconcerto.sql.model.SQLDataSource.getRawConnection(SQLDataSource.java:1394)
at org.openconcerto.sql.model.SQLDataSource._borrowConnection(SQLDataSource.java:1334)
at org.openconcerto.sql.model.SQLDataSource.borrowConnection(SQLDataSource.java:1321)
at org.openconcerto.sql.model.SQLDataSource.getNewConnection(SQLDataSource.java:1301)
at org.openconcerto.sql.model.SQLDataSource$QueryInfo.<init>(SQLDataSource.java:701)
at org.openconcerto.sql.model.SQLDataSource.execute(SQLDataSource.java:610)
at org.openconcerto.sql.model.SQLDataSource.execute(SQLDataSource.java:554)
at org.openconcerto.sql.model.SQLDataSource.getSchema(SQLDataSource.java:1878)
at org.openconcerto.sql.model.SQLDataSource.getSchema(SQLDataSource.java:1860)
at org.openconcerto.sql.model.DBSystemRoot.setRootPathFromDS(DBSystemRoot.java:632)
at org.openconcerto.sql.model.DBSystemRoot.setDS(DBSystemRoot.java:628)
at org.openconcerto.sql.model.SQLBase.<init>(SQLBase.java:142)
at org.openconcerto.sql.model.SQLServer.createBase(SQLServer.java:419)
at org.openconcerto.sql.model.SQLServer.getBase(SQLServer.java:408)
at org.openconcerto.sql.model.SQLServer.createSystemRoot(SQLServer.java:467)
at org.openconcerto.sql.model.SQLServer.getSystemRoot(SQLServer.java:445)
at org.openconcerto.sql.model.SQLServer.getSystemRoot(SQLServer.java:425)
at org.openconcerto.sql.PropsConfiguration.createSystemRoot(PropsConfiguration.java:608)
at org.openconcerto.erp.config.ComptaPropsConfiguration.createSystemRoot(ComptaPropsConfiguration.java:747)
at org.openconcerto.sql.PropsConfiguration.getSystemRoot(PropsConfiguration.java:1043)
at org.openconcerto.sql.PropsConfiguration.createRoot(PropsConfiguration.java:390)
at org.openconcerto.sql.PropsConfiguration.getRoot(PropsConfiguration.java:1033)
at org.openconcerto.sql.element.ConfSQLElement.<init>(ConfSQLElement.java:35)
at org.openconcerto.sql.element.ConfSQLElement.<init>(ConfSQLElement.java:30)
at org.openconcerto.task.config.ComptaBasePropsConfiguration.createDirectory(ComptaBasePropsConfiguration.java:183)
at org.openconcerto.erp.config.ComptaPropsConfiguration.createDirectory(ComptaPropsConfiguration.java:767)
at org.openconcerto.sql.PropsConfiguration$1.create(PropsConfiguration.java:243)
at org.openconcerto.sql.PropsConfiguration$1.create(PropsConfiguration.java:1)
at org.openconcerto.sql.PropsConfiguration$Addable$1.call(PropsConfiguration.java:969)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.openconcerto.sql.PropsConfiguration$Addable.get(PropsConfiguration.java:987)
... 2 more
Caused by: org.h2.jdbc.JdbcSQLException: Database may be already in use: "Locked by another process". Possible solutions: close all other connection(s); use the server mode [90020-175]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:332)
at org.h2.message.DbException.get(DbException.java:172)
at org.h2.message.DbException.get(DbException.java:149)
at org.h2.store.FileLock.getExceptionAlreadyInUse(FileLock.java:454)
at org.h2.store.FileLock.lockFile(FileLock.java:350)
at org.h2.store.FileLock.lock(FileLock.java:133)
at org.h2.engine.Database.open(Database.java:591)
at org.h2.engine.Database.openDatabase(Database.java:244)
at org.h2.engine.Database.<init>(Database.java:239)
at org.h2.engine.Engine.openSession(Engine.java:56)
at org.h2.engine.Engine.openSession(Engine.java:160)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:139)
at org.h2.engine.Engine.createSession(Engine.java:122)
at org.h2.engine.Engine.createSession(Engine.java:28)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:323)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:105)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:90)
at org.h2.Driver.connect(Driver.java:73)
at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
at org.openconcerto.sql.model.SQLDataSource$4.makeObject(SQLDataSource.java:1584)
at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
at org.openconcerto.sql.model.SQLDataSource.createPoolableConnectionFactory(SQLDataSource.java:1599)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at org.openconcerto.sql.model.SQLDataSource.getRawConnection(SQLDataSource.java:1386)
... 32 more
Désolé pour ces problèmes,
Cordialement,
François
doc
Messages : 196
Enregistré le : dim. févr. 26, 2017 4:39 pm

ven. oct. 06, 2017 9:37 am

Bonjour,

C'est normal qu'un autre fichier soit recréé, comme je vous l'ai dit plus haut, ce fichier est nécessaire au bon fonctionnement mais celui que vous avez renommé était corrompu.
Ce n'est pas le même message, vous avez une autre instance d'OpenConcerto d'ouverte, fermez toutes les instances et redémarrez OpenConcerto (si le problème persiste, allez dans le gestionnaire des tâches et tuez tous les process java.exe puis lancer OpenConcerto ou plus simple, redémarrez votre ordinateur).

@Guillaume, ne serais ce pas judicieux de mettre en place un mutex pour empêcher le lancement de plusieurs instances d'OpenConcerto pour éviter ces déconvenues ?? Selon moi les instances multiples sont inutiles (voir dangereuses) pour ce genre de logiciels, qu'en pensez vous ?
Avatar du membre
guillaume
Messages : 2457
Enregistré le : ven. févr. 11, 2011 7:15 pm

ven. oct. 06, 2017 10:22 am

Bonjour,

Le problème c'est que pour savoir si la base H2 est déjà utilisée il faut tenter une connexion dessus ou alors vérifier la présence du lock de H2, ce qui sort un peu de notre système "agnostic" pour les base de données. Mais pourquoi pas.

En 1.5.1, nous avons ajouté un message plus clair pour les cas de base déjà utilisée et pour les corruptions de fichiers.

Cordialement,
Directeur technique d'OpenConcerto qui dans son temps libre s'occupe du forum.
Pour une assistance pro, nous sommes joignables à ILM Informatique contre quelques jetons.
Pensez aussi à lire le manuel !
doc
Messages : 196
Enregistré le : dim. févr. 26, 2017 4:39 pm

sam. oct. 07, 2017 10:56 am

Bonjour Guillaume,

Le mutex (relativement simple à mettre en œuvre) permettra justement de ne pas avoir à tenter un connection (et donc éviter les messages d'erreurs) puisque le test s'effectue sur l'instance même d'OpenConcerto, dans le cas d'une base H2 on ne peux utiliser la base à partir de 2 instances d'OC mais avec PostgreSQL ça ne pose pas de problème et n'empêche pas le lancement de plusieurs instances sur le même poste. :)
Répondre