2008年2月12日 星期二

Oralce 10g的OEM中文顯示異常

[2009/03/18 補遺]
http://linux-cisco.blogspot.com/2009/03/oem.html
不過,要打掉重新安裝。但卻可能是最根本的解決之道!
+==================================================+

因為oracle官方支援的linux版本是RHAS3或是RHAS4等特定版本,
所以若是安裝在其他的linux版本,可能會發生一些像是函式庫不足,或是軟體執行時,中文顯示不正常的問題。
以我的經驗來說,安裝在CentOS4,可能是目前最符合安裝oracle 10g的linux版本。
雖然安裝在Fedora 7或是8,以及debian版本的linux OS環境中,函式庫不足的問題,可以再自行增加安裝相關的rpm或是deb套件。
但是如何把oracle 10g,從安裝到真正把資料庫運行進來,以OEM中文介面去管理,
這當中使用者一定會遇到要如何克服中文顯示的問題,從我開始使用oracle迄今,我就一直被這個問題所困擾!

名詞解釋:
「OEM」,Oracle Enterprise Manager Database Control(em)。是10g版本增加的Web化資料庫管理工具。
「OUI」,Oracle Universal Installer 即安裝oracle軟體的程式,以java程式語言寫成。具有跨平台執行特性。

根據網路一些朋友散佈分享的技術文件,在中文語系環境中執行OUI或是dbca、netca等等GUI時,
以及在OEM執行時的中文按鈕文字顯示成「方塊」的不正常情形,探究原因都是因為JAVA程式執行的語系配置不當,
更深入的來說,就是JRE的設定不當而產生的問題。
也就是說,我們必須要解决JDK和JRE裡的中文字體的相關設定和配置:

名詞解釋:
「JDK」,JDK是Java開發工具包 Java Development Kit 的縮寫。
它是以建構在Java平台上發布的應用程式、applet和一些組件的開發環境。

「JRE」,JRE則是Java運作環境 Java Runtime Enviroment 的縮寫。

據查,Oralce 10g的安裝檔案內建了JRE 1.4.2和JDK1.4.2軟體,而其字體的配置文件位於:
$ORACLE_HOME/jdk/jre/lib
$ORACLE_HOME/jre/1.4.2/lib

以上兩個目錄中的font.properties,就是字體配置文件!
若是中文字體顯示不正常,應該就是這兩個檔案的內容要修正它。
因為配置文件裡定義的字體不存在你所用的LINUX環境,或是指向字體的路徑不對,就會產生異常。

但是我用Google搜尋引擎,
以「oracle」「OEM」「中文顯示」「亂碼」「方塊字」等幾個關鍵字,
搜尋出來的資料,幾乎都是簡體中文環境下的解決方法。
很是疑惑,難道繁體中文的oracle使用者,都沒有這方面的困擾?沒有這樣的問題討論嗎?
其實要強迫我以英文介面去使用oracle也是可以,但總感覺不太local。怪怪的!

以下是從網路抄來,一個要在Fedoar 7執行簡體中文OEM的解決作法:

