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

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

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

    2012年6月21日

    搭建過程備注:
    1. 虛擬機(jī)軟件Vmware 8.0 Workstation,Windows 2008 Enterprise Server, Sql Server 2008 R2。
    2. 倆個(gè)節(jié)點(diǎn)平臺(tái)版本必須一致,都為企業(yè)版。
    3. 與構(gòu)建Windows 2003群集不同,不能使用vmware的共享磁盤機(jī)制。Windows 2008集群對(duì)存儲(chǔ)要求很高,不支持SCSI硬盤做集群。
        本次使用starwind 5.4代替vmware的共享磁盤實(shí)現(xiàn)群集存儲(chǔ)。
    4. 搭建Windows集群需要3臺(tái)虛擬機(jī):2個(gè)節(jié)點(diǎn)+1臺(tái)存儲(chǔ)。
    5. 搭建SqlServer 2008集群需要4替虛擬機(jī):2個(gè)節(jié)點(diǎn)+1臺(tái)DC+1臺(tái)存儲(chǔ)。

    搭建順序:
    1. 安裝DC+DNS服務(wù)器。
    2. 安裝集群節(jié)點(diǎn), 配置雙網(wǎng)卡,域登錄。
    3. 安裝群集磁盤服務(wù)器
    4. 在集群節(jié)點(diǎn)上配置iSCSI發(fā)起。
    5. 在集群節(jié)點(diǎn)上安裝“故障轉(zhuǎn)移群集”功能。
    6. 進(jìn)行故障轉(zhuǎn)移群集驗(yàn)證和創(chuàng)建。
    7. 至此,Windows集群環(huán)境安裝完畢。
    8. 在集群節(jié)點(diǎn)上按群集方式安裝SqlServer 2008。
    9. SqlServer 2008集群環(huán)境構(gòu)建完畢。

    參考文檔:
    Windows Server 2008的故障轉(zhuǎn)移群集入門: http://os.51cto.com/art/201007/210286.htm
    windows server2008虛擬機(jī)+群集: http://wenku.baidu.com/view/5e5b2be8e009581b6bd9eb1a.html
    Windows2008+sqlserver2008集群安裝:http://wenku.baidu.com/view/601dc74d2b160b4e767fcf46.html

    posted @ 2012-06-21 09:23 bluoy 閱讀(3944) | 評(píng)論 (0)編輯 收藏

    2011年9月28日

    神一樣的軟件,膜拜ing...
    連我這天生kernel iptable有缺陷的都能用。

    當(dāng)前版本:2.04.
    還是個(gè)Open Source的,改天一定要好好觀摩一番的。

    posted @ 2011-09-28 15:55 bluoy 閱讀(313) | 評(píng)論 (0)編輯 收藏

    2011年1月7日

    If you meet following errors below when you try to build your source code:

     

    Checking build tools versions...

    build/core/main.mk:72:

    ************************************************************

    build/core/main.mk:73: You are attempting to build on a 32-bit system.

    build/core/main.mk:74: Only 64-bit build environments are supported beyond froyo/2.2.

    build/core/main.mk:75:

    ************************************************************

    Don’t panic, just change the code:

    build/core/main.mk

    ifeq ($(BUILD_OS),linux)

    build_arch := $(shell uname -m) 

    ---ifneq (64,$(findstring 64,$(build_arch))) 

    +++ifneq (i686,$(findstring i686,$(build_arch)))

     

    and change the code in four mk files below from “+=-m64” to “+=-m32”


    external/clearsilver/cgi/Android.mk

    external/clearsilver/java-jni/Android.mk

    external/clearsilver/util/Android.mk

    external/clearsilver/cs/Android.mk


    LOCAL_CFLAGS += -m32

    LOCAL_LDFLAGS += -m32

    end.

    posted @ 2011-01-07 10:54 bluoy 閱讀(365) | 評(píng)論 (0)編輯 收藏

    2009年4月23日

    I got this idea when i was surfing the web in search of a tool similar to the Nokia Pc Suite for my Linux

    This How-To  works with many NOKIA Mobile Phone, especially for Nokia 3230, 6670, 6680, 6682 e 7610, 6120, Sony Ericsson Z1010, LG U8110/8120.

    First of all, we have to grant access for Mobile Phone to “dialout” group.

    sudo gedit /etc/udev/rules.d/40-permissions.rules

    Now we have to add to the end of file:

    # NOKIA 6120
    BUS==”usb”, SYSFS{idVendor}==”0421″, SYSFS{idProduct}==”002f”, GROUP=”dialout”

    where 0421 and 002f could be different depending on your Mobile Phone.
    To check your idVendor and idProduct, we have to type on terminal

    lsusb
    Bus 003 Device 009: ID 0421:002f Nokia Mobile Phones

    Now, we have to reload udev permission file:

    sudo /etc/init.d/udev restart

    We have to add our username on group “dialout”

    gpasswd -a username dialout

    All basics configurations for USB Data Cable are completed. We can start installation of obexftp and obextool GUI. Obextool GUI is written for tk graphic library, so GUI not have a good design as GTK.

    sudo apt-get install openobex-apps libopenobex1 obexftp obextool

    If you want start obextool from terminal we have to type for the first time:

    export OBEXCMD=”obexftp -t /dev/ttyACM0 -u 1″
    obextool

    or, we can start it simply by typing:

    obextool –obexcmd “obexftp -t /dev/ttyACM0 -u 1″

    When we start Obextool we can see this error message:

    It seems, that your device does not support the memory status feature.
    Memory status will be disabled

    To solve this problem we have to set some values on obextool.cfg:

    sudo gedit /etc/obextool.cfg

    set ObexConfig(config,memstatus) 0
    set ObexConfig(config,filemove) 0

    Another error message that we can see is:

    FIle ‘/FileName/’ could not be uploaded to ‘E:/Path’!
    Please check your file permissions.

    To solve it:

    sudo gedit /etc/obextool.cfg

    set ObexConfig(config,dir_slash) 1

    Good Job! Now your Mobile Phone works well in Ubuntu Gutsy with ObexTool.
    If we want add it as Desktop Entry:

    sudo gedit /usr/share/applications/obextool.desktop

    [Desktop Entry]
    Encoding=UTF-8
    Version=1.0
    Type=Application
    Exec=/usr/bin/obextool –obexcmd “obexftp -t /dev/ttyACM0 -u 1″
    Icon=/usr/share/icons/gnome/scalable/devices/phone.svg
    Terminal=false
    Name=Obextool
    GenericName=
    Comment=Browser your Mobile Phone
    Categories=Application;Utility;

    So, you can find it in your Gnome Panel over: “Applications” -> “Accessories” -> Obextool

    posted @ 2009-04-23 16:30 bluoy 閱讀(381) | 評(píng)論 (0)編輯 收藏

    2009年4月1日

    下面的例子實(shí)現(xiàn)把一個(gè)整數(shù)的各個(gè)位上的數(shù)字相加,通過這個(gè)例子我們?cè)俅卫斫? connect by.

    create or replace function f_digit_add(innum integer) return number
    is
    outnum integer;
    begin
    if innum<0 then
    return 0;
    end if;
    select sum(nm) into outnum from(
    select substr(innum,rownum,1) nm from dual connect by
    rownum<length(innum)
    );
    return outnum;
    end f_digit_add;
    /

    select f_digit_add(123456) from dual;

    posted @ 2009-04-01 17:02 bluoy 閱讀(832) | 評(píng)論 (1)編輯 收藏

    2009年2月3日

    終于搞明白了困惑很久的問題,罪魁禍?zhǔn)走€是jdk啊。天殺的。
    以下內(nèi)容轉(zhuǎn)自網(wǎng)絡(luò):

    測(cè)試環(huán)境:Win2K Pro日文版,SUN J2SDK 1.5.0-beta2

    經(jīng)過測(cè)試,發(fā)現(xiàn)Shift_JIS和MS932編碼的全角波浪線(“~”)的編碼都是 0x8160(16進(jìn)制,兩個(gè)字節(jié),高位在前)。通過sun.io.ByteToCharMS932轉(zhuǎn)換后得到Unicode字符'\uFF5E',而通過sun.io.ByteToCharSJIS轉(zhuǎn)換后則得到Unicode字符'\u301C'。

    反之,Unicode字符'\uFF5E'通過sun.io.CharToByteMS932轉(zhuǎn)換后會(huì)得到MS932編碼的本地字符0x8160(16進(jìn)制,兩個(gè)字節(jié),高位在前),而Unicode字符'\u301C'通過 sun.io.CharToByteSJIS轉(zhuǎn)換后也會(huì)得到Shift_JIS編碼的本地字符0x8160(16進(jìn)制,兩個(gè)字節(jié),高位在前),兩者的轉(zhuǎn)換結(jié)果相同。

    結(jié)論:在WinNT/2K/XP上,MS932和Shift_JIS這兩種本地字符集完全相同,只是分別采用JDK的sun.io.ByteToCharMS932和sun.io.ByteToCharSJIS對(duì)個(gè)別特殊的本地字符進(jìn)行轉(zhuǎn)換后所得到的 Unicode字符并不一樣。實(shí)際上,MS932就是WinNT/2K/XP上的Shift_JIS,只是與標(biāo)準(zhǔn)版的Shift_JIS字符集相比,MS932收錄了更多的字符,比如NEC和IBM對(duì)Shift_JIS的擴(kuò)展(如日文中的“?????①..?...”等等);然而,JDK中的 ByteToCharSJIS及CharToByteSJIS卻使用了標(biāo)準(zhǔn)的Shift_JIS字符集,所以部分?jǐn)U展字符在從byte轉(zhuǎn)換成char或是從char轉(zhuǎn)換成byte時(shí)會(huì)出現(xiàn)亂碼,這的確是JDK讓人非常迷惑的一處。

    參考資料1(日文):http://www.asahi-net.or.jp/~ez3k-msym/charsets/jis2ucs.htm

    posted @ 2009-02-03 16:52 bluoy 閱讀(1394) | 評(píng)論 (0)編輯 收藏

    2008年12月28日

    1. 函數(shù)的overwrite實(shí)現(xiàn)時(shí),函數(shù)參數(shù)類型必須嚴(yán)格一致。與overload不同,并不遵守參數(shù)優(yōu)先匹配的原則。
    所以,不能用子類,或這接口的實(shí)現(xiàn)類來妄圖得到overwrite的目的。
    2. 使用反射手法時(shí),getMethod()的調(diào)用,參數(shù)類型必須與要得到的函數(shù)類型嚴(yán)格一致。與overload不同,并不遵守參數(shù)優(yōu)先匹配的原則。
    3內(nèi)部類,要實(shí)例化時(shí)必須首先實(shí)例化包含類。可以理解為內(nèi)部類只是包含類的數(shù)據(jù)成員
    4非public類,非javabean規(guī)范的Bean,內(nèi)部類BeanUtil類無法進(jìn)行操作,比如clone()等等。

    posted @ 2008-12-28 10:54 bluoy 閱讀(190) | 評(píng)論 (0)編輯 收藏

    雖然java沒有提供函數(shù)指針的操作,而是必須通過對(duì)象來曲線救國(guó)。
    不過延伸一下這個(gè)思路,其實(shí)也未必不是件好事。從某種意義上來說,整個(gè)java系統(tǒng),或者對(duì)象系統(tǒng),其實(shí)就是不計(jì)其數(shù)的鉤子組成的系統(tǒng)。因?yàn)椋瑓?shù)傳遞的過程中完全依賴著對(duì)象,一種行為和數(shù)據(jù)的結(jié)合體。這里,關(guān)鍵詞是參數(shù)傳遞和對(duì)象的行為,當(dāng)然離不開多態(tài)。
            改變既有代碼的行為步驟:
            1. 派生參數(shù)類得到新的子類。
            2. 在子類中覆寫(overwrite)父類既有方法。
            3. 將子類的實(shí)例作為參數(shù)傳遞。
            這樣,就得到了改變父類行為的目的。
     對(duì)于既有框架自作主張的封裝,阻礙自己的目的的時(shí)候,這個(gè)做法往往能獨(dú)辟蹊徑。

    posted @ 2008-12-28 10:40 bluoy 閱讀(191) | 評(píng)論 (0)編輯 收藏

    2008年7月6日

    Spring Framework 的理解以及可維護(hù)性是否得以改善的思考

    Spring的特性:
    1. 提供了一種管理對(duì)象的方法,可以把中間層對(duì)象有效地組織起來。一個(gè)完美的框架“黏合劑”。
    2. 采用了分層結(jié)構(gòu),可以增量引入到項(xiàng)目中。
    3. 有利于面向接口編程習(xí)慣的養(yǎng)成。
    4. 目的之一是為了寫出易于測(cè)試的代碼。
    5. 非侵入性,應(yīng)用程序?qū)pring API的依賴可以減至最小限度。
    6. 一致的數(shù)據(jù)訪問介面。
    6. 一個(gè)輕量級(jí)的架構(gòu)解決方案。

    對(duì)Spring的理解
    Spring致力于使用POJOs來構(gòu)建應(yīng)用程序。由框架提供應(yīng)用程序的基礎(chǔ)設(shè)施,將只含有業(yè)務(wù)邏輯的POJOs作為組件來管理。從而在應(yīng)用程序中形成兩條相對(duì)獨(dú)立發(fā)展的平行線,并且在各自的抽象層面上延長(zhǎng)了各自的生命周期。

    Spring的工作基礎(chǔ)是Ioc。Ioc將創(chuàng)建對(duì)象的職責(zé)從應(yīng)用程序代碼剝離到了框架中,通常2中注入方式:setter 和 ctor參數(shù)。
    每個(gè)Bean定義被當(dāng)作一個(gè)POJO(通過類名和JavaBean的初始屬性或構(gòu)造方法參數(shù)兩種方式定義的Bean)。
    Spring的核心在org.springframework.beans,更高抽象層面是BeanFactory. BeanFactory是一個(gè)非常輕量級(jí)的容器。

    關(guān)于可維護(hù)性的思考
    Spring之類的技術(shù)確實(shí)帶來了應(yīng)用系統(tǒng)的可維護(hù)性的提高嗎?
    Ioc, AOP之類的技術(shù),本質(zhì)上都是將原本位于應(yīng)用程序代碼中"硬編碼"邏輯,剝離出來放到了配置文件中(或者其他形式)。主流聲音都是認(rèn)為提高了應(yīng)用程序的可維護(hù)性。

    但如果從以下方面觀察,結(jié)合項(xiàng)目實(shí)際經(jīng)驗(yàn),個(gè)人感覺這些技術(shù)的應(yīng)用大大降低了應(yīng)用程序的可維護(hù)性,尤其是面對(duì)一個(gè)陌生的系統(tǒng),或者項(xiàng)目人員變動(dòng)頻繁的時(shí)候。
    1. 中斷了應(yīng)用程序的邏輯,使代碼變得不完整,不直觀。此時(shí)單從Source無法完全把握應(yīng)用的所有行為。
    2. 將原本應(yīng)該代碼化的邏輯配置化,增加了出錯(cuò)的機(jī)會(huì)以及額外的負(fù)擔(dān)。
    3. 時(shí)光倒退,失去了IDE的支持。在目前IDE功能日益強(qiáng)大的時(shí)代,以往代碼重構(gòu)等讓人頭痛的舉動(dòng)越來越容易。而且IDE還提供了諸多強(qiáng)大的輔助功能,使得編程的門檻降低很多。通常來說,維護(hù)代碼要比維護(hù)配置文件,或者配置文件+代碼的混合體要容易的多。
    4. 調(diào)試階段不直觀,后期的bug對(duì)應(yīng)階段,不容易判斷問題所在。
    5. 性能問題。雖說硬件性能日新月異,但是性能也是在不經(jīng)意間一點(diǎn)一點(diǎn)地流失的。從匯編到高級(jí)語言,到面向?qū)ο螅教摂M機(jī),一直處于這樣的發(fā)展趨勢(shì)。

    posted @ 2008-07-06 10:21 bluoy 閱讀(2011) | 評(píng)論 (3)編輯 收藏

    2008年3月26日

    項(xiàng)目中組員偶然寫了一段垃圾的sql語句,不想?yún)s誤打誤撞的發(fā)現(xiàn)了一個(gè)jdbc的bug,包括Oracle 10g附帶的版本。

    詳細(xì)描述可以參考如下代碼:
       public static void testSetTimestampBug() throws Exception{
            Calendar calendar = new GregorianCalendar();
            Date d = calendar.getTime();
            
            String sql = "select 1+1 from dual where ?-sysdate<1";         //error sql
            String sql1 = "select ?-sysdate from dual";                          //no error sql
            String sql2 = "select 1+1 from dual where ?-1<sysdate";       //no error sql
            PreparedStatement pst = cn.prepareStatement(sql);
            //pst.setDate(1, new java.sql.Date(d.getTime()));                 //no  error
            pst.setTimestamp(1, new java.sql.Timestamp(d.getTime()));   //bug!!!, throw SQLException: ORA-00932
        }
    三種sql的寫法中,第一種寫法在使用setTimestamp()時(shí)會(huì)出錯(cuò),其他倆種卻不會(huì)有問題。
    即正常調(diào)用PreparedStatement.setTimestamp()方法,遇到某些特殊寫法的sql語句卻會(huì)出錯(cuò)。
    本例中,拋出如下例外:
    java.sql.SQLException: ORA-00932: inconsistent datatypes: expected NUMBER got INTERVAL.
    然而,如果使用setDate()方法,則一切正常,三種寫法都沒有問題。

    因?yàn)橛羞@個(gè)問題,如果在持久層使用了其他的中間件,則這個(gè)問題可能變的更加隱蔽,比如iBatis中的處理是這樣的:
    java.util.Date ---> ibatis.DateTypeHandler----->PreparedStatement.setTimestamp() 
    java.sql.Date ---> ibatis.SqlDateTypeHandler----->PreparedStatement.setDate()
    如果不注意輸入?yún)?shù)類型的話,就會(huì)遇到上述問題。我就因此費(fèi)了不少周折。
    對(duì)于iBatis的使用建議,保證入口參數(shù)類型始終為java.sql.Date即可。

    posted @ 2008-03-26 17:17 bluoy 閱讀(1791) | 評(píng)論 (0)編輯 收藏

    僅列出標(biāo)題  下一頁
    主站蜘蛛池模板: 国产麻豆成人传媒免费观看| 国产成人无码免费看视频软件| 亚洲av不卡一区二区三区| 0588影视手机免费看片| 亚洲国产精品免费观看 | 2021在线永久免费视频| 中文有码亚洲制服av片| 亚洲真人日本在线| 99久久国产热无码精品免费| 国产亚洲午夜精品| 亚洲综合成人网在线观看| 国产精品黄页在线播放免费| a在线观看免费网址大全| 97久久国产亚洲精品超碰热| 亚洲伊人成无码综合网 | 国产精品视频免费观看| 曰批全过程免费视频免费看 | 二区久久国产乱子伦免费精品| 亚洲一区二区三区免费在线观看| 久久亚洲精品无码播放| 国产v精品成人免费视频400条| 一级午夜a毛片免费视频| 亚洲一级毛片在线观| 亚洲国产精品特色大片观看完整版| 在线免费不卡视频| 久久精品一本到99热免费| 免费无码又爽又黄又刺激网站| 亚洲AV无码乱码麻豆精品国产| 国产亚洲色婷婷久久99精品| 国产成人精品高清免费| 青娱乐免费视频在线观看| a级毛片毛片免费观看久潮| 自拍偷自拍亚洲精品播放| 亚洲国产精品专区| 亚洲国产高清人在线| 亚洲伊人久久成综合人影院| 国产婷婷高清在线观看免费 | 亚洲日韩av无码| 免费国产a国产片高清| 毛色毛片免费观看| 亚洲三级在线免费观看|