okay, good. that shows that I understood your blog/post, correctly, and add
this to my app, accordingly. thanks!


On Sun, Nov 3, 2013 at 4:20 PM, Romain Manni-Bucau <rmannibu...@gmail.com>wrote:

> Failover is a facase over normal resources. Only these resource can/should
> be pooled
> Le 3 nov. 2013 21:51, "Howard W. Smith, Jr." <smithh032...@gmail.com> a
> écrit :
>
> > interesting. I can definitely use this as a reference if (ever)
> necessary,
> > thanks.
> >
> > which brings me to my next question,
> >
> >         //
> >         // take care next strategies can break multiple calls on the
> facade
> >         // it is only intended to be used for connection selection
> >         //
> >
> >
> > I recognized that in the code. I know I make many calls to @Stateless
> @EJB
> > facade objects to read/write data from/to database, and I also configured
> > tomcat jdbc pool  to allow for many connections...in/via tomee.xml
> > <Resource .../>.
> >
> > so, my question... what is the rule of thumb when configuring jdbc pool
> and
> > tomee/openejb failover via dynamic datasources? on my development/test
> > server, I have the following:
> >
> > <Resource id="jdbc/main" type="javax.sql.DataSource">
> >   JdbcDriver org.apache.derby.jdbc.EmbeddedDriver
> >   JdbcUrl jdbc:derby:C:/javadb/databases/mcmsdev;create=true
> >   UserName ....
> >   Password ....
> >   JtaManaged true
> >   jmxEnabled true
> >   LogSql false
> >   InitialSize 10
> >   MaxActive 100
> >   MaxIdle 30
> >   MaxWait 10000
> >   minIdle 10
> >   suspectTimeout 60
> >   removeAbandoned true
> >   removeAbandonedTimeout 180
> >   timeBetweenEvictionRunsMillis 30000
> >   jdbcInterceptors=StatementCache(max=128)
> > </Resource>
> >
> > <Resource id="jdbc/fallback" type="javax.sql.DataSource">
> >   JdbcDriver org.apache.derby.jdbc.EmbeddedDriver
> >   JdbcUrl jdbc:derby:C:/javadb/databases/mcms;create=true
> >   UserName ....
> >   Password ....
> >   JtaManaged true
> >   jmxEnabled true
> >   LogSql false
> >   InitialSize 10
> >   MaxActive 100
> >   MaxIdle 30
> >   MaxWait 10000
> >   minIdle 10
> >   suspectTimeout 60
> >   removeAbandoned true
> >   removeAbandonedTimeout 180
> >   timeBetweenEvictionRunsMillis 30000
> >   jdbcInterceptors=StatementCache(max=128)
> > </Resource>
> >
> > <Resource id="failover-router"
> > class-name="org.apache.openejb.resource.jdbc.router.FailOverRouter">
> >    datasourceNames = jdbc/main,jdbc/fallback
> > </Resource>
> >
> > <Resource id="jdbc/mcmsJta" type="DataSource"
> provider="RoutedDataSource">
> >   router = failover-router
> > </Resource>
> >
> > should I be configuring tomcat jdbc pooling on the dynamic datasources,
> or
> > on the routed datasource? also, I recognized something in the log file,
> > since RoutedDataSource has no URL, the following shows up in the log when
> > starting TomEE:
> >
> > INFO: Creating Resource(id=jdbc/mcmsJta)
> > Nov 03, 2013 9:19:04 AM org.apache.openejb.assembler.classic.Assembler
> > createResource
> > INFO: can't find url for jdbc/mcmsJta will not monitor it
> >
> >
> >
> >
> > On Sun, Nov 3, 2013 at 10:52 AM, Romain Manni-Bucau
> > <rmannibu...@gmail.com>wrote:
> >
> > >  lookhttp://
> > >
> >
> svn.apache.org/repos/asf/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/router/FailOverRouter.java
> > > last method
> > >
> > > it can still be enhanced a lot
> > > Romain Manni-Bucau
> > > Twitter: @rmannibucau
> > > Blog: http://rmannibucau.wordpress.com/
> > > LinkedIn: http://fr.linkedin.com/in/rmannibucau
> > > Github: https://github.com/rmannibucau
> > >
> > >
> > >
> > > 2013/11/3 Howard W. Smith, Jr. <smithh032...@gmail.com>:
> > > > okay, and one last question, is there a bit more documentation on the
> > > > following, so we can know what to expect, and the implementation is
> > quite
> > > > sound, working as designed and no known issues with the following?
> > > >
> > > > <ul>
> > > > <li>default: the first is used while possible and others datasources
> > are
> > > > just backup, this is typically the failover case</li>
> > > > <li>random: any datasource of the list is used</li>
> > > > <li>reverse: between two call to a method the list is reversed</li>
> > > > <li>round-robin[%N]: round robin between datasources, you can specify
> > how
> > > > many step you browse between two calls using N (default is 1)</li>
> > > > </ul>
> > > >
> > > > i saw the limitations on the referenced pages (dynamic datasources),
> > but
> > > I
> > > > didn't see any known issues in your/Romain's post/blog.
> > > >
> > > > please excuse my ignorance, if I have not heard or seen much chatter
> > > about
> > > > this on the mail list. I usually try to pay attention to almost all
> > tomee
> > > > emails, especially those that interest me the most. :)
> > > >
> > > >
> > > >
> > > >
> > > > On Sun, Nov 3, 2013 at 10:22 AM, Romain Manni-Bucau
> > > > <rmannibu...@gmail.com>wrote:
> > > >
> > > >> If you dont use it then thats ok. We close the pool then, not
> > > connections
> > > >> Le 3 nov. 2013 16:19, "Howard W. Smith, Jr." <
> smithh032...@gmail.com>
> > a
> > > >> écrit :
> > > >>
> > > >> > FYI, I just stopped my local tomee, and recognized that my
> > > @Application
> > > >> > @PreDestroy has my code that stops Apache Derby prior to main and
> > > >> fallback
> > > >> > datasources are closed.
> > > >> >
> > > >> > is this okay?
> > > >> >
> > > >> > Nov 03, 2013 10:12:48 AM org.apache.catalina.core.StandardServer
> > await
> > > >> > INFO: A valid shutdown command was received via the shutdown port.
> > > >> Stopping
> > > >> > the Server instance.
> > > >> > Nov 03, 2013 10:12:48 AM org.apache.coyote.AbstractProtocol pause
> > > >> > INFO: Pausing ProtocolHandler ["http-nio-8080"]
> > > >> > Nov 03, 2013 10:12:48 AM org.apache.coyote.AbstractProtocol pause
> > > >> > INFO: Pausing ProtocolHandler ["ajp-bio-8009"]
> > > >> > Nov 03, 2013 10:12:48 AM org.apache.catalina.core.StandardService
> > > >> > stopInternal
> > > >> > INFO: Stopping service Catalina
> > > >> > Nov 03, 2013 10:12:48 AM pf.LoginFilter destroy
> > > >> > INFO: ...
> > > >> > Nov 03, 2013 10:12:48 AM
> > > org.apache.openejb.assembler.classic.Assembler
> > > >> > destroyApplication
> > > >> > INFO: Undeploying app:
> > > >> C:\apache-tomee-plus-1.6.0-SNAPSHOT\webapps\mcmsweb
> > > >> > Nov 03, 2013 10:12:48 AM pf.ApplicationScopeBean destroy
> > > >> > INFO: BEGIN
> > > >> > Nov 03, 2013 10:12:48 AM utils.database.DerbyUtil shutdown
> > > >> > INFO: DerbyUtil.java: shutdown() invoked
> > > >> > Nov 03, 2013 10:12:48 AM utils.database.DerbyUtil loadDriver
> > > >> > INFO: DerbyUtil.java: loadDriver(): Loaded driver
> > > >> > (org.apache.derby.jdbc.EmbeddedDriver) successfully
> > > >> > Nov 03, 2013 10:12:48 AM utils.database.DerbyUtil shutdown
> > > >> > INFO: DerbyUtil.java: shutdown(): Derby shut down normally
> > > >> > Nov 03, 2013 10:12:48 AM pf.ApplicationScopeBean destroy
> > > >> > INFO: gCalUtil.shutdown() completed
> > > >> > Nov 03, 2013 10:12:48 AM pf.ApplicationScopeBean destroy
> > > >> > INFO: jodConverter.shutdown() completed
> > > >> > Nov 03, 2013 10:12:48 AM mdb.ApplicationMessageBean shutdown
> > > >> > INFO: ApplicationMessageBean.shutdown() BEGIN
> > > >> > Nov 03, 2013 10:12:48 AM mdb.ApplicationMessageBean shutdown
> > > >> > INFO: ApplicationMessageBean.shutdown() END
> > > >> > Nov 03, 2013 10:12:48 AM pf.ApplicationScopeBean destroy
> > > >> > INFO: applicationMessageBean.shutdown() completed
> > > >> > Nov 03, 2013 10:12:48 AM pf.ThreadLocalImmolater immolate
> > > >> > INFO: immolated 305 values in ThreadLocals
> > > >> > Nov 03, 2013 10:12:48 AM pf.ApplicationScopeBean destroy
> > > >> > INFO: END
> > > >> > Nov 03, 2013 10:12:48 AM
> > org.apache.activemq.ra.ActiveMQEndpointWorker
> > > >> stop
> > > >> > INFO: Stopping
> > > >> > Nov 03, 2013 10:12:48 AM
> > org.apache.activemq.ra.ActiveMQEndpointWorker
> > > >> stop
> > > >> > INFO: Stopping
> > > >> > [EL Info]: 2013-11-03
> > > >> >
> > > >> >
> > > >>
> > >
> >
> 10:12:48.682--ServerSession(1206174612)--file:/C:/apache-tomee-plus-1.6.0-SNAPSHOT/webapps/mcmsweb/WEB-INF/classes/_mcmsPU
> > > >> > logout successful
> > > >> > Nov 03, 2013 10:12:49 AM
> > org.apache.catalina.loader.WebappClassLoader
> > > >> > clearReferencesThreads
> > > >> > SEVERE: The web application [/mcmsweb] appears to have started a
> > > thread
> > > >> > named [PoolIdleReleaseTimer] but has failed to stop it. This is
> very
> > > >> likely
> > > >> > to create a memory leak.
> > > >> > Nov 03, 2013 10:12:49 AM
> > org.apache.catalina.loader.WebappClassLoader
> > > >> > clearReferencesThreads
> > > >> > SEVERE: The web application [/mcmsweb] appears to have started a
> > > thread
> > > >> > named [ActiveMQ VMTransport: vm://localhost#5-5] but has failed to
> > > stop
> > > >> it.
> > > >> > This is very likely to create a memory leak.
> > > >> > Nov 03, 2013 10:12:49 AM
> > org.apache.catalina.loader.WebappClassLoader
> > > >> > clearReferencesThreads
> > > >> > SEVERE: The web application [/mcmsweb] appears to have started a
> > > thread
> > > >> > named [ActiveMQ VMTransport: vm://localhost#5-6] but has failed to
> > > stop
> > > >> it.
> > > >> > This is very likely to create a memory leak.
> > > >> > Nov 03, 2013 10:12:49 AM
> > org.apache.catalina.loader.WebappClassLoader
> > > >> > clearReferencesThreads
> > > >> > SEVERE: The web application [/mcmsweb] appears to have started a
> > > thread
> > > >> > named [ActiveMQ VMTransport: vm://localhost#4-4] but has failed to
> > > stop
> > > >> it.
> > > >> > This is very likely to create a memory leak.
> > > >> > Nov 03, 2013 10:12:57 AM org.apache.coyote.AbstractProtocol stop
> > > >> > INFO: Stopping ProtocolHandler ["http-nio-8080"]
> > > >> > Nov 03, 2013 10:12:57 AM org.apache.coyote.AbstractProtocol stop
> > > >> > INFO: Stopping ProtocolHandler ["ajp-bio-8009"]
> > > >> > Nov 03, 2013 10:12:57 AM
> > > org.apache.openejb.server.SimpleServiceManager
> > > >> > stop
> > > >> > INFO: Stopping server services
> > > >> > Nov 03, 2013 10:12:57 AM org.quartz.core.QuartzScheduler shutdown
> > > >> > INFO: Scheduler OpenEJB-TimerService-Scheduler_$_OpenEJB shutting
> > > down.
> > > >> > Nov 03, 2013 10:12:57 AM org.quartz.core.QuartzScheduler standby
> > > >> > INFO: Scheduler OpenEJB-TimerService-Scheduler_$_OpenEJB paused.
> > > >> > Nov 03, 2013 10:12:57 AM org.quartz.core.QuartzScheduler
> > unregisterJMX
> > > >> > INFO: Scheduler unregistered from name
> > > >> >
> > > >> >
> > > >>
> > >
> >
> 'quartz:type=QuartzScheduler,name=OpenEJB-TimerService-Scheduler,instance=OpenEJB'
> > > >> > in the local MBeanServer.
> > > >> > Nov 03, 2013 10:12:57 AM org.quartz.core.QuartzScheduler shutdown
> > > >> > INFO: Scheduler OpenEJB-TimerService-Scheduler_$_OpenEJB shutdown
> > > >> complete.
> > > >> > Nov 03, 2013 10:12:57 AM
> > > org.apache.openejb.assembler.classic.Assembler
> > > >> > destroyApplication
> > > >> > INFO: Undeploying app: openejb
> > > >> > Nov 03, 2013 10:12:57 AM
> > > org.apache.openejb.assembler.classic.Assembler
> > > >> > destroyResource
> > > >> > INFO: Closing DataSource: main
> > > >> > Nov 03, 2013 10:12:57 AM
> > > org.apache.openejb.assembler.classic.Assembler
> > > >> > destroyResource
> > > >> > INFO: Closing DataSource: fallback
> > > >> > Nov 03, 2013 10:12:57 AM
> > > org.apache.openejb.assembler.classic.Assembler
> > > >> > destroyResource
> > > >> > INFO: Stopping ResourceAdapter: Default JMS Resource Adapter
> > > >> > Nov 03, 2013 10:12:57 AM
> > > >> > org.apache.openejb.resource.activemq.ActiveMQResourceAdapter stop
> > > >> > INFO: Stopping ActiveMQ
> > > >> > Nov 03, 2013 10:12:58 AM
> > > >> > org.apache.openejb.resource.activemq.ActiveMQResourceAdapter
> > stopImpl
> > > >> > INFO: Stopped ActiveMQ broker
> > > >> > Nov 03, 2013 10:12:58 AM
> > > org.apache.openejb.assembler.classic.Assembler
> > > >> > destroyResource
> > > >> > INFO: Closing DataSource: Default Unmanaged JDBC Database
> > > >> > Nov 03, 2013 10:12:58 AM org.apache.coyote.AbstractProtocol
> destroy
> > > >> > INFO: Destroying ProtocolHandler ["http-nio-8080"]
> > > >> > Nov 03, 2013 10:12:58 AM org.apache.coyote.AbstractProtocol
> destroy
> > > >> > INFO: Destroying ProtocolHandler ["ajp-bio-8009"]
> > > >> >
> > > >> >
> > > >> >
> > > >> > On Sun, Nov 3, 2013 at 9:55 AM, Howard W. Smith, Jr. <
> > > >> > smithh032...@gmail.com
> > > >> > > wrote:
> > > >> >
> > > >> > > okay, i set it up as your post demonstrated, I tested already,
> > and I
> > > >> see
> > > >> > > no issues. it's time to test this in production. :)
> > > >> > >
> > > >> > > thanks romain! like i said in the other thread, I wish I knew
> > about
> > > >> this
> > > >> > > earlier.
> > > >> > >
> > > >> > >
> > > >> > >
> > > >> > > On Sun, Nov 3, 2013 at 9:16 AM, Howard W. Smith, Jr. <
> > > >> > > smithh032...@gmail.com> wrote:
> > > >> > >
> > > >> > >> So, the following replaces service-jar.xml (as per your post)?
> > > >> > >>
> > > >> > >> <Resource id="jdbc/ds" type="DataSource"
> > > provider="RoutedDataSource">
> > > >> > >>    router = failover-router
> > > >> > >> </Resource>
> > > >> > >>
> > > >> > >> and if I wanted to use the 'strategy' parameter, I would add to
> > > >> Resource
> > > >> > >> as demonstrated below?
> > > >> > >>
> > > >> > >> <Resource id="jdbc/ds" type="DataSource"
> > > provider="RoutedDataSource">
> > > >> > >>    router = failover-router
> > > >> > >>    strategy = random
> > > >> > >> </Resource>
> > > >> > >>
> > > >> > >>
> > > >> > >>
> > > >> > >>
> > > >> > >> On Sun, Nov 3, 2013 at 8:58 AM, Romain Manni-Bucau <
> > > >> > rmannibu...@gmail.com
> > > >> > >> > wrote:
> > > >> > >>
> > > >> > >>> Hi
> > > >> > >>>
> > > >> > >>> Failover is native but to customiee the algo you can code
> > anything
> > > >> you
> > > >> > >>> want
> > > >> > >>>
> > > >> > >>> Tomee.xml is openejb.xml
> > > >> > >>>
> > > >> > >>> Service-jar.xml is today useless (see my post)
> > > >> > >>> Le 3 nov. 2013 14:55, "Howard W. Smith, Jr." <
> > > smithh032...@gmail.com
> > > >> >
> > > >> > a
> > > >> > >>> écrit :
> > > >> > >>>
> > > >> > >>> > First of all, thanks Romain for recommending the following,
> > and
> > > for
> > > >> > >>> that I
> > > >> > >>> > will gladly start a new thread. :)
> > > >> > >>> >
> > > >> > >>> > TomEE/OpenEJB and failover of datasources[1]
> > > >> > >>> >
> > > >> > >>> > which references
> > > >> > >>> >
> > > >> > >>> > [OpenEJB] Dynamic Datasource[2]
> > > >> > >>> >
> > > >> > >>> > but I found the following  TomEE example:
> > > >> > >>> >
> > > >> > >>> > [TomEE] Dynamic Datasource Routing[3]
> > > >> > >>> >
> > > >> > >>> > So, before I begin, my questions are as follows:
> > > >> > >>> >
> > > >> > >>> > 1. I recognized that failover[1] says that the idea is to
> > > 'reuse'
> > > >> > >>> dynamic
> > > >> > >>> > datasource. Does this mean that we should code openejb[2] or
> > > >> tomee[3]
> > > >> > >>> > dynamic datasource, first, and then reference accordingly
> via
> > > >> > >>> failover[1]?
> > > >> > >>> >
> > > >> > >>> > 2. or failover[1] requires no coding on our part? only
> > developer
> > > >> > needs
> > > >> > >>> to
> > > >> > >>> > setup the failover 'config'?
> > > >> > >>> >
> > > >> > >>> > 3. also, tomee[3] dynamic datasource routing recommends
> > > openejb.xml
> > > >> > >>> > (instead of tomee.xml). can openejb.xml cofiguration be
> placed
> > > in
> > > >> > >>> > tomee.xml, too, or not?
> > > >> > >>> >
> > > >> > >>> > 4. okay, never mind, I was abouto ask for some clarification
> > > about
> > > >> > >>> > META-INF/org.router/service-jar.xml, but I 'found'
> > > service-jar.xml
> > > >> on
> > > >> > >>> > trunk[4]. :)
> > > >> > >>> >
> > > >> > >>> >
> > > >> > >>> >
> > > >> > >>> > [1]
> > > >> > >>> >
> > > >> > >>> >
> > > >> > >>>
> > > >> >
> > > >>
> > >
> >
> http://rmannibucau.wordpress.com/2013/04/26/tomeeopenejb-and-failover-of-datasources/
> > > >> > >>> >
> > > >> > >>> > [2] http://tomee.apache.org/dynamic-datasource.html
> > > >> > >>> >
> > > >> > >>> > [3]
> > > >> > >>> >
> > > >> > >>> >
> > > >> > >>>
> > > >> >
> > > >>
> > >
> >
> http://tomee.apache.org/examples-trunk/dynamic-datasource-routing/README.html
> > > >> > >>> >
> > > >> > >>> > [4]
> > > >> > >>> >
> > > >> > >>> >
> > > >> > >>>
> > > >> >
> > > >>
> > >
> >
> http://svn.apache.org/repos/asf/tomee/tomee/trunk/examples/dynamic-datasource-routing/src/main/resources/META-INF/org.router/service-jar.xml
> > > >> > >>> >
> > > >> > >>>
> > > >> > >>
> > > >> > >>
> > > >> > >
> > > >> >
> > > >>
> > >
> >
>

Reply via email to