Tag: 数据库连接

JBOSS AS 7.1.1.Final关闭泄漏连接?

我已经在standalone.xml中完成了以下设置: 因此,我也会收到“为您关闭连接”这样的消息: INFO [org.jboss.jca.core.api.connectionmanager.ccm.CachedConnectionManager] (http–0.0.0.0-8080-160) IJ000100: Closing a connection for you. Please close them yourself: org.jboss.jca.adapters.jdbc.jdk6.WrappedConnectionJDK6@5cdb81dc: java.lang.Throwable: STACKTRACE at org.jboss.jca.core.connectionmanager.ccm.CachedConnectionManagerImpl.registerConnection(CachedConnectionManagerImpl.java:265) at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:495) at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:129) 尽管如此,有时我的游泳池已经筋疲力尽 它按照定义超出200的连接。 为什么? 30 200 没有办法,我的应用程序需要这么多连接。 肯定有连接泄漏。 如果是这样的话,为什么当我按照上述说法启用设置时,jboss没有自己关闭它: 怎么解决? 谢谢。

在构造函数中打开数据库连接,何时应该关闭它?

好吧,我一直在考虑通过在使用对象时保持与数据库的连接打开来使数据库请求更快一些。 所以我想在该类的构造函数中打开连接。 现在问题是,我停止使用后如何关闭连接? 我必须在某处调用close(),不是吗? 我一直在阅读关于finalize()方法,但人们似乎对任何地方使用这种方法持怀疑态度。 我希望它有类似析构函数的东西,但是Java没有它,所以呢? 那么有人能为我提供解决方案吗? 提前致谢。

将jboss中的连接检索到多个数据库时出错,即使没有事务也是如此

我们正在从JBoss 6升级到JBoss 7.我们的应用程序的性质是每个客户都有一个单独的数据库实例,以及所有客户共有的核心配置数据库。 我们经常使用EJB代码,它至少会在一次调用中引用核心数据库和单个客户的数据,甚至是一些通过所有客户的一般后台流程。 在JBoss 6中,通过使用NOT_SUPPORTED事务属性设置方法,可以毫无问题地处理这个问题。 但是,JBoss 7抱怨这个,出现以下错误: ARJUNA012140:不允许添加多个最后资源。 试图添加LastResourceRecord(XAOnePhaseResource(LocalXAResourceImpl @ 74bec54d [connectionListener = d3ce980 connectionManager = 25b47a05 warned = false currentXid = ])),但已经有LastResourceRecord(XAOnePhaseResource(LocalXAResourceImpl @ 518d0191 [connectionListener = 1a05d94a connectionManager = 135f1cfe warned = false currentXid = ])) 如果不在单独的EJB调用和事务中包装对不同数据库的每次调用,我们如何解决此问题。 有没有办法在EJB调用或类似的东西中实际关闭JBoss事务管理? 注意:此问题在基于额外发现的赏金开始后被修改,以突出对特定问题的关注并删除被排除的其他可能性。

决定数据库连接池大小的思考

我正在开发基于开源java的应用程序,即xwiki。 insie hibernate.cfg.xml我可以看到参数connection.pool_size和statement_cache.siz的值为2(对于每个)。 我的应用程序将在最多时间内拥有100个用户。 现在我的问题是什么应该是理想的连接池大小。 对我来说,2号看起来很少。 如果100个用户一次连接98个用户必须等待grtting连接被释放? 在我的情况下,我应该将连接池大小保持为100吗? 我正在使用microsoft sql server。 除此之外,最大连接池大小也有限制。 它依赖于webserver(在我的情况下是tomcat)还是数据存储供应商(ms sql server)?

OCI和THIN驱动程序连接与java和oracle XE之间的数据源连接有什么区别?

