Jump to content
We've recently updated our Privacy Statement, available here ×
  • User getting org.hibernate.ObjectNotFoundException when trying to expanding a repository folder on one node of a cluster


    Tom C
    • Features: JasperReports Server Version: v6.4 Product: 537

    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:

    https://community.jaspersoft.com/documentation/tibco-jasperreports-server-ultimate-guide/v630/app-server-configuration-failover

    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


    User Feedback

    Recommended Comments

    There are no comments to display.



    Guest
    This is now closed for further comments

×
×
  • Create New...