From: Paul F. <pau...@ca...> - 2014-01-29 00:46:58
|
Response inline. On Wed, 2014-01-29 at 00:31 +0100, Ja kub wrote: > for ha-jdbc-2.0.16-rc-1-jdk1.6.jar I recommend using version 3.0.0 instead. This was released a month ago. > in ha-jdbc-cluster-petclinic.xml > <?xml version="1.0"?> > <ha-jdbc> > <sync id="passive" > class="net.sf.hajdbc.sync.PassiveSynchronizationStrategy"/> > <cluster balancer="round-robin" default-sync="passive" > dialect="mysql" meta-data-cache="none" transaction-mode="serial"> > <datasource id="database1"> > <name>java:comp/env/jdbc/petclinic1</name> > </datasource> > <datasource id="database2"> > <name>java:comp/env/jdbc/petclinic2</name> > </datasource> > </cluster> > </ha-jdbc> > > > > in tomcat/context.xml > > <Context> > <WatchedResource>WEB-INF/web.xml</WatchedResource> > > <Resource name="jdbc/petclinic1" auth="Container" > type="javax.sql.DataSource" > maxActive="100" maxIdle="30" maxWait="10000" > username="root" password="x" > driverClassName="com.mysql.jdbc.Driver" > url="jdbc:mysql://localhost:3306/petclinic"/> > > > <Resource name="jdbc/petclinic2" auth="Container" > type="javax.sql.DataSource" > maxActive="100" maxIdle="30" maxWait="10000" > username="root" password="" > driverClassName="com.mysql.jdbc.Driver" > url="jdbc:mysql://localhost:3306/petclinic"/> > > > > <Resource name="jdbc/petclinic" auth="Container" > type="javax.sql.DataSource" > username="root" password="xxx" > driverClassName="net.sf.hajdbc.sql.Driver" > url="jdbc:ha-jdbc:cluster-petclinic"/> > > below works fine > > <Resource name="jdbc/petclinic" > type="net.sf.hajdbc.sql.DataSource" > factory="org.apache.naming.factory.BeanFactory" > closeMethod="stop" > cluster="datasource" > > config="file:///szkolenie/tomcat/lib_hajdbc/ha-jdbc-cluster-petclinic.xml"/> > > but when I replace it with > > <Resource name="jdbc/petclinic" auth="Container" > type="javax.sql.DataSource" > username="root" password="xxx" > driverClassName="net.sf.hajdbc.sql.Driver" > url="jdbc:ha-jdbc:cluster-petclinic"/> > > </Context> Since the configuration above accesses HA-JDBC via its Driver, you must also access the underlying databases via their driver. You need to chose which configuration you want to use without mixing the two. Remember that Tomcat creates a connection pool for each <Resource type="javax.sql.DataSource/>, so using a connection pool for both the individual databases connections *and* HA-JDBC connection proxies does not make sense. > > I get error: > > Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot > create PoolableConnectionFactory (null) > at > org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549) ~[tomcat-dbcp.jar:7.0.50] > at > org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388) ~[tomcat-dbcp.jar:7.0.50] > at > org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) ~[tomcat-dbcp.jar:7.0.50] > at > org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111) ~[spring-jdbc-4.0.0.RELEASE.jar:4.0.0.RELEASE] > at > org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77) ~[spring-jdbc-4.0.0.RELEASE.jar:4.0.0.RELEASE] > ... 30 common frames omitted > Caused by: java.sql.SQLException: null > at > net.sf.hajdbc.util.SQLExceptionFactory.createSQLException(SQLExceptionFactory.java:58) ~[ha-jdbc-2.0.16-rc-1-jdk1.6.jar:na] > at > net.sf.hajdbc.DatabaseClusterFactory.getDatabaseCluster(DatabaseClusterFactory.java:125) ~[ha-jdbc-2.0.16-rc-1-jdk1.6.jar:na] > at net.sf.hajdbc.sql.Driver.getDatabaseCluster(Driver.java:180) > ~[ha-jdbc-2.0.16-rc-1-jdk1.6.jar:na] > at net.sf.hajdbc.sql.Driver.connect(Driver.java:84) > ~[ha-jdbc-2.0.16-rc-1-jdk1.6.jar:na] > at > org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38) ~[tomcat-dbcp.jar:7.0.50] > at > org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582) ~[tomcat-dbcp.jar:7.0.50] > at > org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556) ~[tomcat-dbcp.jar:7.0.50] > at > org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545) ~[tomcat-dbcp.jar:7.0.50] > ... 34 common frames omitted > Caused by: javax.management.MBeanRegistrationException: Exception > thrown in preRegister method > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.preRegisterInvoke(DefaultMBeanServerInterceptor.java:1020) ~[na:1.6.0_37] > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:938) ~[na:1.6.0_37] > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:917) ~[na:1.6.0_37] > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:312) ~[na:1.6.0_37] > at > com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:482) ~[na:1.6.0_37] > at > net.sf.hajdbc.DatabaseClusterFactory.getDatabaseCluster(DatabaseClusterFactory.java:118) ~[ha-jdbc-2.0.16-rc-1-jdk1.6.jar:na] > ... 40 common frames omitted > Caused by: org.jibx.runtime.JiBXException: Expected "cluster" end tag, > found "datasource" start tag (line 5, col 30) > at > org.jibx.runtime.impl.UnmarshallingContext.parsePastCurrentEndTag(UnmarshallingContext.java:736) ~[jibx-run-1.2.1.jar:1.2.1] > at > net.sf.hajdbc.sql.DriverDatabaseCluster.JiBX_binding_driver_unmarshal_2_0(DriverDatabaseCluster.java) ~[ha-jdbc-2.0.16-rc-1-jdk1.6.jar:na] > at > net.sf.hajdbc.sql.JiBX_binding_driverDriverDatabaseCluster_access.unmarshal() ~[ha-jdbc-2.0.16-rc-1-jdk1.6.jar:na] > at > org.jibx.runtime.impl.UnmarshallingContext.unmarshalElement(UnmarshallingContext.java:2762) ~[jibx-run-1.2.1.jar:1.2.1] > at > net.sf.hajdbc.sql.AbstractDatabaseCluster.preRegister(AbstractDatabaseCluster.java:1045) ~[ha-jdbc-2.0.16-rc-1-jdk1.6.jar:na] > at > com.sun.jmx.mbeanserver.MBeanSupport.preRegister(MBeanSupport.java:176) ~[na:1.6.0_37] > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.preRegisterInvoke(DefaultMBeanServerInterceptor.java:1010) ~[na:1.6.0_37] > ... 45 common frames omitted > Jan 29, 2014 12:10:54 AM org.apache.catalina.core.StandardContext > startInternal > SEVERE: Error listenerStart > > > ha-jdbc-cluster-petclinic.xml is the same in both cases, is parsed in > first case, but cannot be parsed in second case > > > Where is the problem ? > > > BR > > J. > > ------------------------------------------------------------------------------ > WatchGuard Dimension instantly turns raw network data into actionable > security intelligence. It gives you real-time visual feedback on key > security issues and trends. Skip the complicated setup - simply import > a virtual appliance and go from zero to informed in seconds. > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk > _______________________________________________ > ha-jdbc-user mailing list > ha-...@li... > https://lists.sourceforge.net/lists/listinfo/ha-jdbc-user |