Background: We had a bad LOCKS table definition for our Oracle JPA Ticket Registry and were getting the TIMESTAMP cast exception. We fixed that problem by doing a "table alter" while CAS was running and restarted CAS (3 instances restarted in succession). Now I am getting this message: [org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner] - <Could not obtain lock. Aborting cleanup.>
My ticket registry now has 2.7 million rows and growing. We are running CAS server 3.4.5 with 3 CAS instances behind a load balancer. All 3 have the same cas.properties: cas.securityContext.serviceProperties.service=https://go.utah.edu/cas/services/j_acegi_cas_security_check # Names of roles allowed to access the CAS service manager cas.securityContext.serviceProperties.adminRoles=ROLE_ADMIN cas.securityContext.casProcessingFilterEntryPoint.loginUrl=https://go.utah.edu/cas/login cas.securityContext.ticketValidator.casServerUrlPrefix=https://go.utah.edu/cas cas.themeResolver.defaultThemeName=default cas.viewResolver.basename=default_views host.name=cas ticket.cleaner.database.platform=SQL92 #database.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect #database.hibernate.dialect=org.hibernate.dialect.MySQLDialect #database.hibernate.dialect=org.hibernate.dialect.HSQLDialect My ticket registry xml looks like this: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- Ticket Registry --> <bean id="ticketRegistry" class="org.jasig.cas.ticket.registry.JpaTicketRegistry"> <constructor-arg index="0" ref="entityManagerFactory" /> </bean> <!-- TICKET REGISTRY CLEANER --> <bean id="ticketRegistryCleaner" class="org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner" p:ticketRegistry-ref="ticketRegistry" p:lock-ref="cleanerLock" /> <bean id="cleanerLock" class="org.jasig.cas.ticket.registry.support.JdbcLockingStrategy" p:uniqueId="${host.name}" p:platform="${ticket.cleaner.database.platform}" p:applicationId="cas-ticket-registry-cleaner" p:dataSource-ref="dataSource" /> <bean id="ticketRegistryCleanerJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" p:targetObject-ref="ticketRegistryCleaner" p:targetMethod="clean" /> <bean id="periodicTicketRegistryCleanerTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean" p:jobDetail-ref="ticketRegistryCleanerJobDetail" p:startDelay="20000" p:repeatInterval="1800000" /> </beans> Any ideas? Thanks, Bryan -- You are currently subscribed to [email protected] as: [email protected] To unsubscribe, change settings or access archives, see http://www.ja-sig.org/wiki/display/JSG/cas-user
