- 浏览: 35271 次
- 来自: ...
最新评论
文章列表
以前做过一个项目给指标做公式,把公式保存进数据库,然后点击保存的时候根据公式中相关指标的数据进行计算,然后把计算的结果后再保存,看见别人写的代码一大堆非常乱,而且性能特别低,最新发现一开源的JAVA类库JEP,用来解决类似问题,代码会非常清晰.转来给大家参考一下:
官网地址: http://www.singularsys.com/jep/
示例代码:
Jep jep = new Jep();
String exp = "((a+b)*(c+b))/(c+a)/b"; //给变量赋值
try {
jep.addVariable("a", 1); ...
使用JCONSOLE监视tomcat
- 博客分类:
- 性能
环境:tomcat,jdk1.5,windows
1、首先配置tomcat的bin/catalina.bat,在"set JAVA_OPTS=%JAVA_OPTS% "后添加“-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=7080 -Dcom.sun.management.jmxremote”,如果配置了虚拟内存,这些信息紧跟其后。“-Dcom.sun.manageme ...
用DIV+CSS弹出层来实现弹窗功能
- 博客分类:
- WEB前端
用window.open(),还是用window.showdialog弹出对话框都回被浏览器拦截,但是用DIV+CSS得方式实现,可以防止被拦截,于是再网上找到一个例子,原理就是在页面上加2个层,第一个层把页面全部盖住,防止用户点击其他地方,第二个层是一个显示内容的层,代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml ...
加入这一句。。回车就换行
if(event.keyCode==13) event.keyCode=9;
select *
from (SELECT a.tablespace_name tableSpaceName,
NVL(a.BYTES / 1024 / 1024,0) totalSize,
NVL(b.largest / 1024 / 1024,0) freeSize,
NVL((a.BYTES - b.BYTES) / 1024 / 1024,0) usedSize,
round(NVL((a.BYTES - b.BYTES) / a.BYTES * 100, 0), ...
根据字段名字查询所在表
- 博客分类:
- oracle
select t.column_name,t.table_name from all_tab_cols t where t.column_name='EMPNO'
DML锁(DML lock) :
DML代表数据操纵语言(Data Manipulation Language) 。一般来讲,
这表示 SELECT、INSERT、UPDATE、MERGE 和 DELETE 语句。DML 锁机制允许并发执行数
据修改。例如,DML锁可能是特定数据行上的锁,或者是锁定表中所有行的表级锁。
1.TX事务锁
事务发起第一个修改时会得到 TX 锁(事务锁),而且会一直持有这个锁,直至事务执行提交(COMMIT)或回滚(ROLLBACK) 。TX锁用作一种排队机制,使得其他会话可以等待这个事务执行。事务中修改或通过SELECT FOR UPDATE选择的每一行 ...
如果你有两个会话,每个会话都持有另一个会话想要的资源,此时就会出现死锁(deadlock)
数据库中有两个表A和B,我们打开两个sqlplus会话,在会话1中更新A,在会话2中更新B,这时候如果在B中更新A,就会阻塞,因为会话1已经锁定了A,不过这不是死锁,只是一个阻塞,如果会话1提交或者回滚事务,则样会话2还可以继续。
这时候会话1,试图更新表B,这就会产生一个死锁。要在这两个会话中选择一个作为“牺牲
品”,让它的语句回滚。例如,会话B中对表A 的更新可能回滚,得到以下错误:
ERROR at line 1:
ORA-00060: deadlock detected while waiti ...
1.insert产生的阻塞
如果带有主键并有唯一约束的表,两个会话同时插入一行相同的数据,这样一个会话就会阻塞,处于等待状态,知道另一个会话提交或者回滚事务,如果另一个会话提交或者回滚事务,那么阻塞会话会收到一个错误,错误提示为存在一个重复值。
解决办法:
1.1 一般都会用一个序列来生成唯一值。
1.2 如果无法使用序列,则使用手工锁来避免这一个问题,这里使用内置的DBMS_LOCK来实 现
注意:这个应用体系本身存在问题,这种方法会增加开销。而且不能轻量级实现。如果设 计良好则不会产生这个问题。千万不要对于应用每个表都使用此方法。
我们可以使用一个触 ...
提示the requested operation has failed
在网上终于找到了解决办法:
即使你这次启动了,下次你都有可能启动失败
在运行里输入:netsh winsock reset
一会儿cmd会提示你重启,不用理会,现在APACHE已经可以启动了。
其实就是一个winsock的修复
1:每分钟执行
Interval => TRUNC(sysdate,'mi') + 1/ (24*60) 或 Interval => sysdate+1/1440
2:每天定时执行
例如:每天的凌晨1点执行
Interval => TRUNC(sysdate) + 1 +1/ (24)
3:每周定时执行
例如:每周一凌晨1点 ...
最近有一需求要用JAVA调用VB写的动态库在网上搜了一个方案,试验成功:
1.新建VB工程:MathProj 类名:Math, 代码如下
Public Function Mult(in1 As Variant, in2 As Variant) As Variant
Mult = in1 * in2
End Function
2.生成MathProj.dll动态库文件
3.用regsvr32 "C:\Documents and Settings\Administrator\桌面\MathProj.dll" 注册
4. 引入jacobBin_17中j ...
ygie js kuangjia sssssssss
因为线程可以阻塞,并且对象可以具有同步控制的方法,用来防止锁还没有释放的情况下别的线程就来访问这个对象,比如:某个线程在等待另一个线程,后者又等待别的线程,一直下去,知道结尾的线程又在等待第一线程的锁,这样线程之间等待连续循环,没有哪个线程能够继续执行,就是死锁。
1.就绪 (new)
线程对象已建立,但还启动,所以还不能运行。
2.就绪(Runnable)
线程对象调用starte方法后进入此状态。进入这个状态并不意味着在执行,它可能被阻塞或正执行。只要调度程序分给时间给线程,它就可以运行。
3.死亡(Dead)
死亡线程通常方式是从run方法返回。
4.阻塞(Blocked)
线程能够运行,但某个条件阻止他的运行,当线程进入阻塞状态时,调度机制将忽略该线程,不再分配给线程任何处理时间。直到进入就绪状态,它才有执行的机会。
线程阻塞:
当一个线程被阻塞 ...