私はSpringとHibernateを使用して、2つのデータソース構成を使用して複数のデータベースサーバーの保存、更新を同時に行っています。私は使っている
org.springframework.jdbc.datasource.DriverManagerDataSource
データソースを作成するためのクラス。データベース サーバーの両方が稼働中であれば、正常に動作しています。データベース サーバーの 1 つを閉じて例外をキャッチしようとすると、catch ブロックに入らず、Web ブラウザーにスタック トレース エラーが表示されます。
Stack Trace:
** ネストされた例外の開始 ** java.net.ConnectException メッセージ: 接続が拒否されました: 接続 スタックトレース: java.net.ConnectException: 接続が拒否されました: 接続 java.net.PlainSocketImpl.socketConnect(ネイティブメソッド)で java.net.PlainSocketImpl.doConnect (PlainSocketImpl.java:333) で java.net.PlainSocketImpl.connectToAddress (PlainSocketImpl.java:195) で java.net.PlainSocketImpl.connect (PlainSocketImpl.java:182) で java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)で java.net.Socket.connect(Socket.java:525) で java.net.Socket.connect(Socket.java:475) で java.net.Socket で (Socket.java:372) java.net.Socket で (Socket.java:215) com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256) で com.mysql.jdbc.MysqlIO で。(MysqlIO.java:271) com.mysql.jdbc.Connection.createNewIO(Connection.java:2771) で com.mysql.jdbc.Connection.(Connection.java:1555) で com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) で java.sql.DriverManager.getConnection(DriverManager.java:582) で java.sql.DriverManager.getConnection(DriverManager.java:154) で org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:173) で org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:164) で org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:149) で org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:119) で org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:82) で org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446) で org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167) で org.hibernate.jdbc.AbstractBatcher.prepareStatement (AbstractBatcher.java:116) で org.hibernate.id.insert.AbstractSelectingDelegate.performInsert (AbstractSelectingDelegate.java:54) で org.hibernate.persister.entity.AbstractEntityPersister.insert (AbstractEntityPersister.java:2186) で org.hibernate.persister.entity.AbstractEntityPersister.insert (AbstractEntityPersister.java:2666) で org.hibernate.action.EntityIdentityInsertAction.execute (EntityIdentityInsertAction.java:71) で org.hibernate.engine.ActionQueue.execute (ActionQueue.java:279) で org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate (AbstractSaveEventListener.java:321) で org.hibernate.event.def.AbstractSaveEventListener.performSave (AbstractSaveEventListener.java:204) で org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId (AbstractSaveEventListener.java:130) で org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210) で org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId (DefaultSaveEventListener.java:56) で org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient (DefaultSaveOrUpdateEventListener.java:195) で org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50) で org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93) で org.hibernate.impl.SessionImpl.fireSave (SessionImpl.java:562) で org.hibernate.impl.SessionImpl.save (SessionImpl.java:550) で org.hibernate.impl.SessionImpl.save (SessionImpl.java:546) で org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:686) で org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:1) で org.springframework.orm.hibernate3.HibernateTemplate.doExecute (HibernateTemplate.java:406) で org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374) で org.springframework.orm.hibernate3.HibernateTemplate.save (HibernateTemplate.java:683) で com.service.RegistrationServiceImpl.add(RegistrationServiceImpl.java:56) で com.controller.RegistrationController.onSubmit (RegistrationController.java:48) で org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission(SimpleFormController.java:272) で org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:268) で org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) で org.springframework.web.servlet.mvc.SimpleControllerHandlerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) で org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:763) で org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:709) で org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:613) で org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:536) で javax.servlet.http.HttpServlet.service(HttpServlet.java:647) で javax.servlet.http.HttpServlet.service(HttpServlet.java:729) で org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:269) で org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:188) で org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:213) で org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:172) で org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:127) で org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) で org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:108) で org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:174) で org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879) で org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) で org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket (PoolTcpEndpoint.java:528) で org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt (LeaderFollowerWorkerThread.java:81) で org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) で java.lang.Thread.run(Thread.java:619) で ** ネストされた例外の終了 *
この例外を処理するにはどうすればよいですか。db サーバーの 1 つがダウンしていることを GUI に表示したい db サーバーのいずれかがダウンしている場合。
これについて助けてください。