Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Доступ к глобалу из COS по сети.
|
|||
|---|---|---|---|
|
#18+
Возникла ситуация, когда потребовалось реализовать сие без ECP. Расширенный синтаксис (с указанием сетевого пути к глобалу) работает неустойчиво, часто возвращает ошибку, что глобал занят (что, впрочем, логично). Использование mdapi (c сайта karataev.nm.ru) позволило решить эту проблему, но работает уж очень медленно. Оценка времени выполнения кода показала странные результаты. больше всего времени (и очень много по сравнению с другими операциями) занимает первый вызов READ после последнего WRITE. Причём оценка времени выполнения кода самого mdapi показала, что там задержек между считыванием команды и выдачей ответа нет. Вопросы такие. 1. откуда могла взяться задержка и можно ли её победить? 2. Есть ли альтернативные методы получения содержимого глобала по сети без использования ECP? Код процедуры, получающей содержимое узла глобала по сети при помощи mdapi, приведён ниже. Код: 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. Виктор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2009, 23:21 |
|
||
|
Доступ к глобалу из COS по сети.
|
|||
|---|---|---|---|
|
#18+
Очень странный протокол: Код: plaintext 1. 2. 3. 4. 5. Альтернативы ECP с аналогичным функционалом и быстродействием, ИМХО, нет, но нечто подобное можно реализовать с помощью %Net.RemoteConnection, написав класс с методом "выдать содержимое узла глобала по имени" и вызывая его удаленно. Если еще немного подумать :), то станет ясно, что быстрой работы и тут не достичь, т.к. "поузловая" передача глобала заведомо медленнее поблочной. Ср., например, DDP и ECP. Возможно, лучше передавать по несколько узлов за раз и локально их "кэшировать", или в фоне передавать весь глобал по мере его формирования. Последнее возможно с помощью стандартного средства - Shadowing. Подойдет ли что-то из этого, конечно, сильно зависит от задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2009, 12:11 |
|
||
|
Доступ к глобалу из COS по сети.
|
|||
|---|---|---|---|
|
#18+
Использую Activate на клиенте. На сервере использую COS, функцию Query (не самый быстрый способ ...) Передаю удаленному клиенту порциями по 1000 узлов (Одномерный масив строк). Записываю данные на удаленной клиентской машине в простой текстовый файл (18 Gb) за 1,5 мин .... Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2009, 17:30 |
|
||
|
Доступ к глобалу из COS по сети.
|
|||
|---|---|---|---|
|
#18+
Забыл уточнить. Роль сервера - машина Pentium 4, 2.4 GHz, RAM 512 MB (MSM) Думаю на приличной Cache' машине, на много быстрее ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2009, 17:41 |
|
||
|
Доступ к глобалу из COS по сети.
|
|||
|---|---|---|---|
|
#18+
Valeriu18 Gb за 1,5 мин Не верю (с) Код: plaintext 1. Но по-любому, если надо передать весь глобал, то сделать это можно весьма быстро. Завтра померю на своем аналогичном софте (удаленный %GOF/%GIF через Factory). У топикстартера же, если я правильно понял, несколько иная задача: выборочно передавать отдельные узлы глобалов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2009, 18:15 |
|
||
|
Доступ к глобалу из COS по сети.
|
|||
|---|---|---|---|
|
#18+
К стати, как раз сеть у меня 100 Mbit/s (100BaseT) ... Проверил еще раз, результат такой-же. Вот код клиентского приложения на VB: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 08:56 |
|
||
|
Доступ к глобалу из COS по сети.
|
|||
|---|---|---|---|
|
#18+
Прошу меня извинить, я вчера явно заработался ... Явно ошибка ! Не 18Gb а 18Mgb Еще раз простите за ошибку ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 10:22 |
|
||
|
Доступ к глобалу из COS по сети.
|
|||
|---|---|---|---|
|
#18+
А вот и результаты экспорта в блочном режиме (Remote %GOF), если кому интересно. На сервере установлена Cache for UNIX (Red Hat Enterprise Linux for x86-64) 2008.1 и мой пакет %z.GG - Remote %GOF/%GIF, позволяющий выполнять операции блочного экспорта/импорта глобалов на удаленные клиенты. Клиент может быть написан на чем угодно, лишь бы поддерживалась работа с Cache Objects. Что делать с результатом экспорта, личное дело клиента. Если просто копировать его в файл, получается корректный файл блочного формата Cache (формата %GOF), что, в общем-то, не удивительно :) Поддерживаются длинные строки в данных (до 3.6MB), если позволяет версия Cache и конфигурация сервера. Работает несколько быстрее, чем сохранение в локальной папке на сервере с последующим копированием на клиент, и в десятки раз быстрее аналогов, работающих на уровне узлов глобалов. В конкретных условиях: Сервер: CPU определяется как 2 * Dual-Core AMD Opteron(tm) Processor 2218, RAM 16GB Клиент: Intel P4/3000MHz, RAM 1GB Сеть: 100BaseT были получены результаты: cкорость экспорта: 6.7MB/s, cкорость импорта: 4.9MB/s. В качестве примера приведу клиентский код экспорта глобалов с удаленного сервера в локальный gof-файл, написанный на JavaScript (для Сервера сценариев Windows v. 5.6). Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 14:09 |
|
||
|
|

start [/forum/topic.php?fid=39&tid=1558376]: |
0ms |
get settings: |
11ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
129ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 413ms |

| 0 / 0 |
