Jea*_*.T. 5 networking jpa exception java-5 toplink-essentials
我有一个以前工作的JPA项目.这个月,我在我的数据库中添加了一些数据.当我运行通常的工作(我曾经在前几个月运行)时,我收到此错误:
异常[TOPLINK-4002](Oracle TopLink Essentials - 2.0.1(Build b09d-fcs(12/06/2007))):oracle.toplink.essentials.exceptions.DatabaseException内部异常:java.sql.SQLException:网络错误IOException :地址已在使用中:连接错误代码:0
我检查了我的LocalPersistenceFacade,其中包含我正在调用的大多数方法,通过打印计数器,我得到了关闭和打开的连接的确切数量:457.然后我的工作崩溃了.通常,它应该到601而不是457.
在数据库方面,没有与可能的崩溃相关的信息.一切似乎都是正确的,但我的java代码却说了别的.
有人有任何想法吗?
问候,让
我的理解是你打开/关闭每一行的连接,你面临的问题看起来就像这个页面中描述的那样:
可能的原因
通过具有多个功能的映射运行大量数据时.Windows不会足够快地关闭连接,从而导致网络I/O异常.
建议
在Windows注册表中修改以下两个值:
这个修改Windows用于打开连接的端口范围.默认情况下,它只允许最多5000端口.通过修改此值,Windows将能够打开更多端口,然后再回收到开头.每个连接使用一个端口,因此它从1025开始并上升到该值.当它达到最大值时,它会回到1025并再次尝试打开该端口.
系统密钥:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Name:MaxUserPort类型:REG_DWORD
值:5000-65534这将更快地"释放"关闭的端口.默认情况下,Windows将端口保持TIME_WAIT状态240秒.如果将MaxPort值设置为新连接将使用尚未从TIME_WAIT状态删除的"较旧"端口,则可能会导致问题.通过减小此值,可以更快地释放连接.
系统密钥:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
数值名称:TcpTimedWaitDelay数据
类型:REG_DWORD值数据:30-300
症状和变化 - 更多行 - 引入完美匹配.但是,虽然建议的"建议"可以解决问题,但我的建议是使用连接池(使用独立的连接池,如c3p0或DBCP).这将是IMO解决问题并提高性能.
归档时间: |
|
查看次数: |
4922 次 |
最近记录: |