- PR -

WAS5.0でContextからlookupで例外

投稿者投稿内容
TK
会議室デビュー日: 2004/05/11
投稿数: 5
投稿日時: 2004-05-11 16:07
いつも参考にさせて頂いています。
---------------------------------------------------
WAS Express5.02(Site Developer)にてJNDIを使ってDB2に接続を
試みているのですが、ContextからlookupするとConfigurationException
になってしまいます。
WASの環境設定の問題と推測しているのですが、どうしても解決できず
困っています。どなたかご指摘下さい。
ちなみにDriverManagerを使用すると問題なく接続できています。
よろしくお願いします。
---------------------------------------------------

【ロジック】
 java.util.Properties env = new java.util.Properties();
 env.setPropert(Context.INITIAL_CONTEXT_FACTORY,
  "com.ibm.websphere.naming.WsnInitialContextFactory");
 Context ctx = new InitialContext(env);
 DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/xxxdb");

【→例外(lookup時)】
 javax.naming.ConfigurationException: Name space accessor for
  the java:name space has not been set. Possible cause is that the
  user is specifying a java: URL name in a JNDI Context method call
  but is not running in a J2EE client or server environment.
  at javax.naming.InitialContext.getURLOrDefaultInitCtx
  (InitialContext.java:292)

【設定】
・外部JAR追加
  ・cm.jar、websphere.jar、db2java.zip

・web.xml
 <resource-ref id=〜>
  <res-ref-name>jdbc/xxxdb
  <res-type>javax.sql.DataSource
  <res-auth>CONTAINER
  <res-sharing-scope>shareable

 <resource-env-ref id=〜>
  <resource-env-ref-name>jdbc/xxxdb
  <resource-env-ref-type>javax.sql.Datasource

・サーバ
 ・JDBCプロバイダー
   対象    :DB2 JDBC Provider
   有効範囲  :DefaultNode/DefaultNode/server1
   クラスパス :${DB2_JDBC_DRIVER_PATH}/db2java.zip
   インプリメンテーション・クラス名
         :COM.ibm.db2.jdbc.DB2ConnectionPoolDataSource

 ・データソース
   名前  :jdbc/xxxdb
   JNDI名 :jdbc/xxxdb
   コンポーネント管理認証別名:jdbc/xxxdb
   コンテナ管理認証別名:jdbc/xxxdb

 ・ポート
   ORBブートストラップ:2809

 ・DBサーバ
   接続名:jdbc/xxxdb
   データベース:xxxdb
   データベースベンダー型:DB2 Universal Database V8.1
   ユーザID:ユーザID
   パスワード:パスワード
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2004-05-12 06:27
DDに環境エントリを書いていますか?
はやぷ
会議室デビュー日: 2002/12/25
投稿数: 13
投稿日時: 2004-05-12 09:21
こんにちは、以前WAS3.5からのバージョンアップで苦労した所なんですが、
データソース名に
java:comp/env/jdbc/xxxdb

と設定しなければいけなかった様な気がします。
的外れだったらごめんなさい。
はるちょ
会議室デビュー日: 2004/05/12
投稿数: 1
投稿日時: 2004-05-12 09:35
JDBCプロバイダーを"DB2 Universal JDBC Driver"に変更してみたらいかがでしょう?
クラスパスを通して、管理認証エイリアスを登録して、カスタム・プロパティで接続先のDB名を指定するくらいで、手元の環境ではつながりました。
調べていたらこんなサイトがありました。
http://www-6.ibm.com/jp/software/websphere/developer/wv5/express_2/pdf/5.pdf
http://www-6.ibm.com/jp/software/websphere/developer/wv5/tips/index.html#13
TK
会議室デビュー日: 2004/05/11
投稿数: 5
投稿日時: 2004-05-12 13:56
Anthyhimeさん、はやぷさん、はるちょさん、ご意見有難うございます。

【Anthyhimeさん】へ
デプロイメントディスクリプタには、WASのGUIにてweb.xml、ibm-web-bnd.xmi、
ibm-web-ext.xmiにJNDI名を含め設定しています。特に確認する点ありますか。

【はやぷさん】へ
データソース名を変更してみたのですが同様の例外が発生してしまいます。

【はるちょさん】へ
サイトのご紹介有難うございます。DB2 JDBC Providerは推奨されていませんね。
こちらで稼動実績があったので使用していました。参考になります。

ただ、DB2 Universal JDBC Driverに設定を変更してみたのですが、同じ例外が
発生してしまいます。御手元の環境と比較して確認するポイント等ありましたら、
教えて頂けると幸いです。
はやぷ
会議室デビュー日: 2002/12/25
投稿数: 13
投稿日時: 2004-05-12 14:38
そういえば、DB2でデータベースのカタログは作成してありますか?
DB2の構成アドバイザーからCLI,JDBC等での接続テストがあったと思いますがどうでしょう?

(また外れていたらすみません。
TK
会議室デビュー日: 2004/05/11
投稿数: 5
投稿日時: 2004-05-12 15:24
引用:-------------------------------------------------------------------------
そういえば、DB2でデータベースのカタログは作成してありますか?
DB2の構成アドバイザーからCLI,JDBC等での接続テストがあったと思いますがどうでしょう?
------------------------------------------------------------------------------

DB2構成アシスタントからJDBCテスト接続で正常に繋がるので問題ないと思うのですが。
taro
ぬし
会議室デビュー日: 2003/10/20
投稿数: 316
投稿日時: 2004-05-12 17:44
JDBCプロバイダーのクラスパスに以下も設定するといかがでしょうか?

${DB2_JDBC_DRIVER_PATH}/db2jcc_license_cu.jar
${DB2_JDBC_DRIVER_PATH}/db2jcc_license_cisuz.jar

スキルアップ/キャリアアップ(JOB@IT)