Buongiorno a tutti
sto effettuando l’upgrade di CMDBuild dalla versione 1.4 alla 2.0 in ambiente Linux CentOS 5.4, mantendeno il puntamento al preesistente database PostgreSQL 9.0 contenente uno schema public e uno schema Shark. È andato tutto bene anche relativamente all’interfaccia con Alfresco, altro discorso per l’interfaccia verso Shark, che non riesco a raggiungere nonostante la configurazione sembri OK.
Lo schema Shark contiene una prova effettuata tempo fa con l’installazione preesistente.
Ho eseguito l’installazione dell’environment nel seguente modo:
- Download di cmdbuild-2.0.0.zip
- Copia di cmdbuild.war e extras/cmdbuild-distribution-shark-overlay, rinominata cmdbuild-shark, sotto la webapps dell’istanza tomcat di cmdbuild.
- Download di shark-cmdbuild-2.0.0.zip
- Copia di cmdbuild-shark-server-2.0.0.war sotto la webapps dell’istanza tomcat di cmdbuild.
A questo punto ho modificato tutti i file di configurazione elencati nella guida:
· /usr/local/istanze-tomcat/cmdbuild-2.0/webapps/cmdbuild-shark-server-2.0.0/META-INF/context.xml
url="jdbc:postgresql://localhost/cmdbsvil"
· /usr/local/istanze-tomcat/cmdbuild-2.0/webapps/cmdbuild-shark-server-2.0.0/conf/Shark.conf
org.cmdbuild.ws.url=http://localhost:8086/cmdbuild/
org.cmdbuild.ws.username=workflow
org.cmdbuild.ws.password=workflow
Stessa identica modifica per Shark.conf di cmdbuild-shark
· /usr/local/istanze-tomcat/cmdbuild-2.0/webapps/cmdbuild/WEB-INF/conf/auth.conf
serviceusers.prigileged=workflow
Dopo tali modifiche ho avviato l’istanza tomcat riscontrando i seguenti errori nei file catalina.out e shark.log:
CATALINA.OUT:
++++++++++++++++++++++++++++++++++++++ init - start
Shark will be configured from file /usr/local/istanze-tomcat/cmdbuild-2.0/webapps/cmdbuild-shark-server-2.0.0/conf/Shark.conf
environmentType= tomcat
t= org.objectweb.jotm.Current@14a75bb
pre configure . . . . . .
Together Workflow Server 4.4-1
SharkEngineManager -> Shark engine is being initialized ...
com.lutris.dods.builder.generator.query.DataObjectException: Unknown SQLException: <SqlQueryExecute><SqlQueryException>(<Replicated>:ERROR: current transaction is aborted, commands ignored until end of transaction block)
at org.enhydra.shark.instancepersistence.data.ProcessStateQuery._runQuery(Unknown Source)
at org.enhydra.shark.instancepersistence.data.ProcessStateQuery.runQuery(Unknown Source)
at org.enhydra.shark.instancepersistence.data.ProcessStateQuery.getNextDO(Unknown Source)
at org.enhydra.shark.instancepersistence.data.ProcessStateDO.__refreshCache(Unknown Source)
…………………………………….
*** Caused by:
java.sql.SQLException: <SqlQueryExecute><SqlQueryException>(<Replicated>:ERROR: current transaction is aborted, commands ignored until end of transaction block)
at com.lutris.dods.builder.generator.query.QueryBuilder.executeQuery(Unknown Source)
at org.enhydra.shark.instancepersistence.data.ProcessStateQuery.executeQuery(Unknown Source)
at com.lutris.appserver.server.sql.standard.StandardDBQuery.query(Unknown Source)
…………………………………
…………………………………
Shark -> shark engine initialization is finished, it lasted 13 [s]
Shark -> Shark ready and waiting ...
pre getConnection . . . . . .
pre commit . . . . . .
SHARK.LOG:
SharkEngineManager -> Working with 'org.enhydra.shark.CallbackUtil' implementation of core CallbackUtilities API
SharkEngineManager -> Working with 'org.enhydra.shark.SharkObjectFactoryExt' implementation of core SharkObjectFactory API
SharkEngineManager -> Working with 'org.enhydra.shark.StandardToolActivityHandler' implementation of
core ToolAgentManager API
SharkEngineManager -> Working with 'org.enhydra.shark.logging.StandardLoggingManager' implementation
of Logging API
StandardAssignmentManager -> Working with 'org.enhydra.shark.usergroup.DODSUserGroupManagerAdmin' implementation of UserGroup API
StandardAssignmentManager -> Working with 'org.enhydra.shark.partmappersistence.DODSParticipantMappi
ngAdmin' implementation of ParticipantMapping API
SharkEngineManager -> Working with 'org.enhydra.shark.assignment.StandardAssignmentManager' implementation of Assignment API
Process Cache configured - max. size is 100
Resource Cache configured - max. size is 100
SharkEngineManager -> Working with 'org.enhydra.shark.caching.LRUCacheMgr' implementation of Caching API
<SqlQueryExecute><SqlQueryException>(<Replicated>:ERROR: relation "shkprocessstates" does not exist Position: 32)
<SqlQueryExecute><SqlQueryException>(<Replicated>:ERROR: current transaction is aborted, commands ignored until end of transaction block)
<SqlQueryExecute><SqlQueryException>(<Replicated>:ERROR: current transaction is aborted, commands ignored until end of transaction block)
DODSPersistentManager -> persisting String variables into BLOB for sizes greater than 4000
SharkEngineManager -> Working with 'org.enhydra.shark.instancepersistence.DODSSelectivePersistenceManager' implementation of InstancePersistence API
DODSGlobalPersistenceManager -> persisting String data into BLOB for sizes greater than 4000
SharkEngineManager -> Working with 'org.enhydra.shark.globalpersistence.DODSGlobalPersistenceManager' implementation of GlobalPersistence API
SharkEngineManager -> Working with 'org.cmdbuild.workflow.CMDBuildEventAuditManager' implementation of EventAudit API
SharkEngineManager -> Working with 'org.enhydra.shark.repositorypersistence.DODSRepositoryPersistenceManager' implementation of RepositoryPersistence API
SharkEngineManager -> Working with 'org.enhydra.shark.scripting.StandardScriptingManager' implementation of Scripting API
SharkEngineManager -> Working without Security API implementation - SecurityManager is not specified.
StandardToolAgentManager -> Working with 'org.enhydra.shark.appmappersistence.DODSApplicationMappingAdmin' implementation of ApplicationMapPersistence API
SharkEngineManager -> Working with 'org.enhydra.shark.toolagent.StandardToolAgentManager' implementation of ToolAgentManager API
SharkEngineManager -> Working without wfEngineInteroperability API implementation - WfEngineInteroperability implementation is not specified.
SharkUtilities -> synchronizing XPDL cache
Problem while initializing caches !!!
Nonostante questi errori il cmdbuild parte regolarmente per cui, dal modulo di amministrazione, ho eseguito la configurazione di Workflow nel seguente modo:
Abilitato
URL del servizio: http://localhost:8086/cmdbuild-shark-server-2.0.0
User name e password gli stessi specificati in Shark.conf (workflow).
Segnalo che gli ultimi due campi della configurazione, nome motore e scope, non sono accessibili via browser.
Ho anche creato il login con utente e password come sopra, assegnandogli un gruppo con privilegi di amministratore.
Se accedo al modulo di amministrazione e provo ad aprire la sezione “Processi”, contenente come detto un processo generato con il precedente Shark, ottengo la seguente segnalazione di errore:
org.cmdbuild.workflow.CMWorkflowException:org.enhydra.shark.api.internal.instancepersistence.PersistenceException: Unknown SQLException: (:ERROR: relation "shkresourcestable" does not existPosition: 33)
at org.cmdbuild.workflow.service.TransactedSharkService$TransactedExecutor.initAndConnect(TransactedSharkService.java:49)
at org.cmdbuild.workflow.service.TransactedSharkService$TransactedExecutor.execute(TransactedSharkService.java:23)
at org.cmdbuild.workflow.service.TransactedSharkService.downloadAllPackages(TransactedSharkService.java:127)
at org.cmdbuild.workflow.xpdl.CachedProcessDefinitionStore$LazyClassNameToPackageInfoMap.fetchProcessDefinitions(CachedProcessDefinitionStore.java:119)
at org.cmdbuild.workflow.xpdl.CachedProcessDefinitionStore$LazyClassNameToPackageInfoMap.checkLoaded(CachedProcessDefinitionStore.java:111)….
Inoltre nei file di log vengono visualizzati i seguenti messaggi:
SHARK.LOG:
<SqlQueryExecute><SqlQueryException>(<Replicated>:ERROR: relation "shkresourcestable" does not exist
Position: 33)
CMDBUILD.LOG:
[jsonrpc ] A org.cmdbuild.workflow.CMWorkflowException occurred calling method class org.cmdbuild.servlets.json.Workflow.xpdlVersions: org.enhydra.shark.api.internal.instancepersistence.PersistenceException: Unknown SQLException: <SqlQueryExecute><SqlQueryException>(<Replicated>:ERROR: relation "shkresourcestable" does not exist
Position: 33)
POSTGRESQL-TUE.LOG:
ERROR: relation "shkprocessstates" does not exist at character 32
STATEMENT: select SHKProcessStates.* from SHKProcessStates
ERROR: current transaction is aborted, commands ignored until end of transaction block
STATEMENT: select SHKProcessStates.* from SHKProcessStates
ERROR: current transaction is aborted, commands ignored until end of transaction block
STATEMENT: select SHKXPDLS.* from SHKXPDLS
ERROR: relation "shkresourcestable" does not exist at character 33
STATEMENT: select SHKResourcesTable.* from SHKResourcesTable WHERE SHKResourcesTable.Username = $1
ERROR: relation "shkresourcestable" does not exist at character 33
STATEMENT: select SHKResourcesTable.* from SHKResourcesTable WHERE SHKResourcesTable.Username = $1
Segnalo inoltre che nel modulo di gestione del CMDBuild, a differenza del modulo di amministrazione, la sezione Processi non è presente.
Prima di procedere all’upgrade in produzione voglio mettere a punto tutto il sistema, altrimenti sarò costretto a lasciare le cose come stanno.
Ho bisogno di aiuto per capire dove possa essere il problema che impedisce il corretto interfacciamento tra cmdbuild e shark, grazie.
Cordiali saluti