Terracotta issues

368 views
Skip to first unread message

Joshua Kevan

unread,
Feb 13, 2017, 5:16:24 PM2/13/17
to Sakai Development
trying to setup session caching with Terracotta on our sakai instances and we have run into an issue. Every time we start tomcat/sakai we get the following error:

              ERROR localhost-startStop-1 org.sakaiproject.memory.impl.EhCacheManagerFactoryBean - You have cluster caching enabled in sakai.properties, but do not have a Terracotta server running at localhost:9510.

our sakai. properties has the following settings:

# ########################################################################
# CACHE
# ########################################################################

# Forcibly disable statistics collection for caches
# This can improve performance slightly but makes it impossible to monitor cache status
# DEFAULT: false
# memory.cache.statistics.force.disabled=true

# Register the EhCaches with JMX server
# If true then the EhCache will be registered with the JMX agent to make it easier to monitor the
# cache statistics.
# DEFAULT: true
# memory.ehcache.jmx=true

# Set event interval at which to report the current status of the site cache
# DEFAULT: 0
# org.sakaiproject.site.impl.SiteCacheImpl.cache.cacheEventReportInterval=0

## NOTE: all caches can be configured like so:
# memory.{cachename}={key=value,key=value,...}
# The main keys are eternal, timeToLiveSeconds, timeToIdleSeconds, maxElementsInMemory
# See the admin memory tool for a complete list of caches in your environment
# cache list may include but is not limited to:
#org.hibernate.cache.StandardQueryCache
#org.hibernate.cache.UpdateTimestampsCache
#org.sakaiproject.alias.api.AliasService.callCache
#org.sakaiproject.api.privacy.PrivacyManager.PrivacyQueryCache.queryGetPrivacy
#org.sakaiproject.authz.api.SecurityService.cache
#org.sakaiproject.authz.impl.DbAuthzGroupService.realmRoleGroupCache
#org.sakaiproject.calendar.impl.BaseExternalCacheSubscriptionService.institutional
#org.sakaiproject.calendar.impl.BaseExternalCacheSubscriptionService.user
#org.sakaiproject.citation.api.SearchManager.metasearchSessionManagerCache
#org.sakaiproject.citation.api.SearchManager.sessionContextCache
#org.sakaiproject.db.BaseDbFlatStorage.SAKAI_ALIAS_PROPERTY
#org.sakaiproject.db.BaseDbFlatStorage.SAKAI_REALM_PROPERTY
#org.sakaiproject.db.BaseDbFlatStorage.SAKAI_SITE_GROUP_PROPERTY
#org.sakaiproject.db.BaseDbFlatStorage.SAKAI_SITE_PAGE_PROPERTY
#org.sakaiproject.db.BaseDbFlatStorage.SAKAI_SITE_PROPERTY
#org.sakaiproject.db.BaseDbFlatStorage.SAKAI_USER_PROPERTY
#org.sakaiproject.event.api.ActivityService.userActivityCache
#org.sakaiproject.event.api.NotificationService.cache
#org.sakaiproject.event.api.UsageSessionService.recentUserRefresh
#org.sakaiproject.lessonbuildertool.service.AssignmentEntity.cache
#org.sakaiproject.lessonbuildertool.service.BltiEntity.cache
#org.sakaiproject.lessonbuildertool.service.LessonBuilderAccessService.cache
#org.sakaiproject.lessonbuildertool.service.SamigoEntity.cache
#org.sakaiproject.lessonbuildertool.tool.producers.ShowPageProducer.url.cache
#org.sakaiproject.news.api.NewsService.cache
#org.sakaiproject.profile2.cache.connections
#org.sakaiproject.profile2.cache.kudos
#org.sakaiproject.profile2.cache.preferences
#org.sakaiproject.profile2.cache.privacy
#org.sakaiproject.profile2.cache.search
#org.sakaiproject.shortenedurl.cache
#org.sakaiproject.site.api.SiteService.userSiteCache
#org.sakaiproject.site.impl.SiteCacheImpl.cache
#org.sakaiproject.sitestats.api.PrefsData
#org.sakaiproject.sitestats.api.report.ReportDef
#org.sakaiproject.sitestats.impl.event.EntityBrokerEventRegistry
#org.sakaiproject.sitestats.impl.event.EventRegistryServiceImpl
#org.sakaiproject.springframework.orm.hibernate.L2Cache
#org.sakaiproject.time.impl.BasicTimeService.userTimezoneCache
#org.sakaiproject.user.api.AuthenticationManager
#org.sakaiproject.user.api.UserDirectoryService
#org.sakaiproject.user.api.UserDirectoryService.callCache
#org.sakaiproject.user.impl.BasePreferencesService.preferences
#org.theospi.portfolio.wizard.mgt.impl.WizardManagerImpl.cache
#uk.ac.cam.caret.sakai.rwiki.service.api.radeox.RenderCache

