行云无鸣

2011-10-02

DB2下生成UNIX风格的timestamp

Filed under: 乱语 — 标签:, , — hellyguo @ 15:03

CAST (DAYS(CURRENT TIMESTAMP) - DAYS('1970-01-01') AS INTEGER) * 86400 + (MIDNIGHT_SECONDS(CURRENT TIMESTAMP – CURRENT TIMEZONE))

转自:dbForums

2011-10-01

Windows版本DB2登录时报“SQL30082N USERID DISABLED or RESTRICTED”

Filed under: 乱语 — 标签:, , — hellyguo @ 20:50

Windows版本的db2,通过db2cmd登录时报:SQL30082N USERID DISABLED or RESTRICTED
在我这里出现此问题的原因是,我在组策略中封闭了db2admin账户的网络访问权(计算机配置->Windows 设置->安全设置->本地策略->用户权利指派,“拒绝从网络访问这台计算机”中添加了db2admin)。
删除即可。

2010-06-14

Debian下停止DB2 Express-C的自动启动

Filed under: 乱语 — 标签:, , — hellyguo @ 19:12

#停止DB2实例的自动启动
db2iauto -off InstName
#InstName可从db2ilist获取
db2ilist

2008-07-11

又死锁

Filed under: 未分类 — 标签:, , — hellyguo @ 00:00

DB2又死锁了

死得莫名其妙的

我代码都封闭了,程序居然还是在跑那段代码

一度以为是有第二台计算机在跑应用。可问遍了其他人,都说没有跑。很郁闷。

又检查了系统中的活动进程 ,也只见到一个java进程。更郁闷。

今天突然想到一个问题:是不是在WebSphere停应用更新时,应用虽然停了,但某一个线程没有停止,尚在运行。

让同事重启了WebSphere,看11号凌晨的效果。

如果今天没事了,那,很明显就是这个原因

补记:经两天观察,确定就是这个原因。看来是退出时线程控制不好。

2008-06-09

DB2添加索引,防止全表扫描

Filed under: 未分类 — 标签:, , — hellyguo @ 23:23

为了检查死锁,对整个应用系统调用的脚本中使用频率最高的SQL都进行了分析。分析结果着实让我吓了一跳。

许多查询,都是在做全表扫描的!

性能且不去说他,全表扫描可能导致的死锁,我更担心!

为应用建立合适的索引后,死锁频率大幅降低,执行速度也大幅提高。

2008-06-02

一次DB2死锁解决

Filed under: 未分类 — 标签:, , , — hellyguo @ 15:47


<prop key="remove*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="cancel*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="process*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="insert*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="delete*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="do*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="deal*">PROPAGATION_REQUIRES_NEW,-Exception</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED, readOnly</prop>

这是在Spring中的事务配置

在某个业务环节上,需要在一个大事务(称为A,方法名非deal起头)中循环执行多个子事务(称为a,方法名用deal起头)
这些子事务,都是在一个查询获得的List中取出数据处理
这时,从数据库层面上,由于DB2的锁机制,A获得了一个锁,保证数据不被篡改。当a事务要求修改数据,就被锁限制,只能等待。
而从应用程序层面上,由于顺序执行的关系,A必须等待a的执行完毕后,才能进入下一步操作,也只能等待。
这样,就造成了两个层面上的死锁。

解决方法:
将A中的查询事务也抽取为小事务(称为b,方法名用deal起头),先执行b,获得数据List。再按查询得到的List,循环执行a,问题得到解决。

2008-05-23

db2建库报SQL1088W

Filed under: 未分类 — 标签:, — hellyguo @ 21:48

SQL1088W The database was created, but an error occurred while binding the
utilities. The utilities are not bound to the database.

排查来排查去,没找出原因。后来在往某数据库塞数据时,发现文件系统满了。
原来如此!怪不得不能建库了!空间没了啊

2008-05-22

sed/awk初步学习

Filed under: 未分类 — 标签:, , , — hellyguo @ 10:28

使用了DB2,在数据输出方面相对较弱,没有ORACLE在输出时那么多的设置。故需采用shell脚本进行加工。因此,学习了sed和awk。

很强大!

通过sed去除DB2的首尾输出,再用awk进行数据格式化。
db2 select * from table_a|sed -f db2.sed|awk -f table_a.awk>data

AIX下强制卸下某一进程对DB2的访问

Filed under: 未分类 — 标签:, , — hellyguo @ 01:09

db2 list application for database <dbname> show detail

根据输出的agent id

db2 force application \(<agent id>\)

2008-05-16

对DB2查询结果去头掐尾

Filed under: 未分类 — 标签:, , , — hellyguo @ 16:42

db2 select * from table_a|sed -f demo.sed

demo.sed内容

1,3d
/record/d
/^$/d

Older Posts »

%d 博主赞过: