Datenbankverbindungen nicht geschlossen nach dem idle-timeout in wildfly Datasource
Ich habe eine Anwendung unter wildfly 8.1
Die Datenbank-verbindungen verwendet in den Anwendungen genommen werden, die aus einer Datenquelle definiert standalone.xml Datei.
Problem: ich weiß nicht warum, aber die Verbindung aus dem Pool geht nie im Leerlauf und veröffentlicht werden. Schließlich wird der Pool gefüllt wird, werden alle aktiven Verbindung und-Anwendung gestartet werfen javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:/bo/datasource
Zur gleichen Zeit, wenn ich einen Blick in die Datenbank, die meisten der Verbindungen sind gezeigt zu werden, im Leerlauf. (Konfigurations-und Ergebnis-Ausgabe unten)
Wurden ich diese für eine Woche jetzt und nicht in der Lage gewesen, um herauszufinden, die Ursache von diesem problem. Ich habe auch überprüft, alle Orte, an denen eine Verbindung erstellt wird und sichergestellt haben, dass Sie danach geschlossen.
Was sind die anderen möglichen Orte, die ich suchen sollte, in? Oder ist das ein bug (oder bekannte Probleme mit Wildfly datasource)?
Wildfly datasource-definition:
<subsystem xmlns="urn:jboss:domain:datasources:2.0">
<datasources>
<datasource jndi-name="java:/db/pool" pool-name="DBSource" enabled="true">
<connection-url>jdbc:postgresql://<IP>:5432/DB</connection-url>
<driver>postgres</driver>
<new-connection-sql>select 1</new-connection-sql>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>100</max-pool-size>
</pool>
<security>
<user-name>user</user-name>
<password>password</password>
</security>
<validation>
<check-valid-connection-sql>select 1</check-valid-connection-sql>
<background-validation>true</background-validation>
<background-validation-millis>60000</background-validation-millis>
</validation>
<timeout>
<idle-timeout-minutes>30</idle-timeout-minutes>
</timeout>
<statement>
<track-statements>true</track-statements>
</statement>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="postgres" module="org.postgres">
<driver-class>org.postgresql.Driver</driver-class>
</driver>
</drivers>
</datasources>
</subsystem>
Wildfly datasource-pool-Informationen:
Befehl:
/subsystem=datasources/data-source=DBSource/statistics=pool:read-resource(recursive=false,proxies=false,include-runtime=true,include-defaults=true)
Antwort:
{
"outcome" => "success",
"result" => {
"ActiveCount" => "98",
"AvailableCount" => "55",
"AverageBlockingTime" => "1",
"AverageCreationTime" => "125",
"AverageGetTime" => "27",
"BlockingFailureCount" => "0",
"CreatedCount" => "98",
"DestroyedCount" => "0",
"IdleCount" => "3",
"InUseCount" => "95",
"MaxCreationTime" => "1382",
"MaxGetTime" => "1382",
"MaxUsedCount" => "97",
"MaxWaitCount" => "0",
"MaxWaitTime" => "1",
"TimedOut" => "0",
"TotalBlockingTime" => "71",
"TotalCreationTime" => "12340",
"TotalGetTime" => "12696",
"WaitCount" => "0"
},
"response-headers" => {"process-state" => "reload-required"}
}
PostgreSQL Query Status:
Befehl:
SELECT datname, pid, usename, waiting, state, (now()-query_start) AS since, (now() - state_change) AS since2, (now() - backend_start) as since3, (now() - xact_start) as since4, query FROM pg_stat_activity ORDER BY datname, state, usename, waiting, query, since, pid;
Antwort:
datname | pid | usename | waiting | state | since | since2 | since3 | since4 |
---------------+------+------------+---------+---------------------+-----------------+------------------+-----------------+-----------------+-----------------------------------------------------------------------------------------------------------------------------------
BOIEDUDBV13R1 | 4871 | blueoptima | f | active | 00:00:00.176188 | 00:00:00.176179 | 01:37:21.045722 | 00:02:17.212346 | Query-1
BOIEDUDBV13R1 | 4568 | blueoptima | f | active | 00:18:33.035399 | 00:18:33.035395 | 04:25:11.916388 | 00:18:33.473355 | Query-2
BOIEDUDBV13R1 | 4564 | blueoptima | f | active | 00:10:10.599237 | 00:10:10.599232 | 04:25:11.943752 | 00:10:10.915048 | Query-3
BOIEDUDBV13R1 | 4498 | blueoptima | f | active | 00:03:25.861284 | 00:03:25.86128 | 05:09:51.735583 | 00:03:25.861823 | Query-4
BOIEDUDBV13R1 | 4535 | blueoptima | f | active | 00:01:16.612227 | 00:01:16.612222 | 04:34:01.668772 | 00:01:16.614149 | Query-5
BOIEDUDBV13R1 | 4534 | blueoptima | f | idle | 00:00:04.72429 | 00:00:04.683504 | 04:35:21.78966 | | COMMIT
BOIEDUDBV13R1 | 4519 | blueoptima | f | idle | 00:00:12.950041 | 00:00:12.913566 | 04:50:53.698877 | | COMMIT
BOIEDUDBV13R1 | 4438 | blueoptima | f | idle | 00:00:25.82585 | 00:00:25.81036 | 05:34:41.528853 | | COMMIT
BOIEDUDBV13R1 | 4425 | blueoptima | f | idle | 00:09:12.999537 | 00:09:12.9731 | 05:41:51.806148 | | COMMIT
BOIEDUDBV13R1 | 4488 | blueoptima | f | idle | 00:56:04.709316 | 00:56:04.686439 | 05:14:45.445165 | | COMMIT
BOIEDUDBV13R1 | 4501 | blueoptima | f | idle | 00:57:00.615919 | 00:57:00.61589 | 05:06:51.861328 | | COMMIT
BOIEDUDBV13R1 | 4466 | blueoptima | f | idle | 04:11:54.8669 | 04:11:54.516947 | 05:25:03.079741 | | COMMIT
BOIEDUDBV13R1 | 4419 | blueoptima | f | idle | 04:51:03.786294 | 04:51:03.749462 | 05:41:51.814577 | | COMMIT
BOIEDUDBV13R1 | 4340 | blueoptima | f | idle | 04:52:19.772533 | 04:52:19.720537 | 06:31:51.758733 | | COMMIT
BOIEDUDBV13R1 | 4502 | blueoptima | f | idle | 04:54:49.892553 | 04:54:49.85151 | 05:06:51.439101 | | COMMIT
BOIEDUDBV13R1 | 4406 | blueoptima | f | idle | 05:09:20.675009 | 05:09:20.655038 | 06:00:50.160594 | | COMMIT
BOIEDUDBV13R1 | 4489 | blueoptima | f | idle | 05:09:54.785706 | 05:09:54.751723 | 05:14:45.358108 | | COMMIT
BOIEDUDBV13R1 | 4449 | blueoptima | f | idle | 05:16:58.881682 | 05:16:58.88074 | 05:26:50.728973 | | COMMIT
BOIEDUDBV13R1 | 4450 | blueoptima | f | idle | 05:17:23.727614 | 05:17:23.726158 | 05:25:55.116657 | | COMMIT
BOIEDUDBV13R1 | 4465 | blueoptima | f | idle | 05:22:32.475769 | 05:22:32.470301 | 05:25:03.230671 | | COMMIT
BOIEDUDBV13R1 | 4421 | blueoptima | f | idle | 05:25:03.596961 | 05:25:03.596942 | 05:41:51.81487 | | COMMIT
BOIEDUDBV13R1 | 4451 | blueoptima | f | idle | 05:25:29.373092 | 05:25:29.364467 | 05:25:52.433709 | | COMMIT
BOIEDUDBV13R1 | 4448 | blueoptima | f | idle | 05:25:58.729039 | 05:25:58.724453 | 05:26:50.898318 | | COMMIT
BOIEDUDBV13R1 | 4423 | blueoptima | f | idle | 05:26:13.2656 | 05:26:13.263502 | 05:41:51.814528 | | COMMIT
BOIEDUDBV13R1 | 4426 | blueoptima | f | idle | 05:26:58.773981 | 05:26:58.765174 | 05:41:51.179333 | | COMMIT
BOIEDUDBV13R1 | 4415 | blueoptima | f | idle | 05:29:07.123798 | 05:29:07.115682 | 05:47:36.740939 | | COMMIT
BOIEDUDBV13R1 | 4394 | blueoptima | f | idle | 05:42:02.02632 | 05:42:01.994772 | 06:05:54.290575 | | COMMIT
BOIEDUDBV13R1 | 4416 | blueoptima | f | idle | 05:45:52.799303 | 05:45:52.793004 | 05:47:36.701474 | | COMMIT
BOIEDUDBV13R1 | 4408 | blueoptima | f | idle | 05:48:02.635413 | 05:48:02.630767 | 05:54:49.133404 | | COMMIT
BOIEDUDBV13R1 | 4410 | blueoptima | f | idle | 05:49:09.631417 | 05:49:09.624039 | 05:49:47.440347 | | COMMIT
BOIEDUDBV13R1 | 4392 | blueoptima | f | idle | 05:49:45.136111 | 05:49:45.124627 | 06:05:54.52666 | | COMMIT
BOIEDUDBV13R1 | 4411 | blueoptima | f | idle | 05:49:45.208436 | 05:49:45.207393 | 05:49:46.326729 | | COMMIT
BOIEDUDBV13R1 | 4399 | blueoptima | f | idle | 05:50:19.476105 | 05:50:19.465746 | 06:04:53.509647 | | COMMIT
BOIEDUDBV13R1 | 4383 | blueoptima | f | idle | 05:54:04.625364 | 05:54:04.56991 | 06:09:43.004602 | | COMMIT
BOIEDUDBV13R1 | 4382 | blueoptima | f | idle | 05:58:29.615594 | 05:58:29.608542 | 06:09:43.496538 | | COMMIT
BOIEDUDBV13R1 | 4404 | blueoptima | f | idle | 06:00:48.381014 | 06:00:48.379175 | 06:00:50.352202 | | COMMIT
BOIEDUDBV13R1 | 4393 | blueoptima | f | idle | 06:01:49.740445 | 06:01:49.733278 | 06:05:54.468595 | | COMMIT
BOIEDUDBV13R1 | 4379 | blueoptima | f | idle | 06:02:12.00668 | 06:02:12.004878 | 06:11:37.044413 | | COMMIT
BOIEDUDBV13R1 | 4396 | blueoptima | f | idle | 06:02:25.216415 | 06:02:25.202565 | 06:05:10.411017 | | COMMIT
BOIEDUDBV13R1 | 4390 | blueoptima | f | idle | 06:03:48.651868 | 06:03:48.647211 | 06:06:05.443 | | COMMIT
BOIEDUDBV13R1 | 4375 | blueoptima | f | idle | 06:04:51.760968 | 06:04:51.732155 | 06:11:37.545217 | | COMMIT
BOIEDUDBV13R1 | 4353 | blueoptima | f | idle | 06:04:53.302492 | 06:04:53.252345 | 06:25:54.61252 | | COMMIT
BOIEDUDBV13R1 | 4372 | blueoptima | f | idle | 06:05:08.158286 | 06:05:08.137553 | 06:11:49.797186 | | COMMIT
BOIEDUDBV13R1 | 4397 | blueoptima | f | idle | 06:05:08.578854 | 06:05:08.544941 | 06:05:10.298185 | | COMMIT
BOIEDUDBV13R1 | 4377 | blueoptima | f | idle | 06:08:34.443118 | 06:08:34.435299 | 06:11:37.432426 | | COMMIT
BOIEDUDBV13R1 | 4378 | blueoptima | f | idle | 06:11:35.00451 | 06:11:34.946687 | 06:11:37.293523 | | COMMIT
BOIEDUDBV13R1 | 4354 | blueoptima | f | idle | 06:12:01.816625 | 06:12:01.812458 | 06:25:50.247498 | | COMMIT
BOIEDUDBV13R1 | 4344 | blueoptima | f | idle | 06:21:56.439509 | 06:21:56.438739 | 06:31:30.8968 | | COMMIT
BOIEDUDBV13R1 | 4350 | blueoptima | f | idle | 06:22:20.125071 | 06:22:20.11839 | 06:29:37.465565 | | COMMIT
BOIEDUDBV13R1 | 4343 | blueoptima | f | idle | 06:25:59.198819 | 06:25:59.197962 | 06:31:30.901491 | | COMMIT
BOIEDUDBV13R1 | 4351 | blueoptima | f | idle | 06:27:23.950853 | 06:27:23.950081 | 06:29:37.456841 | | COMMIT
BOIEDUDBV13R1 | 4348 | blueoptima | f | idle | 06:27:36.13192 | 06:27:36.131014 | 06:29:37.513979 | | COMMIT
BOIEDUDBV13R1 | 4349 | blueoptima | f | idle | 06:27:42.332901 | 06:27:42.331326 | 06:29:37.491039 | | COMMIT
BOIEDUDBV13R1 | 4352 | blueoptima | f | idle | 06:27:54.031819 | 06:27:54.02966 | 06:29:37.265193 | | COMMIT
BOIEDUDBV13R1 | 4341 | blueoptima | f | idle | 06:28:14.444963 | 06:28:14.444105 | 06:31:31.858728 | | COMMIT
BOIEDUDBV13R1 | 4337 | blueoptima | f | idle | 06:29:20.216685 | 06:29:20.215749 | 06:33:13.450564 | | COMMIT
BOIEDUDBV13R1 | 4346 | blueoptima | f | idle | 06:29:28.524638 | 06:29:28.523906 | 06:30:51.904609 | | COMMIT
BOIEDUDBV13R1 | 4342 | blueoptima | f | idle | 06:29:58.433751 | 06:29:58.432939 | 06:31:31.204896 | | COMMIT
BOIEDUDBV13R1 | 4345 | blueoptima | f | idle | 06:30:28.819691 | 06:30:28.818747 | 06:31:26.849458 | | COMMIT
BOIEDUDBV13R1 | 4355 | blueoptima | f | idle | 06:07:48.953452 | 06:07:48.947655 | 06:25:50.216644 | | INSERT
BOIEDUDBV13R1 | 4409 | blueoptima | f | idle | 05:49:25.452863 | 05:49:25.435483 | 05:49:49.502884 | | INSERT-1
BOIEDUDBV13R1 | 4424 | blueoptima | f | idle | 05:35:44.413808 | 05:35:44.381036 | 05:41:51.814529 | | INSERT-2
BOIEDUDBV13R1 | 4398 | blueoptima | f | idle | 05:36:00.621836 | 05:36:00.598047 | 06:04:53.758915 | | INSERT-3
BOIEDUDBV13R1 | 4417 | blueoptima | f | idle | 05:46:18.096148 | 05:46:18.07272 | 05:47:36.576677 | | INSERT-4
BOIEDUDBV13R1 | 4395 | blueoptima | f | idle | 05:50:44.112353 | 05:50:44.074542 | 06:05:10.557776 | | INSERT-5
BOIEDUDBV13R1 | 4388 | blueoptima | f | idle | 06:05:57.843694 | 06:05:57.832724 | 06:06:06.177483 | | INSERT-6
BOIEDUDBV13R1 | 4339 | blueoptima | f | idle | 06:17:57.460712 | 06:17:57.459716 | 06:33:12.657432 | | INSERT-7
BOIEDUDBV13R1 | 4487 | blueoptima | f | idle | 00:00:15.552081 | 00:00:15.552035 | 05:15:49.047066 | | select 1
BOIEDUDBV13R1 | 4565 | blueoptima | f | idle | 00:00:15.553093 | 00:00:15.553037 | 04:25:11.942656 | | select 1
BOIEDUDBV13R1 | 4420 | blueoptima | f | idle | 00:00:15.554958 | 00:00:15.55493 | 05:41:51.814789 | | select 1
BOIEDUDBV13R1 | 4402 | blueoptima | f | idle | 02:16:15.871078 | 02:16:15.871048 | 06:00:52.663433 | | select 1
BOIEDUDBV13R1 | 4384 | blueoptima | f | idle | 05:38:17.430042 | 05:38:17.43002 | 06:09:42.969186 | | select 1
BOIEDUDBV13R1 | 4412 | blueoptima | f | idle | 05:46:47.263716 | 05:46:47.263518 | 05:49:45.575215 | | SELECT DISTINCT column FROM table
BOIEDUDBV13R1 | 4414 | blueoptima | f | idle | 05:49:41.773012 | 05:49:41.772712 | 05:49:45.435716 | | SELECT DISTINCT column FROM table
BOIEDUDBV13R1 | 4405 | blueoptima | f | idle | 05:51:32.2168 | 05:51:32.216636 | 06:00:50.160309 | | SELECT DISTINCT column FROM table
BOIEDUDBV13R1 | 4400 | blueoptima | f | idle | 05:52:44.966233 | 05:52:44.965626 | 06:02:28.601245 | | SELECT DISTINCT column FROM table
BOIEDUDBV13R1 | 4401 | blueoptima | f | idle | 06:01:07.430069 | 06:01:07.429643 | 06:02:28.599077 | | SELECT DISTINCT column FROM table
BOIEDUDBV13R1 | 4389 | blueoptima | f | idle | 06:05:52.187161 | 06:05:52.187081 | 06:06:05.801733 | | SELECT DISTINCT column FROM table
BOIEDUDBV13R1 | 4376 | blueoptima | f | idle | 06:06:04.447668 | 06:06:04.447527 | 06:11:37.448819 | | SELECT DISTINCT column FROM table
BOIEDUDBV13R1 | 4422 | blueoptima | f | idle | 04:48:59.446162 | 04:48:59.446103 | 05:41:51.814892 | | SELECT
BOIEDUDBV13R1 | 4385 | blueoptima | f | idle | 05:28:13.718473 | 05:28:13.643871 | 06:09:42.799857 | | SELECT
BOIEDUDBV13R1 | 4536 | blueoptima | f | idle | 04:29:42.4528 | 04:29:42.429103 | 04:34:01.664679 | | SELECT
BOIEDUDBV13R1 | 4381 | blueoptima | f | idle | 06:05:51.131506 | 06:05:51.131429 | 06:11:35.758195 | | SELECT
BOIEDUDBV13R1 | 4338 | blueoptima | f | idle | 06:28:31.658157 | 06:28:31.658105 | 06:33:12.953437 | | SELECT
BOIEDUDBV13R1 | 4566 | blueoptima | f | idle | 00:00:25.8479 | 00:00:25.835864 | 04:25:11.94033 | | UPDATE-1
BOIEDUDBV13R1 | 4391 | blueoptima | f | idle | 03:52:25.755736 | 03:52:25.73571 | 06:06:05.300207 | | UPDATE-2
BOIEDUDBV13R1 | 4512 | blueoptima | f | idle | 04:56:03.247543 | 04:56:03.232923 | 04:56:44.188961 | | UPDATE-3
BOIEDUDBV13R1 | 4511 | blueoptima | f | idle | 04:56:34.70146 | 04:56:34.691303 | 04:57:00.191291 | | UPDATE-4
BOIEDUDBV13R1 | 4347 | blueoptima | f | idle | 05:32:30.754975 | 05:32:30.732481 | 06:29:46.312612 | | UPDATE-5
BOIEDUDBV13R1 | 4439 | blueoptima | f | idle | 05:32:55.742867 | 05:32:55.741539 | 05:34:41.519884 | | UPDATE-6
BOIEDUDBV13R1 | 4407 | blueoptima | f | idle | 05:37:36.461115 | 05:37:36.451762 | 05:54:49.133383 | | UPDATE-7
BOIEDUDBV13R1 | 4371 | blueoptima | f | idle | 05:53:02.986092 | 05:53:02.830753 | 06:11:55.240785 | | UPDATE-8
BOIEDUDBV13R1 | 4403 | blueoptima | f | idle | 05:59:57.870442 | 05:59:57.865218 | 06:00:52.646267 | | UPDATE-9
BOIEDUDBV13R1 | 4356 | blueoptima | f | idle | 06:09:18.560294 | 06:09:18.559498 | 06:25:50.216061 | | UPDATE-10
BOIEDUDBV13R1 | 4380 | blueoptima | f | idle | 06:09:38.951985 | 06:09:38.924395 | 06:11:36.494018 | | UPDATE-11
BOIEDUDBV13R1 | 4863 | postgres | f | idle | 01:21:12.135105 | 01:21:12.052383 | 02:01:39.736693 | | select a
| | | | | | | | | ;
BOIEDUDBV13R1 | 4988 | postgres | f | idle | 00:11:16.272964 | 00:11:16.145621 | 00:13:26.234094 | | select b
| | | | | | | | |
BOIEDUDBV13R1 | 4437 | blueoptima | f | idle in transaction | 05:29:11.490837 | 05:29:11.490825 | 05:34:41.52984 | 05:29:11.490949 | select 1
BOIEDUDBV13R1 | 4413 | blueoptima | f | idle in transaction | 05:36:47.417173 | 05:36:47.417148 | 05:49:45.5742 | 05:36:47.417257 | select 1
BOIEDUDBV13R1 | 4567 | blueoptima | f | idle in transaction | 00:49:38.844059 | 00:49:38.844027 | 04:25:11.936358 | 00:49:40.950629 | Query
(100 rows)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es stellt sich heraus, dass Hibernate hielt Verbindung und nicht loslassen Sie um den Pool. Unabhängig von der Tatsache, dass wir mit thread-lokalen Kontext. Aber nach Zugabe von
<property name="hibernate.connection.release_mode">after_transaction</property>
auf der hibernate-config. Das problem habe gelöst.PS: ich immer noch nicht verstehen, warum wir brauchen, um zu definieren, ist dies explizit und warum das auto release_mode würde nicht lassen Sie die Verbindung, sobald die session geschlossen wird.
Wildfly 10.0.0.Final
. Das Problem scheint behoben wurden inWildfly 10.1.0.Final