INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Денисов Александр | Аналитик производительности БД | ГК Софтпоинт

«Неочевидные проблемы производительности: важность системного подхода при анализе»

• Распределенные взаимоблокировки: в чем опасность, как диагностировать и что делать дальше? «Распределенные блокировки», «синхронизация транзакций», «распределенные системы» — обычно это словосочетания, характерные для крупных систем, где сотни пользователей подключаются к геораспределенным репликам, а аналитики ищут вдохновения в измерениях олап-кубов. В секторе Small &Medium Business другие проблемы. Но даже если у вас все пользователи работают с одной-единственной клиент-серверной базой, вы все равно можете столкнуться с распределенными взаимоблокировками. Хуже того, из-за сложности диагностики программисты и администраторы могут не видеть, насколько серьезна ситуация. Мы разберем механику возникновения таких взаимоблокировок, способы диагностики и исправления ситуации. • «Железом» не прикрыть неоптимальный код. Когда аппаратное расширение уже не помогает. «Железом» не прикрыть неоптимальный код. Когда аппаратное расширение уже не помогает. Многие организации считают, что в случае острой необходимости они всегда могут «откупиться» от плохого кода вложившись в более мощную «железку» — дорого, зато быстро. Но из любого правила есть исключения. Мы разберем ситуацию, когда еще до закупки нового оборудования стало понятно, что это никак не ускорит систему.

"Буфер обмена" через web-сервис

Обмен - Интеграция с WEB

8
Перенос объектов (табличных частей, элементов справочников и т.д.) из одной конфигурации в другую при помощи web-сервисов.

В типовых конфигурациях был добавлен удобный функционал копирования табличной части между документами. Недостаток данного механизма в том, что применять его можно внутри только одной конфигурации. Возникла необходимость переноса объектов / табличных частей из одного документа в другой, находящихся в разных конфигурациях. Притом, перенос необходим был не просто между разными конфигурациями, а между конфигурациями, находящимися на разных серверах, пользователи которых находятся на разных терминалах. 

В качестве решения было предложено реализовать "буфер обмена" с помощью web-сервиса. Не секрет, что можно настроить синхронизацию данных (средствами БСП). Но что если конфигурация достаточно старая или самописная, и в ней нет БСП? К тому же настройка БСП довольно хлопотное занятие (Настройка регистрации, создание правил конвертации и т.д.). 

Идея решения заключается в том, что данные сохраняются не в хранилище значения текущей конфигурации, а сериализуется и хранится в дополнительной конфигурации "Сервер буфера обмена". Эта дополнительная конфигурация имеет методы web-сервиса для добавления, получения и удаления данных:

getData(id, erase);
Возвращает данные типа строка. Данные которые были ранее скопированы (добавлены) в виде строки.
    • id, строка – ИД записи для считывания;
    • erase,  булево – признак необходимости удаления записи после передачи

getLastData (erase);
Возвращает данные типа строка. Самые последние данные, которые были ранее скопированы (добавлены) в виде строки.
    • erase,  булево – признак необходимости удаления записи после передачи

putData(dataType, data,  dataName, id);
Возвращает значение типа строка (id сохранения данных). Помещает данные для хранения.
    • dataType, строка – Тип данных хранения (см. тестовые конфигурации);
    • data,  строка – сохраняемые данные;
    • dataName, строка – представление хранимых данных;
    • id, строка – необязательный – присвоить собственный id для хранения.

getStoreList ();
Возвращает данные типа строка. Сериализованное значение типа «Таблица значений». См. тестовые конфигурации. Получает текущий состав сохраненных данных.

eraseData(id);
Возвращает данные типа булево (успех). Удаляет запись по id.
    • id, строка – ИД записи для удаления;

eraseLastData ();
Возвращает данные типа булево (успех). Удаляет самую последнюю добавленную запись.

Во вложении 2-е БД клиенты для проверки и БД с сервисом. В doc файле описана установка.

Может кому-нибудь пригодится.

Тестировалось на платформа 1С 8.3.9.

8

Скачать файлы

Наименование Файл Версия Размер
"Буфер обмена" через web-сервис:
.rar 615,35Kb
26.03.18
3
.rar 615,35Kb 3 Скачать

См. также

Комментарии
Сортировка: Древо
1. Gizmo_esu 50 27.03.18 00:47 Сейчас в теме
Интересно.
Пользователь видит только свой буфер?
Т.к. буфер собирает их нескольких баз, то мне кажется надо больше инфы для выбора объекта вставки - хотя бы видеть из какой базы лежит и, возможно, предварительный просмотр самих вставляемых данных...
2. eugenevk 111 27.03.18 07:49 Сейчас в теме
(1) Любое описание данных можно сформировать для буфера. В методе putData - 3 параметр. Для примера упростил.
Оставьте свое сообщение