Welcome to Knowage Q&A, where you can ask questions and receive answers from other members of the community.
0 votes
1 view

Hi, I've encountered an issue when a cookpit document is open after a certain period of time that knowage server does not works.

For example on saturday evening cockpit works fine but this morning not.

The workaround I found is to open dataset and start a data preview. In this manner cookpit will works fine again.

The following is the error message I receive.

Grazie

--------- 

error while attempt to load filters
Apache Tomcat/7.0.50 - Error report
HTTP Status 500 - it.eng.spago.error.EMFUserError: severity [ERROR] description [Generic Error]

type Exception report

message it.eng.spago.error.EMFUserError: severity [ERROR] description [Generic Error]

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.jboss.resteasy.spi.UnhandledException: it.eng.spago.error.EMFUserError: severity [ERROR] description [Generic Error]
    org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:365)
    org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:233)
    org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatcher.java:209)
    org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:557)
    org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)
    org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)
    org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)
    org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
    org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

it.eng.spago.error.EMFUserError: severity [ERROR] description [Generic Error]
    it.eng.spagobi.behaviouralmodel.analyticaldriver.dao.ParameterDAOHibImpl.loadForExecutionByParameterIDandRoleName(ParameterDAOHibImpl.java:227)
    it.eng.spagobi.analiticalmodel.document.dao.BIObjectDAOHibImpl.loadBIObjectForExecutionByLabelAndRole(BIObjectDAOHibImpl.java:3064)
    it.eng.spagobi.api.DocumentExecutionResource.getDocumentExecutionFilters(DocumentExecutionResource.java:472)
    sun.reflect.GeneratedMethodAccessor1076.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)
    org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167)
    org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:257)
    org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:222)
    org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:211)
    org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)
    org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)
    org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)
    org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)
    org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
    org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.50 logs.

Apache Tomcat/7.0.50

OK

---------

in Cockpit, Dashboard and Console by (540 points)
edited by

3 Answers

0 votes

This can be related due to the fact that the user session expires.

From the log you posted seems that the root cause is placed elsewhere, maybe in another log file? I would suggest to have a look at

  • knowage.log
  • knowagecockpitengine.log
  • catalina.out
You will may find an error saying that user profile is null or something like that.
by (15.2k points)
I have same problem and i looked log file

knowage.log
knowagecockpitengine.log
catalina.out

this files are empty.
0 votes
Hi,
    JDBC connections may fail after a while if not properly configured.
Please define your JDBC connections as resources in server.xml and configure them properly.
Which parameters are useful depends on JDBC driver itself.
 

E.g. for a stable Oracle connection you may define:
<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" name="jdbc/..." type="javax.sql.DataSource" url="jdbc:oracle:thin:...@//...:1521/..." username="..." password="..." maxWait="-1" maxActive="20" maxIdle="4" validationQuery="select * from dual" removeAbandoned="true" removeAbandonedTimeout="3600" logAbandoned="true" testOnReturn="true" testWhileIdle="true" timeBetweenEvictionRunsMillis="10000" minEvictableIdleTimeMillis="60000" />

Best regards,
Francesco
by (3.8k points)
Hi Francesco,

I've not information of the data source used in the cockpits in the server.xml file. The only place where I read info about data source is the RDBMS of Knowage.
In server.xml file I can read info about connections only for knowage MySQL.
Thank you
M.
0 votes
Hi Marco,
    datasources of type JDBC are saved in metadata schema of Knowage; you can't use advanced parameters for their JDBC connections.
Datasources of type JNDI use the resources defined in server.xml; there you can use advanced parameters.
So please define resources in server.xml, then change type of your datasources to JNDI, pointing to former resources.
Best regards,

Francesco
by (3.8k points)
Hi Francesco,

the data source is used by a lot of datasets and these are used by different document.
I can try to change from JDBC to JNDI but I do you think that I'll not have problem with the actual datasets and docs?
Perhaps I can create a new datasource and then connect to this one the actual datasets?

Marco
Hi Marco,
    everything is gonna be alright if you carry the JDBC connection definition to a resource properly and then switch dataset type to JNDI and point to the proper resource name (check the hint nearby the input field!).
For sure you can create a new datasource and perform a little test with just one dataset...
Best regards,

Francesco
...