您的位置:首页 > 运维架构 > Tomcat

Tomcat 多数据源冲突 & conf\Catalina\localhost 中进行描述符配置数据源

2011-12-02 14:03 543 查看
RT,当使用正常手段进行多数据源配置时经常会发生如下异常:(截取很长、解决方法在最下方)
<2011-12-02 18:20:13,397>  WARN (SettingsFactory.java:117)

[ContainerBackgroundProcessor[StandardEngine[Catalina]]]

(org.hibernate.cfg.SettingsFactory) - Could not obtain connection metadata
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create

PoolableConnectionFactory (Io exception: Connection refused(DESCRIPTION=(TMP=)

(VSNNUM=169870336)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4)))))
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource

(BasicDataSource.java:1225)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection

(BasicDataSource.java:880)
at

org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection

(LocalDataSourceConnectionProvider.java:80)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
at org.hibernate.cfg.Configuration.buildSessionFactory

(Configuration.java:1292)
at

org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory

(LocalSessionFactoryBean.java:800)
at

org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet

(LocalSessionFactoryBean.java:726)
at

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeIn

itMethods(AbstractAutowireCapableBeanFactory.java:1059)
at

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBe

an(AbstractAutowireCapableBeanFactory.java:363)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean

(AbstractBeanFactory.java:226)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean

(AbstractBeanFactory.java:147)
at

org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSi

ngletons(DefaultListableBeanFactory.java:269)
at org.springframework.context.support.AbstractApplicationContext.refresh

(AbstractApplicationContext.java:320)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>

(ClassPathXmlApplicationContext.java:87)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>

(ClassPathXmlApplicationContext.java:72)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance

(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance

(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:172)
at

org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate

(SimpleInstantiationStrategy.java:75)
at

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowire

Constructor(AbstractAutowireCapableBeanFactory.java:670)
at

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBe

an(AbstractAutowireCapableBeanFactory.java:329)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean

(AbstractBeanFactory.java:226)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean

(AbstractBeanFactory.java:147)
at

org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSi

ngletons(DefaultListableBeanFactory.java:275)
at

org.springframework.beans.factory.access.SingletonBeanFactoryLocator.initializeDefini

tion(SingletonBeanFactoryLocator.java:502)
at

org.springframework.beans.factory.access.SingletonBeanFactoryLocator.useBeanFactory

(SingletonBeanFactoryLocator.java:386)
at com.hollycrm.framework.DefaultBeanFactory.getFactory

(DefaultBeanFactory.java:54)
at com.hollycrm.framework.DefaultBeanFactory.getBean

(DefaultBeanFactory.java:39)
at com.hollycrm.framework.DefaultBeanFactory.getBean

(DefaultBeanFactory.java:35)
at com.hollycrm.framework.web.servlet.ContextLoaderServlet.init

(ContextLoaderServlet.java:42)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet

(StandardWrapper.java:1161)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
at org.apache.catalina.core.StandardContext.loadOnStartup

(StandardContext.java:4045)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4351)
at org.apache.catalina.core.ContainerBase.addChildInternal

(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDescriptor

(HostConfig.java:626)
at org.apache.catalina.startup.HostConfig.deployDescriptors

(HostConfig.java:553)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1206)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent

(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.backgroundProcess

(ContainerBase.java:1337)
at

org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren

(ContainerBase.java:1601)
at

org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren

(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run

(ContainerBase.java:1590)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.sql.SQLException: Io exception: Connection refused(DESCRIPTION=

(TMP=)(VSNNUM=169870336)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:404)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance

(OracleDriver.java:468)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
at org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection

(DriverConnectionFactory.java:38)
at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject

(PoolableConnectionFactory.java:294)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory

(BasicDataSource.java:1247)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource

(BasicDataSource.java:1221)
... 51 more
<2011-12-02 18:20:13,421>  WARN (Oracle9Dialect.java:37)

[ContainerBackgroundProcessor[StandardEngine[Catalina]]]

(org.hibernate.dialect.Oracle9Dialect) - The Oracle9Dialect dialect has been

deprecated; use either Oracle


项目在tomcat\cof\catalina\locaihost\webProject.xml中进行配置,但有多数据源时产生冲突,可以利用tnsname.ora中描述符进行配置的方法 :

<?xml version="1.0" encoding="UTF-8" ?>

<Context path="/*" docBase="/**/**/tomcat-6.0.14/*">
<Resource name="jdbc/unicomapp" auth="Container" type="javax.sql.DataSource" username="****" password="****" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@(DESCRIPTION = (LOAD_BALANCE = OFF) (FAILOVER = ON) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 100.100.9.12)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 100.100.9.14)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = **UNIC**) (FAILOVER_MODE = (TYPE = SESSION) (METHOD = BASIC) ) ))" maxActive="20" maxIdle="10" />
<ResourceLink name="UserTransaction" global="UserTransaction" type="javax.transaction.UserTransaction" />
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: