割接是最不能能忍受的的工作,可是從接收這塊程序倒現在,已經為不同地區的業務割接了2次了,今天這是第三次。為了不影響用戶使用,割接一般都是在夜里進行,可是今天不想加班了,就從中午開始,上傳新的文件,更新配置,導數據庫中的數據,重啟服務器,一切都很順利,不由得哼起小曲。這個時候發現控制臺在報錯“違反唯一約束條件 (CL.PK_....”,不用想,肯定是sequence不對,于是在數據庫中找到sequence重新設置到足夠大,可是還是報錯,這下子開始著急了。
先從log看起:關鍵的時候log總是沒起到作用,開始調log4j的配置文件,把log的級別調成debug,可惜VNC實在是太慢,輸入字符卻不顯示,tomcat開始說我log4j的文件沒寫對,只能在本地改好了,通過FTP傳到服務器上。等看到所有的log以后,真是讓我發暈,原來我改的sequence不是真正用到的sequence,我改錯了。
從中得到幾點啟發:
1 舊數據表的sequence不一定就是新的sequence,設計者可能改掉了,我對舊表的設計比較熟悉,所以就忽略了。
2 為了log4j能顯示hibernate的SQL,要加幾句話
### log just the SQL
log4j.logger.org.hibernate=info
### log just the SQL
log4j.logger.org.hibernate.SQL=debug
### log JDBC bind parameters
log4j.logger.org.hibernate.type=debug
3 割接還是在晚上做比較好,這樣即使出了問題也不會太慌張
4 代碼和設計還是越熟悉越好,雖然表太多了,沒辦法記住那么多