CMDBuild Forum

Problema configurazione interfaccia cmdbuild-shark

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

Buongiorno,

non sono ancora riuscito a risolvere il problema e spero che qualcuno possa essermi di aiuto.

Come ulteriore informazione posso dire che eseguendo l'installazione di CMDBuild creando un nuovo database con le due istanze public e shark e mantenendo la stessa configurazione ottengo un avvio di Tomcat  pulito e, soprattutto, un CMDBuild che si interfaccia perfettamente con Shark, ovvero posso creare un nuovo processo.

A questo punto, nel data base preesistente, ho cancellato e ricreato lo schema Shark con l'utility  02_shark_emptydb.sql ma il risultato non è cambiato, ovvero errori in fase di avvio Tomcat ed errori a livello cmdbuild quando provo a creare un processo.