下面的是这个网站我回答的博客的原文:写了一段代码想测试连接池的效率。发现在没有使用连接池的情况下对数据库执行100次连接查询的时候,就会报ORA-12519(TNS:no appropriate service handler found),并发连接数过大。而使用连接池就不会报错。疑问的是:我在不使用连接池进行每一次连接数据表查询时,都会及时关闭流,应该是每次都释放连接的吧(也就是用了一个连接就释放一个连接,下次循环再开一个连接,那这样连接数不都应该一直是1个吗),而且没有写多线程代码呀,为什么存在并发连接?这么循环操作后为什么还会得不到连接呢?
代码块如下:
Java代码
String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
String username ="system";
String password = "admin";
startTime = System.currentTimeMillis();
for(int i=0;i<100;i++){
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(ClassNotFoundException e){
e.printStackTrace();
}
Connection conn = DriverManager.getConnection(url,username,password);
Statement stmt = conn.createStatement();//创建陈述对象
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
//执行指定代码段
}
rs.close();
stmt.close();
conn.close();
}
System.out.println("经过100次循环调用,不使用连接池所花费的时间为"+(System.currentTimeMillis()-startTime)+"ms");
报错信息:
Exception in thread "main" java.sql.SQLException: Listener refused the connection with the following error:
ORA-12519, TNS:no appropriate service handler found
The Connection descriptor used by the client was:
127.0.0.1:1521:xe
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at ConnectionPoolTest.main(ConnectionPoolTest.java:50)
------------------------------------------------------------------------------------------------------------------
问题补充:
neitheraaa 写道
试试吧 这个东西不好说 实际上你是释放了资源 但是由于你连接释放的只是你这个层面上的 真正的oracle设置项中的 数值太小
我想知道的是 难道我这么写的代码不是连接数失踪保持为1个连接的吗?因为我每次连接都释放了资源啊 如果真是自由一个连接的话?如何来的并发连接 ?就一个main主线程,哪里来的并发环境
--------------------------------------------------------------------------------
该问题已经关闭: 吞吞吐吐
我今天上网来看了看 是不是真的一定会出现这个问题,wo 把代码拷贝过来试了一下 首先不说代码的质量问题 有点垃圾,这个在我的电脑上运行就是没有问题的 这个说明什么呢一定是oracle的配置项问题 参数的修改 ,我倒是没有别的意思 只是请这位仁兄能不能不要这么心浮气躁,这样能写出好的程序,解决问题嘛;我总结出来出现问题解决要分析可能出现的问题 ,大致找出解决的方向,至少是排查的方向,这样才能真正的学到解决问题的方法和思路。谢谢读者听我唠叨 有问题留言!肖辉 neitheraaa@126.com
分享到:
相关推荐
具体来说,“ORA-12519, TNS:no appropriate service handler found”意味着Oracle Net无法找到合适的处理程序来响应客户端的服务请求。为了解决这个问题,我们需要从多个角度进行排查与解决。 #### 二、Oracle参数...
(整理)文献检索 土木工程项目成本管理.doc
(C++)利用keil编写51单片机收集温湿度的代码,并且利用QT实现一个简单的串口通信界面来接受单片机收集到的温湿度数据发送到PC端,其中下位机利用protues来实现.zip
实验二 数码管显示驱动设计
双动子龙门模组sw16可编辑_三维3D设计图纸_三维3D设计图纸.zip
内容概要:本文详细介绍了利用Norrbin/Fossen模型和反步法(PID)控制算法实现无人船(USV)路径跟踪的方法,特别是在存在洋流扰动的情况下。首先,文章解释了Norrbin模型用于描述船舶低频运动特性的优势,并展示了如何将洋流速度从惯性坐标系转换到船体坐标系。接着,讨论了LOS制导算法的改进,使其能够适应洋流影响。然后,阐述了反步法控制律的设计及其与PID控制的结合,强调了虚拟控制量的设计和参数调整的重要性。最后,通过Matlab/Simulink进行建模和仿真实验,验证了该方法的有效性,并提供了详细的代码实现和可视化结果。 适合人群:从事无人船控制系统研究和开发的技术人员,尤其是对路径跟踪和海洋环境扰动补偿感兴趣的工程师和研究人员。 使用场景及目标:适用于需要提高无人船在复杂海况下路径跟踪精度的应用场合,如海洋测绘、环境监测等。目标是通过引入先进的控制算法,减少洋流等外界因素对路径跟踪性能的影响,从而提高系统的鲁棒性和可靠性。 其他说明:文中提供的代码片段和仿真结果有助于读者理解和复现实验过程。同时,作者分享了许多实践经验,如参数调整技巧和常见错误避免,对于初学者非常有帮助。此外,文章还提出了未来的研究方向,如加入自适应观测器以进一步改善抗扰动性能。
elasticsearch-analysis-ik-8.17.4.zip
内容概要:本文详细介绍了煤矿开挖区三维渗流仿真及其应力场耦合计算的关键技术和实现方法。首先,利用Python的pyvista库进行地质数据处理和三维可视化,确保模型结构完整。接着,采用FEniCS进行有限元求解,基于达西定律计算渗流场,并引入变渗透率模型处理渗透系数的变化。应力场计算则基于修正的Mohr-Coulomb准则,重点处理渗流-应力耦合项。通过ParaView进行可视化,展示了渗流路径和应力分布情况。文中还讨论了实际工程应用中的优化技巧,如并行计算、HDF5分块存储等。 适合人群:从事矿山工程、岩土力学、渗流力学研究的专业人士和技术人员。 使用场景及目标:适用于煤矿开采过程中对渗流场和应力场的预测和分析,帮助识别潜在的安全隐患,如突水风险点。通过仿真结果指导现场施工,提高安全性和经济效益。 其他说明:文中提供了多个Python代码片段,涵盖从模型构建到后处理的各个环节,有助于读者理解和复现相关技术细节。强调了理论与实际相结合的重要性,指出数值模型虽不能绝对精确,但能提供重要的参考依据。
内容概要:本文详细介绍了如何利用COMSOL Multiphysics 6.1版本进行3258-3824Hz频段内的声波阵面调控。主要内容涵盖模型搭建、材料参数设置、扫频方法、耦合边界条件以及后处理技巧。文中强调了压力声学和固体力学模块之间的耦合重要性,并提供了具体的代码示例来指导用户完成各项任务。此外,还讨论了一些常见的陷阱及其解决方案,如网格划分、求解器选择等。 适合人群:从事声学工程、机械工程及相关领域的研究人员和技术人员,尤其是那些希望深入了解COMSOL软件在声波调控方面应用的人士。 使用场景及目标:适用于需要精确控制声波传播路径的研究项目,例如开发新型声学设备或改进现有产品的声学性能。通过掌握文中提到的技术手段,可以帮助用户更好地理解和预测不同条件下声波的行为特征。 其他说明:文中不仅提供了理论解释,还有大量实用的操作提示和代码片段,便于读者快速上手实践。同时,作者分享了许多个人经验和心得,有助于避免常见错误并提高工作效率。
2017学年第二学期期末考试《土木工程制图》大作业.pdf
基于51单片机protues仿真的自动水龙头系统设计(仿真图、源代码、AD原理图、流程图) 自动水龙头设计 1、当人或物体靠近时,水龙头自动防水,而人或物体离开时水龙头自动关闭 2、采用红外传感器 3、使用电磁阀控制开关 4、设定延时,如果人或物体长时间没有离开,自动关闭水龙头; 5、仿真图、源代码、AD原理图、流程图;
可调角度带式锯床sw23可编辑_三维3D设计图纸_三维3D设计图纸.zip
内容概要:本文详细介绍了ResNet神经网络模型的构建与实现。首先定义了一个通用的倒置瓶颈块(UniversalInvertedBottleneckBlock),它包括三个卷积层和批标准化层,并引入了残差连接机制。接着基于此构建了Bottleneck模块,进一步扩展了倒置瓶颈块的功能,同样包含了跳跃连接来缓解梯度消失问题。最后,ResNet类整合了多个Bottleneck模块形成完整的网络结构,通过_make_layer方法按需创建不同深度的网络层。文中还提供了resnet50函数用于快速实例化预定义配置下的ResNet模型,并展示了如何创建模型实例、准备输入数据以及进行前向传播计算。 适合人群:对深度学习有一定了解,特别是熟悉PyTorch框架的开发者或研究人员;希望深入理解ResNet架构及其组件的工作原理的学习者。 使用场景及目标:①理解ResNet中倒置瓶颈结构的设计思想及其实现细节;②掌握如何利用PyTorch搭建复杂神经网络模型;③学习如何通过调整网络层数和参数设置来自定义适合特定任务需求的ResNet模型。 阅读建议:本文代码量较大,建议读者先熟悉PyTorch的基础操作,然后逐步阅读每个类和函数的定义,注意理解各部分之间的关系。可以尝试修改代码中的参数或者添加新的功能来进行实践练习。同时,可以通过查阅官方文档或相关资料加深对某些概念的理解。
小学,初中,高中 沉浸式虚拟现实3DLED屏 VR未来智慧教室 建设方案书.docx
内容概要:本文介绍了一种将物理信息融入Transformer模型用于高速公路车辆轨迹预测的新方法——PIT-IDM模型。该模型结合了Transformer强大的数据捕捉能力和IDM驾驶模型的物理约束特性,在每个时间步进行交替更新,确保预测结果既符合数据规律又遵守物理常识。文中详细描述了模型架构、关键组件如IDM参数估计器和自注意力机制的具体实现,以及训练策略和损失函数设计。实验结果显示,相较于传统的纯数据驱动模型,PIT-IDM在cut-in场景下的预测精度提高了23%,并且能够有效避免非物理性的离谱预测。 适合人群:对深度学习、自动驾驶技术和车辆轨迹预测感兴趣的科研人员和技术开发者。 使用场景及目标:适用于高速公路车辆轨迹预测的研究和应用开发,旨在提高预测准确性,尤其是在复杂交通状况下的短期预测性能。 其他说明:文中还讨论了一些具体的工程实现细节,如计算开销优化、数据预处理方法以及应对极端情况的解决方案。此外,作者指出该方法可以扩展应用于其他时序预测任务,如电力负荷预测和股票市场预测等。
内容概要:本文详细对比了递归与迭代两种编程方法,解释了它们在不同应用场景下的优缺点。文中通过多个选择题解析了递归基、递归参数等概念,强调了递归基的重要性,指出它是递归函数停止调用自身的条件。同时,通过实例展示了如何使用递归和迭代实现阶乘、斐波那契数列、数组求和等功能,并讨论了递归与迭代在内存占用、执行效率等方面的差异。此外,文章还探讨了递归和迭代在搜索算法(如广度优先搜索、深度优先搜索)、排序算法(如快速排序、归并排序)中的应用,指出了递归在处理树形结构和分治问题时的优势,以及迭代在处理有明确循环次数的任务时的高效性。 适合人群:具备一定编程基础的学习者,尤其是对递归和迭代概念存在疑惑的程序员。 使用场景及目标:①理解递归和迭代的基本概念及其在实际编程中的应用;②掌握递归基的作用,避免无限递归;③学会根据问题特点选择合适的算法实现方式,优化程序性能。 其他说明:本文不仅提供了理论知识,还通过具体的代码示例加深理解,建议读者在学习过程中动手实践,尝试将递归算法转换为迭代算法,以更好地掌握两者之间的转换技巧。
java
基于单片机protues仿真的厨房环境监测系统(仿真图、源代码、AD原理图、流程图) 基于单片机的厨房环境监测系统。 1、测量温湿度、烟雾浓度、co浓度,粉尘,然后超出范围响警报。 2、有0832、51单片机、mq2烟雾传感器、LCD1602液晶显示,灯光电路、按键电路、警报器电路。 3、都可调报警值。 4、传感器可用电位器代替。 5、厨房温湿度,烟雾,CO,粉尘; 6、仿真图、源代码、AD原理图、流程图;
内容概要:本文详细介绍了PEM(质子交换膜)电解槽CCM(催化剂涂层膜)的电化学仿真过程,重点探讨了使用Nafion 115膜作为电解质时的关键参数设置及其对仿真结果的影响。文中通过具体的代码示例展示了如何调整催化层厚度、孔隙率、交换电流密度等参数,并讨论了不同参数组合对极化曲线、电流密度分布以及电解槽效率的具体影响。此外,文章还分享了一些实用技巧,如避免常见错误、优化边界条件设置等。 适合人群:从事燃料电池研究、电化学仿真领域的科研人员和技术开发者。 使用场景及目标:帮助研究人员更好地理解和优化PEM电解槽的工作性能,特别是在催化层设计和参数选择方面提供指导。通过调整关键参数,提高电解槽的效率和稳定性,为实际应用提供理论支持。 其他说明:文章不仅提供了详细的参数调整方法,还强调了仿真过程中需要注意的实际问题,如参数之间的相互影响、边界条件的正确设置等。同时,作者通过幽默风趣的语言使复杂的技术内容更加易懂。
【LPSO-BP分类】基于改进莱维飞行和混沌映射的粒子群优化算法优化BP神经网络分类研究(Matlab代码实现)