|
УФ: Хранить переменную COM-типа на сервере "глобально"? | ☑ | ||
---|---|---|---|---|
0
seperblunt2
03.04.19
✎
18:11
|
Добрый день.
Обработка юзает подключение к SQL. Что то не пойму где мне нужно это подключение "оставить", чтобы его можно было использовать в разных серверных процедурах? т.е. на кнопарь навесил "подключиться к SQL" - далее серверная процедура формирует это подключение.. на другой кнопарь хочу навесить "выполнить SQL-запрос" - вызываю из нее "Выполнить_SQL_Запрос_НаСервере" - и вот чтобы тут добраться до созданного ранее подключения SQL - его нужно гдето оставить полежать. Вопрос ГДЕ :)? |
|||
1
H A D G E H O G s
03.04.19
✎
18:18
|
В Структуре, помещенной во ВременноеХранилище.
Испортиться через 20 минут, или при перезапуске rphost / переброске пользователя на другой rphost. Поэтому, перед использованием, нужно проверять. |
|||
2
seperblunt2
03.04.19
✎
18:25
|
(1) ух тыж мне.. хотя в целом неплохо...
других вариантов никто не предложит? |
|||
3
VS-1976
03.04.19
✎
18:29
|
(2) В УФ их больше не существует, на сколько я знаю
|
|||
4
seperblunt2
03.04.19
✎
18:30
|
(1) я вот подумал - если у меня будет выполняться длительная процедура на SQL, а в середине этой процедуры Подключение_SQL ВременноеХранилище решит самоликвидироваться - будет неприятно
а каждый раз проверять на месте ли подключение в цикле помещения таблицы на SQL тоже не совсем приятно. хотелось бы что то найти.. |
|||
5
seperblunt2
03.04.19
✎
18:35
|
(1) (4) хотя нет, это я ерунду написал, перед длительной процедурой я же получу уже из хранилища подключение..
НО! проверив обнаружил, что не может он во временное COM поместить. Хоть в структуре, хоть без... |
|||
6
Garykom
гуру
03.04.19
✎
18:43
|
(0) В отдельном вынесенном наружу из 1С веб-сервисе, к которому можно подключаться из любого сеанса 1С.
|
|||
7
seperblunt2
03.04.19
✎
18:57
|
Так то бы полбеды - создавать перед каждой операцией новое подключение (50 мс времени), НО в процессе работы создаются указатели RecordSet, которые точно должны жить между вызовами..
|
|||
8
VS-1976
03.04.19
✎
19:27
|
(7) Если только читать, есть же внешние источники данных в конфигурации, может их попробовать?
|
|||
9
singlych
03.04.19
✎
19:37
|
(1) "Испортиться через 20 минут"
Вроде не должен испортиться, если адрес указать. |
|||
10
PR
03.04.19
✎
19:41
|
Я думаю, что единственно возможный вариант — сделать фоновое задание, в нем уже COM, а потом уже как-то оперировать фоновым заданием
Все остальные варианты, когда серверный вызов закончился, а потом вызвался новый — думаю, что неработоспособны |
|||
11
seperblunt2
03.04.19
✎
19:41
|
(9) увы, хранилище не принимает COM объекты.. только сериализуемые
|
|||
12
PR
03.04.19
✎
19:42
|
(1) Дима, как ты COM в хранилище засунешь, оно же не сериализуется
|
|||
13
seperblunt2
03.04.19
✎
19:43
|
(10) тоже в эту сторону думаю. и тоже кажется, что других методов нет
|
|||
14
Immortal
03.04.19
✎
19:43
|
Почему никто не пишет, что сама по себе затея это адская дурь?
|
|||
15
Immortal
03.04.19
✎
19:43
|
Для подключения к SQL на сервере херова туча методов без хранения COM объекта на сервере
|
|||
16
hhhh
03.04.19
✎
19:44
|
(13) в параметр сеанса тогда пробуй.
|
|||
17
PR
03.04.19
✎
19:46
|
(16) Какой параметр сеанса?
Это COM, его никуда не засунешь в сериализованном виде |
|||
18
seperblunt2
03.04.19
✎
19:46
|
(16) так же не дает засунуть несериализуемое
|
|||
19
seperblunt2
03.04.19
✎
19:46
|
(15) см 7
|
|||
20
seperblunt2
03.04.19
✎
19:46
|
(15) или рассказывай )
|
|||
21
hhhh
03.04.19
✎
19:48
|
(17) зачем в сериализованном?
|
|||
22
hhhh
03.04.19
✎
19:49
|
(18) ну структуру же дает засунуть.
|
|||
23
Immortal
03.04.19
✎
19:50
|
рекомендую подумать про внешние источники данных, временные таблицы и view в MS SQL
|
|||
24
PR
03.04.19
✎
19:51
|
(22) И че и че? Че с этим делать-то потом, как ты его через границу перевозить будешь?
|
|||
25
hhhh
03.04.19
✎
19:55
|
(24) ну, не перевозить через границу.
|
|||
26
Провинциальный 1сник
03.04.19
✎
19:55
|
+(1) А еще можно возвращать из общего модуля с признаком кэширования возвращаемых значений. И те же проблемы - если поменяется рпхост, то будет повторного вычисление ну или через 20 минут, а по усмотрению сервера и раньше, если например памяти не хватает...
|
|||
27
PR
03.04.19
✎
19:56
|
(25) А зачем тогда она нужна?
Как ее передать в новый серверный вызов из предыдущего? Рукалицо |
|||
28
Провинциальный 1сник
03.04.19
✎
19:57
|
(7) "создавать перед каждой операцией новое подключение (50 мс времени)"
А у меня на пару порядков больше получается, если база типовая БП. |
|||
29
H A D G E H O G s
03.04.19
✎
19:57
|
(26) "а по усмотрению сервера и раньше, если например памяти не хватает..." Или даже если хватает. Поэтому отказались от этого и вернулись к ВременномуХрану.
|
|||
30
Провинциальный 1сник
03.04.19
✎
19:58
|
(29) Это ведь тоже костыль, и в какой-то версии сериализация COM-подключения может перестать работать..
|
|||
31
H A D G E H O G s
03.04.19
✎
20:00
|
(30) Да, костыль, но шли годы...
|
|||
32
Провинциальный 1сник
03.04.19
✎
20:09
|
В общем и целом, _документированных_ способов, чтобы хранить между серверными вызовами несериализуемые объекты в управляемом приложении, нет. К сожалению.
Чтобы это было возможно, нужно вводить возможность фиксации рабочего процесса в серверном общем модуле. Скажем, сделать галку "Фиксировать рабочий процесс", чтобы все обращения к этому модулю выполнялись на том рпхосте, к которому сеанс обратился в первый раз, и в этом случае чтобы глобальные переменные модуля сохранялись между вызовами. Но это противоречит идеологии направленности на большие масштабы. |
|||
33
Cyberhawk
03.04.19
✎
21:04
|
Кастую TormozIT в ветку
|
|||
34
TormozIT
гуру
03.04.19
✎
21:50
|
В (1) и (26) уже все сказано
|
|||
35
Immortal
03.04.19
✎
22:09
|
ну то есть про пулы соединений мы даже думать не будем=)
|
|||
36
TormozIT
гуру
04.04.19
✎
10:01
|
(35) Так есть же попытки на инфостарте. Но до высокой универсальности не доведены.
|
|||
37
Garykom
гуру
04.04.19
✎
10:27
|
Не пора ли уже закопать стюуардессу? Откажитесь уже от OLE/COM/ActiveX
|
|||
38
Провинциальный 1сник
04.04.19
✎
11:17
|
(37) "При всём богатстве выбора другой альтернативы нет" (с) реклама 90-х
|
|||
39
H A D G E H O G s
04.04.19
✎
11:34
|
(37) Откажитесь от винды, ибо вся она построена на COM начиная с Vistы.
|
|||
40
Провинциальный 1сник
04.04.19
✎
11:39
|
(39) Да дело скорее не в этом, а в том что 1с не предоставляет иного механизма для обращения к ИБ из сторонней программы, не требующего адаптации подключаемой конфигурации.
|
|||
41
H A D G E H O G s
04.04.19
✎
11:40
|
(40) Других вариантов то и быть не может.
|
|||
43
Провинциальный 1сник
04.04.19
✎
11:42
|
(41) Если речь о подключении из любой программы - то да. Если же речь о подключении из одной базы 1с к другой - то можно придумать интерконнект на уровне прикладной модели.
|
|||
44
H A D G E H O G s
04.04.19
✎
11:44
|
(43) Ну я о подключении из любой программы - даже ms sql ничего кроме COM модели не предлагает.
А между 1С - это да, можно было бы придумать что то более элегантное, чем подгружать 1.5 Гб-а метаданных на каждое COMподключение. |
|||
45
Провинциальный 1сник
04.04.19
✎
11:45
|
(42) Все эти веб-сервисы нельзя считать прозрачным доступом к базе. Это скорее "настройка взаимодействия".
|
|||
46
Провинциальный 1сник
04.04.19
✎
11:52
|
(44) По поводу тормозной загрузки метаданных, тут проблема в том что метаданные хранятся в блобах, которые надо парсить. Если бы хранились в виде нормализованного набора таблиц, всё было бы намного быстрее.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |