Problem:User has TIBCO JasperReports® Server deployed in a cluster. When expanding one particular repository folder in JasperReports® Server repository view web UI, user got an error message: | [toc] |
2017-12-14 13:09:48,513 ERROR GenericExceptionMapper,http-nio-8443-exec-18:47 - Unexpected error occurs org.springframework.orm.hibernate3.HibernateObjectRetrievalFailureException: No row with the given identifier exists: com.jaspersoft.jasperserver.api.metadata.user.domain.impl.hibernate.RepoObjectPermission#195]; nested exception is org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.jaspersoft.jasperserver.api.metadata.user.domain.impl.hibernate.RepoObjectPermission#195] ............ Caused by: org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.jaspersoft.jasperserver.api.metadata.user.domain.impl.hibernate.RepoObjectPermission#195] ............
According to the user, this only occurs on one node of a 2 node cluster. On the other node, "no error and everything is normal".
Cause:
Repository resource permission information is cached in the server instance. Users must set cache replication in the cluster deployment to allow permission changes in one server propagated to another server without having to restart the server instance. Otherwise, the server node that was not the source of permission change would have retained the staled permission in the memory and caused ObjectNotFoundException when viewing the affected no folder from this server node.
Solution:
JasperReports Server web application requires cache replication to work correctly when deployed in a cluster environment. Users will need to configure their servers on a cluster to make server nodes communicate with each other to update cache information.
Please refer to TIBCO JasperReports Server Ultimate Guide document section "App Server Configuration for Failover" for information on session replication:
For this particular concern, please read:
"On each node, edit the <web-app>/WEB-INF/ehcache.xml file to uncomment the following section:"
<cache name="attributeCache" ...> <cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" properties="replicateAsynchronously=true, replicatePuts=false, replicateUpdates=true, replicateUpdatesViaCopy=false, replicateRemovals=true"/> <bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory" properties="bootstrapAsynchronously=true, maximumChunkSizeBytes=5000000"/> </cache>
TTC-20171214-1552757
Recommended Comments
There are no comments to display.