# User cache - ehcache default overrides (params = timeToLiveSeconds, timeToIdleSeconds, maxElementsInMemory)
# NOTE: The defaults here are NOT safe for production, you will want to increase this to match your user base and server power
# 24 hours - 86400, 12 hours - 43200, 1 hour - 3600
# memory.org.sakaiproject.user.api.UserDirectoryService.callCache=timeToLiveSeconds=3600,timeToIdleSeconds=900,maxElementsInMemory=20000
 
# KNL-600 authz realms grants caching (true|false)
# cacheName: org.sakaiproject.authz.impl.DbAuthzGroupService.realmRoleGroupCache
# DEFAULT: true (caching on)
# DEPRECATED: authz.cacheGrants=true *** see KNL-1325 ***

# KNL-1325
# realmRoleGroupCache introduced in KNL-600 is now always on as using sakai without this cache would not be ideal
# time in seconds a refresh is allowed to take before rate limiting begins
# rate limits refreshing when refreshing is taking to long, this is useful in a sakai system with many nodes
# where excessive refreshing can cause the database to slow down.
# DEFAULT: 15
# authzgroup.refresh.max.time = 15
# time in seconds between consecutive refreshs,
# regardless of how long processing the queue takes this interval is guaranteed between executions.
# DEFAULT: 60
# authzgroup.refresh.interval = 60

# KNL-800 provider id should synchronize with parent site on manually updated member roles
# DEFAULT: false
# EXPERIMENTAL: before setting please read issues KNL-1250 and KNL-1270
# authz.synchWithContainingRealm=true

# AUTHZ cache - Minutes to cache each security question in the SecurityService; set to 0 to disable caching.
# DEPRECATED: cacheM...@org.sakaiproject.authz.api.SecurityService=3
# the deprecated setting has no effect anymore (since before 2.5)
# memory.org.sakaiproject.authz.api.SecurityService.cache=timeToLiveSeconds=300,timeToIdleSeconds=300,maxElementsInMemory=10000

# SITE cache - Minutes to cache each site (site, page, tool) access in the SiteService; set to 0 to disable caching.
# DEPRECATED: cacheM...@org.sakaiproject.site.api.SiteService=3
# the deprecated setting has no effect anymore (since before 2.5)
# memory.org.sakaiproject.site.impl.SiteCacheImpl.cache=timeToLiveSeconds=300,timeToIdleSeconds=300,maxElementsInMemory=10000
 
## Users Pre-caching
## Controls the users precaching process on the Sakai servers,
## The goal is to make it easier to access large sites because users are generally fetched on demand
## IF you are storing all users in your local database and do not have a UserDirectoryProvider configured and enabled,
## then there is no reason to enable this
## By default the user precaching is completely disabled
## NOTE: User cache is called: org.sakaiproject.user.api.UserDirectoryService.callCache
## You will need to increase the timeToLive/Idle to at least 24 hours for that cache or the
## precaching is useless (see the "User cache" above)
# Enable the precache on server startup
# **NOTE: this will run on each server within 5-15 mins of the server starting up
# DEFAULT: false
# precache.users.run.startup=true

# Enable the daily refresh of the users cache
# DEFAULT: false
# precache.users.run.daily=true

# Control the time (24 hour clock - current server timezone)) of the daily refresh
# DEFAULT: 04:00
# precache.users.refresh.time=04:00

# Control the query used to find the list of all user IDs to preload into the cache
# DEFAULT: SELECT distinct(USER_ID) FROM SAKAI_SITE_USER where PERMISSION = 1 order by USER_ID
# precache.users.userlist.query=

## User Precache logging
## Control additional logging of the precaching process (Defaults: SHOWN BELOW)
# precache.users.log.usersRemoved=false
# precache.users.log.usersNotRemoved=false
# precache.users.log.usersAccessed=false
# precache.users.log.usersNotAccessed=true
# JLDAP cache - ehcache default overrides (only meaningful if using the JLDAP provider)
# edu.amc.sakai.user.JLDAPDirectoryProvider.userCache=timeToLiveSeconds=14400,timeToIdleSeconds=3600,maxElementsInMemory=20000

# Cache authentication to improve DAV performance for provided users.
# A maximumSize of 0 disables the cache. The cache is disabled by default.
# maxElemen...@memory.org.sakaiproject.user.impl.AuthenticationCache=500

# Cache timeout for successful login-password combos.
# Cache timeout for failed login-password combos. (same timeout for success)
# timeT...@memory.org.sakaiproject.user.impl.AuthenticationCache=120000

# Suppress the refresh of the sakai realm tables with the latest information from CM tables
# DEFAULT: false (do not surpress)
# suppressCMRefresh=true

# CLUSTER CACHING (KNL-1184)
# WARNING: this requires an external distributed caching server
# Enable distributed caching
# DEFAULT: false
memory.cluster.enabled=true

# The URLs of the distributed cache servers
memory.cluster.server.urls.count=3
memory.cluster.server.urls.1=xxx.xxx.xxx.xxx:9510 (caching server 1)
memory.cluster.server.urls.2=xxx.xxx.xxx.xxx:9510 (caching server 2)
memory.cluster.server.urls.3=xxx.xxx.xxx.xxx:9510 (sakai server with terracotta installed on it)
 
## The caches that will be using the distributed cache.
## The only ones known to be safe are listed:
## EVENTS clustering: org.sakaiproject.event.impl.ClusterEventTracking.eventsCache, org.sakaiproject.event.impl.ClusterEventTracking.eventLastCache
## (events caching shown below as example)
## Events caching uses a distributed cache to propagate events, rather than reading from the database, events are still stored in the database
## SESSION failover: org.sakaiproject.tool.impl.RebuildBreakdownService.cache
## PERFORMANCE: org.sakaiproject.authz.impl.DbAuthzGroupService.realmRoleGroupCache
memory.cluster.names.count=3
memory.cluster.names.1=org.sakaiproject.event.impl.ClusterEventTracking.eventsCache
memory.cluster.names.2=org.sakaiproject.event.impl.ClusterEventTracking.eventLastCache
memory.cluster.names.3=org.sakaiproject.event.impl.RebuildBreakdownService.cache

## Any Cache properties below that are not set will use the default values
# Valid properties include: maxEntries(int>0), timeToIdle(int>0, seconds), timeToLive(int>0, seconds), eternal(true|false)
# Defaults: maxEntries=10000, timeToIdle=600, timeToLive=600, eternal=false
# Configure cluster caches using: memory.cluster.{cacheName}.{property)={value}

# Events caching properties
#memory.cluster.org.sakaiproject.event.impl.ClusterEventTracking.eventsCache.maxEntries=80000
#memory.cluster.org.sakaiproject.event.impl.ClusterEventTracking.eventsCache.timeToIdle=60
#memory.cluster.org.sakaiproject.event.impl.ClusterEventTracking.eventsCache.timeToLive=60

# eventLastCache caching properties (only needs to ever store 1 entry but we need it forever)
#memory.cluster.org.sakaiproject.event.impl.ClusterEventTracking.eventLastCache.maxEntries=1
#memory.cluster.org.sakaiproject.event.impl.ClusterEventTracking.eventLastCache.eternal=true

# Session replication caching properties
#memory.cluster.org.sakaiproject.tool.impl.RebuildBreakdownService.cache.maxEntries=50000
#memory.cluster.org.sakaiproject.tool.impl.RebuildBreakdownService.cache.timeToIdle=3600
#memory.cluster.org.sakaiproject.tool.impl.RebuildBreakdownService.cache.timeToLive=10800

# Role and Group caching properties
#memory.cluster.org.sakaiproject.authz.impl.DbAuthzGroupService.realmRoleGroupCache.maxEntries=100000
#memory.cluster.org.sakaiproject.authz.impl.DbAuthzGroupService.realmRoleGroupCache.timeToIdle=2000
#memory.cluster.org.sakaiproject.authz.impl.DbAuthzGroupService.realmRoleGroupCache.timeToLive=2400

 
 
