Network Deployment 構成での Common Base Event ブラウザーのテスト中にエラーが発生する原因として、以下のような複数の理由が考えられます。
以下に示すのは、Network Deployment 構成で Common Base Event ブラウザーを初めて検証するときに表示される可能性のあるメッセージの例です。
WebSphere® Application Server のサーバント・ログに表示される可能性があるメッセージの例を以下に示します。
javax.naming.NameNotFoundException: Context: mkcell/nodes/mkdmnode/servers/dmgr, name: ejb/com/ibm/events/access/EventAccess: First component in name com/ibm/events/access/EventAccess not found. Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0
Network Deployment 構成で CEI を構成する場合、イベント・データ・ストアには完全修飾 JNDI 名が必要です。この問題を解決するには、EventAccess EJB の完全修飾 JNDI 名を指定します。
Network Deployment 構成で Common Base Event ブラウザーを初めて検証するときに、以下のエラー・メッセージも表示される可能性があります。
error message: CEIDS0035E The implementation class that supports the configured relational database system cannot be loaded. Implementation class name: com.ibm.events.datastore.impl.Db2UniveralDriverImpl Relational database name: DB2 Database version: DSN08015 com.ibm.events.datastore.impl.DatabaseSpecificsFactory handleCreateException(String, String, String, Exception)
これらのエラー・メッセージは、クラスのロード時に問題が発生したことを示しますが、原因は通常、データベースへのアクセスの問題です。場合によっては、問題の診断に役立つ -204 のような DB2® 戻りコードと共にいくつかのエラー・メッセージが表示されることもありますが、CEIDS0035E メッセージしか表示されない場合もあります。
解決策 1
FFDC ファイル内で -551 エラーを見つけた場合は、DB2 で適切な GRANT ステートメントを発行することによって、報告されている許可の失敗を訂正してください。
例えば、CEI データベースに作成された CEI テーブル、ビュー、および索引のすべてに対して、GRANT ALL ON TABLE MKCELL. TO MKDBU を発行してから、WebSphere Application Server を再始動することができます。それでも、Common Base Event ブラウザーでエラー・メッセージ CWLCB0020E が表示されたり、サーバント・ログにエラー・メッセージ CEIDCS0035E が記録されたりする場合もあります。
以下の例は、FFDC ログに報告された別の DB2 エラーです。同一のエラーがサーバント・メッセージ・ログに報告されます。
Exception = com.ibm.db2.jcc.t2zos.y Source = com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement probeid = 1584 Stack Dump = com.ibm.db2.jcc.t2zos.y: [IBM/DB2][T2zos/2.9.32]T2zosPreparedStatement.readPrepareDescribeOutput _:nativePrepareInto:1377:DB2 engine SQL error, SQLCODE = -204, SQLSTATE = 42704, error tokens = MKDBU.CEI_T_Common Base Event_MAP
-204 コードは、リソース割り振り障害です。つまり、MKDBU.CEI_T_Common Base Event_MAP が見つかりませんでした。MKCELL というスキーマ名ですべての CEI テーブルを作成しましたが、この障害は、Common Base Event ブラウザーが MKDBU.CEI_T_Common Base Event_MAP にアクセスしようとしていることを示しています。 このユーザー ID (MKDBU) は、event および eventcat データ・ソースで使用されている J2C 認証別名のユーザー ID です。
問題は、CEI コンポーネントがデータ・ソースに関連付けられている別名を調べ、その別名を完全修飾 SQL を発行するために使用することです。これは、データ・ソースの currentSchema カスタム・プロパティーで設定したすべての値が無視されることを意味します。残念ながら現時点では、DB2 内のすべての CEI オブジェクトのスキーマが event および eventcat データ・ソースで使用される J2C 認証別名のユーザー ID と等しくなるように、CEI を構成する必要があります。
この問題を解決するには、2 つの方法があります。
解決策 2a
CEI データベースを除去してから再作成します。 その後、CEI DDL を再実行 (メタデータの挿入およびカタログのシードも行われる) しますが、すべての CREATE ステートメントに J2C 認証別名ユーザー ID と等しいスキーマ名を指定してください。
解決策 2b
CEI テーブルを除去して再作成する方法を使用しない場合は、次のステップを実行します。
この問題が発生したのは、J2C 認証別名ユーザー ID と一致するスキーマを持つテーブルを DB2 内に作成したくないという理由からであるため、2a ではなく 2b の解決策を実行するほうが利点があります。CEI テーブルには、使用したいスキーマが既に存在しており、したがって、スキーマを変更しても意味がありません。データ・ソースで currentSchema プロパティーを使用できるようにする CEI に対するフィックスが提供されている場合は、データ・ソースを容易に切り替え、元の J2C 認証別名を使用する設定に戻すことができます。
もちろん、解決策 2b を実行した場合でも、CEI スキーマと等しい J2C 認証別名を一時的に使用することになります。CEI のフィックスがあり、元の J2C 認証別名 (スキーマとは異なる J2C 認証別名) に切り替えて戻す場合は、その別名と、作成した J2C 認証別名の RACF ユーザー ID を削除して、一時的に CEI スキーマと一致させることができます。
サーバント・ログに、以下のエラーが表示される場合もあります。
java.rmi.RemoteException: CORBA NO_MEMORY exception
この問題は、WebSphere ESB をインストールしたばかりのときにはほとんど発生しませんが、「イベントの最大数 (Maximum number of events)」フィールドで大きな数が指定されている状態でイベントが発生すると、メモリーの問題が生じる可能性があることを覚えておくと役立ちます。
この問題は、次の 2 つの方法のいずれかで解決できます。