powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как на сервере получать сообщения от БД?
39 сообщений из 39, показаны все 2 страниц
Как на сервере получать сообщения от БД?
    #39179425
RuslanGab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток!

Собственно весь вопрос в теме.
Если чуть конкретнее - есть БД SQL Server и сервер GlasFish. В БД крутится триггер, который проверяет в одной из таблиц целостность данных при сохранении (кго алгоритм тут уж роли не играет). В случае неудачи транзакция откатывается.
И вот далее интересно:
Как донести инфу о том почему именно транзакция не свершилась клиенту?
1. Конкретно в MS SQL триггер может выдать методом PRINT сообщение, которое прочтет админ БД если ему сильно захочется поработать с базой напрямую - отпадает.
2. Я попользовался методом RAISEERROR, в которое упаковал сообщение - это оказалось ближе к истине. На сервере после flush этот exception и "лежащее" в нем сообщение ловятся, но довольно "некрасивым" способом. У меня (используется JPA) вышло так: „PersistenceException“ -> „DatabaseException“ -> „SQLServerException“ -> „Exception от триггера“ с сообщением через getLocalizedMessage().

Мне способ 2 НЕ нравится, просто я не нашел лучше. Может кто-то подсказать есть ли что-то более нативное для подобных целей?

Заранее спасибо!

П.С.: то что проверять можно на клиенте перед сохранением понятно. Как раз и хотелось бы "из спортивного интереса" попробовать получить универсальное решение со стороны самой базы чтобы потом уже с увеличением количества триггеров (а оно в небольшой степени будет в любом случае) не думать ни о чем.
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39179464
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGab,
посмотри на использование udf.
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39179732
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGab,
все зависит от того в каком режиме это должно работать, если реакция нужна моментально и в этом же потоке, то наверное ваш вариант с выбрасыванием исключения вполне будет работать.
В других ситуациях можно по извращаться:
1. Писать в лог таблицу, которая регулярно просматривается демоном в вашем приложении и как то реагирует на появление новых записей.
2. В MS SQL есть штука под названием query notifications, которую можно подружить с JMS.
3. Наверное можно извернуться и отправить http запрос на какой-нибудь ваш сервлет.
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39179857
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGabМне способ 2 НЕ нравится, просто я не нашел лучше. Может кто-то подсказать есть ли что-то более нативное для подобных целей?
этот способ самый простой и эффективный.
RAISE "У клиента .... отсутствуют средства на счёте" из триггера
Копай его.
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39179858
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGabсообщение ловятся, но довольно "некрасивым" способом
подробнее.
Сообщения нужно делить на уровни.
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39180806
RuslanGab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя, с udf не сталкивался - посмотрю. Спасибо.

just_vladimir да реакцию нужна сразу. Клиент сохраняет изменения, которые триггер откатывает как невалидные. Конечно ему надо сообщить в чем дело без отлагательств. JMS - очень хорошая мысль. До ее реализации на сервере у нас еще не дошло, хотя это определенно придется сделать. То что MS SQL с ней дружит для меня новость - классно. Не знаю возможно позже я попробую именно этот метод реализовать. Отправлять же дополнительный запрос - ну наверное это можно сделать рабочим методом но по моим ощущениям это потребует больше "костылей" чем мои потуги с вытягиванием сообщения из эксепшена... Спасибо!

Petro123 RAISE "У клиента .... отсутствуют средства на счёте" из триггера - ну пока как-то так это и работает в тестовом режиме. Сообщения нужно делить на уровни. - вы имеете ввиду уровень эксепшена в самой БД? Это в триггере конечно делается. Я про "некрасивость" имел ввиду что мне упорно не нравится работать через эксепшены в принципе, да еще и приходится брать причину (getClause() если не ошибаюсь), причем ни один раз. Как-то это противит моему эстетическому чувству:)
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39180838
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGab,
есть 2 варианта:
- трёхзвенка + БЛ на аппСервере и там разбираемся с исключалками
- двухзвенка + БЛ в БД.
Логично что разбираются с исключалками возле БЛ.
Т.к. надо предпринимать действия при откате.

RuslanGabЯ про "некрасивость" имел ввиду что мне упорно не нравится работать через эксепшены в принципе
это к врачу....про принципы.
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39180855
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGab Сообщения нужно делить на уровни. - вы имеете ввиду уровень эксепшена в самой БД?
не совсем.
Я говорил шире.
Если у вас JPA и декларативное управление транзакциями, то вам неизбежно нужно меньше проверять в триггерах и больше в напр. спринге
Код: java
1.
@Transactional(propagation=Propagation.REQUIRED, rollbackFor=Exception.class)


Exception.class - обработает ваше исключение.
ЗЫ
Логирование и Сообщения от БД это не ошибки из триггера.
Уровни по слоям и уровни по типам ошибок это обратка от сервера БД к пользователю и техподдержке
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39180858
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGab,
совсем рядом близкая тема
spring operation log
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39180926
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123RuslanGabЯ про "некрасивость" имел ввиду что мне упорно не нравится работать через эксепшены в принципе
это к врачу....про принципы.

Вспомнилось.
А. Сапковский– Старею, видать, – буркнул ведьмак немного погодя. – Принципы наружу вылезли.
– У стариков это бывает. – Мильва с сочувствием глянула на него. – И часто вылезают? Отвар из медуницы, говорят, помогает. И вправлять надо. А пока – клади себе подушечку под зад.
– Принципы, – серьёзно пояснил Лютик, – не геморройные шишки. Ты путаешь понятия.
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39180935
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ про "некрасивость" имел ввиду что мне упорно не нравится работать через эксепшены в принципе
с этим трудно спорить..
но в аксессе есть такой метод, широко используемый и очень облегчающий код
перед тем местом где возможно "исключение" назначается обработчик, и в нем делается , что нужно.
правда в аксе есть возможность вернуться в точку возникновения "исключения " и продолжить выполнение, как будто исключения не было.
очень помогает , когда требуется куча проверок для недопустимости исключения.
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39180982
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяправда в аксе есть возможность вернуться в точку возникновения "исключения " и продолжить выполнение, как будто исключения не было.
неужели goto?
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39180989
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGab,
все просто, сервер бд выдает стандартным средством ошибку с сообщением, по connectivity она летит клиенту СУБД, который есть твой Glassfish, далее в его воле делать с этим сообщением что угодно - в частности, послать сообщение своему клиенту.
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39180991
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
если не ошибаюсь
on error goto
Nebo может поправить
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39181011
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
за goto в JPA тыщу баксов не платят)).
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39181018
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадя,
за goto в JPA тыщу баксов не платят)).
если ты не владеешь темой - не лезь
on error goto и простой goto отличаются как небо и земля.
on error goto это равносильно try catсh в java, только с фишкой - возарата в точку возникновения этого исключения и продолжения работы с исправленными переменными., а не просто пропуск кода , как в java
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39181025
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGabМне способ 2 НЕ нравится, просто я не нашел лучше. Может кто-то подсказать есть ли что-то более нативное для подобных целей?

Не совсем понятно что автор хочет? Что такое более нативное?
Не нравится формат стека исключений? Это фикситься своим пользовательким
исключением и его обработкой.

Может быть автор нам нарисует ИНТЕРФЕЙС своей мечты и пояснит как он
хотел-бы получать своё сообщение и в каком виде.

В противном случае получается что автор просто капризничает
и хочет птичьего молока...
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39181026
RuslanGab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, spring не используем - варианты с его аннотациями отпадают. Правильно ли я понимаю что так или иначе мне надо на уровне БЛ разбираться с исключениями, т.е. все же ничего адекватнее подъема исключения в самой БД (которое я перехватил на сервере) параллельно с откатом транзакции не имеется (даже если начать теоретически смотреть на Spring и AOP - все же они опять таки будут ловить это же самое исключение но пусть изящнее и проще)!? Тогда выходит что все то же и так же - я триггером откатываю транзакцию и поднимаю исключение - на сервере его ловлю (что мне кажется не оптимальным) и получаю пройдя через несколько "порождающих" исключений таки некое сообщение (или код - не суть), которое так или иначе уже шлю клиенту. Это до чего я сумел доскрипеть и что мне не понравилось (ну Ок - пусть мои сомнения живут и дальше в моей мятущейся и ищущей совершенства душе). Принципиально лучше ничего не существует? Нет библиотек которые могли бы нормально "обмениваться сообщениями" с базой и соответствующих методов "отправки сообщений" в самой БД? Мне идея подружить query notifications с JMS от уважаемого just_vladimir понравилась - возможно получится это реализовать, но не хочется лезть пока JMS еще вообще не заведена...

