<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. 倆個節(jié)點(diǎn)平臺版本必須一致,都為企業(yè)版。
    3. 與構(gòu)建Windows 2003群集不同,不能使用vmware的共享磁盤機(jī)制。Windows 2008集群對存儲要求很高,不支持SCSI硬盤做集群。
        本次使用starwind 5.4代替vmware的共享磁盤實(shí)現(xiàn)群集存儲。
    4. 搭建Windows集群需要3臺虛擬機(jī):2個節(jié)點(diǎn)+1臺存儲。
    5. 搭建SqlServer 2008集群需要4替虛擬機(jī):2個節(jié)點(diǎn)+1臺DC+1臺存儲。

    搭建順序:
    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 閱讀(3943) | 評論 (0)編輯 收藏

    2011年9月28日

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

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

    posted @ 2011-09-28 15:55 bluoy 閱讀(312) | 評論 (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 閱讀(364) | 評論 (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 閱讀(380) | 評論 (0)編輯 收藏

    2009年4月1日

    下面的例子實(shí)現(xiàn)把一個整數(shù)的各個位上的數(shù)字相加,通過這個例子我們再次理解 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 閱讀(830) | 評論 (1)編輯 收藏

    2009年2月3日

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

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

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

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

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

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

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

    2008年12月28日

    1. 函數(shù)的overwrite實(shí)現(xiàn)時,函數(shù)參數(shù)類型必須嚴(yán)格一致。與overload不同,并不遵守參數(shù)優(yōu)先匹配的原則。
    所以,不能用子類,或這接口的實(shí)現(xiàn)類來妄圖得到overwrite的目的。
    2. 使用反射手法時,getMethod()的調(diào)用,參數(shù)類型必須與要得到的函數(shù)類型嚴(yán)格一致。與overload不同,并不遵守參數(shù)優(yōu)先匹配的原則。
    3內(nèi)部類,要實(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) | 評論 (0)編輯 收藏

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

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

    2008年7月6日

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

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

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

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

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

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

    2008年3月26日

    項(xiàng)目中組員偶然寫了一段垃圾的sql語句,不想?yún)s誤打誤撞的發(fā)現(xiàn)了一個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()時會出錯,其他倆種卻不會有問題。
    即正常調(diào)用PreparedStatement.setTimestamp()方法,遇到某些特殊寫法的sql語句卻會出錯。
    本例中,拋出如下例外:
    java.sql.SQLException: ORA-00932: inconsistent datatypes: expected NUMBER got INTERVAL.
    然而,如果使用setDate()方法,則一切正常,三種寫法都沒有問題。

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

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

    僅列出標(biāo)題  下一頁
    主站蜘蛛池模板: 日本免费观看网站| 国产免费av片在线看| 国产成人高清亚洲| 黄网站色视频免费看无下截| 最近免费中文字幕大全视频| 亚洲AV综合色区无码二区偷拍| 欧洲人免费视频网站在线| 亚洲AV人无码激艳猛片| 2020因为爱你带字幕免费观看全集 | 老汉精品免费AV在线播放| 亚洲va久久久噜噜噜久久狠狠 | 国内精品久久久久影院亚洲| 国产香蕉九九久久精品免费| 久久亚洲中文字幕无码| 亚洲成A人片77777国产| 91国内免费在线视频| 亚洲最大在线视频| 国外成人免费高清激情视频| 阿v视频免费在线观看| 日日噜噜噜噜夜夜爽亚洲精品| 成人av片无码免费天天看| 亚洲性天天干天天摸| 国产一卡2卡3卡4卡无卡免费视频| 亚洲中文字幕久久精品无码A| 国产精品嫩草影院免费| 国产成人无码精品久久久久免费| 亚洲av永久无码精品秋霞电影影院| 一级毛片全部免费播放| 亚洲午夜精品久久久久久app| 国产在线观看免费视频播放器| 一区二区三区免费视频观看| 亚洲麻豆精品果冻传媒| 热99re久久精品精品免费| 国产日韩久久免费影院| 亚洲av乱码一区二区三区| 亚洲日本一区二区一本一道| 亚洲成人免费网址| 色老头综合免费视频| 亚洲精品国产成人中文| 亚洲第一区精品日韩在线播放| 国产精品免费无遮挡无码永久视频 |