ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Java EE運用ガイド

D.1.4 SQLログ機能

CMP Entity Beanを使用する場合、EJBコンテナはEntity Beanの検索、更新などを行う時にデータベースにSQL文を発行します。アプリケーションの調査でEJBコンテナが発行しているSQL文を確認するためにSQLログ機能を使用できます。SQLログを使用すると、EJBコンテナはSQL文を発行する時に、またはSQL文の発行時に例外が発生するときに、SQL文と動的パラメタをサーバーログに出力します。

SQLログ機能は、以下のlog-serviceプロパティにより設定します。

プロパティ名

値(太字:省略値)

説明

javax.enterprise.resource.jdo.sqlstore.sql

FINE

SQL文をサーバーログに出力します。

CONFIG

SQL文の発行時に例外が発生する場合だけSQL文をサーバーログに出力します。

INFO

SQL文をサーバーログに出力しません。

上記プロパティをasadminコマンドのsetサブコマンドにより${clusterName_instanceName_configName}.log-service.module-log-levels.propertyに指定してください。

SQLログを有効にする設定例

> asadmin set IJServer001.log-service.module-log-levels.property.javax\.enterprise\.resource\.jdo\.sqlstore\.sql=FINE


> asadmin set IJServer001.log-service.module-log-levels.property.javax\\.enterprise\\.resource\\.jdo\\.sqlstore\\.sql=FINE

SQLログ出力

[11/02/2008 20:47:04.131 +0900] ISJEE: INFO: ISJEE_JDO76325: SQL statement<select t0."NAME" from "A" t0 where t0."NAME" = ?> with input values:java.lang.String:Tarou: ThreadID=19,ThreadName=p
[11/02/2008 20:47:05.296 +0900] ISJEE: INFO: ISJEE_JDO76325: SQL statement<insert into "B"("NAME") values ( ?)> with input values:java.lang.String:Jirou; flush batch.: ThreadID=19,ThreadName=p
[11/02/2008 20:47:05.336 +0900] ISJEE: ERROR: ISJEE_EJB5071: Some remote or transactional roll back exception occurred: ThreadID=61,ThreadName=p
com.sun.jdo.api.persistence.support.JDODataStoreException: JDO76400: Got a JDBC SQLException while executing the SQL statement:
JDO76325: SQL statement<insert into "AB"("A_NAME", "B_NAME") values ( ?, ?)> with input values:java.lang.String:Tarou, java.lang.String:Jirou.
Please examine the SQLException for more information.
NestedException: java.sql.SQLException: ORA-02291: integrity constraint (EJB.FK_B) violated - parent key not found

注意

SQLログ機能を有効にするとEJBタイマーサービスの永続化機能により発行されるSQL文もサーバーログに出力されます。
アプリケーション配備・配備解除時のテーブル自動生成・削除に発行されるSQL文は、SQLログ機能では出力されません。このSQL文を確認したい場合は、各種データベースのJDBCドライバのログから確認してください。JDBCドライバのログ確認方法については、各種データベースのマニュアルを確認してください。