Hi,

I think that's make no different than catching
PersistenceBrokerException because it is the 
Subclass of OJBRuntimeException.

Whereas, for my case where I uses OJB in session bean, it's throw
RemoteException whenever there is communication link breakdown. The
PersistenceBrokerExeption catch in session bean was not propagate to the
web container. Hopefully, this is correct.

Cheers,
Stephen

    

>-----Original Message-----
>From: kristian meier [mailto:[EMAIL PROTECTED] 
>Sent: 12 December 2003 22:30
>To: OJB Users List
>Subject: Re: automatic failover
>
>
>Hi,
>
>to avoid OJBRuntimeException which are used by OJB to wrap 
>SQLException, 
>we simply catch them and wrap them into our 
>PersistentException which is 
>an application exception. that works fine for us.
>
>  try {
>    this.ojb.broker().store(account);
>  }
>  catch (OJBRuntimeException e) {
>    throw new PersistentException(
>      "OJB error creating account: " + account,
>      e);
>  }
>
>
>best wishes Kristian
>
>
>Stephen Ting wrote:
>> Can anybody give me some hints on how to design a failover 
>system with 
>> OJB in appserver to database layer?
>>  
>> I use OJB PB api within a session bean. The following code snippet 
>> roughly show roughly what i did. whenever the link from the 
>> application server to the database is down. I was not able catch the 
>> exception at the session bean to handle it properly. and the sql 
>> exception is propagate to the presentation layer. Does anybody have 
>> any experience how to design an automatic failover in this 
>scenario. I 
>> try to catch SQLException, but ecplise won't compile.. it said, the 
>> catch block is unreachable.
>>  
>>  
>> try{
>>     ...
>>     broker = getBroker();
>>     Collection col = broker.getCollectionByQuery(query);    
>>    ...
>> }catch(PersistenceBrokerException ex){
>>   ...
>> }
>>     
>> any help are very much appreciated.. thanks
>>  
>> Regards,
>>  
>> Stephen Ting
>>  
>>  
>> 2003-12-11 11:43:30,156 INFO  [STDOUT] 
>> [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR: 2003-12-11 
>> 11:43:30,156 INFO  [STDOUT] SQLException during the execution of the 
>> query (for a my.com.shinyang.eply.model.LogSupplier):
>> Communication link failure: java.io.IOException, underlying cause: 
>> Unexpected end of input stream
>>  
>> ** BEGIN NESTED EXCEPTION **
>>  
>> java.io.IOException
>> MESSAGE: Unexpected end of input stream
>>  
>> STACKTRACE:
>>  
>> java.io.IOException: Unexpected end of input stream
>>  at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1405)
>>  at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1775)
>>  at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1020)
>>  at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1109)
>>  at com.mysql.jdbc.Connection.execSQL(Connection.java:2030)
>>  at 
>> 
>com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1
>> 56
>> 3)
>>  at
>> 
>org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.execut
>eQuery(Wr
>> appedPreparedStatement.java:302)
>>  at
>> org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown
>> Source)
>>  at 
>org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown
>> Source)
>>  at 
>org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown Source)
>>  at
>> 
>org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterat
>or(Unknow
>> n Source)
>>  at
>> 
>org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorF
>romQuery(
>> Unknown Source)
>>  at
>> 
>org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFro
>mQuery(Un
>> known Source)
>>  at
>> 
>org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionB
>yQuery(Un
>> known Source)
>>  at
>> 
>org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionB
>yQuery(Un
>> known Source)
>>  at
>> 
>org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionB
>yQuery(Un
>> known Source)
>>  at
>> 
>org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionB
>yQuery(Un
>> known Source)
>>  at
>> 
>org.apache.ojb.broker.core.DelegatingPersistenceBroker.getColle
>ctionByQu
>> ery(Unknown Source)
>>  at
>> 
>org.apache.ojb.broker.core.DelegatingPersistenceBroker.getColle
>ctionByQu
>> ery(Unknown Source)
>>  at
>> 
>my.com.shinyang.eply.service.ejb.SearchSessionBean.doSearch(Sea
>rchSessio
>> nBean.java:308)
>>  at
>> 
>my.com.shinyang.eply.service.ejb.SearchSessionBean.doSearch(Sea
>rchSessio
>> nBean.java:373)
>>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>  at
>> 
>sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccesso
>rImpl.jav
>> a:39)
>>  at
>> 
>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMetho
>dAccessor
>> Impl.java:25)
>>  at java.lang.reflect.Method.invoke(Method.java:324)
>>  at
>> 
>org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.in
>voke(Stat
>> elessSessionContainer.java:683)
>>  at
>> 
>org.jboss.resource.connectionmanager.CachedConnectionIntercepto
>r.invoke(
>> CachedConnectionInterceptor.java:185)
>>  at
>> 
>org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invok
>e(Statele
>> ssSessionInstanceInterceptor.java:72)
>>  at
>> 
>org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(Abstract
>TxInterce
>> ptor.java:84)
>>  at
>> 
>org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxIn
>terceptor
>> CMT.java:267)
>>  at
>> 
>org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.
>java:128)
>>  at
>> 
>org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterc
>eptor.jav
>> a:118)
>>  at 
>org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
>>  at
>> 
>org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(Prox
>yFactoryF
>> inderInterceptor.java:122)
>>  at
>> 
>org.jboss.ejb.StatelessSessionContainer.internalInvoke(Stateles
>sSessionC
>> ontainer.java:331)
>>  at org.jboss.ejb.Container.invoke(Container.java:700)
>>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>  at
>> 
>sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccesso
>rImpl.jav
>> a:39)
>>  at
>> 
>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMetho
>dAccessor
>> Impl.java:25)
>>  at java.lang.reflect.Method.invoke(Method.java:324)
>>  at
>> 
>org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(Reflect
>edMBeanDi
>> spatcher.java:284)
>>  at 
>org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
>>  at
>> org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:101)
>>  at
>> 
>org.jboss.invocation.InvokerInterceptor.invoke(InvokerIntercept
>or.java:9
>> 0)
>>  at
>> 
>org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterc
>eptor.jav
>> a:46)
>>  at
>> 
>org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:45)
>>  at
>> 
>org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(Stateles
>sSessionI
>> nterceptor.java:100)
>>  at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:85)
>>  at $Proxy60.doSearch(Unknown Source)
>>  at
>> 
>my.com.shinyang.eply.bd.SearchDelegateEJBImpl.doSearch(SearchDe
>legateEJB
>> Impl.java:70)
>>  at
>> 
>my.com.shinyang.eply.syl.webdesk.SylSupplierAction.searchSuppli
>er(SylSup
>> plierAction.java:254)
>>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>  at
>> 
>sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccesso
>rImpl.jav
>> a:39)
>>  at
>> 
>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMetho
>dAccessor
>> Impl.java:25)
>>  at java.lang.reflect.Method.invoke(Method.java:324)
>>  at
>> 
>org.apache.struts.actions.DispatchAction.dispatchMethod(Dispatc
>hAction.j
>> ava:280)
>>  at
>> 
>org.apache.struts.actions.DispatchAction.execute(DispatchAction
>.java:216
>> )
>>  at
>> 
>org.apache.struts.action.RequestProcessor.processActionPerform(
>RequestPr
>> ocessor.java:484)
>>  at
>> 
>org.apache.struts.action.RequestProcessor.process(RequestProces
>sor.java:
>> 274)
>>  at
>> 
>org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
>>  at
>> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
>>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>>  at
>> 
>org.apache.catalina.core.ApplicationFilterChain.internalDoFilte
>r(Applica
>> tionFilterChain.java:247)
>>  at
>> 
>org.apache.catalina.core.ApplicationFilterChain.doFilter(Applic
>ationFilt
>> erChain.java:193)
>>  at
>> 
>org.apache.catalina.core.StandardWrapperValve.invoke(StandardWr
>apperValv
>> e.java:256)
>>  at
>> 
>org.apache.catalina.core.StandardPipeline$StandardPipelineValve
>Context.i
>> nvokeNext(StandardPipeline.java:643)
>>  at
>> 
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeli
>ne.java:4
>> 80)
>>  at
>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>  at
>> 
>org.apache.catalina.core.StandardContextValve.invoke(StandardCo
>ntextValv
>> e.java:191)
>>  at
>> 
>org.apache.catalina.core.StandardPipeline$StandardPipelineValve
>Context.i
>> nvokeNext(StandardPipeline.java:643)
>>  at
>> 
>org.jboss.web.tomcat.security.JBossSecurityMgrRealm.invoke(JBos
>sSecurity
>> MgrRealm.java:220)
>>  at
>> 
>org.apache.catalina.core.StandardPipeline$StandardPipelineValve
>Context.i
>> nvokeNext(StandardPipeline.java:641)
>>  at
>> 
>org.apache.catalina.authenticator.AuthenticatorBase.invoke(Auth
>enticator
>> Base.java:553)
>>  at
>> 
>org.apache.catalina.core.StandardPipeline$StandardPipelineValve
>Context.i
>> nvokeNext(StandardPipeline.java:641)
>>  at
>> 
>org.apache.catalina.valves.CertificatesValve.invoke(Certificate
>sValve.ja
>> va:246)
>>  at
>> 
>org.apache.catalina.core.StandardPipeline$StandardPipelineValve
>Context.i
>> nvokeNext(StandardPipeline.java:641)
>>  at
>> 
>org.jboss.web.tomcat.tc4.statistics.ContainerStatsValve.invoke(
>Container
>> StatsValve.java:76)
>>  at
>> 
>org.apache.catalina.core.StandardPipeline$StandardPipelineValve
>Context.i
>> nvokeNext(StandardPipeline.java:641)
>>  at
>> 
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeli
>ne.java:4
>> 80)
>>  at
>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>  at
>> 
>org.apache.catalina.core.StandardContext.invoke(StandardContext
>.java:241
>> 6)
>>  at
>> 
>org.apache.catalina.core.StandardHostValve.invoke(StandardHostV
>alve.java
>> :180)
>>  at
>> 
>org.apache.catalina.core.StandardPipeline$StandardPipelineValve
>Context.i
>> nvokeNext(StandardPipeline.java:643)
>>  at
>> 
>org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDis
>patcherVa
>> lve.java:171)
>>  at
>> 
>org.apache.catalina.core.StandardPipeline$StandardPipelineValve
>Context.i
>> nvokeNext(StandardPipeline.java:641)
>>  at
>> 
>org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportV
>alve.java
>> :172)
>>  at
>> 
>org.apache.catalina.core.StandardPipeline$StandardPipelineValve
>Context.i
>> nvokeNext(StandardPipeline.java:641)
>>  at
>> 
>org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(S
>ecurityAs
>> sociationValve.java:65)
>>  at
>> 
>org.apache.catalina.core.StandardPipeline$StandardPipelineValve
>Context.i
>> nvokeNext(StandardPipeline.java:641)
>>  at
>> 
>org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve
>.java:577
>> )
>>  at
>> 
>org.apache.catalina.core.StandardPipeline$StandardPipelineValve
>Context.i
>> nvokeNext(StandardPipeline.java:641)
>>  at
>> 
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeli
>ne.java:4
>> 80)
>>  at
>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>  at
>> 
>org.apache.catalina.core.StandardEngineValve.invoke(StandardEng
>ineValve.
>> java:174)
>>  at
>> 
>org.apache.catalina.core.StandardPipeline$StandardPipelineValve
>Context.i
>> nvokeNext(StandardPipeline.java:643)
>>  at
>> 
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeli
>ne.java:4
>> 80)
>>  at
>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>  at
>> 
>org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
>>  at
>> 
>org.apache.coyote.http11.Http11Processor.process(Http11Processo
>r.java:60
>> 1)
>>  at
>> 
>org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler
>.processC
>> onnection(Http11Protocol.java:392)
>>  at
>> 
>org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoin
>t.java:56
>> 5)
>>  at
>> 
>org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(T
>hreadPool
>> .java:619)
>>  at java.lang.Thread.run(Thread.java:534)
>>  
>> 
>> ** END NESTED EXCEPTION **
>> 
>>  
>> 
>
>-- 
>----------------------------------------------------------------------
>  Jentro Technologies GmbH
>  Kristian Meier, Developer
>----------------------------------------------------------------------
>  Rosenheimer Str. 145e     81671 Munich, Germany
>  Tel. +49 89 189 169 80    mailto: [EMAIL PROTECTED]
>  Fax. +49 89 189 169 99    internet: http://www.jentro.com
>----------------------------------------------------------------------
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to