$su - oracle
$cp $ORACLE_HOME/jdk/jre/lib/font.properties.zh.Turbo.Redhat $ORACLE_HOME/jdk/jre/lib/font.properties
$cp $ORACLE_HOME/jre/1.4.2/lib/font.properties.zh.Turbo.Redhat $ORACLE_HOME/jre/1.4.2/lib/font.properties
$emctl stop dbconsole; isqlplusctl stop
$rm -f $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs/*.gif
$emctl start dbconsole; isqlplusctl start

補充:
注意!在做完以上的複製動作之後,要檢查一下更新後的font.properties,
檔案內容的最後幾行,要注意看看有沒有正確指到系統的字體目錄fonts。
重點在font.properties找到以下內容,在檔案內容最後...
#=====================================================================+
filename.-tlc-song-medium-r-normal--*-%d-*-*-c-*-gbk-0=/usr/share/fonts/chinese/TrueType/uming.ttf
appendedfontpath=/usr/share/fonts/chinese/TrueType/
#=====================================================================+

要檢查是否設定成功可以執行:
$ORACLE_HOME/jdk/jre/bin/ControlPanel
或是
$ORACLE_HOME/jre/1.4.2/bin/ControlPanel
如果執行結果有成功出現了中文,表示你的中文配置成功了,如果沒有,則要再檢查字體路徑,確認無誤才行。

OK!筆記寫到這裡。
令我挫折的是,我照著簡體中文的例子做,奇怪,都不能順利成功,還是亂碼!
最後,我還是用比較「正常」的CentOS4版本的LINUX,把oracle 10g database裝起來之後,
確定那些中文顯示都正確了,再把那些GIF檔複製過來重複使用在其他版本的LINUX平台的ORACLE環境裡!

後記:
最近又找到一個「應該」是繁體中文的解決方法說明,找時間試試!

出處:
http://alangnet.blogdns.net/index.php?op=printView&articleId=26&blogId=1

正文:
解決:JAVA Runtime Environment 中文亂碼
星期二, 19th 七月 2005

如果想在 Linux 上執行一些 JAVA 的程式,例如 Oracle OEM Console, 網頁的JAVA Applet等等,
一定會讓視窗顯示的方塊字所困擾, 這是因為用戶為中文環境,但 JRE 找不到相應的字型所致, 現在有方法可解了:

系統環境: Mandriva 2005 LE
JRE: jre 1.5.0
Firefox: 1.0.2

1) 下載所需字型檔
http://cle.linux.org.tw/fonts/Arphic/bsmi00lp.ttf

2) 檢查設定檔及字型路徑
root# cd /usr/java/jre1.5.0/lib
root# cp fontconfig.RedHat.8.0.properties.src fontconfig.properties
root# grep "filename" fontconfig.properties

filename.-arphic_technology_co.-ar_pl_mingti2l_big5-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/s hare/fonts/zh_TW/TrueType/bsmi00lp.ttf

** 將下載的字型檔拷貝至上列路徑

3) 環境變數設定
root# vi /etc/profile

JAVA_HOME=/usr/java/jre1.5.0
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH

3 則留言:

hankce 提到...

$ORACLE_HOME/jdk/jre/lib
$ORACLE_HOME/jre/1.4.2/lib
$ORACLE_HOME/javavm/lib/ojvmfonts
這三個地方都要改唷...
font.properties.zh_TW.Redhat 我是用這個去overwrite font.properties
bsmi00lp.ttf路徑要改..最好改成X11..那個目錄的.
$ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zht目錄要全砍...
ISQLPLUS..也可以照這方法弄...
$ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/isqlplus/isqlplus/cabo/images/cache/zht-SQLPLUS 圖示路徑
最後我是用SuSE 10..安裝..最近剛把Application裝好..有機會可以一起討論..我的msn hankce@hotmail.com

Unknown 提到...

$ORACLE_HOME/javavm/lib/ojvmfonts
也要改哦!
我試試,謝謝hankce!

Unknown 提到...

根本解決的方法!
不過,就要打掉重裝了。
http://linux-cisco.blogspot.com/2009/03/oem.html

搜尋此網誌

本站大事記

這個部落格(網站)內容以分享LINUX和延伸出的技術文章為主!
特別是為了工作和進修需要,搜集了不少網站連結。
希望對來這裡觀文的朋友們,有提供一些有用的資訊或文章。
但這裡的文章中,也包含個人的心情扎記和隨興言談……
若是當中沒有對上你的口味,請多包涵!

原「琳娜絲與希斯寇的邂逅」,改名為「愛上琳娜絲」!

原「琳娜絲與希斯寇的邂逅」,改名為「愛上琳娜絲」!
--原序文--
就是當LINUX遇上CISCO啦!他們的結合還能作什麼事…不就是讓這個世界的網路,串…串起來啊…不然你們那能上這網站看部落格!