- 浏览: 578132 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (411)
- webservice (3)
- oracle (37)
- sqlserver (8)
- j2ee (56)
- linux (7)
- javaweb (47)
- office (1)
- struts (23)
- hibernate (11)
- spring (29)
- 网络 (2)
- tomcat (13)
- tongweb (0)
- weblogic (0)
- powerdesiginer (3)
- svn (3)
- js (20)
- ie (2)
- 编译 (3)
- css (2)
- 操作系统 (5)
- Android (41)
- jbpm4.3 (1)
- fckeditor (3)
- 操作excel (2)
- db2常用命令 (1)
- ibatis (5)
- mysql (16)
- 表达式语言 (1)
- java方式调用存储过程 (1)
- ca (1)
- linux客户端 (1)
- 电子数码 (1)
- 行业应用 (12)
- 开发工具 (4)
- 面试 (1)
- 计算机原理 (1)
- NOSQL (5)
- 虚拟机 (1)
- nginx (0)
- velocity (2)
- jndi (1)
- spring mvc (39)
- springmvc (32)
- 安全 (5)
- htmleditor (6)
- iphone4 (1)
- html (4)
- jstl (2)
- ckeditor (5)
- 连接池 (1)
- jquery (6)
- 分页 (1)
- 技术研发规则 (1)
- javamail (1)
- maven (2)
- upload (1)
- log (1)
- 测试 (10)
- spring roo (1)
- 版本控制 (2)
- find bugs (0)
- jsf (0)
- springroo (0)
- 小道理 (1)
- 小道理,技术标准 (1)
- jsf (0)
- bitbao (2)
- redmine (3)
- 团队意识 (1)
- mybatis (2)
- jquery mobile (1)
- flexpaper (0)
- json (4)
- URLRewriteFilte (1)
- html5 (1)
- 都乐保活动 (0)
- openfire (0)
- TreeMap (1)
- build (0)
- javaweb,tag (0)
- algorithm (1)
- tag (2)
- 扯淡 (0)
- mac (2)
- 叶一火(老一) (1)
- 游玩 (1)
- 编码 (1)
- 上线部署 (0)
- 研发管理 (0)
- thumbnailator (2)
- 旅游 (0)
- bingweibo (1)
- 杂谈 (4)
- ktv (1)
- weibo (1)
- 爱情 (2)
- 饮食 (1)
- MediaWiki (1)
- git (1)
- 版本库 (1)
- servlet (1)
- 感悟 (1)
- 人生 (1)
- highcharts (1)
- poi (0)
- websphere (0)
- php (1)
最新评论
-
woshixushigang:
good
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
nathanleewei:
org.springframework.jdbc.core.B ...
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
浪禾木:
请问是ckeditor\contents.css吗?改过以后 ...
ckeditor自动换行问题 -
simusuishi:
刚哥威武!
ckeditor取值赋值问题 -
a455642158:
收割完毕……
Android开源项目源码下载(不断更新中)
项目中因某种需求,在程序中操作数据的SQL加行级锁,避免出现插入重复的数据。但运行几天后报错,因此根据日志分析问题产生的原因。
问题描述:【Caused by: java.sql.SQLException: ORA-00054: resource busy and acquire with NOWAIT specified】
原因如下:
出现这个问题的原因是正在执行的操作请求的资源正被其他事务锁定。
nowait:立即执行,如果另有会话正在修改该记录会立即报告错误:ORA-00054: 资源正忙,要求指定 NOWAIT;如果不选择nowait选项则会一直处理等待状态。
wait [n]:等待n秒,如果另有会话正在修改该记录会报告错误:ORA-30006: 资源已被占用; 执行操作时出现 WAIT 超时。
例如:
SELECT ... FOR UPDATE [OF ...][NOWAIT | WAIT integer]
NOWAIT指在执行"SELECT ... FOR UPDATE"时其他事务修改了该查寻的结果但还没有提交,此时将立即返回如下结果:
ORA-00054: resource busy and acquire with NOWAIT specified
如果不使用NOWAIT等项,默认为等待(WAIT)其他事务提交后在返回结果。
WAIT integer,与NOWAIT的功能相似,但可以等待用户指定的秒数。如:"WAIT 3"等待3秒后,其他事务还没有提交将返回如下结果:
ORA-30006: resource busy; acquire with WAIT timeout expired 。
出现这种问题后查V$LOCKED_OBJECT,要么等事务结束后再做,要么杀掉持有锁的会话(如果不是关键会话):
1.通过查找出已被锁定的数据库表及相关的sid、serial#及spid
select object_name as 对象名称,s.sid,s.serial#,p.spid as 系统进程号
from v$locked_object l , dba_objects o , v$session s , v$process p
where l.object_id=o.object_id and l.session_id=s.sid and s.paddr=p.addr;
2.在数据库中灭掉相关session
alter system kill session 'sid,serial#';--sid及serial#为第一步查出来的数据。
分析:
1、有别的sql plus客户端执行了某些的操作后没有执行commit,而同时系统应用也正在访问同样的资源。
2、程序中对数据操作后没commit,而同时系统应用也正在访问同样的资源。
3、并发问题,并发高的时候无法保持一致性。
风险:
最好不要再程序中使用锁机制,这样:
第一,难免会要在sql/plus中操作数据。
第二,如果遇到并发问题,无法保持一致性。
上面的是引用别人的。
我在项目中也遇到了这种情况,但是问题出在了字段位置不对应如:
manager.setImage(this.res.getString(20)); manager.setEmail(this.res.getString(17)); manager.setMobilephone(this.res.getString(18)); manager.setExcount(this.res.getInt(19));
现在数据库字段顺序变化了所以就报错了。
发表评论
-
sql查询不同用户下得表
2013-03-08 10:26 0查询当前用户的表 SELECT table_nam ... -
where 1=1或者 0 =0
2011-09-16 18:39 711sql where 1=1和 0=1 的作用 where ... -
事务开始和结束
2011-08-19 19:13 1123《Oracle Database 11g SQL开 ... -
事务的隔离级别
2011-08-19 00:06 658如果DBMS支持事务处理 ... -
事物隔离级别
2011-08-19 00:03 1215事物隔离级别(转 ... -
case when和decode
2011-08-16 18:15 965Oracle的DECODE函数功能很强,灵活运用的话可以避免多 ... -
创建存储过程
2011-08-10 22:29 720--创建存储过程 CREATE OR REPLACE PRO ... -
Oracle字符集
2011-07-22 22:06 978一、什么是Oracle字符集 Oracle字 ... -
sequence和trigger引发的低级错误
2011-07-22 16:55 1074本人做国家林业局政法司项目时候遇到了一个低级的错误:新 ... -
connect by prior start with
2011-07-21 16:46 941connect by prior start with ... -
oracle级联查询当前地区的子地区
2011-07-20 11:11 941select id from AREA connect by ... -
往表插入其他表数据
2011-07-19 15:48 830insert into future.news(a,b,c) ... -
java.sql.SQLException: 类型长度大于最大值 原因
2011-07-19 14:04 1247可能是驱动问题,换成ojdbc16.jar。 或者是检 ... -
String[] args = new String[]{sql.toString()}
2011-06-29 16:12 1137本题中 StringBuffer sql = new Stri ... -
to_date
2011-06-29 15:25 1432TO_DATE格式(以时间:2007-11 ... -
获取数据库当前时间
2011-06-22 10:35 1311例如有表table,table 中有两个字段:name 、 ... -
统计oracle 数据库 lawpeople表lawtype字段多个值只统计一次问题,按照地区分类
2011-06-10 15:57 1246select temparea.name,(case whe ... -
telephone页面传值到struts2模型驱动中报错
2011-05-22 19:42 1270- Error setting expression 'res ... -
批量插入数据效率问题
2011-05-21 22:04 1344大家都知道,招聘系统 ... -
oracle根据id查询数据时候in后面数目不能超过1000但是or可以
2011-05-04 15:13 1242select * from table where id i ...
相关推荐
它实现了Java Database Connectivity (JDBC) API,使得开发者可以使用Java语言来操作Oracle数据库,执行SQL语句,进行数据查询、插入、更新和删除等操作。Oracle JDBC驱动分为不同版本,包括 Thin、OCI、JDBC-ODBC ...
当你尝试连接到MySQL数据库时,可能会遇到一个特定的异常:“java.sql.SQLException: The server time zone value ‘?й???????’ is unrecognized or represents more than one time zone”。这个错误表明服务器...
在JDBC中,CLOB对象被表示为`java.sql.Clob`接口的实例,提供了读取和修改CLOB字段的方法。 要读取CLOB字段并转换为String,你需要遵循以下步骤: 1. **建立连接**:使用`DriverManager.getConnection()`方法建立...
因此,在某些情况下,可能需要将`java.util.Date`转换为`java.sql.Date`。 示例代码: ```java import java.sql.Date; import java.util.Date; public class DateConversionExample { public static void main...
在Java编程中,反射是一种强大的工具,它允许我们在运行时检查和操作类、接口、字段以及方法的信息。这里我们关注的是如何使用反射来向简单的JavaBean对象中设置和获取值,而不必显式地创建这些对象。这个过程涉及到...
星环大数据平台是一个综合的大数据分析处理平台,其中InceptorSQL是其核心组件之一,它是基于Hadoop和Apache Hive技术栈开发的SQL查询引擎,允许用户执行SQL查询以及进行数据处理。 InceptorSQL使用方法的文档主要...
在实际开发中,经常需要将`java.util.Date`对象转换为`java.sql.Date`或`java.sql.Timestamp`对象,以便于存储到数据库中。 **示例代码**: ```java import java.sql.Date; import java.util.Date; public ...
- **java.sql.SQLException**:处理数据库操作时,当发生错误或异常情况时抛出。 - **java.io.IOException**:表示输入/输出操作失败或中断时抛出。 - **java.lang.NoSuchMethodException**:当试图调用不存在的方法...
import java.sql.SQLException; public class Main { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "username"; String password = ...
10. **java.sql.SQLException**: 当与数据库交互时发生错误,如SQL查询失败或连接问题,会抛出此异常。使用try-catch语句来处理数据库操作。 11. **java.lang.NoSuchMethodException**: 当试图调用一个不存在的方法...
在Java编程环境中,连接Microsoft SQL Server数据库通常会用到Java Database Connectivity (JDBC) API。JDBC提供了一组标准的接口和类,使得Java应用程序能够与各种数据库进行交互,包括SQL Server。为了实现这一...
在Java中处理Blob数据涉及读取二进制数据、将其转换为Blob对象、在SQL语句中设置Blob参数以及从数据库中读取Blob数据。这个过程在处理像图片这样的大文件时尤其有用。确保选择适当的数据库特定类进行Blob操作,并...
- `java.sql.Connection`、`java.sql.DriverManager`、`java.sql.ResultSet`、`java.sql.SQLException` 和 `java.sql.Statement`:用于连接Oracle数据库并执行SQL查询。 2. **定义类和方法**: - 类名为 `...
10. **`java.sql.SQLException`**:数据库操作异常。当与数据库交互时,如查询、插入、更新数据出错,会抛出此异常。确保SQL语句正确,数据库连接正常。 11. **`java.lang.NoSuchMethodException`**:方法未找到...
1. JDBC Type 1(JDBC-ODBC桥接驱动):这是最早的JDBC驱动,它将Java的JDBC调用转换为ODBC调用,再由ODBC驱动程序处理到特定数据库的通信。由于依赖于ODBC,所以安装和配置相对复杂。 2. JDBC Type 2(数据库供应...
这样,Java程序在与Oracle数据库进行通信时,可以通过`orai18n.jar`来转换字符集,确保中文字符能够正确地编码和解码。 具体操作步骤如下: 1. 下载`orai18n.jar`文件,通常可以在Oracle官方或其他可靠的资源网站...
- **`java.sql.SQLException`**:操作数据库异常。 - **`java.io.IOException`**:输入输出异常。 - **`java.lang.NoSuchMethodException`**:方法未找到异常。 #### 三、总结 异常处理对于编写健壮和可靠的...
3. msutil.jar:这个工具包主要提供了一些实用工具类,用于处理SQL Server相关的数据类型和操作,例如日期时间格式转换、加密解密等功能,以增强Java应用程序与SQL Server之间的兼容性和效率。 要使用这些JAR包,你...
10. **java.sql.SQLException**: 当与数据库交互时出现错误,例如SQL查询失败或连接问题,会抛出此异常。确保SQL语句语法正确,数据库连接配置无误。 11. **java.lang.NoSuchMethodException**: 当尝试调用一个...
JDBC是Oracle公司提出的用于Java程序访问数据库的标准接口,它允许Java开发者编写数据库独立的代码,通过驱动程序适配器将这些通用的调用转换为特定数据库系统的原生调用。在Java中连接SQL Server 2000,首先需要...