Google本社

blog20090614-GoogleHQ

シリコンバレーにあるIT本社めぐりもネタが尽きてきたのですが、大物Googleを忘れておりました。ORACLELink 同様、ハイウェイUS-101から降りて2~3分のところにあります。

・・・アメリカではいたって普通の、広い敷地に2階建ての社屋が並ぶ企業オフィスでした。特に一般見物客を受け入れるようなところも見当たらず。だよなぁ、AdobeLink 以上に一般客に見せたり売ったりする物無いもんなぁ。

社屋のほとんどの窓がカーテンでふさがれていたし、日曜だから人気も少ないし。気に止まったところといえば、道路の歩行者横断押しボタン(シリコンバレー近辺を見る限り、ほとんどの交差点は歩行者はボタンを押して渡らないといけません)が、盲目・弱視の方でも分かりやすいように音を発しているくらいでしょうか。これはアメリカ来てから初めて見ました。

— posted by mu at 12:33 pm   commentComment [0]  pingTrackBack [0]

 

COMと.NETのSQLサーバ接続の違い

恥を記録する記事。

Visual Studioに限らず、多くのプログラム環境でSQLデータベースに接続するときは、
  1. まずデータベースサーバーとの接続を確立し、そのハンドルを記録しておく
  2. そのハンドルを使ってSQLをサーバーに投げ、データを操作する
となると思います。サーバーとの接続およびハンドルの管理を受け持つのが、COM(Visual Studio 6)ではADODB.Connectionクラスであり、.NET(Visual Studio .NET)ではSystem.Data.SqlClient.SqlConnectionクラスになります。

COM/PHP/Perlを使う限りでは、プログラムの最初に接続を確立し、特別に理由がない限りはプログラム終了までそのときのハンドルを使いまわすのが常でした。理由はサーバーへの接続と言う処理はサーバー・クライアント共に比較的重い処理でして、そう何度もやるべきものじゃないからです。

ところが.NETでは逆で同じ接続を長時間使うべきではなく、ひとまとまりの処理が終わったらさっさと接続を切ると言うのが正しい作法とのこと。接続プールという仕組みがあるため、何度も接続と切断を繰り返してもCOMの時のような負担はないらしい。

実際プログラム開始時に作製したSqlConnectionインスタンスを使いまわしていたら、知らない間に接続が切れてしまって、
  • SqlClient.InitializeLifetimeService().InitialLeaseTime = TimeSpan.Zero → 無視される
  • SqlClientのInitializeLifetimeServiceをオーバーロード → SqlClientは継承不可
と二日間散々悩み、下の参考文書を読んで椅子から転げ落ちそうになったやつがいるようです。お気をつけください。

[参考]毎回SqlConnectionのインスタンスを作成&接続することに関して (Insider.NET)Link

— posted by mu at 08:21 am   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0118 sec.
prev
2009.6
next
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30