2011年5月24日火曜日

ORA-12518

最近またもや「ORA-12518: TNS: リスナーはクライアント接続をハンドオフできませんでした」のエラーが頻発するようになった。

以前にも発生した事があったが、少し時間を置くを発生しなかったりしたので放置していた。 エラーの原因は、メモリにあることは感じていたがこの機会にスッキリと解決に向けて努力することとした。 発生するマシンは、Macbook PRO のBootCamp にインストールした Oracle10g です。

現象としては、ウィンドウズのコマンドから sqlplus での接続は問題なく接続できるが、sqlworksheet や OEM や クライアントアプリケーションから OracleDB(10g)に接続にいくとエラーが発生するという現象である。

  • コマンドからのSQLPLUSでの接続 → 問題ない
  • Windowsアプリケーションからの Oracle DB への接続 → エラーが発生する。

いろいろと調べた結果、通常 ORA-12518 が発生する場合は、Oracleの仮想メモリが2GBを超えた場合に発生する。(Windows 4GT参照)

しかし、私のマシンで発生している原因は上記の問題ではなく、hostsの設定によるものであった。
  ↓
テスト用にノートPCにOracle10gをインストールしているが、使用する無線LANによるアドレスが変わるので、その都度設定ファイルを変更するのが面倒なので hosts ファイルでPCのホスト名のアドレスを 127.0.0.1 に設定して対応したためのようであった。
この設定を行ってたまにエラー(ORA-12518)がでたが、少し時間をおくと問題なく使用できたので気にせずに利用を続けていた。

しかし、127.0.0.1 はループバックアドレスであるので通常のアプリでの利用には問題がある旨が記載されいる情報を発見し、早速正しいIPアドレスに変更して行ったところエラー(ORA-12518)は発生いなくなった。

面倒だけど、使用する無線LANが切り替わる時は、hostsファイルでアドレスを変更して対応することになった。

2011年5月14日土曜日

Xcode4は日本語対応していない

何気なくiphoneアプリの制作実習を続けていて、ふとOSのバージョンアップはあるがXcodeのバージョンアップのお知らせが来ないなぁと思い確認してみたら、2011年3月に Xcode4がリリースされていた。

確認してみると、どうやら誰でも無償でダウンロードできる訳でないらしい。Xcode は Mac OS X のインストールディスクに含まれており、Xcode3では無償でダウンロードも可能だったが、Xcode4 からは有償になったらしい。
Xcode 4 は現時点では 99 ドル / 年の Mac Developer Program もしくは iOS Developer Program 加入者のみに無償で提供されており、それ以外のユーザーは Mac App Store で 4.99 ドルで購入する必要ある。 (Apple Insider の記事より)

私はとりあえず、iOS Developer Program に加入しているので早速 Apple Developer の Member Center からダウンロードを行って早速試してみたら... なんと日本語対応していなかった。
これだと、他にも何か機能が変わっているものがあるかもしれなと考えググってみると「ローカライズ」の方法が変わっているらしい。

とりあえず、ボチボチと実習を兼ねて確認していく事とする。

今回の教訓:「情報は常に最新に!」
3月に気がついていれば、この2ヶ月の間に Xcode4 を理解できていたのに...

