|
|
|
guava UncheckedExecutionException
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Пока один поток закрывает сессию, другому потоку она понадобилась, если я все правильно понимаю. И как такое решается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2016, 11:30 |
|
||
|
guava UncheckedExecutionException
|
|||
|---|---|---|---|
|
#18+
writeUserDownloadLater не вижу в коде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2016, 11:38 |
|
||
|
guava UncheckedExecutionException
|
|||
|---|---|---|---|
|
#18+
Что-то я туда не догадался загнянуть, а там тоже работа с кэшем: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Т.е. в removal listener был запрос к кэшу как раз, ну и я кажется понял суть проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2016, 12:00 |
|
||
|
guava UncheckedExecutionException
|
|||
|---|---|---|---|
|
#18+
Т.е. тут NullPointerException вылетело, потому что session уже деинициализирована? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2016, 12:02 |
|
||
|
guava UncheckedExecutionException
|
|||
|---|---|---|---|
|
#18+
Исключение всегда одно и то же? JDBC Connection случайно между потоками не шарится? Какая версия драйвера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2016, 12:10 |
|
||
|
guava UncheckedExecutionException
|
|||
|---|---|---|---|
|
#18+
HettТ.е. тут NullPointerException вылетело, потому что session уже деинициализирована? NPE вылетел в ResultSet драйвера MySQL. Где-то косяк работы с JDBC. Session к этому прямого отношения не имеет. Как создаются и используются downloadToUserFileStmt и его Connection из указанного кода не видно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2016, 12:12 |
|
||
|
guava UncheckedExecutionException
|
|||
|---|---|---|---|
|
#18+
Подключение к БД одно, downloadToUserFileStmt - создается после коннекта к БД. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Т.е. надо пулл коннектов использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2016, 13:13 |
|
||
|
guava UncheckedExecutionException
|
|||
|---|---|---|---|
|
#18+
HettТ.е. надо пулл коннектов использовать? Нужно использовать 1 JDBC объект на каждый поток и не шарить их между потоками. А пул это у вас будет или что-то ещё, это уже другой вопрос. А тут, не понятно где соединение, не понятно откуда Statement, не ясно где оно всё закрывается. Бедлам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2016, 13:24 |
|
||
|
guava UncheckedExecutionException
|
|||
|---|---|---|---|
|
#18+
В PHP таких проблем не было (всегда жеж один поток), поэтому даже не подумал о работе одного соединения в многопоточной среде. Сессии тысячи и на каждую держать коннект не получится. Открывать на каждую запись тоже подумалось не лучшим вариантом. Поизучал вопрос, сделал так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Единственное, что смущает, что Statement создается каждый раз, но если я правильно понял из первого беглого прочтения доки, то он все таки кэшируется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2016, 13:49 |
|
||
|
guava UncheckedExecutionException
|
|||
|---|---|---|---|
|
#18+
Тем не менее с драйвером MongoDB таких проблем вроде не замечено, один коннект на все потоки работает без нареканий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2016, 13:51 |
|
||
|
guava UncheckedExecutionException
|
|||
|---|---|---|---|
|
#18+
HettТем не менее с драйвером MongoDB таких проблем вроде не замечено, один коннект на все потоки работает без нареканий. Весь софт работает одинаково. Это отличное предположение, на которое стоит опираться при кодировании. Плевать на JDBC спеку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2016, 14:04 |
|
||
|
guava UncheckedExecutionException
|
|||
|---|---|---|---|
|
#18+
В доке говорят, что можно шарить между потоками: авторThe MongoClient class is designed to be thread safe and shared among threads. Typically you create only 1 instance for a given database cluster and use it across your application. http://mongodb.github.io/mongo-java-driver/2.13/getting-started/quick-tour/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2016, 14:16 |
|
||
|
guava UncheckedExecutionException
|
|||
|---|---|---|---|
|
#18+
Hett, Работать с MySQL через JDBC и руководствоваться при этом докой по MongoDB это пять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2016, 14:29 |
|
||
|
guava UncheckedExecutionException
|
|||
|---|---|---|---|
|
#18+
Я не изучал доки досконально. Конкретно по работе с потоками стал разбирать только когда с проблемой столкнулся. Про монгу отписался по мере прочтения доки, так как заподозрил что и там подобная проблема есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2016, 15:09 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39371966&tid=2123355]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 407ms |

| 0 / 0 |
