SQL Server 2005のトランザクション分離レベル(Snapshot)

SQL Server 2005」からトランザクション分離レベルに「SNAPSHOT」が追加され、
Oracle Databaseで言うところの「READ COMMITTED」と同じを動作する。


ただし、データベースに対して、SNAPSHOTモードを有効にする必要がある。
SNAPSHOTモードを有効にすると、それだけで「READ COMMITTED」が「Oracle Database」と
同様の動作を行うようになる。(共有ロックされない)


それとは別に、「TRANSACTION ISOLATION LEVEL」に「SNAPSHOT」を指定することが
できるようになる。実際のところ「READ COMMITTED」と「SNAPSHOT」の違いが
良く分からない。
少し調べてみると、「SNAPSHOT」は、共通のスナップショットを共有するのか、
複数のトランザクションで同じ行を更新すると下記のエラーが発生するので、注意が必要。



メッセージ 3960、レベル 16、状態 2、行 2
更新の競合により、スナップショット分離トランザクションが中断しました。スナップショット分離を
使用してデータベース 'DB' のテーブル 'TBL' に直接または間接的にアクセスし、別のトランザクション
によって変更または削除された行を更新、削除、または挿入することはできません。トランザクション
再試行するか、更新/削除ステートメントの分離レベルを変更してください。

*「Windows Vista」の起動を速くする方法

Windows Vista」では、起動時によく使用するデータをキャッシュするようになっている。
よく「Windows Vista」は「起動が遅い」と言われるが、この機能を使用しないことで
通常より速く起動することができる。ただし、この機能を使用しないと、後で遅いだけなのでご注意を。
「コントロールパネル」−「管理ツール」−「サービス」より「SuperFetch」サービスを「無効」に
設定することで、この機能を使用しないように設定できる。


ちなみに、この機能は「Windows Server 2008」にも搭載されているが、逆に「無効」が既定である。
使用したい場合は、同じサービスを「有効」にすることで設定できる。


Windows VistaからWindows Server 2008をリモート管理するパッチ

実は今まで「Windows Vista」のMMC経由から「Windows Server 2008」を
正常にリモート管理することができませんでした。
(できる操作とできない操作があった。)


今日、パッチが公開されてました。
Microsoft ダウンロード センター: Windows、Office、Xbox、その他


Hyper-VのRCでマウスキャプチャを有効にする方法

最近リリースされた「Hyper-V」のRC版は、日本語に対応し、様々な修正が加わっている。
だが、親パーティション(ホストOS)にRC版を適用した状態で、子パーティション(ゲストOS)に
現時点で提供されている「Windows Server 2008」をインストールすると、統合サービスが
正常に使用できなくなる。(リモートでのマウスキャプチャが行われないなど)


統合サービスがインストールされていないのかと思いきや、「統合サービス セットアップ ディスクの挿入」で
統合サービスをインストールしようとすると、既にインストールされている旨のメッセージが表示される。


この現象を解決するには、子パーティションISにも「Hyper-V」のRC版を適用すれば解決する。

Windows VistaでのVMware Server高速化

無償仮想化ソフト「VMware Server 1.0.4」だが、正式には「Windows Vista」に対応していない。
インストールは問題なく終了するのだが、その後、起動する際に、一定時間フリーズする現象が発生する。
正直、これでは使い物にならないので、解決策をググッてみると、解決記事が掲載されていたので紹介。

1.「config.ini」に設定を追加

記事には、「C:\ProgramData\VMware\VMware Server\config.iniに以下の1文を追加 」と
記載されていたが、私の環境では該当する箇所に「config.ini」が存在しておらず、
「C:\Windows.old\ProgramData\VMware\VMware Server\config.ini」に存在していた。
この設定をすることで、「VMware Console」が、すぐに起動するようになったが、未だ、
仮想マシンを起動する際には、フリーズ現象が発生する。

host.TSC.noForceSync = TRUE

2.「*.vmx」に同じ設定を追加

仮想マシンの「vmx」ファイルの先頭行に、「config.ini」に追加した内容と同じ設定をする。
ただし、この時点では、仮想マシンを起動する際のフリーズ現象は解消されなかった。

host.TSC.noForceSync = TRUE

3.実メモリを使用するように設定

未だ解消されないので、各仮想マシンの「vmx」ファイルに以下の1文を追加する。

mainMem.useNamedFile = "FALSE"

加えて、「VMware Console」から「Edit vertial machine settins」をクリックし、
「options」タグをクリック、「Advanced」を選択後、「Disable memory page timing」に
チェックを入れる。
この設定を行うことで、各仮想マシン起動時のフリーズ現象は解消された。

Windowd Server 2008 Windows展開サービス

Windows Server 2003 SP2」より提供された「Windows展開サービス(WDS)」が
Windows Server 2008」でも提供されているので、構築してみました。
ライセンス管理の問題は置いといて、結構便利なサービスだと思います。


簡単に言うと、「Windows展開サーバー」なるサーバーに、展開するインストール
イメージを配置しておき、クライアントからPXEブートでインストールイメージを
ダウンロードし、インストールするという方式です。
今バージョンでは「Windows Server 2008」、「Windows Vista」以外のOSは、
別途WIMイメージに変換する必要があります。


ただ、問題は、環境の前提条件が結構あります。

  1. AD(Active Directory)が必要
  2. DNSが必要
  3. DHCPが必要


ただ、「Windows展開サーバー」の構築自体は単純で、サーバーの役割追加を行い、
その管理画面よりインストールイメージ(*.wim)、ブートイメージを選択するだけです。
ただし、通常のインストールイメージに対して加工を行いたい場合、別途「WDSUTIL」を
使用してイメージを抽出する必要があります。
詳細な操作手順は、現時点では「Windows Server 2008」のヘルプファイルが日本語としては
一番詳しい資料になっていると思います。


また、VMwarePXEブートを行い、インストールを試みたのですが、VMwareに対応する
ネットワークドライバが見つからない旨のエラーが発生し、インストールできませんでした。
物理マシンをPXEブートした場合は、正常にインストールできたので、インストールイメージに、
VMware対応のネットワークドライバが登録されていれば問題なく動作するんでしょう。

Windows Server 2008 IPv6

Windows Server 2008」になり、デフォルトで「IPv6」が設定されるようになった。
(実際、最初はVistaだけどね。)
今、「Windows Server 2008」の勉強をしているので、ちょっとまとめてみた。

基本情報

  • IPv4は32ビットに対し、IPv6は128ビット
  • IPv4とはまったく互換性がないので、直接相互通信はできない
  • IPv6の表記は16進数とコロン":"で示す。

   例)2001:0DB8:0000:0000:02AA:00FF:C0A8:640A

  • IPv6アドレスの先頭アドレスの"0"を省略可能

   例)2001:DB8:0:0:2AA:FF:C0A8:640A

  • IPv6アドレスの16ビット全てが"0"の場合、2重コロン"::"で省略可能

   例)2001:DB8::2AA:FF:C0A8:640A

  • IPv4との互換表記が可能(末尾を10進数表記)

   例)2001:DB8::2AA:FF:192.168.100.10

IPv6の種類

  • ユニキャストアドレス

   パケットを1つのインターフェースに配信

   パケットを複数のインターフェースに配信

  • エニーキャストアドレス

   パケットを複数のインターフェースから一番ルーティングコストの
   低いインターフェースへ配信

項目 IPv4 IPv6
プライベートアドレス 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 FD00::/8
リンクローカルアドレス 169.254.0.0/16 FE80::/64
ループバックアドレス 127.0.0.1 ::1
不明アドレス 0.0.0.0 ::

IPv6対応のWindows

以下の4つ。

  1. Windows Server 2003
  2. Windows XP

  デフォルトでインストールされないので、追加インストールが必要。
  また、「IPv6」導入後も「IPv4」を削除できない

  1. Windows Server 2008
  2. Windows Vista

  デフォルトで「IPv4」と「IPv6」がインストールされる。
  「IPv4」を削除可能


Windows Server 2008」の日本語ドキュメントが、まだまだ不足しているので、
今回は「Exchange Server 2007 SP1」の記事をもとに記載した。