Я все,
Я использую jboss 5.1.0 jdk 1.6.
Когда в моем WebAPP не работают пользователи, я выполняю следующий sql для просмотра сеансов в моей базе данных Oracle:
SELECT A.INST_ID,A.USERNAME,A.STATUS,A.SCHEMANAME,A.MACHINE,A.PROGRAM,
TO_CHAR((SYSDATE -((1/86400)*LAST_CALL_ET)),'YYYY-MM-DD HH24:MI:SS') LAST_CALL,
TO_CHAR(A.LOGON_TIME,'YYYY-MM-DD HH24:MI:SS') LOGON_TIME,
A.SID,A.SERIAL#,
A.FAILOVER_TYPE,A.FAILED_OVER,
A.OSUSER,A.TERMINAL,A.TYPE,A.MODULE,A.SERVER,A.LOCKWAIT,A.RESOURCE_CONSUMER_GROUP
FROM GV$SESSION A
WHERE A.SCHEMANAME IN ('USER_DB')
ORDER BY USERNAME,MACHINE,LAST_CALL ASC
и результат:
1 USR_DB INACTIVE USR_DB machine_name JDBC Thin Client 2012-02-20 11:05:16 2012-02-20 11:04:46 24 5001 NONE NO root unknown USER JDBC Thin Client DEDICATED OTHER_GROUPS
2 USR_DB ACTIVE USR_DB machine2_name SQL Developer 2012-02-21 09:05:13 2012-02-21 09:03:23 31 3997 NONE NO clien2 unknown USER SQL Developer DEDICATED OTHER_GROUPS
Первый результат - неактивный сеанс моего WebAPP, второй - мой активный сеанс SQL Developer.
Мой вопрос: Как я могу удалить или очистить из GV $ SESSION неактивные сеансы ?. Вот мой оракул-ds.xml:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>/MyDS</jndi-name>
<connection-url>jdbc:oracle:thin:@//myhost:1521/xe</connection-url>
<driver-class>oracle.jdbc.OracleDriver</driver-class>
<user-name>USR_DB</user-name>
<password>password</password>
<min-pool-size>1</min-pool-size>
<max-pool-size>20</max-pool-size>
<idle-timeout-minutes>5</idle-timeout-minutes>
<check-valid-connection-sql>SELECT 1 FROM DUAL</check-valid-connection-sql>
<background-validation-millis>400000</background-validation-millis>
<valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
Существует специальный параметр конфигурации, чтобы принудительно не отображать или удалять неактивные соединения GV $ SESSION?
В моем приложении я уверен, что я возвращаю соединения в пул.
Заранее спасибо.