стек программного обеспечения я использую: tomcat-> весенне> hibernate-> ДБХП -> PostGreSQLпроблемы параллелизма с помощью пружины, ГСБД и Postgres
У меня есть запрос, поиск по некоторым данным с использованием колонки введите «временная метка без часового пояса».
Если приложение протестировано в однопользовательском режиме, проблем нет.
Я использую JMeter для проведения стресс-теста и вижу, что иногда запрос не удался. Это можно воспроизвести только в том случае, если несколько пользователей одновременно обращаются к приложению (более 20 за одну секунду).
ошибка что-то вроде:
org.postgresql.util.PSQLException: ОШИБКА: метка времени вне диапазона: "20120100-09-26 00: 00: 00,000000 -04: 00: 00"
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse (QueryExecutorImpl.java:2062) org.postgresql.core.v3.QueryExecutorImpl.processResults (QueryExecutorImpl.java:1795) org.postgresql.core.v3.QueryExecutorImpl.execute (QueryExecutorImpl.java:257) org.postgresql.jdbc2.AbstractJdbc2Statement.execute (AbstractJdbc2Statement.java:479) org.postgresql.jdbc2.AbstractJ dbc2Statement.executeWithFlags (AbstractJdbc2Statement.java:367) org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery (AbstractJdbc2Statement.java:271) org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery (DelegatingPreparedStatement.java:96) org.apache .commons.dbcp.DelegatingPreparedStatement.executeQuery (DelegatingPreparedStatement.java:96) org.hibernate.jdbc.AbstractBatcher.getResultSet (AbstractBatcher.java:208) org.hibernate.loader.Loader.getResultSet (Loader.java:1808) org.hibernate.loader.Loader.doQuery (Loader.java:697) org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections (Loader.java:259) org.hibernate.loader.Loader.doList (Loader.java:2228) org.hibernate.loader.Loader.lis tIgnoreQueryCache (Loader.java:2125) org.hibernate.loader.Loader.list (Loader.java:2120) org.hibernate.loader.hql.QueryLoader.list (QueryLoader.java:401) org.hibernate.hql .ast.QueryTranslatorImpl.list (QueryTranslatorImpl.java:361) org.hibernate.engine.query.HQLQueryPlan.performList (HQLQueryPlan.java:196) org.hibernate.impl.SessionImpl.list (SessionImpl.java:1148) org.hibernate.impl.QueryImpl.list (QueryImpl.java:102) org.hibernate.ejb.QueryImpl.getResultList (QueryImpl.java:67)
версии, которые я использую являются:
- кот 6.0.26
- пружина 3
- ДБХП 1,4
- -8.4-701.jdbc4.jar PostgreSQL
- PostgreSQL Версия: 8.4.4-0ubuntu10.04
, что это странно вещь. У меня есть тест jmeter, который запрашивает некоторые данные, используя метку времени. Если количество пользователей меньше 20, то проблем нет. Я начинаю увеличивать количество пользователей, и проблема возникает время от времени. –
Тогда проблема может быть в JMeter: она использует недопустимые данные, у базы данных нет другого выбора, кроме как отклонить запрос и выкинуть ошибку. –