7月 132012
 
  • Oracle10gのJDBCは、DATE型項目の場合java.sql.Date型で返却するために時刻が欠落する。
  • Oracle9.0.1より前のJDBCではjava.sql.Timestamp型で返却していたため時刻は欠落しない。
  • Oracle11gもjava.sql.Timestamp型で返却する仕様をデフォルトとしているため時刻は欠落しない。

  • Oracle10gの場合、oracle.jdbc.V8Compatible=trueを指定することでjava.sql.Timestamp型で返却する動作となる。

参考:

Oracleオブジェクト型からSQL DATEデータ型へのマッピング

Oracle Database 8i以下のバージョンではTIMESTAMPデータがサポートされていませんでしたが、SQL標準への拡張機能として、Oracle DATEデータに時刻コンポーネントが含まれていました。このため、Oracle Database 8i以下のバージョンのJDBCドライバは、oracle.sql.DATEをjava.sql.Timestampにマップして時刻コンポーネントを保持していました。Oracle Database 9.0.1以上ではTIMESTAMPがサポートされ、9iのJDBCドライバがoracle.sql.DATEをjava.sql.Dateにマッピングするようになりました。このマッピングはOracle DATEデータの時刻コンポーネントを切り捨てたため、不正確でした。この問題を克服するために、Oracle Database 11.1では新しいフラグmapDateToTimestampが導入されました。このフラグのデフォルト値はtrueです。これは、デフォルトで、ドライバがoracle.sql.DATEをjava.sql.Timestampに正確にマップして時刻情報を保持することを意味します。不正確でも10gと互換性のあるoracle.sql.DATEからjava.sql.Dateへのマッピングが必要な場合は、mapDateToTimestampフラグの値をfalseに設定します。

注意:
oracle.sql.DATEからjava.sql.Dateへのマッピングの問題を克服するために、Oracle Database 9.2でフラグV8Compatibleが導入されました。このフラグのデフォルト値はfalseで、これはOracle DATEデータのjava.sql.Dateデータへのマッピングが許可されることを意味します。ただし、このフラグの値をtrueに設定することによって、ユーザーはOracle DATEデータの時刻コンポーネントを保持することができました。このフラグは11gでは非推奨です。これは、Oracle Database 8iとの互換性がサポートされなくなったためです。

Oracleからの回答:

QUESTION
======
oracle.jdbc.V8Compatible=trueにすることで getObject()の戻り値の型がDate→Timestamp と変更される以外に動作が変わることがあるか。

ANSWER
======
ございません。

oracle.jdbc.V8Compatible=true に設定することによる動作の変更点はgetObject()の戻り値の型が Date→Timestamp と変更されるだけでございます。

7月 132012
 

DBへの型のマッピングは気をつけないとダメだよという話。

予備知識とか
  • ANSI SQLのDATE型は日付のみ保持する。
  • OracleのDATE型は日付だけでなく時刻まで保持する。(秒未満の精度とタイムゾーンは保持しない)
DATE型@Java
  • java.sql.DateクラスはANSI準拠。日付までしか保持しない
  • java.util.Dateクラスはミリ秒まで保持する。
  • JDBCではjava.sql.DateクラスはDATE型(JDBC)にマッピングされる。
  • JDBCではjava.util.DateクラスはDATE、TIME、TIMESTAMP型(JDBC)にマッピングされる。
問題例とか
  • JavaでOracleに日付を登録する場合、やり方によっては時刻情報が落ちる。
  • java.sql.Dateのコンストラクタはlong型なミリ秒を受け取れるが、残るのは日付のみ。

参考:

7月 132012
 
現象

Cドライブ直下に”testdir “というディレクトリがある場合

[csharp]Directory.GetFiles(@”c:\testdir “);[/csharp]

という具合に検索すると見つからないといわれる。
ディレクトリ名末尾が全角スペースの場合も同様。

原因
[csharp]Directory.GetFiles(@”c:\testdir “);[/csharp]

と検索しても、実際に検索されるのは”c:\testdir”となるため。
空白をTrimしているっぽい。

回避策

検索するパスの末尾に”\”をつければ検索可能。

[csharp]Directory.GetFiles(@”c:\testdir\”);[/csharp]
参考

