|
|
|
PostgreSQL JDBC и большие таблицы (setFetchSize), странная ошибка
|
|||
|---|---|---|---|
|
#18+
Делаю вроде все по доке, что бы ResultSet работал через курсор. Таким вот образом: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 50 строк возвращаются нормально, на 51 строке ошибка: Exception in thread "main" org.postgresql.util.PSQLException: ERROR: portal "C_2" does not exist at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2182) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1911) at org.postgresql.core.v3.QueryExecutorImpl.fetch(QueryExecutorImpl.java:2113) at org.postgresql.jdbc2.AbstractJdbc2ResultSet.next(AbstractJdbc2ResultSet.java:1965) Что это такое и как от этого избавится? Поиском по google вопросы о такой же проблеме нашел, но вменяемого ответа не наел ((( Версии: 1) OS RedHat на Amazon EC2 (версия думаю не важна). 2) openjdk version "1.8.0_65" OpenJDK Runtime Environment (build 1.8.0_65-b17) OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode) 3) postgresql-9.4-1205.jdbc42.jar 4) SELECT version(); PostgreSQL 9.2.14 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.3 20140 911 (Red Hat 4.8.3-9), 64-bit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2015, 11:37 |
|
||
|
PostgreSQL JDBC и большие таблицы (setFetchSize), странная ошибка
|
|||
|---|---|---|---|
|
#18+
Сделал downgrade jdbc драйвера до postgresql-9.2-1004.jdbc41.jar (что бы совпадало с версией сервера), те же ...., только в профиль: Exception in thread "main" org.postgresql.util.PSQLException: ERROR: portal "C_3" does not exist at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1886) at org.postgresql.core.v3.QueryExecutorImpl.fetch(QueryExecutorImpl.java:2089) at org.postgresql.jdbc2.AbstractJdbc2ResultSet.next(AbstractJdbc2ResultSet.java:1916) Кто нибудь в PostgreSQL с большими таблицами работает? (setFetchSize) ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2015, 12:38 |
|
||
|
PostgreSQL JDBC и большие таблицы (setFetchSize), странная ошибка
|
|||
|---|---|---|---|
|
#18+
Все, причину ошибки нашел. Внутри цикла фетча из курсора НЕЛЬЗЯ использовать Commit. При commit курсоры на стороне сервера по умолчанию закрываются. Обидно, досадно... но по крайне мере понятно. В теме http://www.postgresql.org/message-id/44B029D6.9000807@opencloud.com]http://www.postgresql.org/message-id/44B029D6.9000807@opencloud.com Говорит, что нужно использовать ResultSet.HOLD_CURSORS_OVER_COMMIT, но в этом случае у меня похоже курсоры вырубаются нафиг и я получаю "Out of heap memory". Дальше не разбирался, просто вынес commit за пределы цикла. Потом, наверное, просто буду читать и писать в БД через разные Connection. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2015, 13:10 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39120399&tid=2124599]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
169ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 488ms |

| 0 / 0 |
