昨晚折腾了挺久,基本上搞定T系统了,遇到的问题如下,记录一下。
问题起因,是为了在家里能模拟公司的系统运行,方便学习研究。
该系统为:数据库DB2 + java中间件 + ASP.NET网站。
问题 | 解决 |
安装DB2 | 很久前机子上有DB2 8.1,公司已经在用DB2 9.5。DB2有点老,不过先装上再说吧,选在D盘安装,一路正常。用户名、密码都设为admin。然后创建样本数据库。正常。问题如下。 (1)以前windows xp自动登陆administrator账户,现在会默认db2的admin账户,还好以前了解过,连按两次ctrl+alt+del,可以选择用户。 (2)进去后,cmd- control userpasswords2,选中一个用户,去掉必须输入密码选项,则以后可以自动登录。 (3)一开始担心装上db2后,机子会慢得出奇,现在看来还好,可能是去年增加了内存的原因。早在几年前就装过db2,就是因为拖得机器太慢而卸载掉了。 |
创建C数据库 | 摸索create database。遇到了以下问题或陷阱。 (1)create tablespace,提示默认缓冲池pagesize不一样,IBMDEFAULTGROUP PAGESIZE改为4K。可能是版本差异问题。 (2)删掉了FILE SYSTEM CACHING,删掉了DROPPED TABLE RECOVERY ON,可能是db2 8.1不认识。 (3)db2 9以上create large tablespace,但是8版本的,large只能用于lob等大字段,必须create regular tablespace,百度解决之。 (4)PREFETCHSIZE AUTOMATIC 提示报错,低版本问题,AUTOMATIC改为32。 (5)create tablespace USING了本地文件,一开始的1310720(5G)总提示有问题,容易已满。后来改为1.5G,可以正常创建。 (6)还有一点,db2set db2codepage,windows默认就是1386,不用改。公司机器上是aix,所以以前遇到过codepage问题,要把819改为1386。 (7)终于搞定,创建了所有的表空间、表和其他数据库对象。 |
配置Java程序 | (1)第一步是启动java,修改了数据库设置,用type4的jcc驱动。一开始用的是公司特定的jcc jar。后来忽然想到,公司的可能是专用的,用换了db2自带的jdk1.3,还重写了getTimeMillions、split、replaceAll几个函数(jdk1.3没有,汗),重新运行,可以启动了。 (2)T系统java中间件有好几个,自己平时就做这个,轻车熟路就把几个合并到一起了,java改了改配置,就可以合并了,其实这个中间件本身框架没什么技术含量。Java可以启动了。 |
配置dotnet | (1)前台也改了改配置,主要是java的ip和端口,然后login页面做了个模拟登陆,就可以了。 (2)去掉了权限验证,可以进来看所有业务。本来也是做这个的,轻车熟路就改掉了。 |
联调试运行 | (1)发现可以插入数据,但是ResultSet get java.sql.Date对象时,无论如何都要报错index out of Range exception,晕死了,这明显不是程序问题。折腾了很久都没搞定,中文资料又少,有点想放弃了。 (2)最后,终于想到是jdk的问题。换了jre1.6,然后网上重新找了ibm更新后、改了bug的jcc驱动。重新运行,加上license_cu.jar文件,终于,正常了。 |
数据问题 | 最后的问题,就是缺少数据,还需要有些基础数据才可以。 |
总结 | 总的来看,平时自己写程序多,对于数据库,了解不够。Db2建表、db2驱动,昨晚的主要问题,都是和db2有关的问题。 |