自分の鈍感さに 飽きれてしまう。┐(´〜` ;)┌

2011年4月27日水曜日

Oracle SQL Developer 奮闘録

以前は、WindowsXpに問題なくインストールできていたのですが、3.0系をインストールしたらDBへ接続できない。
DBはWindowsXpの端末の10gがインストールしてあり、Linuxサーバーには11gをインストールしてあるので、それぞれ DB に Oracle SQL Developer で接続を行おうしても接続できない。

Oracle SQL Developerにもいくかバージョンがあり、1.5系、2.*系、3.0系 とありますが、1.5系以外がDBへの接続設定を行うとエラー(ステータス:失敗)接続ができない状態です。

はやめに3.0系を使えるようにしたいのだが...
時間が... ◇\(;_;)/◇

2011年4月24日日曜日

既存メディアにはうんざり!

大新聞や大手民放テレビ局の情報操作(使い分け)には、もうウンザリする。そろそろ、日本でも政府とメディアの癒着のような情報操作に立ち上がるべきだと思う。

4月22日(金)の孫正義氏のエネルギー政策の転換に向けて」記者会見があったが、大手メディアはやはり黙殺を決め込んでいる。ニコニコ動画で生放送されていたが、大手メディアはどうでも良い記者会見には大勢で出席して無意味は質疑を行っているが、今回のような記者会見にはをダンマリを決め込む。

ジャーナリズムって何なんだ?

このような国難の時こそ、いろいろ情報を選択肢を脚色せずに正しく伝えるのが大手民放テレビ局と大手新聞社の役割(役目)なのではないか?

4月22日の孫正義氏の記者会見

アメリカでは昨年から太陽光による発電コストが原子力発電を下回るようになった。孫氏は世界中の科学者100人を集めて太陽光発電を中心に自然エネルギーの普及を目指す。

なぜ、大手メディアがこのような情報を伝えていないのか?

大手メディアが「電気代の値上げ」や「増税容認的発言」のみを報道し、世界の趨勢や情報を密閉するような行為をしているように感じる。

日本はもっと良い国であったと思っていたが、錯覚だったのか ?!

自分もできることから行動しようと思う。孫正義氏を応援しよう。

2011年4月13日水曜日

CakePHP つまずき

久々に Cakephp をさわったら、「Warning (512): Could not find validation handler ... 」と Warning が多発。

良く確認したら、CakePHPを複数アプリを起動できるようにしていたので、起動方法(URL)が間違っていたためであった。しかし、久々に操作だったので事をすっかり忘れてしまって解決に思わぬ程時間がかかってしまった。 (_ _ ;)尸 マイリマシタ…

vhost.conf で起動アプリを制御する。

CakePHPで複数アプリを起動させるため、httpd の vhost.conf でバーチャルホストを定義して起動するアプリごとに起動するパスを分けることで、アプリのベースパス(URL)を制御する。

2011年3月24日木曜日

Oracle-主キーに後から項目を追加する

最初から主キーを定義する場合は問題ないのですが、仕様変更が発生して主キーの変更が必要になった場合についつい忘れがちなのがこのコマンドです。(主キーの変更が必要になる仕様変更は初期の段階でないかぎりめったに発生するものではないので...)

主キー Create文
CREATE TABLE テーブル名
(項目名 属性,
項目名 属性,
…,
〔CONSTRAINT 主キー名〕 PRIMARY KEY (項目名, 項目名, …)
);
CREATE TABLE テーブル名
(項目名 属性 〔CONSTRAINT 主キー名〕 PRIMARY KEY, --この方法は、主キーが一項目だけの場合のみ使用可能
項目名 属性,

);
主ーに後から項目を追加
■まず、主キー制約を削除する。
ALTER TABLE テーブル名 DROP PRIMARY KEY;

■主キー制約を追加する。
ALTER TABLE テーブル名 ADD 〔CONSTRAINT 主キー名〕
PRIMARY KEY(項目名, 項目名, …)
;

2011年3月21日月曜日

Oracle Database キャラクタセットについて

新規DB作成時の注意事項

ふと忘れてしまうのが、キャラクタセットのコード設定。11gのインストールがうまく終了しない ことに気をとられてしまい、キャラクタセットのコード設定でつまずく。
 Oracle11gのキャラクタセットは、無指定だと「AL32UTF8」で作成されます。 ここで注意が必要なのが JA16SJIS で作成されたDBを移行する場合です。

Oracleで許可されているデータベースオブジェクト名のサイズはマニュアルに記載されているように、データベース名とデータベースリンク名を除いて 30バイトまでとなっています。

JA16SJIS → AL32UTF8
  • ディスク容量の見直。
  • JA16SJIS2バイトであった文字がAL32UTF8では3バイトになる。

JA16SJISのデータベースで表示名や列名を日本語(マルチバイト)11文字以上で定義していた場合、キャラクタセットが AL32UTF8 であるデータベースではDDLすべてがエラーになる。
 それらを修正するとなるとSQL/DDL文・その他プログラムに至るまで、その影響は広範囲に渡ります。

DBをインストールする機会がたびたびある訳ではないので、以外に上記のことを忘れがちです。 JA16SJISで日本語で15文字以内で項目名や表名を定義しているとAL32UTF8では、10文字以内にすることが必要になり、日本語10文字ですべてをうまく表現するのはなかなか難しいものです。

いずれAL32UTF8にしようと考えている場合は、修正コストは掛かりますが日本語名から英数字名に変更するか、日本語項目名を10文字以内にして修正を行っておくことを薦めます。