發表文章

目前顯示的是 3月, 2015的文章

如何啟用ESXi MOB在vSphere 6.0

圖片
遇到問題 如果你安裝vSphere 6.0 ESXi server完成後,想透過MOB進入了解與管理主機的狀態卻發現,無法使用了並且出現了這樣的錯誤訊息 503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x1f09b228] _serverNamespace = /mob _isRedirect = false _pipeName =/var/run/vmware/proxy-mob) 如下圖所示: 這個問題主要的原因是,ESXi 6.0 預設不會啟用vSphere MOB,你必須手動啟用。 解決方式 使用vSphere Client(C#) 開啟進階設定,找到Config.HostAgent.plugins.solo.enableMob,然後勾選啟用。 使用vSphere Web Client 開啟進階設定,找到Debug Managed Object Browser enabled,然後選擇YES。 使用vim-cmd 透過SSH的方式,進入主機直接下指令修改即可。 指令: vim-cmd hostsvc/advopt/update Config.HostAgent.plugins.solo.enableMob bool true 參考連結 http://www.virtuallyghetto.com/2015/02/quick-tip-vsphere-mob-is-disabled-by-default-in-esxi-6-0.html

在Java中使用Thread的小技巧

遇到問題 在Java程式中,如果遇到需要將程式平行處理,通常會馬上想到使用Java thread來解決問題。但如果可以進一步來將問題研究一下,或許可以產生更有效率的程式碼,並且可以重複使用。 假設,目前程式處理一個List內每個item資料的行為一致,並依序處理每個item,一個接一個處理,完整處理完後在接著下一個,這樣的最大處理時間會是N(Item數目) * T(每個Item處理時間)。如果使用平行化的模式,就可以將List內的每個item處理,分散到每個獨立的thread來處理,如此ㄧ來便可加速處理,處理的理想時間會是T(每個Item處理時間) + X(overhead time)。 所以,我們會有一個List,一個處理的方法,然後,平行化。直覺的方法,使用個迴圈,加上Java thread就可以輕易使用thread來達到平行化的處理。這樣很好,然有沒有辦法可以,重複使用這樣的程式碼呢? 如果你的程式會有多個地方都需要做這樣的處理,你得不斷的重複著相同且類似的程式碼。 這邊來介紹個技巧,使用Java Generic Type、Interface和Thread來解決這樣的問題。 使用的技巧 Generic Type Interface Thread 這邊特別來說明一下,Generic Type(泛型)這個技巧。 定義泛型 [class-modifiers] class GenericsName<T1 [, T2, T3, ...]> { ...... } 泛型由泛型名稱(generic type name)、角括號 "<>"、包含在角括號內的型態參數(type parameter)組成。在角括號 "<>" 內的型態參數( Tx ) 須為某種參考型態。 建立泛型物件(Instantiating a Generic Type) 建立泛型物件須使用 new 關鍵字,並指定型態參數的值(values of the type parameters)。此種指定值的型態參數稱為 parameterized type。 範例說明 class MyHashTable<Key, Value> {  // MyHashtable 稱為...