Oracle10gRACのJDBC設定でORA-12505

2008-08-25 21:27:46 | WebLogic
Weblogic9.2でOracle10gRACでJDBC設定を行うと、ORA-12505(TNS: リスナーは接続記述子で指定されたSIDを現在認識していません )が発生する。

・URLのjdbc:oracle:thin:@hostname:1521:sidのsidの部分が間違っていた。うちのDBA(?)から教えてもらったsidがorclだったが、実際は、orcl1,orcl2が正解だった。
OracleRACでdbcaでデータベースを作成すると、指定したsid接頭辞に1から始まるノード番号を加えたものを各インスタンスのsidに設定する。
ex) sid接頭辞がorclの場合、各インスタンスのsidは、orcl1,orcl2,orcl3...になる。
ソース
URLをjdbc:oracle:thin:@hostname:1521:orcl1,jdbc:oracle:thin:@hostname:1521:orcl2と設定することで、成功した。

以下は、参考。
Weblogic推奨のOracleRACを使用する場合のjdbc設定)
Weblogic AdministrationConsoleで、各インスタンスのデータソースを作成し、マルチデータソースを作成するさいに、設定したデータソースを選択する。またアプリケーションで使用するjndi名はマルチデータソースに設定する。
各データソースを設定する場合のURL設定は、sidを設定する方法(sidには上記のようにsid接頭辞+ノード番号を設定する。)以外にも、sidに変えてservice_nameを設定する方法もある。以下はその構文。
ex)jdbc:oracle:thin:@//hostname:1521/service_name
ソース

上記以外の方法)
マルチデータソースを使用せず、データソースで、OracleRACを使用する。この場合は、単独のデータソースのみで完結する。そのURLの構文は以下になる。
jdbc:oracle:thin:@(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=hpstname1)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=hostname2)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=service_name)))


JSF Validatorのメッセージ

2008-08-03 01:40:46 | JSF
・JSF 1.2(Sun JSF RI)でValidatorのメッセージを日本語化する。
デフォルトでは、メッセージの日本語版が存在しないので、任意の場所に任意のプロパティファイル名(以下の例では、src直下に「ApplicationMessage_ja.properties」という名前で作成し、プロパティファイルの中に、メッセージを登録する。)を作成し、faces-config.xmlに登録する。
ex)...faces-config.xml
<application>
    <message-bundle>ApplicationMessage</message-bundle>
    <locale-config>
    	<default-locale>ja</default-locale>
    	<supported-locale>en</supported-locale>
    </locale-config>
</application>

*message-bundleタグにメッセージ用のプロパティファイル名を登録する。使用する言語により、locale名を付加してくれる。"_ja"等。

・JSF 1.2(Sun JSF RI)でValidatorのメッセージの項目名を指定したい。
タグのlabelプロパティを指定することで、メッセージ表示時に、idではなく、labelの指定した値が表示される。
ex)...あるjsp
<h:inputText id="you" value="#{ageBean.yourAge}" label="あなたの年令">	
           <f:validateLongRange minimum="0"></f:validateLongRange>
</h:inputText>


上記の例では、エラー時に以下のように表示される。
"あなたの年令": 入力値が最小値より小さいです. '0'より大きい値を入力して下さい.