|
|
|
большие объекты и нехватка памяти
|
|||
|---|---|---|---|
|
#18+
Добрый день! Помогите разобраться, пожалуйста! Стоит задача написать веб-сервис , который лезет в БД и извлекает оттуда данные, но проблема в том что извлекать возможно придется очень много...т.е как я делаю, создаю java бин и в его поля записываю данные из базы, пишу метод который возвращает этот бин и генерирую из этого метода веб-сервис. В итоге этот бин содержит огромные коллекции(ArrayList например) и я боюсь что тут могут возникнуть проблемы с нехваткой ресурсов. Как я понимаю, вебсервис потом из этого бина огромный XML генерирует и отправляет клиенту по HTTP. Опять же не совсем представляю какие могут возникнуть проблемы при пересылке такого большого XML и сможет ли его принять клиент если у клиента компьютер будет намного слабее...вообщем не укладывается у меня в голове вся эта схема, чувствую что должны тут где то возникнуть проблемы из-за больших объемов данных, но до конца не понимаю...объясните чайнику какие реально возникнут проблемы и как их решить, если не сложно) В веб-сервисах не силен, просто генерирую их из java классов в jDeveloper ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 11:27:31 |
|
||
|
большие объекты и нехватка памяти
|
|||
|---|---|---|---|
|
#18+
kruglikav, в ТЗ должно быть чётко прописано, "много" - это сколько. И время отклика сервиса для этого Много. Иначе трёп ни о чём. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 11:34:03 |
|
||
|
большие объекты и нехватка памяти
|
|||
|---|---|---|---|
|
#18+
kruglikav, пример готового сервиса экспорта в XML из БД. Если данных много, то предупредит. Экспорт в XML - вкладка экспорт в меню http://www.openstreetmap.org/ ______________________________________________ "Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн. AutoPOI.ru — ГИС-технологии для Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 11:42:06 |
|
||
|
большие объекты и нехватка памяти
|
|||
|---|---|---|---|
|
#18+
Как уже сказал Petro123, стоит для начала оценить таки объемы. "Большие" объекты возникают только если вы там реально храните мегабайты медиа - картинки, звук, мувики. Другими данными реализовать "большие" объекты не просто. Ну, выйдет по 1-2Мб на запрос. Этого хватит на сотню-другую параллельных запросов, а там вы упретесь в другие тормоза. Помимо этого, Java позволяет на разных уровнях использовать потоковую обработку данных. JDBC ResultSet - грузит данные в цикле, когда они нужны. Все-все данные сразу выбирать не обязательно. JPA/Hibernate - точно так же умеет загружать данные по частям. XML билдер тоже можно подобрать такой, который в потоке сериализует данные и сразу отправляет в конечную точку, не задерживая большие блоки в памяти. Т.е. для начала стоит определиться на сколько большие данные и действительно ли они большие. А затем проектировать с расчетом на экономию памяти и streaming обработку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 11:53:39 |
|
||
|
большие объекты и нехватка памяти
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы! по поводу времени отклика, время не критично, суть этого сервиса предоставить n-ое количество таблиц целиком, таблицы эти на данный момент уже содержат порядка 100тыщ строк, а что будет дальше пока не известно. По поводу ResultSet, я его и использую для извлечения данных из таблиц, но я же эти данные записываю в бин, который потом возвращаю целиком, а как сделать чтобы обрабатывалось по частям не представляю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 12:20:26 |
|
||
|
большие объекты и нехватка памяти
|
|||
|---|---|---|---|
|
#18+
kruglikav но я же эти данные записываю в бин, который потом возвращаю целиком, а как сделать чтобы обрабатывалось по частям не представляю... Читаете N строк, конвертируете в бины, бины в XML, XML клиенту и так в цикле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 12:23:14 |
|
||
|
большие объекты и нехватка памяти
|
|||
|---|---|---|---|
|
#18+
kruglikav....суть этого сервиса предоставить n-ое количество таблиц целиком, таблицы эти на данный момент уже содержат порядка 100тыщ строк У вас там что за люди такие работают, смотреть по 100тыщ строк сразу? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 12:23:31 |
|
||
|
большие объекты и нехватка памяти
|
|||
|---|---|---|---|
|
#18+
Blazkowiczkruglikav но я же эти данные записываю в бин, который потом возвращаю целиком, а как сделать чтобы обрабатывалось по частям не представляю... Читаете N строк, конвертируете в бины, бины в XML, XML клиенту и так в цикле. звучит все очень просто, только как реализовать, ведь насколько я себе это представляю, на один запрос клиент ждет один же ответ, откуда ему знать на сколько я там частей разобью все данные... да и вообще как такой цикл организовать, ведь сервис отсылает ответом только то что возвращает метод ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 12:46:40 |
|
||
|
большие объекты и нехватка памяти
|
|||
|---|---|---|---|
|
#18+
kruglikavзвучит все очень просто, только как реализовать, ведь насколько я себе это представляю, на один запрос клиент ждет один же ответ, откуда ему знать на сколько я там частей разобью все данные... да и вообще как такой цикл организовать, ведь сервис отсылает ответом только то что возвращает метод Вы говорите в терминах какой-то одной технологии, которая вас ограничивает. JAX-WS не единственная технология, которая позволяет сериализовать XML и вызвать удаленный метод. Кстати, а действительно ли вам нужно загонять данные в объекты? Сразу в XML не проще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 12:56:56 |
|
||
|
большие объекты и нехватка памяти
|
|||
|---|---|---|---|
|
#18+
для меня проще в объекты, так как тогда я пишу обычный java метод, а уже jDeveloper преобразует его в сервис, если без объектов, то нужно тогда полностью самому писать сервис и формировать soap сообщение Ладно, спасибо за помощь, чувствую что пока мне еще очень рано обсуждать здесь этот вопрос, так как знаний совсем мало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 13:07:54 |
|
||
|
большие объекты и нехватка памяти
|
|||
|---|---|---|---|
|
#18+
kruglikav, дело не в знаниях, а в ВИ (Варианты использования) \ use case Т.е. как ЭТО будет выглядет в ГУИ. А наПРОГИТЬ можно любое Г... ______________________________________________ "Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн. AutoPOI.ru — ГИС-технологии для Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 13:14:08 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37836186&tid=2131568]: |
0ms |
get settings: |
11ms |
get forum list: |
23ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
61ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 356ms |
| total: | 552ms |

| 0 / 0 |
