[最新記事] [過去ログ]

8/10(Sat)

/** 目指せ! Oracle Master Platinum(9i)!! */ ゲットしました!(^^) が、試験結果レポートには、 合格点: 38 あなたの点数: 39 結果: 合格 と。(問題数56) かなぁりヒヤ汗モード(T_T) ちなみに、不正解リストなるものがレポートに含まれていましたが、 延々17項目も書かれると、何にも分かってないのがバレバレです(>_<; あとは、仕事で使わないことには、どうしようもないね。 /** ナイスなエンジニアになるために! */ Guide to Software Engineering Body of Knowledge ソフトウェアエンジニアのためのホームページで、 紹介されていたものです。 ちびちび必要なところから読んで、ナイスなエンジニアになっちゃいましょう(^^) /** 日本版CMM */ 3年も前に公開されてたのねー(>_<; SEA-SPIN CMM プロジェクトの記録 こっちは日本語だから、ちゃんと読めるような気がするね(^^; /** 久々に上向き */ マイ保有ファンドの基準価額が、久々に取得元本を超えました(^^) まだ、販売手数料の分損しているのですが、 きっと、下がり気味の時には低リスク商品で耐えて、 最近の反発傾向に乗じてきたのでしょう。 ファンドマネージャーは、めちゃめちゃ冴えない顔してるんですが(^^; 今週は、良い活躍ぶりだったと言えるでしょう。

8/9(Fri)

/** JCom生きてた! */ 単に、ページを移動しただけだったようです。 JCom(Java-COMブリッジ) /** 障害管理システム(またの名をバグトラッキングシステム) */ 障害管理システムであんまりサーチエンジンで引っかからなかったのに、 バグトラッキングシステムで検索したら、結構出てきました。 う〜ん。やられた(+_+; ↓のページで、いくつかオープンソースな バグトラッキングシステムを紹介しているようです。 バグトラッキングシステム Bugzillaしか無い訳はないと思ってましたが、 こんなにあるとは思いませんでした... いくつか見てみましたが、GPLが多いようです。(というか全部?) まあ、バグトラッキングシステムの性質上、 再利用して売るとかいうケースが考えられないので、 GPLでも問題無いと思うのですが。 ちなみに、今回のプロジェクトの片手間で作った、 障害管理システムを公開してみました。 インストールでてこずるかなぁ。

8/8(Thu)

/** ケーブルテレビ */ いつの間にか、4Mbpsから、10Mbpsに増速してたらしいです(^^; でもって、早速回線スピードを測ってみると、 2Mbpsぐらいから、4Mbpsぐらいまでアップしてました。 つーか、まったく気づかないっての(^^; 要は、メガ単位までくると、 大して変わらないということなのでしょう... /** hsqldb完結 */ どうにも使えない気がしてきました。 タダだから、仕方無いのかもしれませんが... こんなテーブル作って、負荷テストをしたんですが、 (on HSQLDB1.6.0 on JBoss2.4.6、HSQLDB1.7.0)
test
id integer
数十万行のINSERTで、java.lang.OutOfMemoryErrorが起きてしまい、
動作が不安定になることが発覚しました。
(というか、多分データベースサーバを再起動しないと使えない。)

適当にループを回して、適当なデータをINSERTしていったんですが、
INSERT文が実行される度に、*.scriptファイルに、
INSERT INTO 〜 VALUES(〜)
といったSQL文が1行ずつ書き込まれる仕組みらしいです。
(*.script = オンラインログ = データベースの状態そのもの)

まあ、それは良いにしても、
入れたデータを消すのに、「delete * from 〜」ってやったら、
DELETE * FROM 〜 WHERE key = 〜
っていうSQL文が、入っているレコードの件数文だけ、*.scriptファイルに追記されてました。

さらにデータをINSERTすると、
DELETE文の続きから、INSERT文が*.scriptファイルに書き込まれ...
しまいには、メモリ上に乗らなくなってしまうのでしょう。
あくまで想像ですが。

メモリ256MBの環境で、
10万件INSERT + 10万件DELETE + 31万件(ぐらい)INSERT
が限界でした。

どのような高性能なサーバを使ったとしても、
*.scriptを別ファイルに切り替えるような仕組みにならない限り、
使い物にはならないと思います。。

8/7(Wed)

/** XMLデータベース */ なんか、面白そうなプロジェクトが発足してました。 オープンソースなXMLデータベースだそうです。 xindice (ジンダイス? 読めない...(-_-;) FAQを適当に流して読んでみたところ、 5MByte程度の大きいデータになると、扱えないというデメリットがあるようです。 コレクションを内包するようなドキュメントであれば、分割して対応するようですが、 実際使うとなると、この制限は結構厳しいかも知れません。 /** DB Independent Tool */ 3/26に、JDBCのMeta系APIを使ったツール「iSQL」 を紹介した時に、なんでODBCは無いの? とか言ってましたが、たまたまYahooで階層たどっていったら、 こんなページを発見しました。 MySQLとか、PostgreSQLとかをネイティブでサポートしてる辺り、 かなり意欲的なツールなのではないかと思います。 多分、不満は一つで、 Web対応が無いから、使いたい人のPC全部に入れなきゃだめじゃん(T_T) ということぐらいでしょうか。 この手のツールを使う理由は、 テーブル定義書などを省くことによる、テーブルレイアウト変更プロセスの簡略化 にあると思います。 従来のテーブルレイアウト変更プロセスは、 1) テーブル定義書修正 2) CREATE TABLE 〜のSQL修正 3) テーブル(再)作成 ですが、このようなツールを使うことにより、 テーブル定義書に相当するドキュメントは、いつでもオンラインで見られることで、 不要になり、上記1)の手順が省略でき、簡略化できます。 恐らく、データベースを使った大抵のプロジェクトでは、 テーブル定義の変更が起こるものなので、 その作業が多いほど、ツールが有効に働くと思います。

8/4(Sun)

/** 世の中資格だらけ!? */ はじめて、フレッシュアイのホームページをじっくり見てみたんですが、 資格カレンダーなるものを発見しました。 そこからたどって、 情報処理関連資格(ベンダー資格以外) というのがあったのですが、まあ色んな資格があるものです。 「Webマスター・Webクリエイター認定試験」とか、 「インターネットウェブマスター(IWM)」なんてのは、 持ってても、知名度低すぎて、少なくとも自慢はできないでしょう(^^; ちなみに、おんなじ業界の人で、 「P検でも取ろうかなぁ」 とのたまった人がいますが、 それって、単に逃げてるだけじゃないの? と思います。 確かに、情報処理は、その合格率から見ても分かる通り、 簡単な試験でありません。 だからといって、自分の目標を下げて、 簡単な試験に逃げるのは、間違ってるような気がします。 大体の場合、資格試験の価値は、難易度に比例しているので、 価値の低い資格をいっぱい持っていても、意味無いですしね。 (まあ、価値の高い資格でも、その知識を実践に応用できなければ意味無いですが。) 資格については、ここに色々あるので、読んでみると役に立つと思います。

8/3(Sat)

/** Yellow Generation */ Yellow Generationの「北風と太陽」かなりイイです(^^) PVの中で左にポジション取ってる人の、微妙な表情がまたイイです(^^) /** JBoss付属のhsqldbにつなぐ */ いまいち把握しきれてないのですが、 hsqldbにJDBC経由で接続する方法は、いくつかあるようです。 JDBCのURLを、「jdbc:hsqldb:<データベース名>」にすると、 プログラムを実行した場所にある(もしくは作成される)、 ファイルにアクセスします。 JBoss上で稼動しているWebアプリケーションから、 「jdbc:hsqldb:<データベース名>」 の形式でアクセスすると、%JBOSS_DIST%/jboss/bin以下に、 データベース名.propertiesや、データベース名.dataが作成されます。 まあ、これでも使えないことは無いのですが、 せっかくJBossが起動している、hsqldbのサーバを無視していることになってしまいます。 また、JBoss上で稼動するWebアプリケーション以外からは、接続できません。 (できるかも知れないけど、URLに場所を入れたりしなきゃならないので、使いにくくなる) そこで、 jdbc:hsqldb:hsql://localhost:1476 というJDBCのURLでアクセスすることで、 JBossがデフォルトで用意している、 %JBOSS_DIST%/jboss/db/hypersonic 以下のデータを使用することができます。 上記URLを用いれば、JBoss上で稼動するWebアプリケーション以外からも、 同様にhsqldbに接続することができます。 使ってみて分かったんですが、 カタログ(SQLServerのデータベース)や、スキーマ(Oracleのユーザ) などで、一つのデータベース中に、複数の領域を持たせることはできないようです。 感覚的には、一つのデータベース(mdb)に、 全てのオブジェクトを保持する、Accessのようなものなのでしょう。

8/2(Fri)

/** DatabaseMetaData.getTables */ かなりマニアックネタです(^^; java.sql.DatabaseMetaData#getTablesを呼ぶと、 対象コネクションに関連付けられた、テーブルの情報がResultSetの形式で取得できます。 このResultSetには、テーブル名や、テーブルのタイプ(普通のテーブル、ビュー、シノニムなど。) などの情報が含まれているのですが、 この中に、REMARKSという列が含まれています。 java.sql.DatabaseMetaData#getTables のAPIドキュメントを読むと、以下のように書かれています。 > 5. REMARKS String => テーブルに関する説明 直感的には、テーブルのコメントだと思ったので、 Accessのテーブルにコメントを入れ、上記APIを使用してREMARKS列を取得してみましたが、 全てNULLで返ってきてしまい、テーブルの説明は取得できませんでした。 多分、Sunのブリッジドライバが、そこまでサポートしていないのでしょう。 Oracleにも、 「COMMENT ON 〜」 で始まるSQL文で、テーブルや、列にコメントを付与することができるので、 こっちも試してみました。 が、 java.sql.SQLException: 列名が無効です。 と出て、取得できないどころか、例外まで吐いてしまいました... でも、 ドライバがサポートしていない機能についての情報を取得するメソッドは、SQLException をスローします。 だから、挙動としては正しいのか? メソッド単位の非サポートならまだしも、 列単位で非サポートなのは、せっかくMetaDataなのに、 データベース製品固有の挙動を意識しなければならないのは、 若干辛いものがあるので、なんとかして欲しいところです。

8/1(Thu)

/** Oracle Servlet Engine 死んでなかった... */ 7/13に、oseを止めて、Oracle + Jbossができるとか書いたんですが、 できてなかったです(T_T) で、よくよく調べてみたところ、以下のような手順で、 無効化できるみたいです。 (まだ、あやしいかも...) でも、こんなことしなくても、JBossのポート番号変えれば回避できますね。 1) tnsnames.oraから、MODOSEのエントリを削除 INST1_HTTP = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = tsukumo)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = SHARED) (SERVICE_NAME = MODOSE) (PRESENTATION = http://HRService) ) ) 2) 初期化パラメータから、MTSの記述をコメントアウトし、インスタンスを再起動する。 #dispatchers="(PROTOCOL=TCP)(SER=MODOSE)", "(PROTOCOL=TCP)(PRE=oracle.aurora.server.GiopServer)", "(PROTOCOL=TCP)(PRE=oracle.aurora.server.SGiopServer)" (実際は1行で記述されている。) 3) sess_shコマンドを使って、サービスを削除する。 > sess_sh -u sys/change_on_install -role SYSDBA -s jdbc:oracle:oci8:@ $ rmendpoint admin main $ rmendpoint admin ssl 一応これで、リスナを起動後、1分後ぐらいで起動していたサービスが、起動しなくなりました。 この設定には永続性があるようで、OSを再起動しても、有効なようです。 $ORACLE_HOME/network/log/listener.logに、以下のようなログが出力されてなければ、OKです。 リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=192.168.1.21)(PORT=9090))(PRESENTATION=http://admin)(SESSION=RAW)) リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.21)(PORT=8080))(PRESENTATION=http://admin)(SESSION=RAW)) ただ、いまだにsess_shがなんなのか、また、 その設定がどこに格納されているのかは不明です。 ちなみに、 $ORACLE_HOME/javavm/doc/readme.txt 辺りを読むと、Oracleインストール時に作成されるデータベースに、 含まれるようなことも書いてあります。 (そして、自動的に有効になっているのが、かなり迷惑(T_T)) やっぱり、自動的に作成されるデータベースでは、 わけの分からないものも、いっぱい入ってそうですね...
[最新記事] [過去ログ]