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