草庐IT

database-locking

全部标签

java - ORA-12519, TNS :no appropriate service handler found while inserting into Oracle Database with X threads

我正在尝试插入到具有两列的Oracle数据库中-IDPrimaryKeyvarchar2(4000)ACCOUNTvarchar2(4000)我为此编写了一个多线程程序。并且每个线程每次都使用uniqueid插入ID列,因为ID是主键。我在某些时候面临的唯一问题是-下面的代码在运行几秒钟后抛出以下异常。1)NullPointerException2)java.sql.SQLException:Listenerrefusedtheconnectionwiththefollowingerror:ORA-12519,TNS:noappropriateservicehandlerfound我无

Java 并发 : lock effiency

我的程序有100个线程。每个线程都这样做:1)如果arrayList为空,则向其添加具有特定属性的元素2)如果arrayList不为空,遍历arrayList中找到的元素,如果找到合适的元素(匹配某些属性),获取并移除arrayList这里的问题是,当一个线程遍历arrayList时,其他99个线程正在等待arrayList上的锁。如果我希望所有100个线程都在无锁条件下工作,您会给我什么建议?所以他们都有工作要做?谢谢 最佳答案 你看过sharedvsexclusive了吗?锁定?您可以在列表上使用共享锁,然后在列表元素上使用“已

java - 网络 Swing 游戏中的多线程 : using invokeLater vs locks

我正在编写一个简单的自上而下的太空游戏,并且正在扩展它以允许通过网络与多个玩家一起玩。我读了很多书,但这是我第一次这样做,我希望能得到一些关于选择合理设计的建议。我的GUI是使用Swing编写的。每秒30次,计时器触发,并根据内存中gameWorld对象中的数据重新绘制我的GUI(本质上是带有位置的船舶和射弹列表等)。游戏世界的物理更新也是使用这个计时器进行的。因此,对于单人游戏实现,一切都发生在EDT上,并且效果很好。现在,我有单独的线程处理来自其他玩家的传入数据包。我想根据这些数据包包含的内容更新我的gameWorld对象中的数据。我的问题是,我应该使用invokeLater来进行

java - 测试用例 : Mocking Database using Spring beans

我们的应用程序有一个服务层和一个DAO层,编写为Springbean。在测试服务层时——我不想依赖真实的数据库,所以我通过为DAO层创建一个“模拟”实现来模拟它所以当我测试服务层时——我将服务层bean链接到MockDAObean在生产中——将服务层链接到“真正的”DAObean这是个好主意吗?关于如何模拟数据库层的任何替代建议?澄清:这个问题是关于测试服务层而不是DAO层。在测试服务层时——我假设DAO层已经过测试或不需要测试。最主要的是——我们如何测试服务层——而不依赖于DAO实现——因此我在模拟DAO层 最佳答案 这是我们多年

java - 与 Java 中的同步块(synchronized block)相比,新的 Lock 接口(interface)有什么优势?

与Java中的同步块(synchronizedblock)相比,新的Lock接口(interface)有何优势?您需要实现一个高性能缓存,允许多个读取器但单个写入器保持完整性,您将如何实现它? 最佳答案 锁的优点是让他们公平是可能的可以让线程在等待Lock对象时响应中断。可以尝试获取锁,但如果无法获取锁,则立即或超时后返回可以在不同的范围内以不同的顺序获取和释放锁请注意,这在javadocofLock中有解释。及其子类。可以使用ConcurrentMap实现高性能缓存。 关于java-与

java - 结果集.next() : Does it fetch data from buffer OR from database?

我有下面这样的代码,try(Connectionconnection=this.getDataSource().getConnection();PreparedStatementstatement=connection.prepareStatement(sqlQuery);){try{statement.setFetchSize(10000);//SetfetchsizeresultSet=statement.executeQuery();while(true){resultSet.setFetchSize(10000);booleanmore=resultSet.next();if(

java - 为什么 ‘No database selected’ SQLException?

这个问题在这里已经有了答案:java.sql.SQLException:Nodatabaseselected-why?(4个答案)关闭3年前。为什么这个程序在第二次进入dowhile循环时没有执行,为什么它给出异常“Exceptionjava.sql.SQLException:[MySQL][ODBC5.1Driver][mysqld-5.0.51a-community-nt]没有选择数据库”//importjava.io.InputStream;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.

java - Thread.holdsLock(lock) 的目的是什么?

我看到有人用断言!Thread.holdsLock(lock)以避免死锁。这样做的目的是什么?如果锁对象被另一个线程持有,assert会导致代码立即退出吗? 最佳答案 javadocofthemethod说:Returnstrueifandonlyifthecurrentthreadholdsthemonitorlockonthespecifiedobject.(强调我的)因此,断言检查当前线程是否持有给定锁对象的监视器锁。请注意,断言用于检查不变量,可以禁用。它们不应用于防止死锁。应该使用常规的if测试来做到这一点。

java - 判断当前线程是否持有 Java `Lock`

假设我有一个java.util.concurrent.locks.Lock的实例是否可以判断锁是否被当前线程持有?假设锁对象只实现了Lock接口(interface),不一定是可重入的,所以调用lock或tryLock可能不是一个好方法检查锁的方法。 最佳答案 Lock接口(interface)本身不提供这样的功能,但是它的通用实现器ReentrantLock有这样的方法:ReentrantLock.isHeldByCurrentThread().但是请注意,如文档所述,此方法的主要目的是调试、断言和测试。如果您需要它用于正常的程序

java - Apache Derby - java.sql.SQLException : Failed to start database

首先,这是我第一次使用ApacheDerby。我正在使用netbeans,愿意使用嵌入式apachederby,并且我按照以下教程配置和安装数据库。然后,我使用项目属性将derby.jar文件附加到我的项目。http://netbeans.org/kb/docs/ide/java-db.html#starting所附图片将显示我在netbeans中的数据库状态我的数据库名称是“联系人”。表名为“FRIENDS”。以下是我的测试代码**DatabaseConnector.java**importjava.sql.*;publicclassDataBaseConnector{private