问题:Hibernate+C3P0连接SQLServer2008 在运行环境Tomcat启动一半,不报错。在开发环境运行正常。
开发环境:Eclipse 3.7,Tomcat 6.0,Win7 64x
C:\Users\VIC>java -version java version "1.6.0_38" Java(TM) SE Runtime Environment (build 1.6.0_38-b05) Java HotSpot(TM) 64-Bit Server VM (build 20.13-b02, mixed mode)
运行环境:Tomcat 6.0,Server 2008
C:\Users\Server>java -version java version "1.6.0_29" Java(TM) SE Runtime Environment (build 1.6.0_29-b05) Java HotSpot(TM) 64-Bit Server VM (build 20.13-b02, mixed mode)
配置文件:
<bean id="DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"> </property> <property name="jdbcUrl" value="jdbc:sqlserver://localhost:1433;databaseName=Cloud_TEST" /> <property name="user" value="sa"></property> <property name="password" value="sa123"></property> <property name="minPoolSize" value="3"></property> <property name="maxPoolSize" value="15"></property> <property name="idleConnectionTestPeriod" value="28000"></property> <property name="maxIdleTime" value="21600"/> <property name="maxStatements" value="0"/> </bean> <bean id="SessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="DataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">common.util.SQLServer2008Dialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.max_fetch_depth">10</prop> <prop key="hibernate.jdbc.batch_size">100</prop> <prop key="hibernate.cache.use_second_level_cache">false</prop> </props> </property> </bean> <bean id="CommonDAO" class="com.hestia.mosa.bar.CommonDAO"> <property name="sessionFactory"> <ref bean="SessionFactory" /> </property> </bean>
解决方案 1,
jdbc:sqlserver://localhost:1433;databaseName=Cloud_TEST
改为
jdbc:sqlserver://localhost:1433/Cloud_TEST (不好,有时会报 1433/Cloud_TEST端口号错误)
解决方案 2:
升级java version "1.6.0_29" 29 BUG,升级到45解决问题,正常启动.建议服务器和开发环境用统一java版本