powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Программное управление настройками Каше
22 сообщений из 22, страница 1 из 1
Программное управление настройками Каше
    #37593140
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то был "раздобыт" doc-овский документ с небольшим описанием методов, позволяющих делать некие настройки Каше программно. Но теперь сменилось несколько вариантов версий...
Есть ли что-то более новое в этом вопросе? Желательно на русском...

Интересует конкретно следущее:
- Узнать путь в БД, зная имя области
- Создать по указаному пути новую БД
- Включить БД в состав области
- Установить трансляцию неких глобалов в определённую БД

Ну и про другое интересно было бы почитать для т.с. общего развития...

Версия Каше предположительно 2010-е и выше.
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
Cache for Windows (x86-32) 2009.1.3 (Build 704_0_9104) Mon Mar 8 2010 19:31:10 EST
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37593175
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для всего этого используется как и раньше пакет классов Config из %SYS.

для настройки в режиме установки приложения можно воспользоваться классом %Installer

с 2007 ничего вроде не менялось
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37593225
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще можно посмотреть класс SYS.Database в области %SYS
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37593227
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, почитаю...
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37593381
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorс 2007 ничего вроде не менялосьПоменялось, и довольно сильно, т.к. начиная с версии 2008.2 (или 2009.1 ?), изменилась структура классов конфигурации. Монолитный класс Config.Configuration заменен пакетом Config.
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37607141
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovМонолитный класс Config.Configuration заменен пакетом Config.
Вот просматриваю его... И пытаюсь решить свою задачку.

Вот например как посмотреть данные по существующей области
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
%SYS>s Status=##Class(Config.Namespaces).Get("lns",.Properties)
 
%SYS>zw Properties
Properties("Globals")="LNS"
Properties("Library")="CACHELIB"
Properties("Routines")="LNS"
Properties("SysGlobals")="CACHESYS"
Properties("SysRoutines")="CACHESYS"
Properties("TempGlobals")="CACHETEMP"



Вот данные по уже существующей БД в той области...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
%SYS>s Status=##Class(Config.Databases).Get("lns",.Properties)
 
%SYS>zw Properties
Properties("ClusterMountMode")=0
Properties("Directory")="C:\BD\2009\LNS\"
Properties("MountAtStartup")=0
Properties("MountRequired")=0
Properties("Server")=""
Properties("StreamLocation")=""



Вот так можно создать новую БД
Код: vbnet
1.
2.
3.
%SYS>s Name="test"
%SYS>s Properties("Directory")="C:\BD\2009\LNS\test\"
%SYS>s Status=##Class(Config.Databases).Create(Name,.Properties)



А вот как теперь новую БД "ввести в состав", уже существующей, области?
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37607145
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел и как мапить глобалы...

Код: vbnet
1.
2.
3.
4.
%SYS>s Namespace="lns"
%SYS>s Name="tmp.testD"
%SYS>s Properties("Database")="test"
%SYS>s Status=##Class(Config.MapGlobals).Create(Namespace,Name,.Properties)



Вот только не понятно как мапить сразу несколько глобалов... На каждый давать отдельный набор команд? Или можно как-то "списком" мапануть?
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37607160
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мапить глобалы можно по маске, например:

^Cachetemp* - все глобыла начинающиейся на Cachetemp

можно по индексам (не обязательно цифровой), так чтобы часть глобала была в одной БД, а часть в другой/их. У нас было так что глобал со стримами достигал несколько терабайт, пришлось разбить, т.к. клиент стал нервничать из-за большого размера одного из файлов БД.
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37607180
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorМапить глобалы можно по маске, например:

^Cachetemp* - все глобыла начинающиейся на Cachetemp
Тогда скорее всего вот так
Код: vbnet
1.
%SYS>s Name="tmp.test*


Т.е. без крышки...

DAiMorможно по индексам (не обязательно цифровой)
Это я в примере (документация) видел...
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37607231
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока так и не понятно, нужно привязывать новую БД, для мапинга неких глобалов, к существующей области или таки придётся делать новую область?
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37607255
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

ИМХО, если БД нужна только для того, чтобы отмаппировать в нее некие глобалы, то достаточно выполнить маппинг из существующей области, "и больше нам ничего не надо".
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37607260
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov , т.е. просто создать БД без всякой привязки к области, а потом намапить туда нужные глобалы?
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37607312
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa Alexey Maslov , т.е. просто создать БД без всякой привязки к области, а потом намапить туда нужные глобалы?

именно так
по сути БД отдельно
namespace только объеденяет их так сказать под одно имя, чтобы обращаться к ним можно было из одного места без необходимости переходить в другую область, но в тоже время одна и та же бд может быть смаппирована в разные области, для обращения к одним данным из возможно в корне разных приложений.
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37607317
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorименно так
Уже что-то...

DAiMornamespace только объеденяет их так сказать под одно имя, чтобы обращаться к ним можно было из одного места без необходимости переходить в другую область
Так вот как бы хотелось сделать такое. А примеров пока не нашел...
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37607324
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С созданием БД тоже не так все просто, как в примере...

Код: vbnet
1.
2.
3.
4.
%SYS>s Name="test"
%SYS>s Properties("Directory")="C:\BD\2009\LNS\test\"
%SYS>s Properties("MountAtStartup")=1
%SYS>s Status=##Class(Config.Databases).Create(Name,.Properties)



Получаю следущее
Имя Директорий Размер (MB) Статус Ресурс Зашифровано Журнал TEST C:\BD\2009\LNS\test\ Недоступен Редактировать Удалить
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37607326
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. пользоваться такой БД нет возможности... Как же создать там cache.dat?
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37607343
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создал БД руками как мне нужно, потом посмотрел параметры из примера...

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
%SYS>s Status=##Class(Config.Databases).Get("test",.Properties)
 
%SYS>zw Properties
Properties("ClusterMountMode")=0
Properties("Directory")="C:\BD\2009\LNS\test\"
Properties("MountAtStartup")=0
Properties("MountRequired")=0
Properties("Server")=""
Properties("StreamLocation")=""



Т.е. ни размера БД, ни журналирования глобалов тут не видно...
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37607500
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaТ.е. пользоваться такой БД нет возможности... Как же создать там cache.dat?
Config, нужен для для изменения настроек
а для создания БД, используется SYS.DATABASE
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37607517
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorConfig, нужен для для изменения настроек
а для создания БД, используется SYS.DATABASE
В старом файле как раз писали про Config...

Код: vbnet
1.
s a=##Class(Config.Configuration).CreateDatabase(<Параметры>)



Это и сейчас работает, проверил только что. Но в доке написано что устаревший...
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37607538
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorдля создания БД, используется SYS.DATABASE
Пробую им...

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
%SYS>Set db=##Class(SYS.Database).%New()
 
%SYS>Set db.Directory="c:\bd\2009\lns\test"
 
%SYS>Set db.Size=10
 
%SYS>Set db.GlobalJournalState=0
 
%SYS>Set status=db.%Save()
 
%SYS>zw status
status=1



Файл cache.dat появился... Но в списке областей в портале ничего нет. Как имя-то БД задать? Или как раз и нужен тут

Код: vbnet
1.
s Status=##Class(Config.Databases).Create(Name,.Properties)
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37607540
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да.
Полный вариант создания БД у меня получился такой

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
%SYS>Set db=##Class(SYS.Database).%New()
 
%SYS>Set db.Directory="c:\bd\2009\lns\test"
 
%SYS>Set db.Size=10
 
%SYS>Set db.GlobalJournalState=0
 
%SYS>Set status=db.%Save()
 
%SYS>zw status
status=1
 
%SYS>s Name="test"
 
%SYS>s Properties("Directory")="C:\BD\2009\LNS\test\"
 
%SYS>s Status=##Class(Config.Databases).Create(Name,.Properties)
 
%SYS>zw Status
Status=1



После этого получил то, что и хотел.
...
Рейтинг: 0 / 0
Программное управление настройками Каше
    #37607550
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мапинг глобалов тоже опробовал...

Сделал БД... К областям не привязывал... Замапил туда тестовый глобал из некой области, поисвоил ему некое значение...
Потом сделал проверку целостности тестовой области с тем глобалом - он там и показался.

Т.ч. получается, что как теперь поступать я узнал. Спасибо всем, кто откликнулся.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Программное управление настройками Каше
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]