直接 Java Naming and Directory Interface (JNDI) 名 (例えば、jdbc/DataSource など) を使用してデータ・ソースをルックアップすることができますが、このネーミング方式は WebSphere Application Server バージョン 6 では推奨されません。
J2CA0294W: リソース jdbc/IOPEntity の直接 JNDI ルックアップで推奨されない使用法。次のデフォルト値が使用されます: [Resource-ref settings]
res-auth: 1 (APPLICATION)
res-isolation-level: 0 (TRANSACTION_NONE)
res-sharing-scope: true (SHAREABLE)
[Other attributes]
これらの属性のうち、最初の属性 res-auth では、実行される認証タイプを規定します。このデフォルト設定が意味しているのは、 アクティベーション・スペックを指定しない場合、または getConnection 呼び出しでユーザー名とパスワードを指定しない場合に、 コンポーネント管理認証別名が使用されるということです。 つまり、コンテナー管理別名が使用されないことを示します。
設定の 2 番目の res-isolation-level は、分離レベルが「デフォルト」に設定されていることを示します。エンタープライズ Bean については、これを Enterprise JavaBeans (EJB) の Bean そのもので設定することができます。接続を取得するサーブレットの場合、この結果は、分離レベル Repeatable_Read になります。これは、かなり制限された分離レベルです。これは、パフォーマンスの低下をもたらす可能性があります。 アプリケーション要求で、制限の少ない分離レベルを使用する場合よりも 多くの行がロックされるからです。
最後の res-sharing-scope は Shareable に設定されていますが、これは共用可能接続が使用されることを意味します。 アプリケーションのなかには、共用可能接続を使用できるものがあります。それ以外の アプリケーションでは、特に、単一の service() メソッド内で複数の接続を取得するサーブレットでは、 共用可能接続の使用は好ましくありません。
これらの設定に付随して起こりうるトラブル等を回避するためには、 直接 JNDI 名の代わりに間接 JNDI 名を使用するようにアプリケーションを変更することが必要です。 また、リソース参照を作成する必要もあります。
デフォルト値とは異なる値を使用するには、アセンブリー・ツールを使用してリソース参照を定義します。リソース参照は、EJB デプロイメント記述子 (ejb-jar.xml)、Web デプロイメント記述子 (web.xml)、または Application Server Toolkit (AST) のアプリケーション・クライアント・デプロイメント記述子 (application-client.xml) のエディターで作成することもできます。 リソース参照を定義した後で、(java:comp/env コンテキストを使用して) JNDI 間接ルックアップを実行することができます。これで、リソース参照で定義されたリソース参照プロパティーの値が使用され、J2CA0122I メッセージは表示されなくなります。 リソース参照の作成に関する情報は、リソース参照の作成または変更 を参照してください。