![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
Как и в любой другой файл. Но в этом нет и смысла - вам же нужно разделять данные, а не методы. -------------------- ![]() ![]() |
|||
|
||||
| Prol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.1.2008 Где: Кыев, Украина Репутация: нет Всего: нет |
Именно необходимо разделять методы :о) Мне не нужны два разных приложения, у которых каждого свой new и свой код методов. Мне нужно, чтобы два одинаковых приложения разделяли один new в одной области памяти и использовали одну копию методов над одной копией объектов. |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
А если упадет именно в таком методе, то какая тут надежность ? Проблема как я понимаю в том, чтобы иметь надежное приложение, которое данные позволяет сохранить в случае падения логики. Но тогда надо разделять данные и логику. Ощущение, что Вы не очень понимаете, что надо. Это не сомнение в профессионализме - просто может пока задача не совсем очевидна. |
|||
|
||||
| Prol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.1.2008 Где: Кыев, Украина Репутация: нет Всего: нет |
Так упадёт же второе приложение. А первое сохранит все данные уже размещённые в памяти. И тогда нужно будет перезапустить второе приложение, которое продолжит работу с откатом последней транзакции. :о) |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Но в таком случае логика и данные разделены. И второе приложение просто проверяет - не упало ли первое. И в нужный момент подхватывает. Значит именно данные лежат в shared memory. А все методы - в логике. Или классов тоже три миллиона ? Вы случайно не введены в заблужение по поводу того, что методы создаются для каждого объекта ? Это не так - один метод работает для всех объектов этого класса. Добавлено через 8 минут и 20 секунд Похоже я что-то понимаю - логика работает в объектах и меняет их состояние. Надо каким-то образом это состояние хранить. А т.к. перемешана логика с данными в объектах, то точно разделить не получается. Значит нужен механизм, которые постоянно сохраняет значения полей объектов где-то. Что конечно же усложнит работу и снизит производительность. Либо сделать разделение на объекты, которые зранят данные и объекты, которые их изменяют. В терминах EnterpriseJavaBeans это EntityBean и SessionBean. Видимо так и надо проектировать. |
|||
|
||||
| Prol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.1.2008 Где: Кыев, Украина Репутация: нет Всего: нет |
Ок, попробую ещё раз объяснить. ОС убивает то приложение, в контексте которого произошла ошибка. И освобождает память убитого. Но если приложение пользуется памятью другого приложения, то ОС не освобождает память непричастного. Посмотрите картинку, как оно сделано на С. Можно ли так сделать на Java? Присоединённый файл ( Кол-во скачиваний: 19 )
Shm.JPG 11,32 Kb |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Нафига код методов помещать в общую память? У вас что, приложение само себя модифицирует в процессе работы?
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Prol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.1.2008 Где: Кыев, Украина Репутация: нет Всего: нет |
Методы и объекты всегда разделены :о) Методы ведь общие для всего класса объектов. Смысл в том, что второе приложение пользуется методами и объектами первого приложения, но в случае сбоя ОС снимает именно второе приложение :о) А первое сохраняет загруженными и методы и объекты. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
На Java тако практически не реально, байткод не может вызвать крах JVM. Сам упасть - сколько угодно, но свалить JVM без использования native методов не реально (ошибки в самой JVM редки). -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Prol |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.1.2008 Где: Кыев, Украина Репутация: нет Всего: нет |
Для того, чтобы второе приложение могло вызвать методы, которые лежат в общей памяти :о) Добавлено через 1 минуту и 30 секунд
Подставьте вместо ОС слово JVM. Как сделать, чтобы второе приложение вызывало методы первого над объектами первого? |
||||
|
|||||
| LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
И что? Что тебе мешает дать ему свою копию классов? Добавлено через 1 минуту и 39 секунд Да и зачем ему что-то там вызывать, если он как ты говоришь используется только для того, чтобы после падения данные остались в памяти. Добавлено через 3 минуты и 1 секунду
Если ты хочешь все делать внутри одной JVM, то варианты решения тебе уже неоднократно предлагали, повторять не буду. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
| Prol |
|
||||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.1.2008 Где: Кыев, Украина Репутация: нет Всего: нет |
Мне не нужна вторая копия тех же методов, во-первых. А во-вторых мой менеджер памяти должен быть в единственном экземпляре но доступен из обоих приложений для управления распределением общей разделяемой памяти для объектов.
Первое приложение не совсем спит, оно просто в это время делает непрерывный бекап в БД, не мешая второму работать с объектами. :о)
Извините, но RMI и JMX не подходит, потому что сериализует/десереализует объекты между приложениями. А мне нужно из второго приложения выполнять методы первого над объектами первого, и если JVM прибъёт второе приложение за шо-нибуть некорректное. то в первом остануться все методы и все объекты на момент последней незавершённой транзакции. Это сообщение отредактировал(а) Prol - 16.1.2008, 14:52 |
||||||||||
|
|||||||||||
| fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 6 Всего: 27 |
Prol, сколько можно тупить? (при всем уважении к возрасту и прочим регалиям).
Вам уже неоднократно сказали, что Java это не C и то что прокатывает во втором не обязано работать также в первом. Мое мнение, что на Java Вам переходить не стоит. -------------------- ![]() |
|||
|
||||
| Prol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.1.2008 Где: Кыев, Украина Репутация: нет Всего: нет |
Так что, даже если я откомпилю приложения Java в нативный код и они будут работать без JVM, то всё равно они не смогут пользоваться общей разделяемой памятью? ;о))) |
|||
|
||||
| fixxer |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 6 Всего: 27 |
Попробуйте ;) Добавлено через 2 минуты и 15 секунд
Непонятно, чем здесь помешает RMI? -------------------- ![]() |
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |