3.4.11 here, also using MySQL. -baron
On Thu, Mar 20, 2014 at 03:30:37PM +0100, J?r?me LELEU wrote: > >Which CAS server version are we talking about? > >2014-03-20 7:16 GMT+01:00 Andrew Morgan <[email protected]>: > >> This is the same behavior I've seen in my own testing. When the MySQL >> database backend is unavailable, CAS is also unavailable. >> >> Is there someone out there for whom CAS continues working when the >> database is unavailable? >> >> On Wed, 19 Mar 2014, Baron Fujimoto wrote: >> >> I'm assuming config error, but am at a loss as to what specifically. >>> >>> The documentation notes on the availability of Services Management >>> Application Database says, "If the Services Management Application >>> database happens to be unavailable you will still be able to perform >>> service authorization. CAS maintains an in-memory collection of services >>> that is periodically refreshed from the database. If the database is >>> down, the periodic refresh process will fail. But the in-memory data will >>> continue to be available to support service authorization." >>> >>> <https://wiki.jasig.org/display/CASUM/Configuring#Configuring- >>> NotesontheavailabilityofServicesManagementApplicationDatabase> >>> >>> However, we have reproducibly determined that when our services managment >>> database is unavailable, users see following error: >>> >>> === >>> CAS is Unavailable >>> >>> There was an error trying to complete your request. Please notify your >>> support desk or try again. >>> === >>> >>> and I find this error in Tomcat's catalina.out logfile: >>> >>> === >>> 2014-03-19 09:50:21,987 ERROR [org.quartz.core.ErrorLogger] - <Job >>> (DEFAULT.serviceRegistryReloaderJobDetail threw an exception.> >>> org.quartz.SchedulerException: Job threw an unhandled exception. [See >>> nested exception: org.springframework.scheduling.quartz. >>> JobMethodInvocationFailedException: Invocation of method 'reload' on >>> target class [class com.sun.proxy.$Proxy27] failed; nested exception is >>> org.springframework.dao.DataAccessResourceFailureException: Cannot open >>> connection; nested exception is >>> org.hibernate.exception.JDBCConnectionException: >>> Cannot open connection] >>> at org.quartz.core.JobRunShell.run(JobRunShell.java:213) >>> at org.quartz.simpl.SimpleThreadPool$WorkerThread. >>> run(SimpleThreadPool.java:525) >>> Caused by: org.springframework.scheduling.quartz. >>> JobMethodInvocationFailedException: Invocation of method 'reload' on >>> target class [class com.sun.proxy.$Proxy27] failed; nested exception is >>> org.springframework.dao.DataAccessResourceFailureException: Cannot open >>> connection; nested exception is >>> org.hibernate.exception.JDBCConnectionException: >>> Cannot open connection >>> [...] >>> === >>> >>> I believe this is the relevant configuration from >>> deployerConfigContext.xml: >>> >>> <!-- >>> Define the Service Registry >>> --> >>> <bean id="serviceRegistryDao" class="org.jasig.cas.services. >>> JpaServiceRegistryDaoImpl" >>> p:entityManagerFactory-ref="entityManagerFactory" /> >>> >>> <!-- Persistent Service Registry: mysql --> >>> <!-- This is the EntityManagerFactory configuration for Hibernate --> >>> <bean id="entityManagerFactory" class="org.springframework.orm.jpa. >>> LocalContainerEntityManagerFactoryBean"> >>> <property name="dataSource" ref="dataSource"/> >>> <property name="jpaVendorAdapter"> >>> <bean class="org.springframework.orm.jpa.vendor. >>> HibernateJpaVendorAdapter"> >>> <property name="generateDdl" value="true"/> >>> <property name="showSql" value="true" /> >>> </bean> >>> </property> >>> <property name="jpaProperties"> >>> <props> >>> <prop key="hibernate.dialect">${ >>> database.hibernate.dialect}</prop> >>> <prop key="hibernate.hbm2ddl.auto">update</prop> >>> </props> >>> </property> >>> </bean> >>> >>> <bean id="transactionManager" class="org.springframework. >>> orm.jpa.JpaTransactionManager"> >>> <property name="entityManagerFactory" ref="entityManagerFactory"/> >>> </bean> >>> >>> <tx:annotation-driven transaction-manager="transactionManager"/> >>> >>> <bean >>> id="dataSource" >>> class="org.apache.commons.dbcp.BasicDataSource" >>> p:driverClassName="com.mysql.jdbc.Driver" >>> p:url="${service.registry.url}" >>> p:username="${service.registry.username}" >>> p:password="${service.registry.password}" /> >>> === >>> >>> ${database.hibernate.dialect} is defined in cas.properties as: >>> database.hibernate.dialect=org.hibernate.dialect.MySQLDialect >>> >>> and pom.xml contains: >>> >>> === >>> <!-- Dependencies for database classes --> >>> <!-- >>> Apache Commons DBCP >>> --> >>> <dependency> >>> <groupId>commons-dbcp</groupId> >>> <artifactId>commons-dbcp</artifactId> >>> <version>1.4</version> >>> <scope>runtime</scope> >>> </dependency> >>> >>> <!-- >>> Hibernate Entities >>> --> >>> <dependency> >>> <groupId>org.hibernate</groupId> >>> <artifactId>hibernate-entitymanager</artifactId> >>> <version>3.5.0-CR-2</version> >>> </dependency> >>> >>> <!-- >>> MySQL Connector >>> --> >>> <dependency> >>> <groupId>mysql</groupId> >>> <artifactId>mysql-connector-java</artifactId> >>> <version>5.1.20</version> >>> </dependency> >>> >>> <!-- End Dependencies for database jars --> >>> === -- Baron Fujimoto <[email protected]> :: UH Information Technology Services minutas cantorum, minutas balorum, minutas carboratum desendus pantorum -- 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
