Tuesday, March 17, 2009

Truncate and Shrink on SQL Server 2005

本番環境はバックアップをスケジュールしてあるので、定期的にLogファイルもShrinkしてくれてファイルサイズの問題は無いのだが、テスト環境ではバックアップなんぞはしてないため、Logファイルが日々肥大化。放置した結果、勿論、ドライブの空き容量を食い尽くすので、ある日突然、簡単なDML発行時に、「Logフル」のメッセージで気付くが時既に遅し。マニュアルでのShrinkは最初にバックアップしないといけない為、その分の空き容量がいるが、もう既にLogファイルに占領され空きは無し。そんな時にはこのスクリプト。

MS SQL shrink log files for all databases

カーソルを使ってLogファイル名を取得し、DBCC SHRINKFILE で BACKUP LOG [DB] WITH TRUNCATE_ONLY を挟み込み、最後にこの動的SQL @ssql を sp_msforeachdb に渡すと、ストアドが全DB名を順に?に渡すので、全DBに対してLogファイルのShrinkが出来ると言う内容。頭のところでSystemDBを対象外にしているので、ユーザーDBのみ。試したところ、問題なく完了。パフォーマンスも問題なし。便利なスクリプトです。

sp_msforeachdb (MS For Each DB、何故MSなのかは分かりませんが)は何かと使えそうな便利なストアド。

Thursday, January 15, 2009

SEは2,247円。

2カ月連続下落、派遣社員の2008年11月平均時給 - @IT

数年前まで派遣社員として関西で働いてた身としては、順位1位のIT系SEでも平均時給2,247円はエゲツナク低い
幾ら市場が減額傾向だからといっても、これでは確かにネットカフェで寝泊りせざるを得ないようになるのも理解できる。
確かにこの手の派遣大手は実際の元請に出した請求額の50%以上を経費として差っ引くらしいので、実際の頭脳労働者は残り粕程度の手取りだけ。
自分が日本で派遣社員をしてた時は、大手ではなく、地元の割りと小さ目の派遣会社にお世話になっていたのも有り、記事のランキング1位のSE職でも3,500円くらいはもらえていた。
直請け出来ればもっと手取りも良くなるんですがね。

あ~、日本には絶対に帰りたくない。

Thursday, December 18, 2008

Bug - Blog Template on WSS 3.0

現象:
Category.aspx上のポストWebPartのビューを変更すると、QuickLinkからのCategory別フィルターが機能しない。

詳細:
Blogテンプレートを使って作成されたサイトで、ポストWebPartのビューに変更を加えると、それ以降、QuickLink(ページ左のリンク)からCategory別のページに移動しても、投稿済みのポストがカテゴリー別に表示されない様になる。
実際はビューになんら変更を加えずに、ビューの変更画面でキャンセルではなく保存をクリックして抜けた場合でも、上記の現象は発生する。

再現方法:
1.Blogテンプレートを使って新規サイトを作成
2.新規ポスト(TEST)を投稿、カテゴリーにはカテゴリー1を選択
3.メイン画面のQuickLinkからカテゴリー1をクリック
4.TESTのみ表示され、既存のWelcomeポストは表示されない(Category別フィルターはまだ機能している)
5.カテゴリー1を表示している状態でページの編集、ポストWebPartを選択し編集
6.ビューの編集画面を開き、何も変更せず保存をクリック
7.ページの編集を終了
8.上記のステップ3を再度実行するとTESTは表示されず、既存のWelcomeポストだけ表示される。(Category別フィルターが機能しない)
9.Category2.3も同様に、既存のWelcomeポストのみの表示になる

対処法:
Category.aspxのCAML部分を直接修正する。
Category.aspxはSiteRoot>Lists>Categories以下にあり、SharePoint Designerが有る場合にはファイルをTextモードで開き以下の部分を修正する。
<ListViewXml xmlns="http://schemas.microsoft.com/WebPart/v2/ListView">&lt;View Name="...
...&lt;Where&gt;&lt;IsNull&gt;&lt;FieldRef Name="PostCategory"/&gt;&lt;/IsNull&gt;&lt;/Where&gt;...

&gt;を>, &lt;を< に変換してみると読みやすくなる。

...<Where>
<IsNull>
<FieldRef Name="PostCategory"/>
</IsNull>
</Where>...

変更前は以下

...<Where>
<Eq>
<FieldRef Name="PostCategory"/><Value Type="">
<GetVar Scope="Request" Name="Name"/></Value>
</Eq>
</Where>...

変更前本来の以下のコードで変更した部分を上書きしてCategory.aspxを保存。

...&lt;Where&gt;&lt;Eq&gt;&lt;FieldRef Name="PostCategory"/&gt;&lt;Value Type=""&gt;&lt;GetVar Scope="Request" Name="Name"/&gt;&lt;/Value&gt;&lt;/Eq&gt;&lt;/Where&gt;