## Session Replication settings
## WARNING: This requires a distribution mechanism of some kind (currently requires a distributed cache)
## NOTES:
## cache: org.sakaiproject.tool.impl.RebuildBreakdownService.cache must be set to a distributed cache (see memory.cluster)
## cache: org.sakaiproject.tool.impl.RebuildBreakdownService.stash should be configured to last as long
##        as your user might need to navigate to JSF or other on-demand session tools after landing on a new server
# Enable session cluster replication (see notes above)
# Default: false
session.cluster.replication=true
## Performance tuning settings below - be careful with these numbers as adjusting them downward can create heavy load
# Tuning setting, minimum seconds old the session must be before it will be replicated
# Default: 20
session.cluster.minSecsOldToStore=20
# Tuning setting, minimum seconds that must pass before session data is updated (since last store)
# NOTE: certain events will cause the session data to be updated in the store regardless of this setting
# Default: 10
session.cluster.minSecsBetweenStores=10
# Tuning setting, minimum seconds after a session has been rebuilt from the store before it can be updated in the storage again
# Default: 30
session.cluster.minSecsAfterRebuild=30

# When a node is in shutdown should we redirect to another working node?
# When a node is in shutdown and this is true we pick another node in the cluster and redirect to that node by setting
# the cookie to point to that node, when this is false we just delete the cookie and let the load balancer decide
# Default: true
# cluster.redirect.random.node=false

any help is greatly appreciated. 

Robert Long

unread,
Feb 13, 2017, 5:20:04 PM2/13/17
to Joshua Kevan, Sakai Development
Joshua,

You have "memory.cluster.enabled=true” in the settings.

The error: "You have cluster caching enabled in sakai.properties, but do not have a Terracotta server configured and running at localhost:9510”

Do you have a Terracotta server running on localhost:9510? Can you ping it?

—Bob

----
Robert Long
Software Engineer
Sakai Tech Lead
Unicon, Inc.

--
You received this message because you are subscribed to the Google Groups "Sakai Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sakai-dev+...@apereo.org.
To post to this group, send email to saka...@apereo.org.
Visit this group at https://groups.google.com/a/apereo.org/group/sakai-dev/.

Joshua Kevan

unread,
Feb 13, 2017, 5:27:32 PM2/13/17
to Sakai Development, jkev...@gmail.com
Bob,

I have 2 caching servers running terracotta and a sakai server (which is the "localhost" in question) with terracotta server on it as well. I have confirmed that terracotta is working. when I start terracotta it joins the cluster on the other two caching server logs but when I start tomcat after that I get the error in question

Jonas Eriksson

unread,
Feb 20, 2017, 4:34:57 AM2/20/17
to Joshua Kevan, Sakai Development

Hi Joshua,

 

Did you resolve your problems with terracotta?

 

We are on latest 11.x and we have a version conflict that is giving the same top level error message.

Looking further in the stacktrace we see

 

org.terracotta.modules.tim-ehcache-2.x-ui was intended for TIM API version 1.4.1, but you seem to be running 1.3.0

 

Terracotta 3.7.6 and it’s working fine in sakai 10.5

 

Does anyone have a solution to this problem?

 

Best regards

 

Jonas Eriksson

Systems Developer

ICT Services and System Development

Umeå universitet

jonas.e...@umu.se

www.its.umu.se

Jonas Eriksson

unread,
Feb 20, 2017, 6:28:54 AM2/20/17
to Joshua Kevan, Sakai Development

Follow up on this... I found an email from Leonardo Canessa in 2016-08-04 about changing terracotta-toolkit-1.6-runtime from version 5.9.0 to 5.10.0 and now the tomcat shuts down when the error appears.

 

Message in the terracotta-client.log:

2017-02-20 12:17:48,224 [WorkerThread(client_coordination_stage, 0)] ERROR com.terracottatech.console - Client/Server Version Mismatch Error: Client Version: 3.7.10, Server Version: 3.7.6.  Terminating client now.

 

Regards

Jonas Eriksson

Leonardo Canessa

unread,
Feb 20, 2017, 9:06:09 AM2/20/17
to Jonas Eriksson, Joshua Kevan, Sakai Development
I believe that Terracotta Server 3.7.10 is the first version which has listed support for Java 1.8.

Leonardo Canessa
Web Developer - E-Learning

To unsubscribe from this group and stop receiving emails from it, send an email to sakai-dev+unsubscribe@apereo.org.


To post to this group, send email to

--
You received this message because you are subscribed to the Google Groups "Sakai Development" group.

To unsubscribe from this group and stop receiving emails from it, send an email to sakai-dev+unsubscribe@apereo.org.


To post to this group, send email to saka...@apereo.org.
Visit this group at https://groups.google.com/a/apereo.org/group/sakai-dev/.

--
You received this message because you are subscribed to the Google Groups "Sakai Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sakai-dev+unsubscribe@apereo.org.

Lars-Henrik Snow

unread,
Feb 21, 2017, 9:45:50 AM2/21/17
to Leonardo Canessa, Jonas Eriksson, Joshua Kevan, Sakai Development
I have been looking for Terracotta Server 3.7.10, but the latest 3.7.x version on terracotta.org open source downloads is 3.7.7. The release notes list versions 3.7.8 onwards as well, but there seems to be no other available downloads. Are the later versions only available as paid-for closed source?

Leonardo Canessa

unread,
Feb 21, 2017, 10:56:05 AM2/21/17
to Lars-Henrik Snow, Jonas Eriksson, Joshua Kevan, Sakai Development

Ch Kumar

unread,
Oct 24, 2017, 2:51:48 PM10/24/17
to Jonas Eriksson, Joshua Kevan, Sakai Development
Hi Jonas,

I am trying to use terracotta 3.7.10 with sakai 11.4 but we are getting issue same as you.
"org.terracotta.modules.tim-ehcache-2.x-ui was intended for TIM API version 1.4.1, but you seem to be running 1.3.0"

As per your recent posts we can see the you have made progress.
So I would like to request you to help me to resolve this issue.

Thanks in advance.

To unsubscribe from this group and stop receiving emails from it, send an email to sakai-dev+unsubscribe@apereo.org.


To post to this group, send email to

--
You received this message because you are subscribed to the Google Groups "Sakai Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sakai-dev+unsubscribe@apereo.org.

Jonas Eriksson

unread,
Oct 25, 2017, 1:49:52 AM10/25/17
to Ch Kumar, Joshua Kevan, Sakai Development

Hi,

 

I don’t recall the exact solution.

We got the message in the upgrade process when we had the 3.7.6 terracotta server.

 

Make sure to clean out any old jars in tomcat.

In kernel.pom we have

 

<dependency>

        <groupId>org.terracotta</groupId>

        <artifactId>terracotta-toolkit-1.6-runtime</artifactId>

        <version>5.10.0</version>

        <scope>provided</scope>

</dependency>

 

Regards

Jonas

Ch Kumar

unread,
Oct 25, 2017, 12:53:59 PM10/25/17
to Jonas Eriksson, Joshua Kevan, Sakai Development
Hi Jonas,

Thank you so much. The issue resolved with your suggestion.

To unsubscribe from this group and stop receiving emails from it, send an email to sakai-dev+unsubscribe@apereo.org.


To post to this group, send email to

--
You received this message because you are subscribed to the Google Groups "Sakai Development" group.

To unsubscribe from this group and stop receiving emails from it, send an email to sakai-dev+unsubscribe@apereo.org.

pavelj...@seznam.cz

unread,
Feb 9, 2018, 6:19:52 AM2/9/18
to Sakai Development, nilsson...@gmail.com, jonas.e...@umu.se, jkev...@gmail.com, lcan...@udayton.edu
Hello Guys, could you please share the terracotta-3.7.10.tar.gz with me. The link doesnt seem to work ... Thank you Pavel
 

Sanghyun Jeon

unread,
Mar 1, 2018, 7:30:55 PM3/1/18
to pavelj...@seznam.cz, Sakai Development, nilsson...@gmail.com, Jonas Eriksson, jkev...@gmail.com, Leonardo Canessa
I have 3.7.6 but I cannot find 3.7.10.tar.gz anywhere. First, I would like to know whether 3.7.6 is working with sakai11.2 and jdk 1.8.
If not, can anybody tell me where I can find 3.7.10.tar.gz?

Thank you

On Fri, Feb 9, 2018 at 3:19 AM, <pavelj...@seznam.cz> wrote:
Hello Guys, could you please share the terracotta-3.7.10.tar.gz with me. The link doesnt seem to work ... Thank you Pavel
 

--

Sanghyun Jeon

unread,
Mar 1, 2018, 7:31:43 PM3/1/18
to pavelj...@seznam.cz, Sakai Development, nilsson...@gmail.com, Jonas Eriksson, jkev...@gmail.com
I have 3.7.6 but I cannot find 3.7.10.tar.gz anywhere. First, I would like to know whether 3.7.6 is working with sakai11.2 and jdk 1.8.
If not, can anybody tell me where I can find 3.7.10.tar.gz?

Thank you

Reply all
Reply to author
Forward
0 new messages