全角スペースがあるフォルダあるとSystem.IO.Directory.GetFilesがエラーになる: DOBON.NETプログラミング掲示板過去ログ

7月 132012
 
  • AuthzSVNAccessFileのグループはApacheのグループではなく[groups]を使う。
  • SVNParentPathディレクティブは、リポジトリ直下ではなく、複数リポジトリの親ディレクトリを指定する場合に使う。
  • SVNListParentPathをONにしないと、SVNParentPathで指定したディレクトリは403になる。
  • mod_auth_basic.soの認証とmod_authz_svn.soの認証は分けて考えたほうがわかりやすいかも。
    • mod_auth_basicで該当ロケーション以下のディレクトリをまとめてログイン認証。
    • mod_authz_svnで各リポジトリの各ディレクトリ単位でアクセス許可を設定。
    • つまり、BASIC認証通過後、その認証情報でSVNのアクセス権をチェックするイメージ。
      • アクセス権がなかったら403になる。
      • Eclipseではフォルダはリモートに存在しませんと出る。
  • AuthUserFile、AuthzSVNAccessFileの変更はApache再起動不要。
7月 132012
 
再現環境

サーバー:

  • CVSNT2.5.02
  • ワークグループを構成。ドメイン非参加。

クライアント:

  • Eclipse3.2.1
  • ドメインに参加している。

その他:

  • サーバークライアント間にルーターが2つある。
  • 各マシンに設定されているDNSサーバーは別。WINSサーバーは同じ。
現象

CVSNTに対してリモートからpserverでアクセスしたとき、ファイル一覧の取得などの動作が妙に遅い場合がある。
サーバーローカルから接続すると起きない。

原因

有効だがケーブルが接続されていないネットワーク接続設定があると遅くなるようだ。
恐らくクライアント名の解決で、使えないネットワークを見に行ってタイムアウトしているものと思われる。

クライアント側からサーバーとのやり取りのパケットを見ていると、認証OKのパケット(I LOVE YOUっていわれる!)を受け取るのに時間がかかっているのがわかる。(約4秒)

処置

使っていないネットワーク接続設定を無効にすれば解決する。
CVSNT Control PanelのAdvancedタブの”Don’t resolve client names (debug setting)”を有効にしても直る。
でも「debug setting」とか怪しいのでお勧めしない。

7月 132012
 
  1. CVSリポジトリービューで.projectファイルがないディレクトリを選択。
  2. 「バージョンとしてタグ付け」を選択。
  3. 一見タグ付けできたように見える。
  4. 他のクライアントから見るとタグ付けできていない。Eclipseを再起動してもやはり見えなくなる。
7月 132012
 
Adobe公式
Adobe翻訳

(公式翻訳はいつも読み難い・・・)
(しかもリンク切れてる…)

Flex itemRendererの理解 パート1:インラインレンダラ
http://www.adobe.com/jp/devnet/flex/articles/itemrenderers_pt1.html

Flex itemRendererの理解 パート2:外部レンダラ
http://www.adobe.com/jp/devnet/flex/articles/itemrenderers_pt2.html

Flex itemRendererの理解 パート3:通信
http://www.adobe.com/jp/devnet/flex/articles/itemrenderers_pt3.html

Flex itemRendererの理解 パート4:ステートとトランジション
http://www.adobe.com/jp/devnet/flex/articles/itemrenderers_pt4.html

Flex itemRendererの理解 パート5:効率
http://www.adobe.com/jp/devnet/flex/articles/itemrenderers_pt5.html

バナナ研究所翻訳

(パート5がない!)

 Posted by at 11:19
7月 132012
 

{$FLEX_HOME}/sdks/3.x.x/bin/jvm.configファイル内java.homeの設定ミスで発生する。
※{$FLEX_HOME}はFlexインストールディレクトリ

\やバックスラッシュは使用できない。
スラッシュを使用して指定する事。
また、相対パス指定ではカレントディレクトリが違う場合に起動できなくなる事があるため、絶対パス指定の方が良い。(Windowsの場合)

例)
[raw title=”jvm.config”]
java.home=C:/Program Files/Adobe/Flex Builder 3 Plug-in/jre
[/raw]