我正在使用3路(OCI,THIN和数据源)编写以下代码来连接java和Oracle 10g XE,代码运行成功,但不知道THIN和OCI与数据源连接之间的区别。 1- public static void main (String args[]) throws SQLException { OracleDataSource ods = new OracleDataSource(); ods.setURL(“jdbc:oracle:thin:hr/hr@localhost:1521/XE”); Connection con = ods.getConnection(); System.out.println(“Connected”); con.close(); } 2- public static void main(String args[]) { try { // load oracle driver Class.forName(“oracle.jdbc.driver.OracleDriver”); // connect using Thin driver Connection con = DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:xe”,”hr”,”hr”); System.out.println(“Connected Successfully To Oracle”); con.close(); } […]

Java中有多少个JDBC连接?

我有一个由大约15种方法组成的Java程序。 而且,这些方法在程序执行期间经常被调用。 目前,我正在每个方法中创建一个新连接并在其上调用语句(数据库在网络上的另一台机器上设置)。 我想知道的是:我应该在main方法中只创建一个连接,并将其作为参数传递给需要连接对象的所有方法,因为它会显着减少程序中连接对象的数量,而不是创建并且在每种方法中经常关闭连接。 我怀疑我没有在当前设计中非常有效地使用资源,并且考虑到该程序将来可能会增长很多,因此还有很大的改进余地。

ORM Technologies与JDBC?

我的问题是关于ORM和JDBC技术,与JDBC和其他方式相比,您决定使用ORM技术的标准是什么? 谢谢。

抢先并优雅地检查org.hibernate.Session是否仍然连接(通过c3p0)

我在多分类数据库环境中工作,其中分片的停机时间不是致命的。 当应用程序启动时,所有分片信息都会加载到缓存中并加载相应的Session对象,但是,在应用程序正常运行期间,预计某些分片可能会关闭,在这种情况下,应用程序会故障转移到剩余的分片之一碎片。 它几乎是一个标准的用例场景。 在某些情况下,我需要进行交叉分片扫描,我这样做的方法是遍历上述会话映射并检索数据。 当我的Hibernate会话到一个同时因为会话打开而失败的数据库时,问题出现了。 我希望有一种先发制人的方法来检查数据库是否已关闭而不尝试事务并获取org.hibernate.exception.GenericJDBCException ,这是我现在发现它的方式,但这很糟糕,因为它是运行时exception,在所有其他邪恶中。 我还尝试了Session.isOpen()和Session.isConnected()但即使数据库关闭,这两种方法都返回true。 有没有办法先发制人地优雅地检查Hibernate Session的连接? 像向数据库发送ping一样的东西。 也值得知道我们使用c3p0进行连接池。 有没有办法可以配置它来告诉Hibernate连接断开并关闭/断开相关会话?

sqlite数据库连接:java.Lang.ClassNotFoundException:org.sqlite.JDBC

首先让我说我是编码的初学者。 我只在高中的最后几个学习java,所以不要害怕过于简化的解释。 我正在尝试使用BlueJ创建并连接一个sqlite数据库作为我的IDE。 我真的不明白我在做什么,但我在youtube上遵循了一些说明。 无论如何,当我运行程序时,我得到一个“java.Lang.ClassNotFoundException:org.sqlite.JDBC”。 我已经完成了几次谷歌搜索,但大多数解决方案都是指错误放置的jar文件。 他们说“确保包裹在类路径中”,我这样做了……至少我想我做到了。 它位于BlueJ的java> extensions文件夹中。 请让我知道语法有什么问题或者问题是什么。 如果您需要更多信息,请随时提出! 非常感谢,谢谢! 这是我的代码: import java.sql。*; import javax.swing。*; public class javaconnect2 { public static Connection ConnecrDB() { Connection conn = null; try { Class.forName(“org.sqlite.JDBC”); Connection conn = DriverManager.getConnection(“jdbc:sqlite:/Users/aaronyih/Desktop/TEA/LearningGUI/TEA DATABASE.sqlite”); JOptionPane.showMessageDialog(null, “Connection Established!”); return(conn); } catch(Exception e) { JOptionPane.showMessageDialog(null, e); return(null); } } }

java.lang.ClassNotFoundException Netbeans java derby

我使用Netbeans,做一个java应用程序。 我在netbeans中使用Java DB创建了一个用于db连接的ConnectDB类。 我启动了服务器,十个连接到db。 当我运行它生成的文件 java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver @ 25 line 和 java.sql.SQLException: No suitable driver found for jdbc:derby://localhost:1527/Libraryprj;create=true @ 30行代码 代码如下 package Lms; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; /** * * @author JOJO */ public class ConnectDB { static Connection conn; public static void main(String[] args) { String driver = […]