|
XML процессор
|
|||
---|---|---|---|
#18+
Доброго времени суток. Кто-то имеет опыт использования XML-функциональности в 11-м сервере? А то у нас как-то не получается... Я тут подклеил примерчик - .NET программка и хранимая процедурка. Суть в том, что при запуске 100 параллельных нитей, время выполнения функции existsnode возрастает более, чем на 30 секунд, а программа получает ошибку: ERROR [HY000] [Informix .NET provider][Informix]Function (existsnode) Exception received for ICU memory allocation. В суппорт я, конечно, обратился, но они как-то не торопятся совсем... Я вот думаю, может есть какая-нибудь альтернатива? Ну, или блейд работающий (даже если и платный), или самодельное что-то, но тоже работающее... С уважением, Л. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 16:00 |
|
XML процессор
|
|||
---|---|---|---|
#18+
Leonid Vorontsov, Я использовал XSLT-функции xsltransformasclob/xsltransform для трансформации XML, особых проблем не было. Мало того, приятно удивила скорость и простота работы непосредственно самого XSLT-движка. Что касается XML-функций, то они мне показались какими-то слишком медленными. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 17:51 |
|
XML процессор
|
|||
---|---|---|---|
#18+
Leonid Vorontsov, Если JOHN SMITH имеет к Вам какое-то отношение, то там ошибка в SPL-процедуре в строке Код: sql 1.
Функция extractvalue возвращает lvarchar, которое процедурка пытается привести к типу INT Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 13:09 |
|
XML процессор
|
|||
---|---|---|---|
#18+
Leonid Vorontsov, И еще неплохо было бы посмотреть onstat -g glo для начала ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 13:11 |
|
XML процессор
|
|||
---|---|---|---|
#18+
Имеет: Код: sql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 13:40 |
|
XML процессор
|
|||
---|---|---|---|
#18+
Leonid Vorontsov, Я, конечно, не знаю логики Вашего приложения, но посоветовал бы использовать таки XSLT вместо XML-функций. Надежнее и быстрее. Ваш пример я бы переделал немного. Код: sql 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.
На виртуалке SUSE c 512мБ памяти и одним процессором время выполнения менее 1 сек ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 13:55 |
|
XML процессор
|
|||
---|---|---|---|
#18+
Хорошо, поменяем: Код: plaintext
на: Код: plaintext
Так будет нормально? Но результат тот же... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 14:34 |
|
XML процессор
|
|||
---|---|---|---|
#18+
Leonid VorontsovХорошо, поменяем: Код: plaintext
на: Код: plaintext
Так будет нормально? Но результат тот же... Ну, во-первых, результирующий сет данных в Informix не может превышать 32к, поэтому LVARCHAR(32000) не совсем нормально. Если Вы будете использовать эту функцию в селекте вкупе с другими значениями, то размера сета может не хватить. А во-вторых, непонятна цель программы, что Вы хотите получить в конечном итоге? Если Вы хотите, чтобы она заработала именно в таком виде, в котором Вы ее разработали, без изменений, тогда, боюсь, что поможет только техсаппорт. Ошибка возникает на сервере или на клиенте? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 14:58 |
|
XML процессор
|
|||
---|---|---|---|
#18+
Цель наша проста - по заданному XPATH получить конкретное значение. Но при нескольких, одновременно работающих, клиентах, время от времени получается упомянутая ошибка. То, что я здесь привёл в самом начале - это только пример для демонстрации проблемы. А ошибка, как я понимаю, возникает на сервере, но возвращается клиенту. Как-то так... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 15:36 |
|
XML процессор
|
|||
---|---|---|---|
#18+
Leonid VorontsovЦель наша проста - по заданному XPATH получить конкретное значение. Но при нескольких, одновременно работающих, клиентах, время от времени получается упомянутая ошибка. То, что я здесь привёл в самом начале - это только пример для демонстрации проблемы. А ошибка, как я понимаю, возникает на сервере, но возвращается клиенту. Как-то так... Попробуйте отловить ошибку: onmode -I <iserrno> [<session ID>] ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 15:51 |
|
XML процессор
|
|||
---|---|---|---|
#18+
Leonid VorontsovЦель наша проста - по заданному XPATH получить конкретное значение. Но при нескольких, одновременно работающих, клиентах, время от времени получается упомянутая ошибка. То, что я здесь привёл в самом начале - это только пример для демонстрации проблемы... Я не стал использовать Вашу SQL-процедуру в качестве теста, а составил свою (текст см. чуть выше). Она выполняет ту же самую задачу - по заданному XPATH получить конкретное значение. На виртуальной SuSE 512 мБ памяти, 1 процессор, IDS 11.70.FC7 скрипт Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 16:31 |
|
XML процессор
|
|||
---|---|---|---|
#18+
авторonmode -I <iserrno> Приложил (1/3). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2014, 14:27 |
|
XML процессор
|
|||
---|---|---|---|
#18+
Leonid VorontsovПриложил (1/3). Честно, не смог распаковать :( ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2014, 18:30 |
|
XML процессор
|
|||
---|---|---|---|
#18+
Я запаковывал вот этим. Должно распаковать из 3-х af.a* в один обычный af.zip командой: arj x -v af ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2014, 11:06 |
|
XML процессор
|
|||
---|---|---|---|
#18+
Leonid Vorontsov, Да, спасибо, Ваш архив распаковал. Интересен был стек во время эксепшна, но он мало чего показал. С памятью у Вас все нормально. Есть две сессии с ошибкой -8354. Ошибка возникает только при выполнении SQL: Код: sql 1.
Я не силен в XML, но по-моему XPATH-выражение указывает на несуществующую ноду в XML. Возможно, в Вашей версии присутствует баг при обработке такой ситуации. В любом случае, мне кажется сначала надо проверить на существование узла и только потом пытаться найти его значение. Это в качестве workaround. Далее. Хоть это и некритично, но количество виртуальных процессоров idsxmlvp=10 явно завышено. Смысла нет делать больше чем есть физических процессоров в наличии, просто будут простаивать и занимать память, что, собственно и видно из onstat -g glo. И еще, меня несколько напрягает дата последнего архивирования. Даже для тестовых систем 3 месяца без архивов - это многовато:) Возможно, у кого-то еще могут появиться замечания по Вашей системе ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2014, 13:23 |
|
XML процессор
|
|||
---|---|---|---|
#18+
авторсначала надо проверить на существование узла Да так и делаем... авторidsxmlvp=10 завышено Это был просто эксперимент (никак не влияет, кстати). Но спасибо за комментарий. автор3 месяца без архивов У меня несколько одинаковых серверов. Если с одним что-то - просто переключаемся на другой... Теперь по теме. Постепенно выяснилось, что предложенного мной репро-сценария недостаточно (я тоже поверил на слово). Проблема возникает при ещё каких-то дополнительных условиях. Правда, при каких именно - пока не непонятно. Но возникает стабильно. Суппорт подключили, но пока безрезультатно. Что делать дальше, пока не знаю. Вот, как-то так... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2014, 14:47 |
|
|
start [/forum/topic.php?fid=44&msg=38832224&tid=1606908]: |
0ms |
get settings: |
17ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
35ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
333ms |
get tp. blocked users: |
1ms |
others: | 410ms |
total: | 807ms |
0 / 0 |