MasterZiv " сервер бд выдает стандартным средством ошибку с сообщением, по connectivity она летит клиенту СУБД, который есть твой Glassfish ". Так кто этот таинственный "стандартное средство"? У меня весь сыр-бор начался с его поиска и ненахождения. Я тут и пытаюсь узнать есть ли он вообще в природе. Есть?

П.С.: извиняюсь если я не очень ясно выражаюсь или что-то понимаю не до конца верно - опыта у меня не так много я еще джун, отчаянно тыркающийся в попытках дорасти до мидла:( Всем еще раз спасибо!
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39181028
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGab,
если ты можешь получит сообщение в рыбе, какие проблемы с рассылкой? и что за клиенты десктоп, веб?
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39181036
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGabМожет кто-то подсказать есть ли что-то более нативное для подобных целей?
Вариант 1:
1. https://en.wikipedia.org/wiki/Microsoft_Message_Queuing
2. https://support.microsoft.com/en-us/kb/555070
3. https://javamsmq.codeplex.com/ или http://msmqjava.codeplex.com/

Вариант 2:
Можно написать CLR-хранимку ( http://djekmusic.blogspot.com/2012/06/sql-clr-microsoft-sql-server-2008.html] SQLCLR ), например, на C# (профит: доступны возможности .NET Framework)
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39181070
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ключевое слово - дорасти до мидла.
Тогда:
- искать не нативное, а общее средство для всех бд.
- понять что такое декларативное управление транзакциями и обработка ошибок.
Потом уже выбирать по вкусу.
- привести свой код, т.к. форум программистов а не поиска птичьего молока, как здорово написал выше мембер).
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39181072
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Никому эта фишка не помогла. Вспоминаю как страшный сон.
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39182011
RuslanGab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВАДЯ, да могу получить сообщение на сервере и дальше отправить клиенту. Просто то как я это делаю по-моему костыли, оттого и пытаюсь найти что-то более нативное.

Usman спасибо. Это интересно, но по-моему куда менее оптимально чем работа через эксепшены в данном случае. Нет!?

Petro123, матчасть подтягивать хочу, пытаюсь делать и буду и дальше пытаться! :)

Код:
еще раз о том что сие есть: Сервер - GlassFish. БД SQL Server. Клиент (хотя это тут не важно конечно) - десктопное приложение на JavaFX.
1. Вот что делает триггер (не "функциональные" части я опуская чтобы не засорять тут все рулонами кодов):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
...
    -- ===================  Statements for trigger  ======================
    if 
      ... AND ...
    OR 
      ... AND 
    -- ====================== If conditions met ==========================
    BEGIN
      ROLLBACK TRAN                                                                         -- Rollback transaktion
      PRINT 'TRIGGER_TestCheckKondition: rollback the transaktion'            -- Message text (показывается при работе с БД!)
      RAISERROR ('TRIGGER_TestCheckKondition: rollback the transaktion',   -- Error message text (Его я получаю на сервере)
                 16,                                                                               -- Error severity
                 16)                                                                               -- Error state
    END
END


2. Вот как я ловлю это на сервере (опять же выдержки):
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public abstract class AbstractFacade<T> {

    private EntityManager em;
    private final Class<T> entityClass;

    public T edit(T entity) {
        try {
            T obj = em.merge(entity);  
            em.flush();                            //Чтобы порождаемое триггером исключение возникло тут
            return obj;
        } catch (IllegalArgumentException e) {
            // if instance is not an entity or is a removed entity
            LOG.error(e.getMessage());
            return null;           
        } catch (PersistenceException e) {  //Вот он - костыль:(((
                                               //DatabaseException -> SQLServerException -> exception триггера
            String triggerException = e.getCause().getCause().getLocalizedMessage();    
            System.out.println("GOT TRIGGER EXCEPTION: " + triggerException);
            return null;
        }
    }
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39182040
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGabЭто интересно, но по-моему куда менее оптимально чем работа через эксепшены в данном случае. Нет!?Чисто для данного случая - да - это слишком избыточно. И Вам достаточно сгенерировать исключение.
Предложенные мною варианты - оптимально подходят для долгоиграющих процессов, которые необходимо выполнять фоново/асинхронно.
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39182186
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGab,
У тебя выхолощеный пример который теряет смысл.
- после try т.е. перехват исключения делают для бизнес логики. Т.к. в логи можно отправить только стек с кдом ошибки или именем класса райзе.
- если вся бл триггерах и бд, то вообще орм jpa и аппСервер не нужен. Исключение подымется до клиента десктопного.
- из бд не слать никаких print и info сообщений.
Только ошибки фатальные.
Imho
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39182214
RuslanGab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Usman понял спасибо!

Petro123:
1. отсылку сообщений можно убрать это не проблема. Я правда не понимаю чем это вредит, ведь на сервер они не приходят. По моему разумению это просто на тот случай если кто-то вручную поработать с БД захочет - с целью дать понять в чем дело.
2. "если вся бл триггерах и бд" - нет в БД только триггеры для проверки целостности данных. Основная логика уже на клиенах. Тут в примере просто сам сервер получает сообщение - отправить его клиенту (вместо null) это уже не проблема. Мне просто как раз и не нравится именно то место где я "докапываюсь" до сообщения от триггера...
3. Спасибо что тратите на меня столько времени:)
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39182353
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGab,
1. Может ты не понял, я как раз говорил зачем эти строки (из за которых сыр бор)
Код: java
1.
2.
            String triggerException = e.getCause().getCause().getLocalizedMessage();    
            System.out.println("GOT TRIGGER EXCEPTION: " + triggerException);


если логи, то они не нужны. Если ошибка пользователю, то надо\ можно по другому
2.
RuslanGabтриггеры для проверки целостности данных. Основная логика уже на клиенах.
тогда выше вам говорили, а вы соменвались: "Ошибка из триггера будет очень редко" - БЛ их не допустит.
RuslanGabТут в примере просто сам сервер получает сообщение - отправить его клиенту (вместо null) это уже не проблема. Мне просто как раз и не нравится именно то место где я "докапываюсь" до сообщения от триггера...
говорите яснее "сам сервер" - это и аппСервер и БД)))
...
С учётом выше сказанного нам непонятно, что вы хотите).
У программиста логика должна быть на 5 (с)
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39182414
RuslanGab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123
1. Это конечно не "рабочее" решение. То что тут кидается на вывод в консоль - чисто для меня увидеть что да мол вот я это получил. Клиенту будет отправляться вместо null например JSON объект, в котором будет лежать сообщение (или его код), но там уже разные варианты как передать и тут как раз вопросов пока вроде нет.
2. Cервер - GlassFish. Я на нем хочу получить сообщение от триггера БД (что и делаю своим корявым способом), чтобы далее донести клиенту почему то что он хочет сохранить мы сохранять нифига не будем - ради этого весь сырбор. Касательно "Ошибка из триггера будет очень редко" я не согласен - будет столько сколько попыток будет сохранить неверные данные. Да хоть бы и редко - я хочу чтобы это работало! :) Как раз интересно иметь триггер который будет делать работу и на клиенте раз оно уже делается триггером не думать снова о проверках при сохранении. Я хочу просто получать ошибки уже из базы для конкретно этих случаев (проверяемых триггерами). Вот и пытаюсь найти универсальное и правильное что-то.
возвращаясь к моему вопросу
авторто что проверять можно на клиенте перед сохранением понятно. Как раз и хотелось бы "из спортивного интереса" попробовать получить универсальное решение со стороны самой базы чтобы потом уже с увеличением количества триггеров (а оно в небольшой степени будет в любом случае) не думать ни о чем.
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39182468
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGabКасательно "Ошибка из триггера будет очень редко" я не согласен - будет столько сколько попыток будет сохранить неверные данные.
- зависит от БЛ. Приведи БЛ, и мы сможем сказать как ошибку исключить малой кровью. Это закон веба - минимальные пересечения рессурсов.
RuslanGabДа хоть бы и редко - я хочу чтобы это работало! :)
оно работает - наверх идёт райзо до перехвата вами try
RuslanGabКак раз интересно иметь триггер который будет делать работу и на клиенте раз оно уже делается триггером не думать снова о проверках при сохранении.
валидация данных разная бывает. Опять пример нужен.
RuslanGabЯ хочу просто получать ошибки уже из базы для конкретно этих случаев (проверяемых триггерами). Вот и пытаюсь найти универсальное и правильное что-то.
возвращаясь к моему вопросу
Ещё раз!
- триггер выдал ошибку (хотите номер, хотите строку)
- вы её перехватили?
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39182472
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGabКак раз интересно иметь триггер который будет делать работу и на клиенте раз оно уже делается триггером не думать снова о проверках при сохранении.
у меня проект одни Oracl + APEX тонкий клиент.
Я вообще не перехватываю ошибку из оракла, как приводил пример выше.
У юзверя только 3 буквы впереди непонятные ORA-233434.
А далее понятный текст ошибки.
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39182474
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
окапечатка:
у меня проект одни один ))
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39182490
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё совет - не ставь try так дальше и выше по стеку, насколько возможно.
Если линейка\платформа умеет, то на клиенте будет JS - alert(текст ошибки).
Т.к. один поток и одна транзакция.
Удачи!
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39183154
RuslanGab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

зависит от БЛ. Приведи БЛ, и мы сможем сказать как ошибку исключить малой кровью - да там все просто. Это клиент на JavaFX - данные, представленные в GUI, скажем изменяются и сохраняются (на GlassFish через rest летит сохраняемый объект). В этом месте и показывать особо нечего:( Далее триггер в одной из таблиц при сохранении в ней данных уже смотрит условия (опять же могут быть разные триггеры и условия для разных таблиц) и сохраняет все ЛИБО откатывает транзакцию (т.е. сам откат в JPA делать не надо - я посмотрел про декларативные транзакции по вашему совету, но это не суть моего вопроса). Тут все очевидно и понятно, НО при откате естественно дать клиенту знать что мол "нееее: ты мне фигню послал так что не шали тут". Я могу эту проверку сделать на клиенте еще до попытки сохранения и ничего и не пытаться сохранить это вообще не вопрос, но тогда проверки придется делать в разных местах для разных таблиц и кроме того скажем админ напрямую сможет фигню в базу загнать (коли триггер убрать вообще). Мне подумалось что коли триггер таки с этой работой справляется уже то нефиг дублировать функции а пусть он и дальше это делает, а мы от него получаем сообщения. Причем хотелось чтобы было универсально и в одном месте все ловилось от всех возможных триггеров. Вот и все. В целом сделал так что оно фурычит, но мне просто не понравилось что я поднимаю исключение в БД и ловлю его в итоге через кучу других исключений - оттого пошел на форум за советом мож что рациональнее и проще в природе имеется.

оно работает - наверх идёт райзо до перехвата вами try - таки да! Вопрос и есть в том нормально ли это что я на БД поднимаю исключение и ловлю его через кучу других.

Petro123Ещё раз!
- триггер выдал ошибку (хотите номер, хотите строку)
- вы её перехватили?
да.

Все. Понимаю что задолбал. В итоге наверное пока остановлюсь на том что есть - оно все же работает. Когда будет БЛ с JMS горю желанием попробовать все это задружить глядишь выйдет то что мне таки понравится.

Еще раз всем спасибо!
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39183379
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGab,
Я не вижу зачем тут jms.
Покажи большую кучу. Про кучу разговора еще не было)))
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39183697
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGab,

а попробуйте использовать сервер ActiveMQ и JMS
Может получится посылать сообщение из базы на этот сервер.
Ну а дальше дело техники. Вроде так)
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39183711
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

авторесли ты не владеешь темой - не лезь

Да!!!!
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39183712
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

авторon error goto это равносильно try catсh в java, только с фишкой - возарата в точку возникновения этого исключения и продолжения работы с исправленными переменными., а не просто пропуск кода , как в java

Да!
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39183718
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MS Access - гениальный продукт в своём роде.
...
Рейтинг: 0 / 0
Как на сервере получать сообщения от БД?
    #39183729
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGab,

ActiveMQ и JMS
SQL Server

Всё можете охватить в рамках одной глобальной транзакции JTA.
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Как на сервере получать сообщения от БД?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]