Oracle Linux dbca,netca,netmgrでの日本語文字化け

2008-02-27 22:09:58 | Oracle
Oracle10.2.0.1, SUSE Linux 10.3環境で、Oracle10gインストールと同様に日本語が化ける。
原因は、インストールの場合と同様、日本語フォントが見つからないことが原因である。

インストールの場合と同様に、以下のディレクトリのfont.properties.jaを修正する。

$ORACLE_HOME/jdk/jre/lib/

また、同様に以下のディレクトリにttfファイルをコピーするとともに、fonts.dirを修正する。

$ORACLE_HOME/jdk/jre/lib/fonts/

上記を行った後に、起動すれば、日本語が正しく表示されるはす。

Oracle Linux環境でのインストール時の日本語文字化け

2008-02-26 22:18:40 | Oracle
Oracle Linux環境で、runInstallerの日本語が文字化けしてしまう。この原因は、日本語フォントが見つからないことが原因である。runInstallerを起動する前に、日本語フォントを準備して、設定ファイルを変更してあげれば、日本語が正しく表示される。

以下の例は、Oracle10gの例である。

1.フリーフォントの準備
こちらからsazanamiフォントをダウンロードする。
*IPAフォントで最初試したが、一部の文字が文字化けしたままだった。原因は追究していない。

ダウンロードしたフォントファイル(拡張子がttf)を任意のフォルダーに解凍。
フォントファイルを解凍したディレクトリで、mkfontscale(SUSE Linuxの場合)で、fonts.scaleを作成する。
作成されたfonts.scaleのjisx0201.1976-0,jisx0208.1983-0以外は削除
する。また最初の数字(フォントの数)も削除する。

2.Oracleのjre解凍database/stage/Componnents/oracle.swd.jre/1.4.2.8.0/1/lib/DataFilesの中ののfilegroup2.jarを任意のディレクトリに解凍する。
ex) unzip filegroup2.jar <任意のディレクトリ>

*oraparam.iniのJRE_LOCATIONを変更する方法の場合、/tmp/Oracle~に書き込めないか、60M以上必要というようなエラーでうまくいかなかった。Oracle9iではうまくいったが。

3.フォントファイルのコピー
1で手に入れたフォントファイルを2で解凍した以下のディレクトリにコピーする。
jre/1.4.2/lib/fonts

4.fonts.dirの編集
jre/1.4.2/lib/fontsの下のfonts.dirに1で手に入れたfonts.scaleを追記する。また、fonts.dirの1行目の数値に、追記した行数分だけ加算する。

5.font.properties.jaの編集
Oracle10gの場合は、wadalab-gothicをsazanami gothicに変更、wadalab-minchoをsazanami minchoに変更する。また、sazanamiに変更した-m-の部分も-p-に変更する。

6.jarの作成
jreをjarファイルに圧縮し,圧縮したjarファイルを、
database/stage/Componnents/oracle.swd.jre/1.4.2.8.0/1/lib/DataFilesに置く。
ex) zip -r filegroup2.jar ./jre

以上の作業を行った後、runInstallerを起動すると、日本語が正しく表示される。


OPEN SuSE LinuxにOracle10gをインストール

2008-02-21 00:14:31 | Open SUSE Linux
OpenSuSELinux 10.3 にOracle10gR2をインストールする場合の注意事項
1. Oracle10gR2では、SuSELinux 10は正式にはサポートしていないため、runInstallerを実行直後にオペレーティングシステムのバージョンチェックで、失敗する。以下の方法で回避できる。
database/install/oraparam.iniの[Certified Versions]にSuSE-10を追加する。
ex) Linux=redhat-3,SuSE-9,SuSE-10,...

2. Java: xcd_xlib.c:52: xcd_xlib_unlock: Assertion `c->xlib.lock` failedというエラーが発生する。
以下の方法で回避する。
export LIBXCB_ALLOW_SLOPPY_LOCK=true
理由は、xcd_libがlockに対して厳密にチェックするようになったかららしいです。lockしていないのに、unlockしたとか?
ソース

Hibernate annotationでLazyInitializationException

2008-02-16 01:57:28 | hibernate
Hibernate annotationでload時にorg.hibernate.LazyInitializationException: could not initialize proxy - no Sessionが発生する。

・デフォルトではlazy属性がtrue
・getHibernateTemplate().load()はセッションを内部でopen,closeしている。

その為、セッションをクローズした後に、対象クラスにアクセスしにいこうとして、エラーが発生。(lazyがtrueの場合、実際に使用する時に、DBにアクセスしようとするが、その前にセッションをクローズしている。)

対処方法)
@Entity
@Proxy(lazy=false)
@Table(name="item")
public class Item implements Serializable{

上記例のように、@Proxy(lazy=false)を使用する。