|
|
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
вот такие ошибки в рандомное время возникают в web приложении (причем не у меня, а вижу в логах при работе пользователей) org.firebirdsql.jdbc.FBSQLException: Result set is already closed. org.firebirdsql.jdbc.FBSQLException: The result set is closed одна после другой иногда возникают во время построения таблицы на основе запроса к базе (т.е. наверное можно сказать, что отрисовка в html происходит "продолжительное" время) все подобное "рисование" выполняю следующим образом - создаю коннект, statement, resultset, "рисую" (через while (resultset.next()) ), по окончании закрываю вообще все может идеологически это неверно и несколько одновременных запросов страницы приводят к тому, что тот что отрисовался раньше закрывает первый!? просто не могу понять почему такое происходит, в самой "отрисовке" только один единственный набор объектов, включая resultset ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 14:35 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinпо окончании закрываю вообще все Пул используется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 14:36 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, а что дает? мне не требуется держать несколько соединений - нарисовал, закрыл, отключился но как то получается что конкурирующие потоки взаимодействуют... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 14:39 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
т.е. мне казалось что в session я имею дело с отдельно созданным resultset даже как это проверить не пойму, потому как на деле отрисовка конечно же выполняется быстро, но когда работает куча пользователей нет нет да выскочит вот эта беда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 14:41 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
BlazkowiczПул используется? ) нет! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 14:41 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinа что дает? В web приложении-то? Это даёт всё. В том числе валидацию соединений. wolverinно как то получается что конкурирующие потоки взаимодействуют... На основе чего сделан такой вывод? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 14:44 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinт.е. мне казалось что в session я имею дело с отдельно созданным resultset Session здесь вообще при чем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 14:44 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverin, Ошибка вылетает в момент первого использования ResultSet (в начале цикла) или в середине, уже после того как несколько записей вычитано? Закрываете руками или через AutoClosable? Stacktrace почему не привели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 14:46 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
вот как конкретно выглядит текст но конкретно ВСЕГДА эта строка, а по ней вообще комментарий в теле цикла at org.apache.jsp.ИМЯ-СТРАНИЦЫ-С-ОШИБКОЙ_jsp._jspService(ИМЯ-СТРАНИЦЫ-С-ОШИБКОЙ_jsp.java from :77) Код: 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 14:46 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Blazkowiczwolverin, Ошибка вылетает в момент первого использования ResultSet (в начале цикла) или в середине, уже после того как несколько записей вычитано? Закрываете руками или через AutoClosable? Stacktrace почему не привели? получается приблизительно в середине, после вычитки нескольких записей, закрываю руками после выхода из цикла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 14:47 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
BlazkowiczSession здесь вообще при чем? поскольку новичок - делаю безумные предположения ( а вообще через переменные session "обмениваюсь" между jsp объектами, но открытие и закрытие только в пределах "цикла" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 14:55 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinно открытие и закрытие только в пределах "цикла" дай псевдо код условный. И где он расположен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 14:57 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Petro123дай псевдо код условный. И где он расположен. вот так немного упрощенно если Код: 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 15:01 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#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. 29. 30. 31. 32. 33. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 15:02 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverin Код: java 1. AFAIK DataSet не потокобезопасный объект. В сессию нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 15:19 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Petro123AFAIK DataSet не потокобезопасный объект. В сессию нельзя. формально конечно DataSetD dsd не сам dataset, а просто обертка с инициализированными параметрами для соединения, сами объекты в проблемном jsp создаются и конектятся в dsd.getDolgDetail ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 15:23 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverin, какая разница. В одном потоке ты создал, во втором прибил. А ссылки и работающий JSP в другом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 15:26 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverin, грубо, JSP это VIEW. При загрузке открой коннект и прибей после отрисовки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 15:27 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Petro123, хотя конечно объявлено как public class DataSetD extends DataSet и как тогда нужно делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 15:28 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Petro123При загрузке открой коннект и прибей после отрисовки. так он и прибевается после отрисовки и создается перед ней ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 15:28 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinи как тогда нужно делать? 1. При загрузке открой коннект и прибей после отрисовки. 2. бины 3. пул ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 15:29 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinтак он и прибевается после отрисовки и создается перед нейпо коду не видно. Эта часть у тебя спрятана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 15:30 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Как теперь это все развидеть-то? Просто слов нет. Энтузиазма много и только. ResultSet не место в Session. Разве только если использовать какой-нибудь WebRowSet, отсоединенный от базы. То что объект находится в Session никак не защищает от конкурентного доступа. Один пользователь может открыть две странцы в одной сессии. Это скорее всего и является причиной ошибки. JSP надо использовать в виде HTML шаблона, а не в миксуя Java и HTML в безобразную кашу двух языков (а если ещё и JavaScript добавить?). Если так кортит использовать JDBC прямо в странице, то есть же SQL в JSTL http://www.tutorialspoint.com/jsp/jstl_sql_query_tag.htm Ресурсы надо закрывать в блоке finally, а не в if..else Срочно к изучению JSP JSTL JSP Expression Language Model View Controller finally AutoCloseable (try with resource) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 15:30 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Petro123wolverinтак он и прибевается после отрисовки и создается перед нейпо коду не видно. Эта часть у тебя спрятана. тут создаю if (dsd.getDolgDetail(l_schet, dBeg, dEnd)) тут убиваю dsd.Disconnect(); конкретно Код: 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 15:32 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 15:34 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Blazkowiczто есть же SQL в JSTL Во! Точно!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 15:35 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
BlazkowiczResultSet не место в Session. Разве только если использовать какой-нибудь WebRowSet, отсоединенный от базы так он и отсоединен от базы... сейчас попробую открыть страницу одним пользователем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 15:37 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinтак он и отсоединен от базы... while (dsd.rs.next()) { dsd нельзя в сессию. Т.к. всё что у него внутри до 5-го колена должно быть потокобезопасно....даже умершее и отсоединённое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 15:43 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinтак он и отсоединен от базы... Какое самоуверенное заявление. И где же в коде отсоединение ResultSet от базы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 15:47 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Blazkowiczwolverinтак он и отсоединен от базы... Какое самоуверенное заявление. И где же в коде отсоединение ResultSet от базы? dsd.Disconnect(); похоже да, если в рамках одной сессии попытаться открыть одну и ту же страницу, то возникает конфликт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 15:51 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverindsd.Disconnect(); Дык после этого нельзя читать ResultSet. Это не "отсоединение" данных. Это закрытие соединения вообще. Под "отсоединением" я имел ввиду вычитку данных в куда-либо, которое можно использовать без соединения с БД и безопасно поместить в сессию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 16:01 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Blazkowiczwolverindsd.Disconnect(); Дык после этого нельзя читать ResultSet. Это не "отсоединение" данных. Это закрытие соединения вообще. Под "отсоединением" я имел ввиду вычитку данных в куда-либо, которое можно использовать без соединения с БД и безопасно поместить в сессию. да там только на отображение и все, по моему вроде как шаблон и получается. мне и не нужно читать ResultSet после закрытия, в следующий раз оно создастся по новой надо как то защититься от попытки открыть одну и ту же страницу одновременно в одной сессии... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 16:05 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinнадо как то защититься от попытки открыть одну и ту же страницу одновременно в одной сессии... Пользователь имеет право сделать Alt+Enter. Потом тебе по башке даст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 16:07 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinда там только на отображение и все, по моему вроде как шаблон и получается. Самоуверенности вам не занимать. Ну, если не интересует критика, то умываю руки. Удачи тому несчастному кому придется править этот код. wolverinмне и не нужно читать ResultSet после закрытия, в следующий раз оно создастся по новой Удаляйте его из Session, сразу как получили, перед тем как использовать. Это сведет шанс на шаринг к минимуму. wolverinнадо как то защититься от попытки открыть одну и ту же страницу одновременно в одной сессии... Ну, да, ну да. И кнопку back задизэйблить. Чтобы не повадно было. И вообще стоять у юзера за спиной и чуть что - линейкой по рукам, чтобы не нажимал куда не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 16:15 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, я всегда за критику с любовью ) просто не вижу почему не шаблон - просто рисую jsp напрямую из RS и потом больше нигде никак не обрабатываю удалять то можно, но это опять каждый раз логины-пароли-параметры-курсора/транзакции где то искать и по новой все в том же JSP инициализировать как в вашем примере по JSTL от виндовых приложений осталось разумение что пока окно рисуется в однопоточном, то другие запросы не обрабатываются ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 16:20 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinот виндовых приложений осталось разумение что пока окно рисуется в однопоточном, то другие запросы не обрабатываются ( ))) из далека пришёл в веб вестимо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 16:25 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverin, а восьмую java отменили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 17:05 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
вадя, использую что есть на сервере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 18:06 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
короче я так понял надо просто еще одни класс с потомками оформить, чтобы отделить свойства от методов с объектами и все должно стать в ажуре уже передавая в сессию объекты со свойствами подключения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 18:07 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinсо свойствами подключения. какими? Логин, pass что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 18:57 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Petro123wolverinсо свойствами подключения. какими? Логин, pass что ли? логин, пароль, параметры курсора, параметры транзакции, выбранная база при авторизации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 03:48 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Ok - перепиши на JSTL, alt+enter для 2х объектов в одной сессии и проверь свой баг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 09:03 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Petro123Ok - перепиши на JSTL, alt+enter для 2х объектов в одной сессии и проверь свой баг. проблема еще и в том, что этот самый объект я вообще везде использую и закрытие резалсета может вообще происходить в сервелете, а вываливаться в ошибку уже по логике работы в этом жсп ) а теги ну только я вижу что меньше песанины в самом жсп хорошо, но вот сервелет, в котором я проинициализирую глобальную переменную резалсет класса потокабезопасно или класс инициализируется единожды и методы post и get будут работать с одним резалсетом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 10:20 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverin, ну там же всё просто. Вы отличаете новый экземпляр объекта от "взяди на него ссылку"? - JSP и сервлеты работают в потоках. Java с некоторой версии отказалась от поддержки потокобезопасности. "Программист сам должен". Раньше был флаг для этого в API - т.е. либо на каждый поток - свой коннект (область видимости - страничка), - либо один коннект на сессию и нельзя раньше прибивать - либо пул (попользовал и вернул). Что тут сложного? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 10:41 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinэтот самый объект я вообще везде использую и закрытие резалсета может вообще происходить в сервелете т.е. вы по функционалу написали Пул ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 10:43 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverin, основная ошибка вот тут: 19138826 Остальное - неизбежные следствия, которые будут преследовать это приложение. Лучше всего не пытаться отловить хвосты, а начать с начала, используя композицию. Датасет, включающий в себя транзакцию, резалтсет, а также и все методы для получения данных из базы - безусловное зло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 10:47 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
ivanraДатасет, включающий в себя транзакцию, резалтсет, а также и все методы для получения данных из базы - безусловное зло. только, сам Датасет - зло, это перебор). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 10:53 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Petro123, так все таки сервелет при обращении к нему создается каждый раз или происходит только обращение к методам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 10:58 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Petro123т.е. вы по функционалу написали Пул ? нет, чтобы не писать каждый раз параметры соединения таскал его везде вместе с методами сейчас параметры в отдельный объект, а датасет создаю и освобождаю в рамках страницы, но по сервелету вопрос остался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 11:06 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinPetro123, так все таки сервелет при обращении к нему создается каждый раз или происходит только обращение к методам? обычный сервлет? - у меня в одном проекте на init я беру из web.xml пароль, логин, ... - потом Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 11:09 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinнет, чтобы не писать каждый раз параметры соединения таскал его везде вместе с методами 2-3 строки на сервлет или JSP это немного. Если у тебя логин один на всех (публичный пользователь как в пуле), то тем более пихать в сессию зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 11:14 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Petro123, ну не 3, строчек 5-7, потом еще помнить надо где как должно работать, да уровни изолированности транзакций хотел потом дописать, параметр блокировок, а так создал потомка и всегда помнишь что в нем есть, т.к. прописан и инициализирован он в одном месте. логин можно сказать один, но баз 2 вида, в первом только одна база для записи в определенные моменты, в остальное время иногда не дефолтное чтение приходится делать, во втором вообще 10ок баз, соединение к которым должны быть только читающими и не держать никаких блокировок и пишущих транзакций на сервере и тыды словом очень упрощает, когда все реализовано на одном (сейчас на двух) классах их потомках для единообразия. да сервелет обычный javax.servlet.annotation.WebServlet ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 11:26 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinпотом еще помнить надо где как должно работать, да уровни изолированности транзакций хотел потом дописать, параметр блокировок "Не пиши на будущее, всё одно переписывать" (с) - уровни не надо трогать никогда - парам блокировок непонятно. Итого что осталось? - правильно - велосипед. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 11:29 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinсловом очень упрощает, когда все реализовано на одном (сейчас на двух) классах их потомках для единообразия. ты не с дельфи начинал? Ты пытаешься писать в его стиле. Создать свой DAC в виде ADOConnection\ADODataSet. При увеличении проекта - задолбаешься в веб. Это не десктоп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 11:34 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinсоединение к которым должны быть только читающими и не держать никаких блокировок и пишущих транзакций на сервере это надо тебе почитать и осмыслить. Есть некоторые недоСУБД, в которых есть читающие транзакции и пишущие. Т.е. эта фигня почему то должна быть прописана в коде. Это отдельный вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 11:36 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Petro123При увеличении проекта - задолбаешься в веб. Это не десктоп. с дельфи vs c++ сейчас посмотрел свой FastCGI проект - вроде тоже создаю единожды параметры и все годно работает ну а почему нельзя, вроде сами разработчики считаю что кошерно работать с 2мя транзакциями, мусор опять же не держит на то и рассчитываю, что при разрастании можно будет одной строкой обходиться, которая просто сразу возвращает данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 11:41 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
а все таки интересно если я скажем в конструкторе сервелета проинициализирую резалтсет - они потом так же в одной сессии не наложатся друг на друга ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 11:46 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinа все таки интересно если я скажем в конструкторе сервелета проинициализирую резалтсет - они потом так же в одной сессии не наложатся друг на друга тебе не интереснее узнать JSTL+JNDI? Так и останешься в своём JSP навечно. Удачи! ЗЫ В Java либо тащить на клиента только голые данные, либо один вариант выше от Sun JSTL. Т.к. страничка может рисоваться до 5 минут кряду. Это уже тут все знают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 11:54 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Petro123, почему не интересно, я еще при первом упоминании открыл википедию, написано JSTL - библиотека тэгов, чем это должно помочь я не понимаю, ну красивее смотреться будет и что с того. а сервелет у меня вообще по вашему же совету через AJAX ответы отдает в JS, вполне возможно это и создает ситуацию, когда один и тот же резалтсет пользуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 12:06 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverin, вот заладил. Скажу тезисно, раз читать не умеешь: - пихать дата сет в сессию нельзя. Либо 7 строк на страничке, либо Apache Tomcat 6.0 JNDI Datasource HOW-TO Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. - делать тестовый пример по отрисовке странички на 10000 записей и результаты сюда вечером. Это IMHO Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 12:21 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Petro123, ) это я понял еще на первой странице, датасета в сессии больше нет, теперь там только ВСЕ параметры конекта в объекте, который я запихиваю в датасет при инизиализации на каждой странице. зы. мне без разницы сколько страница рисуется, хоть 10 минут, хотя у меня дефолтно выходит записей 10-20 меня волнует как работает сервелет - инициализация каждый раз при вызове или единожды и только ответы в пост и гет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 12:25 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverin) это я понял еще на первой странице, датасета в сессии больше нет, === OK теперь там только ВСЕ параметры конекта в объекте, который я запихиваю в датасет при инизиализации на каждой странице. == POJO объект придумали в Java или Record в С++ зы. мне без разницы сколько страница рисуется, хоть 10 минут, хотя у меня дефолтно выходит записей 10-20 ===== мы с этой ошибки начинали. ОК топик не про это в первом посте меня волнует как работает сервелет - инициализация каждый раз при вызове или единожды и только ответы в пост и гет. === init единожды. Но не надо так писать, что если второй раз вдруг...То у тебя всё рухнет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 12:41 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverin, сервлет существует в одном экземпляре, и инициализируется 1 раз (если не вдаваться в подробности). Его методы post,get, и т.д. вызываются сервером из разных потоков (исключение - однопоточные сервера, но это скорее экзотика) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 12:42 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
Petro123, про время это я к тому что и в других бы местах должно, а проявляется только здесь ) Petro123, ivanra спасибо, буду и это тогда переделывать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 12:50 |
|
||
|
org.firebirdsql.jdbc.FBSQLException: Result set is already closed
|
|||
|---|---|---|---|
|
#18+
wolverinпро время там тест элементарный. 2 окна. Пока отрисовка на одном (ds работает), запускаем или гасим второе. ... На одном удаляем мастер, на втором в это время меняем чилдрен. и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 12:56 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2124100]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
95ms |
get tp. blocked users: |
2ms |
| others: | 214ms |
| total: | 423ms |

| 0 / 0 |
