2010年8月31日火曜日

Windows Server 2008のライセンス

Windows Server 2008には仮想化した場合のライセンスが付いている。
ダウングレードしてWindows Server 2003も使えるのでテスト用にも最適。

Windows Server 2008 Standard
サーバーライセンス1
仮想サーバライセンス1


Windows Server 2008 Enterprise

サーバーライセンス1
仮想サーバライセンス4

クライアントライセンス
デバイス単位とユーザ単位がある。
Windows Server 2008にアクセスするのであればどのサーバーにもアクセス出来る。
デバイス単位はPC一台に1ライセンス(アクセスするユーザは誰でもよい)
ユーザ単位はユーザ一人に1ライセンス(アクセスするPCは関係ない)


管理する為だけのアクセスは2デバイスまたは2ユーザまでは無料
Windows Web Server 2008へのアクセスも無料


ライセンス早わかりガイド

クライアントライセンス(CAL)概要



2010年8月24日火曜日

VMWareをざっくりと

VmWare Player
スナップショットはできない
→フリーのツールでスナップショットができる
→NMH http://www.geocities.co.jp/SiliconValley/2994/tool/nhm/nhm.html
→3.0になってから単体で使えるようになった。
→フロントエンド


VmWare Server
→無償
→スナップショットができる。
→リモートからアクセス可能


VmWare Workstation
→有償
→現在のOSの状態をスナップショットとして保存できる。
→スナップショットの履歴を木構造で表示することができる。

.

2010年8月17日火曜日

Hyper-Vをざっくりと

Hyper-V Server
→WindowsServerの仮想化が目的それ以外のゲストOSはサポート外
→Linuxのサポートは弱い。


ホストOS側の物理HDDはゲストOSに割り当てた仮想HDDと仮想メモリに割り当てた分の容量が必要。
仮想メモリ分の容量は起動時に作成される。

1ゲストOSのメモリ割り当て量は 物理容量をコア数で割った数以下がよいらしい。

IPv4だけを使う場合はIPv6の設定を無効にしておくとパフォーマンスがよくなる。

ホストOS、ゲストOSの両方に更新プログラムを当てないとパフォーマンスが悪くなる。


Hyper-Vの分析ツール。
http://biz.mki.co.jp/product/maker/mki/vt_platform/vestat/index.html

Hyper-V Server 無償版
→スタンドアロンでの起動を目的としている。
→ライセンスは無料。

.

2010年8月5日木曜日

C++/CLI Dispose

C++/CLIでもDisposeパターン。
C++/CLIではデストラクタが呼ばれるとインスタンスが破棄される。(デストラクタを呼び出すのは deleteまたはnewしていないインスタンス。)
破棄されたインスタンスはGCの対象外になるためファイナライザも呼ばれることはない。

以下のようにデストラクタとファイナライザを定義してやればよい。

----間違っていたサンプルコード

public ref class DisposableImplClass
{
public:
    DisposableImplClass()
    {
        disposed = false;
    }

    virtual ~DisposableImplClass()
    {
        Dispose(true);
    }

    !DisposableImplClass()
    {
        Dispose(false);
    }

private:
    bool disposed;
    void Dispose(bool disposing)
    {
        if (disposed)
        {
            return;
        }
        disposed = true;
        if (disposing)
        {
            // マネージリソースの解放処理
        }
        // アンマネージリソースの解放処理
    }
}

----



コメントで指摘されている通り、サンプルプログラムが間違っていました。。。
指摘してくれた人には感謝です!


----修正したサンプルコード

public ref class DisposableImplClass
{
public:
    DisposableImplClass()
    {
        disposed = false;
    }

    virtual ~DisposableImplClass()
    {
        DoDispose(true);
    }

    !DisposableImplClass()
    {
        DoDispose(false);
    }

private:
    bool disposed;
    void DoDispose(bool disposing)
    {
        if (disposed)
        {
            return;
        }
        disposed = true;
        if (disposing)
        {
            // マネージリソースの解放処理
        }
        // アンマネージリソースの解放処理
    }
}


----
.

ラベル