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

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

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

    隨筆 - 12, 文章 - 0, 評論 - 5, 引用 - 0
    數據加載中……

    2012年7月26日

    esxi 中兩臺vesx vmkernel不能通信

    在一臺DELL R710上安裝了esxi5.0,并部署了兩臺esxi5.0的VM,名為vesxA,vesxB.

    并在兩臺vesx上分別創建了vmkernel,連接到同一vSwitch,完成后,發現兩臺vesx間不能用vmkernel通信。

     

    后請教有經驗的同事,說是虛中虛需要在vSwitch中開啟 混雜模式,經測試問題解決。

     

    但是為什么呢?

     

    請教高人得出答案:

     

    由于vSwitch中的MAC TABLE記錄只能從虛擬機的.vmx文件中讀取。而.vmx中記錄的MAC是虛擬機的網卡的MAC,當我們新建了一個vmkernel port后,生成的MAC并沒有寫入.vmx。所以當vSwitch 收到關于vmkernel port后,發現沒有相關MAC記錄,就會把包丟棄。

    有人會問,交換機不是有Flooding功能么?

    估計是由于vSwitch節省資源開銷的原因,沒有使用這個功能,所以這個時候就需要打開混雜模式,將vSwitch變成vHUB.

    posted @ 2012-07-26 22:36 拼搏 閱讀(2015) | 評論 (1)編輯 收藏

    Suse Linux開啟FTP服務

    一、配置/etc/vsftpd.conf文件

     

    1、vi /etc/vsftpd.conf

     

    2、修改如下配置項

     

     anonymous_enable=YES  改成 anonymous_enable=NO   // 不啟用匿名訪問

     

     #local_enable=YES           改成 local_enable=YES             // 開啟本地用戶登錄服務

     

     #write_enable=YES          改成 write_enable=YES            // 開啟任何用戶的寫權限

     

    二、配置/etc/ftpusers文件

     

    1、vi  /etc/ftpusers

     

    2、該文件中列出的用戶是禁止使用FTP登錄的,如果要使這些用戶通過FTP登錄,在用戶前面加上#

     

    三、重啟FTP服務

     
    service vsftpd restart

    posted @ 2012-07-26 22:35 拼搏 閱讀(9489) | 評論 (0)編輯 收藏

    Myeclipse啟動不了的解決方法

       我們在開發過程中經常在加載大工程時由于項目很大,導致編譯時間很長。或是其他原因導致進度條有時候一直在不停地跑,占用了大量內存,在無奈之下直接將進程kill掉,當再次打開,這時候悲劇的事情發生了 。 
        發現MyEclipse啟動不了了,進程的內存大小永遠都是恒定值。陷入了一個糾結中。 

    這里就說一下在工作經常遇到這樣的問題是怎樣解決的: 

    環境說明 
    IDE版本: Myecplise6.0(其他版本方法相同) 
    安裝路徑:D:\dev_IDE\myeclipse 
    工作空間:D:\dev_IDE\myeclipse\workspace 

    方法一:修改工作空間 
        在剛啟動Myeclipse的時候會有一個選擇工作空間的地方。換一個新的工作空間即可,若是原來將默認工作空間勾中了,沒有出來,就去你的MyEclipse安裝路徑中(如:D:\dev_IDE\myeclipse\eclipse\configuration\.settings),里面有個org.eclipse.ui.ide.prefs文件,將里面的SHOW_WORKSPACE_SELECTION_DIALOG修改為true即可。 
        這樣做有個壞處,就是需要你重新import你的工程,需要重新編譯,需要你養成經常備份的習慣。 

    方法二:刪除錯誤編譯信息 
        這個方法最近才發現,當你由于在編譯工程期間將進程kill掉以后,就會有編譯加載“內容”出錯,導致在啟動的時候無法解析這個“內容”,所以要將該內容清除。如,當你的工程名為“TestProject”,在安裝文件夾中(D:\dev_IDE\myeclipse\workspace\.metadata\.plugins\org.eclipse.core.resources\.projects\TestProject),有兩個文件.markers和.markers.snap,將這兩個文件刪除。重啟Myeclipse,OK了。  

    posted @ 2012-07-26 22:34 拼搏 閱讀(30011) | 評論 (3)編輯 收藏

    2012年7月21日

    三十而立的人生準則,會有更新

    第一條: 
        學習是和我的社會地位、收入等掛鉤,學習是一種最好的投資。 
    第二條: 
        時間管理不是讓我在有限的時間里面做更多的事,而是讓我在把時間都放在有投資時間里面,去掉不必要做的事,做有投資價值的事(就是很重要但不緊急的事)。比如:鍛煉身體,每天鍛煉一小時,健康快樂生活一輩子,幸福一輩人。 
    第三條: 
        這個世界上不是什么事情都是非黑既白,有很多灰色地帶的,為生存有時還會踩界。 
    第四條: 
        in:out=1:1 

    posted @ 2012-07-21 22:24 拼搏 閱讀(1245) | 評論 (0)編輯 收藏

    與JDK奮斗的一上午

    話說本人也是手欠啊,操作系統是Win7的前幾天無法識別自己的移動硬盤,于是我就還原系統了,JDK安裝在D盤。當時還原完就直接將以前安裝在D盤的程序文件夾全部刪除了。 
    然后就是各位熟知的悲劇了,無論怎么重新安裝都不行了,我也把注冊表里面幾乎所有的方法都嘗試過了,都不行。查看了網上。總結來看有以下幾種“偏方”: 
    1、刪除注冊表里面所有和Java相關的表項 ---------事實上我試過了,但是很不幸,我把有Java的都刪了大半,但是我這里沒用 

    2、關閉windows的windows installer功能打開命令行 ,輸入msiexec /unregserver 
    重新下載一個 windows installer,重新安裝一遍然后再啟用就好了                 再輸入msiexec /regserver 

    3、什么360啊,完美卸載啊都無法刪除。 

    4、這就是大救星啊...去下一個window  installer  clean up ,打開軟件,然后把里面關于JDK的項刪除。 

    終于可以重新安裝JDK了。  

    posted @ 2012-07-21 22:24 拼搏 閱讀(1202) | 評論 (0)編輯 收藏

    設計模式--狀態模式(State)

    前幾天由于忙工作上的事情,每天加班到10點左右才回家,回到家就沒有再開電腦更新東西,今天早了一些回家,開始繼續更新東西,今天要寫的是狀態模式,哦,對于一個沒有狀態的人來說,寫狀態模式,不知道會寫成什么樣子,反正是一起討論用嘛,能把我所知道的清楚表達出來已經很心滿意足啦。在理解狀態模式的時候,我總覺得它和策略模式很像很像,有人說它們是孿生兄弟,那我們現在看看狀態模式到底是一個什么樣的東西。

    狀態模式是對象的一個行為模式,它允許一個對象在其內部狀態改變的時候改變其行為,這個對象看上去就像改了了它的類一樣。

    下圖是關于紅綠燈轉換的一個實現類圖,具體的轉換是這樣子的,在初始的情況下,設定一個燈的狀態,比如是綠燈,那么燈的下一個狀態則是黃燈,緊接著是紅燈,然后再是綠燈,依次循環;通過改變燈的狀態,改變其行為。

    下面是這個類圖的實現代碼:

    package com.plabmedia.state;

    public interface LightState {

    /**
    * 打印當前的狀態
    */
    public void print(Light light);

    }

    package com.plabmedia.state;

    public class RedLight implements LightState{

    @Override
    public void print(Light light) {
    System.out.println("current state is red");
    light.setState(new GreenLight());
    }

    }

    package com.plabmedia.state;

    public class YellowLight implements LightState{

    @Override
    public void print(Light light) {
    System.out.println("current state is yellow");
    light.setState(new RedLight());
    }

    }

    package com.plabmedia.state;

    public class GreenLight implements LightState {

    @Override
    public void print(Light light) {
    System.out.println("current state is green");
    light.setState(new YellowLight());
    }

    }

    package com.plabmedia.state;

    public class Light {

    private LightState state;

    public LightState getState() {
    return state;
    }

    public void setState(LightState state) {
    this.state = state;
    }

    public void print(){
    state.print(this);
    }

    public Light(LightState state){
    this.state = state;
    }

    }

    package com.plabmedia.state;

    public class Client {

    public static void main(String args[]){
    Light light = new Light(new GreenLight());
    light.print();
    light.print();
    light.print();
    light.print();
    light.print();
    light.print();
    }

    }

    運行結果:

    current state is green
    current state is yellow
    current state is red
    current state is green
    current state is yellow
    current state is red

    上面是對狀態模式一個小小的實現,這個實現也僅僅是認識級的,在我們實際應用中,如果用到狀態模式,應該比這個要負責的多,只是基本的結構是相似的。那我們下面針對狀態模式做一些討論。

    1.在什么情況下使用狀態模式:

    • 一個對象的行為依賴于它所處的狀態,對象的行為必須隨著其狀態的改變而改變;
    • 需要多多重條件轉移語句進行演化的時候,可以把每個分支封裝成一個狀態類;現在寫代碼的時候,我是不太喜歡用條件轉移語句,特別是最好的那個else語句,我覺得它承擔的東西太多了,前面不滿足的情況它都要來處理,憑什么啊。
    2.狀態模式要注意的地方:
    • 誰來定義狀態的變化:客戶端還是狀態內部決定?這要看當時應用的環境,如果狀態的變化是固定的,我覺得可以再客戶端進行設定;如果狀態的變化依賴于前一個狀態,比如在工作流系統中,當前狀態是依賴于前一個狀態的,這需要狀態內部來覺得。
    • 狀態對象創建時機:需要的時候創建?還是事先創建好所有的對象,供需要的時候調用?這要分系統需要來決定,如果一個系統,狀態變化的順序固定,不那么頻繁,則可以在需要的時候創建所需要的對象;否則,對于頻繁變化的狀態,從性能上將,還是首先創建好各個狀態對象,供需要時調用。
    • 可以把環境類傳到具體的狀態類中,狀態類在需要的時候調用環境類,比如示例中的樣子,其實在每個狀態類里面,也可以直接調用環境類的print方法,這樣看來,Client只需要初始化環境類,然后就可以看到它的狀態在不停地變化。
    3.狀態模式與策略模式的區別:
    我粗俗的說一些,從我的理解的基礎上,二者之間的區別在于狀態模式在集體作戰,而策略模式是單兵作戰,怎么說呢?狀態模式因為其內部狀態的改變會有不同的行為出現,而對于策略模式,只要客戶端選中了一種策略,在整個生命周期內,都是這種策略。所以,在區分使用狀態模式和策略模式的時候,主要是看系統有沒有狀態的變化,如果系統在整個生命周期內,只有一種狀態,那很好,選擇策略模式;如果系統在整個過程中,狀態多樣性,那需要選擇狀態模式。
    先寫這么多吧,好沒有狀態啊,希望大家都抽出時間一起討論,說說自己對狀態模式的看法。

    posted @ 2012-07-21 22:23 拼搏 閱讀(1035) | 評論 (0)編輯 收藏

    2012年7月19日

    tomcat 配置環境變量

    1.我的電腦---屬性---高級系統設置---環境變量---(系統變量)新建


    變量名:CATALINA_HOME(必須)

    變量值:tomcat的路徑      (我的是:   E:\工具\學習軟件\apache-tomcat-6.0.35\apache-tomcat-6.0.35)


    2.找到path變量,在后面加上

       變量值后:;%CATALINA_HOME%;%CATALINA_HOME%\bin;(用;和前面的分開)


    3. win+R 就可以cmd了(默認是startup開啟,shutdown 結束;我是改成ts開啟,td結束)

    posted @ 2012-07-19 22:21 拼搏 閱讀(756) | 評論 (0)編輯 收藏

    Spring AOP源于生活的原理(一)

    AOP原理

              spring用代理類包裹切面,把他們織入到Spring管理的bean中。也就是說代理類偽裝成目標類,它會截取對目標類中方法的調用,讓調用者對目標類的調用都先變成調用偽裝類,偽裝類中就先執行了切面,再把調用轉發給真正的目標bean。 


    生活中的AOP

    現在可以自己想一想,怎么搞出來這個偽裝類,才不會被調用者發現(過JVM的檢查,JAVA是強類型檢查,哪里都要檢查類型)。 
    實現和目標類相同的接口,我也實現和你一樣的接口,反正上層都是接口級別的調用,這樣我就偽裝成了和目標類一樣的類(實現了同一接口,咱是兄弟了),也就逃過了類型檢查,到java運行期的時候,利用多態的后期綁定(所以spring采用運行時),偽裝類(代理類)就變成了接口的真正實現,而他里面包 裹了真實的那個目標類,最后實現具體功能的還是目標類,只不過偽裝類在之前干了點事情(寫日志,安全檢查,事物等)。 

    兄弟模式

    生活解析

    這就好比,一個人讓你辦件事,每次這個時候,你弟弟就會先出來,當然他分不出來了,以為是你,你這個弟弟雖然辦不了這事,但是他知道你能辦,所以就答應下來了,并且收了點禮物(寫日志),收完禮物了,給把事給人家辦了啊,所以你弟弟又找你這個哥哥來了,最后把這是辦了的還是你自己。但是你自己并不知道你弟弟已經收禮物了,你只是專心把這件事情做好。 

    在兄弟模式中spring會使用JDK的java.lang.reflect.Proxy類,它允許Spring動態生成一個新類來實現必要的接口,織入通知,并且把對這些接口的任何調用都轉發到目標類。

    實際理論

    JDK動態代理:其代理對象必須是某個接口的實現,它是通過在運行期間創建一個接口的實現類來完成對目標對象的代理。

     父子模式

        生活解析

    順著這個思路想,要是本身這個類就沒實現一個接口呢,你怎么偽裝我,我就壓根沒有機會讓你搞出這個雙胞胎的弟弟,那么就用第2種代理方式,創建一個目標類的子類,生個兒子,讓兒子偽裝我 。

     生成子類調用,這次用子類來做為偽裝類,當然這樣也能逃過JVM的強類型檢查,我繼承的嗎,當然查不出來了,子類重寫了目標類的所有方法,當然在這些重寫的方法中,不僅實現了目標類的功能,還在這些功能之前,實現了一些其他的(寫日志,安全檢查,事物等)。 

    這次的對比就是,兒子先從爸爸那把本事都學會了,所有人都找兒子辦事情,但是兒子每次辦和爸爸同樣的事之前,都要收點小禮物(寫日志),然后才去辦真正的事。當然爸爸是不知道兒子這么干的了。 這里就有件事情要說,某些本事是爸爸獨有的(final的),兒子學不了,學不了就辦不了這件事,辦不了這個事情,自然就不能收人家禮了。  

    在父子模式中spring使用CGLIB庫生成目標類的一個子類,在創建這個子類的時候,spring織入通知,并且把對這個子類的調用委托到目標類。 

    實際理論

    CGLIB代理:實現原理類似于JDK動態代理,只是它在運行期間生成的代理對象是針對目標類擴展的子類。CGLIB是高效的代碼生成包,底層是依靠ASM(開源的java字節碼編輯類庫)操作字節碼實現的,性能比JDK強。

    兩種模式總結

    相比之下,兄弟模式好些,它能更好的實現松耦合,尤其在今天都高喊著面向接口編程的情況下,父子模式只是在沒有實現接口的時候,也能織入通知,應當做一種例外。

    posted @ 2012-07-19 22:20 拼搏 閱讀(854) | 評論 (0)編輯 收藏

    2012年7月17日

    Oracle備份和恢復

    備份

    備份其實就是為了防止出錯或者宕機時,作為冗余的一種手段。

    一、Oracle備份從備份類型上分可以分為兩類:物理備份和邏輯備份

    1、 物理備份:copy,將datafile、control file等文件copy到別的地方

             Oracle也提供了一些工具比如rman、用戶管理備份。

    2、 邏輯備份:復制數據

    imp/exp、impdp/expdp

    二、按備份時的數據庫狀態

       兩種狀態:啟動狀態和關閉狀態

    1、 熱備份(聯機備份)

    2、 冷備份(脫機備份)

    三、從備份的狀態

    1、一致性備份(擁有相同的scn

    2、非一致性備份

    四、備份規模大小

    1、完全備份

          注意:歸檔模式下的備份才為有效備份,當然要分為一致性和不一致性。

                非歸檔需要關閉才是有效備份,打開的不建議使用。

    3、 表空間備份

    注意:當數據庫在歸檔模式下備份才有效備份

         表空間處于只讀或者offline有效備份

    4、 數據文件

    注意:歸檔下的備份是有效備份

         數據文件被設置為read olny或者offline時的備份有效

    5、控制文件

    6、歸檔日志文件

    恢復

    就是將業務回到數據塊崩潰前的狀態

    一、實例恢復(crash recovery

    Oracle自動進行

    1、緩存恢復(cache recovery

    2、事務恢復(transaction recovery

    二、介質恢復(media recovery

    三、恢復方式

    1、完全恢復

         1)如果是整庫恢復

          mount數據庫

          確認所有的數據文件為online狀態

          執行恢復操作

          用所有Redo logs文件

          2)表空間或者數據文件及恢復

          open

          將需要恢復的表空間設置為offline

          執行恢復

          redo logs

    2、 不完全恢復

    1) 基于時間

    2) 基于scn

    3) 基于cancel

    4) 基于日志序列號

       常見的備份和恢復技術

    1、 用戶管理的備份和恢復

    2、 RMAN

    3、 Imp/exp、impdp/expdp

    4、 FLASHBACK

    5、 GG

    posted @ 2012-07-17 21:32 拼搏 閱讀(1129) | 評論 (0)編輯 收藏

    SQL Server 數據轉換

    數據轉換服務的概念


           通常數據總是以不同的格式,存儲在不同的地方,有的可能是文本文件,有的雖然具有表結構但不屬于同一種數據源。這些情況極大地妨礙了數據的集中處理。為此SQL Server提供了DTS(Data Transformation Servers)組件。

           DTS本身包含多個工具,并提供了接口來實現在任何支持OLEDB的數據源間導入,導出或傳遞數據,并使這一工作變得簡單,高效。

           利用DTS可能在任何OLEDB,ODBC 驅動程序的數據源或文本文件和SQL Server之間導入導出或傳遞數據具體表現在:

    數據的導入導出服務

           通過讀寫數據在不同應用程序間交換數據。例如:可以將文本文件或Microsoft Access數據庫導入到SQL Server,也可以把數據從SQL Server導出到任何OLEDB數據源。

    轉換數據

           所謂傳遞是指在數據未到達目標數據源前而對數據采取的系列操作。比如:DTS允許從源數據源的一列或多列計算出新的列值,然后將其存儲在目標數據庫中。

    傳遞數據庫對象

           在異構數據源情況下,DTS的內置工具只能在數據源間傳遞表定義和數據。如果要傳遞其他數據庫對象,如索引,約束,視圖時,必須定義一個任務,從而在目標數據庫上執行那些包含在任務中的SQL語句,SQL語句是被用來創建這些數據庫對象的。

    DTS結構

          DTS將數據導入,導出或傳遞定義成可存儲的對象,即包裹或稱為包,每一個包都是包括一個或具有一定順序的多個任務的工作流,每個任務可以將數據從某一數據源拷貝至目標數據源,或使用Active腳本轉換數據,或執行SQL語句,或運行外部程序。也可以在SQL Server數據源間傳遞數據庫對象。包對象用來創建并存儲步驟,這些步驟定義了一系列任務執行的順序,以及執行任務的必要細節。

          包是頂層對象,它包含三種底層對象:連接,任務,步驟

    連接:定義了有關源和目標數據的信息,這些信息包括數據格式和位置以及安全認證的密碼。DTS可不包含或包含多個連接

    任務:每個DTS包都含有一個或多個任務,每個任務都是數據轉換(傳遞)處理的工作項目。

    步驟:步驟對象定義了任務執行的順序,以及某一任務的執行是否依賴前一任務的結果。步驟的一個重要特性是步驟的優先權約束。

     

    數據的導入

           方法一:用企業管理器

    1,             打開企業管理器,打開要導入數據的數據庫,在表上按右鍵,所有任務——導入數據,彈出DTS導入/導出向導,按下一步

    2,             選擇數據源,即要導入的文件,按下一步

    3,             選擇目的,選擇Microsoft OLEDB 提供程序,選擇數據庫服務器,然后單擊必要的身份驗證方式。按下一步

    4,             在指定表格復制或查詢對話框中,單擊復制表格

    5,             在選擇源表格對話框中,單擊全部選定。下一步,完成。

            方法二:Transact—SQL語句

    數據的導出

           方法一:用企業管理器

    1,  打開企業管理器,打開要導入數據的數據庫,在表上按右鍵,所有任務——導入數據,彈出DTS導入/導出向導,按下一步

    2,單擊下一步就會出現導出數據源對話框

           

    3,單擊下一步,則選擇目的對話框

       

    4,單擊下一步,則出現指定表復制或查詢對話框

      

    5,單擊下一步,選擇源表和視圖對話框


    6,

     


    8,

       

    posted @ 2012-07-17 21:31 拼搏 閱讀(1075) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 国产黄色一级毛片亚洲黄片大全| 亚洲精华液一二三产区| 四虎免费永久在线播放| 88av免费观看| 最近更新免费中文字幕大全| 自拍偷自拍亚洲精品播放| 亚洲网站免费观看| 亚洲国产另类久久久精品小说 | 91视频国产免费| 国产成人无码区免费内射一片色欲| 欧美亚洲国产SUV| 亚洲AV无码久久久久网站蜜桃| 亚洲av日韩av无码| 亚洲日韩中文在线精品第一| 国产高清在线免费| 成熟女人特级毛片www免费| 91av免费观看| 91久久青青草原线免费| 国产偷伦视频免费观看| 中文字幕免费播放| 国产福利在线观看永久免费| 免费人成大片在线观看播放| 国产AV无码专区亚洲AV蜜芽| 亚洲女女女同性video| 亚洲自国产拍揄拍| 亚洲fuli在线观看| 67194在线午夜亚洲| 亚洲午夜精品在线| 亚洲a级片在线观看| 亚洲综合色婷婷七月丁香| 无码午夜成人1000部免费视频| 亚洲区日韩精品中文字幕| 亚洲人成7777影视在线观看| 亚洲国产精品线观看不卡| 久久久久亚洲AV片无码| 亚洲AV中文无码乱人伦下载| 亚洲av福利无码无一区二区| 亚洲av片劲爆在线观看| 亚洲人成在线影院| 亚洲乱人伦精品图片| 亚洲熟妇无码一区二区三区|