|
|
|
Как и куда утекает память если класть в request не serializable объекты?
|
|||
|---|---|---|---|
|
#18+
С удивлением узнал, что объекты, которые мы используем на jsp например, надо маркировать как Serializable иначе утекает память. Я что-то не могу понять где таки эта память утекает. Объясните, плиз механизм. Ну и если это действительно правда, то почему HttpServletRequest не принимает Serializable, а принимает Object. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2015, 13:55 |
|
||
|
Как и куда утекает память если класть в request не serializable объекты?
|
|||
|---|---|---|---|
|
#18+
questionerС удивлением узнал, что объекты, которые мы используем на jsp например, надо маркировать как Serializable иначе утекает память. Я что-то не могу понять где таки эта память утекает. Объясните, плиз механизм. Ну и если это действительно правда, то почему HttpServletRequest не принимает Serializable, а принимает Object. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2015, 14:54 |
|
||
|
Как и куда утекает память если класть в request не serializable объекты?
|
|||
|---|---|---|---|
|
#18+
questionerС удивлением узнал, что объекты, которые мы используем на jsp например, надо маркировать как Serializable иначе утекает память. Это 100% не стандартная фишка, а косяк какого-то контейнера. Где ты об этом узнал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2015, 19:37 |
|
||
|
Как и куда утекает память если класть в request не serializable объекты?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, На собеседовании. Наверное про томкат речь шла. Я еще с джетти работал, но мало, поэтому томкат. Собеседующий дал понять, что его удивило то, что я не в курсе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2015, 19:42 |
|
||
|
Как и куда утекает память если класть в request не serializable объекты?
|
|||
|---|---|---|---|
|
#18+
questioner, Вероятно вы друг-друга не поняли. Потому что фраза "объекты, которые мы используем на jsp например, надо маркировать как Serializable иначе утекает память." выглядит как полный бред. И Tomcat там не при чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2015, 19:46 |
|
||
|
Как и куда утекает память если класть в request не serializable объекты?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Предыстория была такая, что он меня спросил какие бины можно на jsp юзать. Ну я сказал, что java beans(сейчас, осознал,хотя, что в последнем el уже можно вызвать любые методы). Дальше последовал вопрос что такое java beans. Я сказал, про геттеры, сеттеры, дефолтный конструктор. Он спросил а ещё? Я вот про Serializable забыл. Потом я сказал, что ни разу не видел, чтоб кто-то делал классы Serializable и юзал их объекты на jsp. И дальше мысли из первого поста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2015, 23:35 |
|
||
|
Как и куда утекает память если класть в request не serializable объекты?
|
|||
|---|---|---|---|
|
#18+
questionerПредыстория была такая, что он меня спросил какие бины можно на jsp юзать. хм, тоже интересно, какие такие "особенные" бины можно юзать на jsp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2015, 23:53 |
|
||
|
Как и куда утекает память если класть в request не serializable объекты?
|
|||
|---|---|---|---|
|
#18+
думаю вы что-то перепутали, ну или собеседование странное. Разговор о Serializable мог идти в контексте сессий, тогда бы это имело смысл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 10:41 |
|
||
|
Как и куда утекает память если класть в request не serializable объекты?
|
|||
|---|---|---|---|
|
#18+
забыл ник, Вы про это? http://www.hpenterprisesecurity.com/vulncat/en/vulncat/java/j2ee_bad_practices_non_serializable_object_stored_in_session.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 13:20 |
|
||
|
Как и куда утекает память если класть в request не serializable объекты?
|
|||
|---|---|---|---|
|
#18+
http://www-01.ibm.com/support/knowledgecenter/SS7JFU_7.0.0/com.ibm.websphere.base.doc/info/aes/ae/cprs_best_practice.html Implement the java.io.Serializable interface when developing new objects to be stored in the HTTP session. Serializability of a class is enabled by the class implementing the java.io.Serializable interface. Implementing the java.io.Serializable interface allows the object to properly serialize when using distributed sessions. Classes that do not implement this interface will not have their states serialized or deserialized. Therefore, if a class does not implement the Serializable interface, the JVM cannot persist its state into a database or into another JVM. All subtypes of a serializable class are serializable. An example of this follows: public class MyObject implements java.io.Serializable {...} Make sure all instance variable objects that are not marked transient are serializable. You cannot cache a non-serializable object. In compliance with the Java Servlet specification, the distributed servlet container must create an IllegalArgumentException for objects when the container cannot support the mechanism necessary for migration of the session storing them. An exception is created only when you have selected distributable. а что в итоге случится? может получиться, что на одной jvm в сессии есть этот объект, а на другой просто нет? Скажем мы показываем в верхнем правом углу логин и дату регистрации пользователя(объект, содержащий эту информацию попадает в сессию при логине). Информация иногда будет отображаться, а иногда нет. Верно я понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 13:30 |
|
||
|
Как и куда утекает память если класть в request не serializable объекты?
|
|||
|---|---|---|---|
|
#18+
up ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 11:29 |
|
||
|
Как и куда утекает память если класть в request не serializable объекты?
|
|||
|---|---|---|---|
|
#18+
questionerа что в итоге случится? может получиться, что на одной jvm в сессии есть этот объект, а на другой просто нет? Скачай и прочти спецификацию на сервлеты. Она не большая и доступная для понимания. Сериализация объектов в сессии нужна для 2х решения 2х проблем - Репликация сессии в кластре - Персистентность сессии для того чтобы пережить перезагрузки сервера questionerСкажем мы показываем в верхнем правом углу логин и дату регистрации пользователя(объект, содержащий эту информацию попадает в сессию при логине). Информация иногда будет отображаться, а иногда нет. Верно я понимаю? Мля, ну какой ещё правый верхний угол? Что за "иногда"? Ты же программист, а не пенсионерка с ноутбуком. Знаешь что такое сессия или объяснить надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 11:49 |
|
||
|
Как и куда утекает память если класть в request не serializable объекты?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczСериализация объектов в сессии нужна для решения 2х проблем - Репликация сессии в кластре - Персистентность сессии для того чтобы пережить перезагрузки сервера спасибо) BlazkowiczquestionerСкажем мы показываем в верхнем правом углу логин и дату регистрации пользователя(объект, содержащий эту информацию попадает в сессию при логине). Информация иногда будет отображаться, а иногда нет. Верно я понимаю? Мля, ну какой ещё правый верхний угол? Что за "иногда"? Ты же программист, а не пенсионерка с ноутбуком. Знаешь что такое сессия или объяснить надо? Ну я просто жизненный пример хотел привести) на сайтах часто логинишься и справа сверху показывается мессадж типа. good day, Vasya. Ну и это имя скорее всего хранится в сессии. под словом иногда я имел ввиду, что когда попадаем на ту jvm в кластере на которой есть этот объект в кластере, то нам покажется мессадж good day, Vasya. Если попадём потом на другую jvm, то там не будет никакого name в сессии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 13:23 |
|
||
|
Как и куда утекает память если класть в request не serializable объекты?
|
|||
|---|---|---|---|
|
#18+
questionerНу и это имя скорее всего хранится в сессии. Высоконагруженные сисмемы имеют привычку всё пользовательское барахло хранить на клиенте. На сереве только необходимый минимум. questionerпод словом иногда я имел ввиду, что когда попадаем на ту jvm в кластере на которой есть этот объект в кластере, то нам покажется мессадж good day, Vasya. Если попадём потом на другую jvm, то там не будет никакого name в сессии Да, но в большинстве случаев балансеры отправляют пользователя на одну и ту же ноду, если она в рабочем состоянии. Это даёт огромный простор для оптимизации. Отправлять пользователя на разные сервера без ясных причин - расточительство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 13:28 |
|
||
|
Как и куда утекает память если класть в request не serializable объекты?
|
|||
|---|---|---|---|
|
#18+
questionerНу я просто жизненный пример хотел привести) "корзина покупок" при сельфи по магазину будет пример поближе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 13:38 |
|
||
|
Как и куда утекает память если класть в request не serializable объекты?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczДа, но в большинстве случаев балансеры отправляют пользователя на одну и ту же ноду, если она в рабочем состоянии. Это даёт огромный простор для оптимизации. Отправлять пользователя на разные сервера без ясных причин - расточительство. Слово балансер не существует. Вместо него есть балансировщик нагрузки. Слово нода тоже не сущеествует, но не буду переводить его на русский язык - надо знать и без моей помощи. Но здесь ещё смешивают виды кластеров - для балансировки нагрузки и для отказоустойчивости. Может быть и для того и другого сразу. Это не полный перечень. Если кластер - для балансировки нагрузки, то чаще всего в нём пользователи распределяются по серверам равномерно, для чего обычно используется метод round robin, то есть кругового перебора серверов. В этом случае пользователь каждый раз может попадать на другой сервер (что является способом проверки того, что балансировка нагрузки работает). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 14:16 |
|
||
|
Как и куда утекает память если класть в request не serializable объекты?
|
|||
|---|---|---|---|
|
#18+
Partisan MСлово балансер не существует. Вместо него есть балансировщик нагрузки. Слово нода тоже не сущеествует, но не буду переводить его на русский язык - надо знать и без моей помощи. Да, поняли, уже что граммар наци в тебе негодует. Можешь не повторятся в каждой теме. Partisan MНо здесь ещё смешивают виды кластеров - для балансировки нагрузки и для отказоустойчивости. Может быть и для того и другого сразу. Это не полный перечень. Если кластер - для балансировки нагрузки, то чаще всего в нём пользователи распределяются по серверам равномерно, для чего обычно используется метод round robin, то есть кругового перебора серверов. В этом случае пользователь каждый раз может попадать на другой сервер (что является способом проверки того, что балансировка нагрузки работает). Ты кажется темой ошибся. Об этом в другом топике. Ой, такого слова, ведь, тоже не существует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 14:39 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=112&tid=2124700]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 217ms |
| total: | 370ms |

| 0 / 0 |
