Preventing a spring boot service from failing on startup with Redis not present -


we have number of services use spring boot (v1.2.3) , spring data redis using spring-boot-starter-redis dependency.

also using spring session , corresponding redis dependency

        <dependency>             <groupid>org.springframework.session</groupid>             <artifactid>spring-session</artifactid>             <version>1.0.0.release</version>         </dependency>          <dependency>             <groupid>org.springframework.session</groupid>             <artifactid>spring-session-data-redis</artifactid>             <version>1.0.0.release</version>             <type>pom</type>         </dependency> 

if redis server not started or cannot reached service issues fail , aborts startup.

is possible allow service not fail on startup? need setup in order so?

note: tracked critical failure down , in redis support spring session. failure thrown here ripples cause service failure out. possible have fallback regular session if connectivity redis failed?

redishttpsessionconfiguration.java @ line 156  public void afterpropertiesset() throws exception {      >>>   redisconnection connection = connectionfactory.getconnection(); 

stack trace follows:

2015-06-02 17:20:00.214  warn 67248 --- [           main] ationconfigembeddedwebapplicationcontext : exception encountered during context initialization - cancelling refresh attempt org.springframework.beans.factory.beancreationexception: error creating bean name 'enablerediskeyspacenotificationsinitializer' defined in class path resource [org/springframework/session/data/redis/config/annotation/web/http/redishttpsessionconfiguration.class]: invocation of init method failed; nested exception org.springframework.data.redis.redisconnectionfailureexception: cannot jedis connection; nested exception redis.clients.jedis.exceptions.jedisconnectionexception: not resource pool     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1566) ~[spring-beans-4.1.5.release.jar:4.1.5.release]     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:539) ~[spring-beans-4.1.5.release.jar:4.1.5.release]     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:476) ~[spring-beans-4.1.5.release.jar:4.1.5.release]     @ org.springframework.beans.factory.support.abstractbeanfactory$1.getobject(abstractbeanfactory.java:303) ~[spring-beans-4.1.5.release.jar:4.1.5.release]     @ org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:230) ~[spring-beans-4.1.5.release.jar:4.1.5.release]     @ org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:299) ~[spring-beans-4.1.5.release.jar:4.1.5.release]     @ org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:194) ~[spring-beans-4.1.5.release.jar:4.1.5.release]     @ org.springframework.beans.factory.support.defaultlistablebeanfactory.preinstantiatesingletons(defaultlistablebeanfactory.java:755) ~[spring-beans-4.1.5.release.jar:4.1.5.release]     @ org.springframework.context.support.abstractapplicationcontext.finishbeanfactoryinitialization(abstractapplicationcontext.java:757) ~[spring-context-4.1.5.release.jar:4.1.5.release]     @ org.springframework.context.support.abstractapplicationcontext.refresh(abstractapplicationcontext.java:480) ~[spring-context-4.1.5.release.jar:4.1.5.release]     @ org.springframework.boot.context.embedded.embeddedwebapplicationcontext.refresh(embeddedwebapplicationcontext.java:118) [spring-boot-1.2.2.release.jar:1.2.2.release]     @ org.springframework.boot.springapplication.refresh(springapplication.java:686) [spring-boot-1.2.2.release.jar:1.2.2.release]     @ org.springframework.boot.springapplication.run(springapplication.java:320) [spring-boot-1.2.2.release.jar:1.2.2.release]     @ com.cisco.services.rpil.microserviceapplication.main(microserviceapplication.java:47) [classes/:na] caused by: org.springframework.data.redis.redisconnectionfailureexception: cannot jedis connection; nested exception redis.clients.jedis.exceptions.jedisconnectionexception: not resource pool     @ org.springframework.data.redis.connection.jedis.jedisconnectionfactory.fetchjedisconnector(jedisconnectionfactory.java:140) ~[spring-data-redis-1.4.2.release.jar:1.4.2.release]     @ org.springframework.data.redis.connection.jedis.jedisconnectionfactory.getconnection(jedisconnectionfactory.java:229) ~[spring-data-redis-1.4.2.release.jar:1.4.2.release]     @ org.springframework.data.redis.connection.jedis.jedisconnectionfactory.getconnection(jedisconnectionfactory.java:57) ~[spring-data-redis-1.4.2.release.jar:1.4.2.release]     @ org.springframework.session.data.redis.config.annotation.web.http.redishttpsessionconfiguration$enablerediskeyspacenotificationsinitializer.afterpropertiesset(redishttpsessionconfiguration.java:156) ~[spring-session-1.0.0.release.jar:na]     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.invokeinitmethods(abstractautowirecapablebeanfactory.java:1625) ~[spring-beans-4.1.5.release.jar:4.1.5.release]     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1562) ~[spring-beans-4.1.5.release.jar:4.1.5.release]     ... 13 common frames omitted caused by: redis.clients.jedis.exceptions.jedisconnectionexception: not resource pool     @ redis.clients.util.pool.getresource(pool.java:42) ~[jedis-2.5.2.jar:na]     @ redis.clients.jedis.jedispool.getresource(jedispool.java:84) ~[jedis-2.5.2.jar:na]     @ redis.clients.jedis.jedispool.getresource(jedispool.java:10) ~[jedis-2.5.2.jar:na]     @ org.springframework.data.redis.connection.jedis.jedisconnectionfactory.fetchjedisconnector(jedisconnectionfactory.java:133) ~[spring-data-redis-1.4.2.release.jar:1.4.2.release]     ... 18 common frames omitted caused by: redis.clients.jedis.exceptions.jedisconnectionexception: java.net.connectexception: connection refused     @ redis.clients.jedis.connection.connect(connection.java:150) ~[jedis-2.5.2.jar:na]     @ redis.clients.jedis.binaryclient.connect(binaryclient.java:71) ~[jedis-2.5.2.jar:na]     @ redis.clients.jedis.binaryjedis.connect(binaryjedis.java:1783) ~[jedis-2.5.2.jar:na]     @ redis.clients.jedis.jedisfactory.makeobject(jedisfactory.java:65) ~[jedis-2.5.2.jar:na]     @ org.apache.commons.pool2.impl.genericobjectpool.create(genericobjectpool.java:836) ~[commons-pool2-2.2.jar:2.2]     @ org.apache.commons.pool2.impl.genericobjectpool.borrowobject(genericobjectpool.java:434) ~[commons-pool2-2.2.jar:2.2]     @ org.apache.commons.pool2.impl.genericobjectpool.borrowobject(genericobjectpool.java:361) ~[commons-pool2-2.2.jar:2.2]     @ redis.clients.util.pool.getresource(pool.java:40) ~[jedis-2.5.2.jar:na]     ... 21 common frames omitted caused by: java.net.connectexception: connection refused     @ java.net.plainsocketimpl.socketconnect(native method) ~[na:1.8.0_25]     @ java.net.abstractplainsocketimpl.doconnect(abstractplainsocketimpl.java:345) ~[na:1.8.0_25]     @ java.net.abstractplainsocketimpl.connecttoaddress(abstractplainsocketimpl.java:206) ~[na:1.8.0_25]     @ java.net.abstractplainsocketimpl.connect(abstractplainsocketimpl.java:188) ~[na:1.8.0_25]     @ java.net.sockssocketimpl.connect(sockssocketimpl.java:392) ~[na:1.8.0_25]     @ java.net.socket.connect(socket.java:589) ~[na:1.8.0_25]     @ redis.clients.jedis.connection.connect(connection.java:144) ~[jedis-2.5.2.jar:na]     ... 28 common frames omitted 


Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -