Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
Еще вот такой вопрос по Мессидж Брокеру от новичка: У меня на входе есть хмл-сообщение, в котором множество одноименных узлов. Мне нужно сделать из этого сообщения несколько последовательных собщений, по одному сообщению на каждый узел. Каким нодом Мессидж Брокера воспользоваться? Наверняка можно реализовать это вручную через Compute или JavaCompute. Но нет ли чего-то уже готового, чтобы можно было "одним движением руки"? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 19:10 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
Так просто не получится, хотя, можете воспользоваться дополнительным продуктом WebSphere Transformation Extender. Могу посоветовать воспользоваться Compute Node. Для выборки из одноименных элементов следует использовать конструкции SELECT. Для того, чтобы сообщение не терялось при первом же propagate, следует в цикле писать PROPAGATE DELETE NONE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 21:11 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
в 6.2 не было, доки я все прочитал в 7 не знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 21:11 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
BRK01Так просто не получится, хотя, можете воспользоваться дополнительным продуктом WebSphere Transformation Extender. Могу посоветовать воспользоваться Compute Node. Для выборки из одноименных элементов следует использовать конструкции SELECT. Для того, чтобы сообщение не терялось при первом же propagate, следует в цикле писать PROPAGATE DELETE NONE. да не, там вот так, вот цикл while это выборка однотиных элементов, это я развлекался Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 21:16 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
толко тут каждый узел xml сообщения вставляется в базу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 21:19 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
Новый Годтолко тут каждый узел xml сообщения вставляется в базу Всем спасибо, Особенно Новому Году :). Раз легкого пути нет, сделаю на Джава Компьют, потому шта ESQL пока не заню, а надо быстро (как всегда). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2010, 08:54 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
А вот кстати в связи с ДжаваКомпьютом возник еще вопрос: в какой файл при работе Message Borker'а пишется результат из system.out.println()? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2010, 09:33 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
Tyo, 100%-но не подскажу. Там нужно ловить эти сообщения в Java Console. Для этого нужны дополнительные действия в зависимости от операционки. Лучше используйте класс MbService для записи соообщений в стандартный лог. http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r1m0/topic/com.ibm.etools.mft.plugin.doc/com/ibm/broker/plugin/MbService.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2010, 10:30 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
Вот спасибо. А то я уже извратился, вызываю батник через процесс, передаю ему текст через параметр, и батником пишу в свой собственный лог. Правой рукой левое ухо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2010, 11:34 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
ЗЫ. Правильно я понимаю, что стандартный лог -- это в винде то что видно через МойКомпьютер -> Просмотр событий -> Приложение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2010, 11:38 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
Tyo, На AIX вот сюда пишет: /var/mqsi/components/WBRK/6eb0cad6-2601-0000-0080-f748ae29e09c/ WBRK - имя брокера 6eb0cad6-2601-0000-0080-f748ae29e09c - группа исполнения внутри 2 файла: stdout и stderr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2010, 13:07 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
Vincent VegaTyo, На AIX вот сюда пишет: /var/mqsi/components/WBRK/6eb0cad6-2601-0000-0080-f748ae29e09c/ WBRK - имя брокера 6eb0cad6-2601-0000-0080-f748ae29e09c - группа исполнения внутри 2 файла: stdout и stderr Не уверен в полезности этого знания для меня, у меня тривиальная винда ХР. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2010, 14:36 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
А вот следующая беда, уж извините за назойливость. Из JavaCompute пытаюсь достучаться до БД Оракл: 1. Через mqsi настроил Configurable Service "SIMPLERROUTEDB" и задал оракловый логин/пароль для securityIdentity "mySecurityIdentity". Результат вот такой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 2. Пытаюсь связаться с БД, и в выделенной строке получаю object=null. Правильно я понимаю, что она почему-то не находит это ConfigurableService по имени? Код: plaintext 1. 2. 3. 4. 5. 6. 7. Подскажите плз, что не так? ЗЫ. Сами ConfigurableService и SecurityIdentity, судя по всему, настроены верно. Для проверки я сделал узлы DatabaseRetrieve и DatabaseRoute c простенькой логикой, указал им Data Source Name = SIMPLERROUTEDB -- все работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2010, 15:36 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
Все, виноват, сам разобрался. Слишком буквально воспринял код Винсента Веги на этом же форуме, где он коннектится с использованием user-defined attributes. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2010, 16:17 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
TyoVincent VegaTyo, На AIX вот сюда пишет: /var/mqsi/components/WBRK/6eb0cad6-2601-0000-0080-f748ae29e09c/ WBRK - имя брокера 6eb0cad6-2601-0000-0080-f748ae29e09c - группа исполнения внутри 2 файла: stdout и stderr Не уверен в полезности этого знания для меня, у меня тривиальная винда ХР. Не важно, папка с именем брокера на ней тоже должны быть. Вот например как путь выглядит на винде: C:\Documents and Settings\All Users\Application Data\IBM\MQSI\components\MB7BROKER\03895104-2601-0000-0080-da25f7b09f96 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2010, 20:35 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
Спасибо. Тем временем я не стою на месте ( :) ), и по ходу дела возник следующий вопрос: Как заставить узел FileInput коректно взаимодействовать с файлом, который пишется опрашиваемую в директорию медленно (например, с удаленного ресурса)? То есть ситуация следующая: часть файла уже записалась в директорию опроса, в этот момент у узла FileInput кончился таймаут поллинга, он очнулся, схватил пол-файла и поместил его в очередь. Ессно, ничего хорошего. Есть ли у FileInput какое-то штатные средства предварительно проверять -- дошла ли запись файла до конца? Или надо что-то придумывать самому? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2010, 14:00 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
Данная нода проверяет файлы на лок, если файл занят другим процессом - файл игнорируется. Но есть разные "но", н разных операционках и разные приложения ставят лок по-разному. Советую проверить ;-) Подробнее тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2010, 14:55 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
а чтобы не париться в блокировкой файла, в филе инпут ноде проще поставить маску файла, а тот кто этот файл кладет в директорию, пусть его сначала положит с каким-нибудь безумным именем, а затем переименует так, чтобы этот файл соответствовал маске ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2010, 15:18 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
Новый Года чтобы не париться в блокировкой файла, в филе инпут ноде проще поставить маску файла, а тот кто этот файл кладет в директорию, пусть его сначала положит с каким-нибудь безумным именем, а затем переименует так, чтобы этот файл соответствовал маске Так и сделаю. Придумать безумное имя для нас -- пара пустяков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2010, 17:43 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
Еще один вопрос возник. Если я в ноде JavaCompute делаю апдейт в БД, то как и когда происходит коммит? Согласно документации, писать коммит руками в Java-коде узла JavaCompute нельзя. Это понятно. Тогда я по наивности сделал вот так, надеясь, что коммит произойдет автоматически при закрытии соединения: Код: plaintext 1. 2. 3. 4. 5. 6. Однако тут другая засада: мой workflow построен так, что нод JavaCompute работает циклически, получая по таймауту сообщения от нода TimeoutNotification. Так вот приведенный код срабатывает нормально только один раз, а уже при втором входе на строчке получения connection'а выдает: Код: plaintext А если никаких действий по коммиту не предпринимать, то такое впечатление что транзакция длится вечно (пока не остановить workflow). По крайней мере, измененная запись продолжает оставаться залоченной. Как бы с этим справиться? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2010, 10:03 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
На сколько я помню, соединение тоже закрывать нельзя. Соединение закрывает брокер при завершении обработки потока. И соединение выдает вам опять же брокер, готовое соединение. Коммит происходит скорее всего при завершении обработки потока, чтобы была возможность откатить на любом участке потока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2010, 10:54 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
а можно как-нибудь посмотреть, что за процесс (имя ексешника) держить транзакцию т.е. кто там координатор, т.е выполняет протокол двухфазной фиксации, message broker или queue manager? если queue manager, то наверно получится всех обмануть и сделать коммит. если message broker то не знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2010, 12:50 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
А вот эта строчка -- она не говорит прямо, что в транзакции дб автокоммит? Код: plaintext 1. Правда, опять-таки непонятно, какой момент она считает окончанием транзакции. Явно не Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2010, 13:23 |
|
||
|
Message Broker
|
|||
|---|---|---|---|
|
#18+
кароче читаем http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r1m0/index.jsp?topic=/com.ibm.etools.mft.doc/ac30494_.htm Код: plaintext 1. вот еще http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r1m0/index.jsp?topic=/com.ibm.etools.mft.doc/ah61330_.htm раз там такая бодяга, то вот такой псевдокод: 1 MQCONN, точнее его java аналог, без всяких там фактори, жестко конкретно к queue manager, с опцией какой-то чтобы был thread safe 2 MQCMIT 3 MQBEGIN сойдёт за коммит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2010, 13:36 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=36601675&tid=1602762]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 282ms |
| total: | 426ms |

| 0 / 0 |
