hibernate 数据库访问

nhudailiming 2016-05-03 02:34:37

hibernate 链接 DB 的两种方式 一个是C3P0 , 一个是 proxool ,

然后 我复制了几份 出来 发布 例如 plantpay plantpay1 plantpay2 plantpay3 , 发现我的tomcat 可以启动其中任意 的两个,但是打开第三个的时候 就 卡住 不动了(proxool )。 C3P0 的项目 只能打来一个 ,再打开一个 就报 C3P0 连接池 初始化失败

HibernateSessionFactory 都是这样的一个数据库连接的java方法。
...全文
150 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
nhudailiming 2016-05-06
  • 打赏
  • 举报
回复
引用 6 楼 oxcow 的回复:
[quote=引用 5 楼 nhudailiming 的回复:] 我尝试了JDBC 直接 连 ,不通过hibernate 复制 的五个小例子程序 都 可以正常访问数据库。 才有spring的 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${dataSource.dialect}</prop> <prop key="hibernate.hbm2ddl.auto">${dataSource.hbm2ddl.auto}</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> 的方式 也只能 正常连2 个项目。第三个 连DB 就一直卡住。
1、你看下启动后实际的数据库连接是多少个? 2、“第三个 连DB 就一直卡住”这个是什么意思?tomcat日志有报错么?还是tomcat启动OK,就是无法访问页面? [/quote] 我搞错了,试了只能启动一个 我本机, 服务器可以起来三个。多了就卡住。 发现jdbc 直接连的没有问题 , mybits hibernate 都卡住 ,mybits 好像要好点。mybits 5个才卡。jdbc 不卡。 用其他方法解决了问题 ,治标不治本的方案 。 多启动几个服务器。
nhudailiming 2016-05-04
  • 打赏
  • 举报
回复
我尝试了JDBC 直接 连 ,不通过hibernate 复制 的五个小例子程序 都 可以正常访问数据库。 才有spring的 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${dataSource.dialect}</prop> <prop key="hibernate.hbm2ddl.auto">${dataSource.hbm2ddl.auto}</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> 的方式 也只能 正常连2 个项目。第三个 连DB 就一直卡住。
nhudailiming 2016-05-04
  • 打赏
  • 举报
回复
我 MySQL 最大的连接数 设置 为 200 了 proxool.xml文件 <something-else-entirely> <proxool> <alias>dbname2</alias> <driver-url>jdbc:mysql://localhost:3306/fundation?characterEncoding=utf8</driver-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <driver-properties> <property name="user" value="root" /> <property name="password" value="root" /> </driver-properties> <maximum-connection-count>2000</maximum-connection-count> <minimum-connection-count>2</minimum-connection-count> <house-keeping-sleep-time>90000</house-keeping-sleep-time> <maximum-new-connections>300</maximum-new-connections> <prototype-count>15</prototype-count> </proxool> </something-else-entirely> hibernate 文件: <property name="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property> <property name="hibernate.proxool.pool_alias">dbname2</property> <property name="hibernate.proxool.xml">proxool.xml</property> <!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="show_sql">true</property> <property name="format_sql">true</property> <property name="hibernate.connection.release_mode">auto</property> 还是 只能 启动 2 个项目 ,第三个 项目 能打开2 个页面 ,再 多打开 就 卡住 不能 访问了。
oxcow 2016-05-04
  • 打赏
  • 举报
回复
引用 5 楼 nhudailiming 的回复:
我尝试了JDBC 直接 连 ,不通过hibernate 复制 的五个小例子程序 都 可以正常访问数据库。 才有spring的 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${dataSource.dialect}</prop> <prop key="hibernate.hbm2ddl.auto">${dataSource.hbm2ddl.auto}</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> 的方式 也只能 正常连2 个项目。第三个 连DB 就一直卡住。
1、你看下启动后实际的数据库连接是多少个? 2、“第三个 连DB 就一直卡住”这个是什么意思?tomcat日志有报错么?还是tomcat启动OK,就是无法访问页面?
oxcow 2016-05-03
  • 打赏
  • 举报
回复
你每个应用的初始化数据库链接是多少? 在看下你的数据库允许的最大链接是多少
玉立琦 2016-05-03
  • 打赏
  • 举报
回复
看一下数据库的最大连接数以及连接池初始化连接数。
nhudailiming 2016-05-03
  • 打赏
  • 举报
回复
也设置了 tomcat的内存 大小 ,扩大到 2 -4 G ,好像也是于事无补

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