推測:
ビューの変更画面では表示しきれないカスタム変更(GetVarタグなど)が加わっているWebPartへの変更だったため、キャンセルではなく保存で変更画面を抜けた時に
変更画面のバックエンドロジックが違った解釈をして下手な上書き更新がかかってしまい、本来動作していたはずのCategory別表示も機能しなくなったという訳ではないでしょうか。
ビューの変更画面にバグがあるのは確かですが、やはりこのようなCAMLでのガリガリに作りこまれたロジックをWebから設定できるように設定内容を拡張するのは無理でしょうね。
もしワーニングかメッセージかを、このようなロジックが組み込まれているWebPartのビュー変更画面を開けようとしている時に出してくれると、不意な障害から避けられると思うのですが。どうでしょうね。

Thursday, November 6, 2008

VM resizing

sudo vmware-vdiskmanager -x 99GB GuestOS.vmdk

Licensing - MS Dynamics CRM 4.0

(CAL) ユーザー毎に必要
Client Access License (full use)
Client Access License (read-only)

(ECL) Public Web 上でCRMのデータを表示する時に必要なライセンス。イントラ用では要らない。
External Connector License (full use)
External Connector License (read only)

(SL) サーバーライセンス。プロはマルチテナンシーではない。
Professional Server License
Enterprise Server License

Wednesday, November 5, 2008

RDP access to XP Pro VM on Ubuntu

久々の2週間のプライベート休暇後、メインPC環境の移行作業で四苦八苦。
新旧両方ともPCはノート。
古い方はXP Pro SP3、新しい方はVista Ultimate SP1 x64。
開発用Toolsは
Visual Studio 2005(VS2005)、
SQL Server 2005(SS2005)、
会社のERPがOracleなんで、それようにJInitiator(Web AddIn)。

最初に取った手段はVista Ultimate SP1 x64(VUx64)に上の3つのアプリのインストール。
純粋に新PCに環境を構築する。
VS2005は問題無し。(SP導入すればの条件付)
JInitiatorは16bitアプリらしく、32bitなら後方互換でVUx64でも動いたんだろうが...
SS2005はReporting Servicesが動かない。ASP.NETが32bitだからだとか。

次、Virtual Serverをインストールして新規にVirtualPCを作成。
XP Pro SP3をインストールして、その上に開発環境を構築。
描画がこの上なく遅い。幾ら開発環境だから動画の再生は無いといっても
画面スクロールがもたつく様ではコーディング中にイラつく。却下。

次、eSATAと2つのHDDを使い分けてのMulti Boot。
新PCにeSATAコネクションが有ったので近所のPCショップでeSATAドッキングステーションを購入。
内蔵HDDを外し、ドッキングステーションに接続。
無事起動するとかなりの確立で信じていたのも虚しく、System Fileが見つからないとのBIOSメッセージ。
BIOSを最新バージョンに更新するが、それでも駄目。
旧PCのHDDを新PCに内蔵して起動するが、ブルースクリーンでクラッシュ。
どの道、ドライバーファイルがらみで旧HDDは新PCでは動きそうもない。

次、旧PCをVM化。
VM Converterを使って、旧PCをVM化し、それをVM Playerで動かす。
これが出来ると、開発用Toolsのインストールは不要、Domainも入りっぱなし。完成に限りなく近い。
VM化は問題なく完了。VM Playerで動かす段階でLicense問題でつまづく。
旧PCはノートPC付属のOS、OEMってやつなので、VM化した段階で別Licenseが必要になる。
Activation画面を突っ切ることも出来ず、断念。
GoogleでXPのOEM版をVolumeLisence版に変更することが可能との情報を元に
Windowsの復旧画面へ辿り着くも、HDDが見つからないとのメッセージ。
XPのCDにSATAのドライバが無いから出てくるメッセージ。SATAドライバをFDDから読み込ませるも、
また同じメッセージ。この段階で軽く数日消化。スケジュールが遅れていく...

最終手段、結局今後のことを考えて、開発環境はVM上に構築することに決定。
テストサーバー用にと購入したデスクトップに作っておいたXPのVMが有ったので
それにVMWare Infrastructure Web AccessのConsoleを開いて繫いでみたら
それなりに描画も早かったので、これに決定。
ISにDomain参加を依頼、完了後は開発Toolsをインストールしてやっと終了予定。
RDPで繋ぐことも考慮してNetworkはNATからBridgedへ変更。
Firewallやらユーザーやらはもちろん設定済み。

何かと障害の多かった移行作業もいい加減に収束へと...

Friday, August 29, 2008

Android - Google携帯

今日、IT Media の記事でGoogleがAndroidアプリ配布用のWebサイトを開始とのこと。
リンク:Androidアプリ配布サイト提供へ、米グーグル
記事を読んでいて見つけたのが、Androidアプリのスクリーンショットにバーコードリーダー(Barcode Scanner)を発見。
日本ではQRコードを携帯のカメラで取って変換なんてのは既に標準機能ですが、カナダ(北米)では誰の携帯にもそんな代物はインストールされていません。QRコードすら日常見かけることは無いです。メリットが理解されていないのでしょうね。今、メインで使っているTytnII(AT&T Tilt)にAndroidがインストール出来るらしいことをxdaフォーラムで見かけたので、Telusから出ているTouch Diamondを入手してそれをメインにし、TytnIIはAndroidドローンとして遊んでみるのも面白そうです。ちなみにiPhoneを未だに購入拒否している意固地である事は自認しています