Я заметил, что соединение SQL закрывается через 30 минут, поэтому я пытаюсь увеличить его до 60 минут.Ниже приведен мой класс конфигурации Spring Datasource для Sql server 2008, и я пытаюсь установить время ожидания соединения как ds.getConnectionProperties().put("socketTimeout", jdbcsocketTimeout);
, но при запуске приложения я получаю ошибку Error creating bean with name 'entityManagerFactory'
.
@Configuration
@EnableJpaRepositories
public class JpaConfiguration {
@Value("${jdbc.driverClassName}")
String jdbcDriverClassName;
@Value("${jdbc.url}")
String jdbcUrl;
@Value("${jdbc.username}")
String jdbcUsername;
@Value("${jdbc.password}")
String jdbcPassword;
@Value("${jdbc.socketTimeout}")
int jdbcsocketTimeout;
@Bean
public javax.sql.DataSource remoteDataSource() {
DriverManagerDataSource ds = new DriverManagerDataSource(jdbcUrl, jdbcUsername, jdbcPassword);
ds.setDriverClassName(jdbcDriverClassName);
System.out.println("jdbcsocketTimeout "+jdbcsocketTimeout);
//ds.getConnectionProperties().put("socketTimeout", jdbcsocketTimeout);
return ds;
}
@Bean
public Map<String, Object> jpaProperties() {
Map<String, Object> props = new HashMap<String, Object>();
props.put("hibernate.dialect", SQLServer2008Dialect.class.getName());
return props;
}
@Bean
public JpaVendorAdapter jpaVendorAdapter() {
HibernateJpaVendorAdapter hibernateJpaVendorAdapter = new HibernateJpaVendorAdapter();
hibernateJpaVendorAdapter.setGenerateDdl(false);
hibernateJpaVendorAdapter.setDatabase(Database.SQL_SERVER);
return hibernateJpaVendorAdapter;
}
@Bean
public PlatformTransactionManager transactionManager() {
return new JpaTransactionManager(localContainerEntityManagerFactoryBean().getObject());
}
@Bean(name = "entityManagerFactory")
public LocalContainerEntityManagerFactoryBean localContainerEntityManagerFactoryBean() {
LocalContainerEntityManagerFactoryBean lef = new LocalContainerEntityManagerFactoryBean();
lef.setDataSource(this.remoteDataSource());
lef.setPackagesToScan(getClass().getPackage().getName());
lef.setJpaPropertyMap(this.jpaProperties());
lef.setJpaVendorAdapter(this.jpaVendorAdapter());
return lef;
}
}
Может кто-нибудь помочь мне установить тайм-аут соединения в вышеприведенном классе?