<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ice world

    There is nothing too difficult if you put your heart into it.
    posts - 104, comments - 103, trackbacks - 0, articles - 0

    2014年1月24日

    這個問題很多小伙伴都遇到了,網(wǎng)上搜羅了半天也沒找到太好、太完美的解決辦法,有人說是因為安裝IE11時聯(lián)網(wǎng)了,導(dǎo)致自動打了補丁,這個補丁可以自動檢查IE主頁是否損壞,可以通過卸載相應(yīng)的補丁解決,我同時又找到了另外一個通過修改hosts文件的方法,貌似目前解決了我的問題,修改方法如下: 使用記事本打開 C:\Windows\System32\drivers\etc\hosts 文件,在最下面追加一行: 127.0.0.1 ieonline.microsoft.com

    posted @ 2016-08-12 10:47 IceWee 閱讀(879) | 評論 (0)編輯 收藏

    將JDK中BIN文件夾下的 msvcr71.dll 這個文件復(fù)制到 TOMCAT 中的 BIN 下

    posted @ 2016-01-18 13:43 IceWee 閱讀(427) | 評論 (0)編輯 收藏

    有段日子沒做記錄了,這段日子一直在排雷(前人埋下的隱患代碼,或者直接說bug),今天這個雷讓我排了將近大半天,因為是正式上線的系統(tǒng),只能看后臺日志,不能調(diào)試,打印出的異常信息不完整,種種的條件不充分,導(dǎo)致問題很難定位。標(biāo)題上的兩個異常,第一個一看就明白是插入的數(shù)值大于數(shù)據(jù)庫字段長度,第二個多是因為Number類型的字段導(dǎo)致,比如精度不足。

    我們的這次問題原因是程序員在做除法運算時沒有對除數(shù)進(jìn)行非零判斷,導(dǎo)致計算出來的數(shù)值非法,插入數(shù)據(jù)庫失敗,請看代碼:
    public static void main(String[] args) {
            
    double a = 10;
            
    double b = 0;
            
    double c = 0;
            
            
    double m = a/c;
            
    double n = b/c;
            
            System.out.println(m);
            System.out.println(n);
        }

    經(jīng)過計算后,m和n的值分別是多少?沒在實際開發(fā)中遇到的可能不知道,或者你有個好習(xí)慣不會出現(xiàn)這樣的bug,請看結(jié)果:
    Infinity
    NaN

    被除數(shù)非零,除數(shù)為零做除法的結(jié)果是字符串“Infinity”,翻譯成中文就是“無限”,你的中學(xué)數(shù)學(xué)老師可能說過;
    被除數(shù)為零,除數(shù)為零做觸發(fā)的結(jié)果是字符串“NaN”,即不是有效的數(shù)字。

    就是這個“Infinity”花費了我一小天的時間才定位。下面詳述問題定位的方法。

    異常1:ORA-01438: value larger than specified precision allowed for this column
    了解點數(shù)據(jù)庫的打眼一看就知道插入的數(shù)值超過了表字段長度,但你知道是哪個表哪個字段嗎?我不知道,于是網(wǎng)上查閱了下,Oracle數(shù)據(jù)庫服務(wù)器在Linux上。

    命令行登陸到數(shù)據(jù)庫所在服務(wù)器,進(jìn)入Oracle的安裝目錄,假設(shè)是/opt/oracle/
    進(jìn)入到如下目錄:/opt/oracle/admin/實例名/udump
    中間的數(shù)據(jù)庫實例名根據(jù)實際情況修改,udump目錄下會有一堆的.trc文件,這些文件記錄了所有操作當(dāng)前數(shù)據(jù)庫出現(xiàn)異常的堆棧信息。為了定位問題,我將該目錄下的所有.trc文件都刪除了(當(dāng)然,刪除之前把udump目錄整個備份了),再進(jìn)行一次系統(tǒng)的業(yè)務(wù)操作,查看一下udump目錄,發(fā)現(xiàn)立刻生成一個新 的.trc文件,打開查看(內(nèi)容片段):
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
    With the Partitioning
    , Real Application Clusters, OLAP, Data Mining
    and Real Application Testing options
    ORACLE_HOME 
    = /u01/app/oracle/product/10.2/db_1
    System name:    AIX
    Node name
    :    gsdj1
    Release
    :    1
    Version
    :    6
    Machine
    :    00CFD4644C00
    Instance name
    : bjwd1
    Redo thread mounted by this instance: 1
    Oracle process number
    : 132
    Unix process pid
    : 48300280, image: oracle@gsdj1

    *** SERVICE NAME:(bjwd) 2014-03-28 16:48:05.683
    *** SESSION ID:(2969.439612014-03-28 16:48:05.683
    *** 2014-03-28 16:48:05.683
    ksedmp
    : internal or fatal error
    ORA
    -01438: value larger than specified precision allowed for this column
    Current SQL statement 
    for this session:
    insert into CP_TEMP_STOCKTRAN (APPLY_ID, ALIEN, CER_TYPE, CER_NO, TRANS_AM, TRANS_AM_PR, TRANS_TYPE, TRANS_DATE, ENDORSOR, BLIC_TYPE, ALIEN_ID, ENDORSOR_ID, STOCKTRAN_ID) values (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13)

    黃色背景紅色字體的SQL就是罪魁禍?zhǔn)祝@僅僅能定位發(fā)生問題的數(shù)據(jù)庫表,字段還得自己排查。異常1讓我定位到了這里,這時想起了異常2。


    異常2: Could not synchronize database state with session
    之前也搜索過這個異常,多數(shù)是由于Number類型的字段導(dǎo)致。冷靜的思考一下,平常我們在做表設(shè)計時,會把文字類型的字段設(shè)置大一些,Number類型的精度也會根據(jù)實際業(yè)務(wù)進(jìn)行設(shè)計,但往往Number類型的字段最容易出問題:
    1、如果將非Number值插入該字段,比如字符串
    2、如果插入的數(shù)值精度過多,如字段設(shè)計Number(10,2),也就是最大支持8為整數(shù)和兩位小數(shù),要插入34.121313就會失敗

    根據(jù)表名定位到hibernate的映射文件以及實體類,再從業(yè)務(wù)功能入口(一個action方法)搜索,終于定位到一個業(yè)務(wù)接口做了該實體類的保存代碼,定位到了那個字段,定位到了做除法沒有判斷除數(shù)是否為0。








    posted @ 2014-03-28 18:54 IceWee 閱讀(873) | 評論 (0)編輯 收藏

    網(wǎng)絡(luò)配置:
    臨時(重丟失)
    ifconfig eth0 192.168.1.xxx netmask 255.255.xxx.0


    永久(重啟有效)
    vi /etc/network/interfaces

    # This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).

    # The loopback network interface
    auto lo
    iface lo inet loopback

    # The primary network interface
    allow-hotplug eth0
    iface eth0 inet static
            address 192.168.1.xxx
            netmask 255.255.xxx.0
            network 192.168.1.1
            broadcast 192.168.1.255
            gateway 192.168.1.1
            
    # dns-* options are implemented by the resolvconf package, if installed
            dns-nameservers 202.106.196.115


    由于非法關(guān)機導(dǎo)致重啟后無法聯(lián)網(wǎng)

    ifconfig eth0 192.168.1.xxx netmask 255.255.xxx.0 

    route add default gw 192.168.1.1

    重啟后配置丟失,所以必須在重啟之前執(zhí)行:
    apt-get update

    apt-get install ifupdown

    不能聯(lián)網(wǎng)是因為非法關(guān)機導(dǎo)致ifup腳本丟失





    posted @ 2014-01-24 10:50 IceWee 閱讀(900) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 中文字幕永久免费视频| 欧洲人免费视频网站在线| 亚洲?v无码国产在丝袜线观看| 免费福利资源站在线视频| 亚洲精品美女久久777777| 99爱在线精品免费观看| 美女免费精品高清毛片在线视| 亚洲国产精品无码久久一区二区| 18禁止看的免费污网站| 久久亚洲精品成人无码| 亚洲国产精品乱码一区二区| 最近最好的中文字幕2019免费| 一个人看的免费高清视频日本| 久久亚洲sm情趣捆绑调教| 国产在线观看免费完整版中文版 | 亚洲中文无码永久免| 久久精品国产亚洲一区二区三区| 久久不见久久见免费视频7| 久久精品国产亚洲AV未满十八| 亚洲av色福利天堂| 免费国产真实迷j在线观看| 99热精品在线免费观看| 人禽伦免费交视频播放| 中文字幕亚洲男人的天堂网络 | 亚洲日本中文字幕天堂网| 无码国产精品一区二区免费式影视 | 国产精品午夜免费观看网站| 亚洲三级在线观看| 久久香蕉国产线看观看亚洲片| 免费看美女让人桶尿口| 91精品国产免费久久国语麻豆| 一个人免费观看www视频| 亚洲一区二区三区在线| 亚洲永久永久永久永久永久精品| 亚洲成a人片在线观看久| 无码区日韩特区永久免费系列| 国产精品白浆在线观看免费| 一级做性色a爰片久久毛片免费| 亚洲国产精品自在自线观看| 亚洲国产美女精品久久| 亚洲色图国产精品|