Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / несколько вопросов по GT.M / 22 сообщений из 22, страница 1 из 1
26.09.2008, 13:09
    #35562006
ceshka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
при знакомстве с системой возикло несколько ворпросов:
1. Насколько понимаю, GT.M, в отличие от Каше, поддерживает моногоуровневые и вложенные транзакции?
2. Перед запуском системы необходимо определять нужные переменные каждый раз ($gtmroutines, $gtm_dist, $gtmgbldir, $gtm_log)? А отсюда следует, что, определив переменную $gtmroutines, она используется для одной области, т.е. в разных областях разных рутин быть не может? Отсюда следует вопрос 3:
3. Области отсутствуют? ( разные $ZNSPACE в Каше ) Т.е. есть только одна область? Зачем тогда несколько *.dat файлов, процентные рутины, система, регулирующая области, регионы и т.д.?
4. Создание областей возможно, если запускать систему под разными пользователями, т.е. если определить для каждого пользователя разные переменные, приведённые выше, а путь к процентным рутинам прописать всем один и тот же в переменную $gtmroutines, плюс путь к рутинам для каждой области? Как в таком случае будет вести себя журнал?
...
Рейтинг: 0 / 0
26.09.2008, 14:50
    #35562339
VadimF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
Утверждение 1 неверное:
Почитайте документацию Cache'.


Вадим
...
Рейтинг: 0 / 0
26.09.2008, 15:57
    #35562580
ceshka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
to VadimF
тада тока многоуровневые :)
...
Рейтинг: 0 / 0
26.09.2008, 23:51
    #35563166
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
Я не работал с gtm, но хотелось бы узнать, чем отличаются многоуровневые транзакции от вложенных.
...
Рейтинг: 0 / 0
27.09.2008, 05:15
    #35563235
ceshka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
с моей точки зрения, одноуровневые, это когда пускаешь транзакцию, пишешь в базу, tcommit еще нет, а изменения видны всем остальным, следовательно, многоуровневые, это когда эти изменения видны остальным только после tcommit
...
Рейтинг: 0 / 0
27.09.2008, 10:30
    #35563302
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
авторс моей точки зрения, одноуровневые, это когда пускаешь транзакцию, пишешь в базу, tcommit еще нет, а изменения видны всем остальным, следовательно, многоуровневые, это когда эти изменения видны остальным только после tcommit

Специально полез на документацию, нашел вот это
2008.1
http://docs.intersystems.com/cache20081/csp/docbook/DocBook.UI.Page.cls?KEY=RSQL_settransaction
2007.1
http://docs.intersystems.com/cache20071/csp/docbook/DocBook.UI.Page.cls?KEY=RSQL_settransaction
5.2
http://docs.intersystems.com/cache52/csp/docbook/DocBook.UI.Page.cls?KEY=RSQL_settransaction

Правда сам не пользовался.
Все это для SQL, но так как SQL выполняется int кодом, для обычных программ наверно так тоже можно.
Сам не использовал
...
Рейтинг: 0 / 0
27.09.2008, 23:21
    #35563830
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
ceshkaс моей точки зрения, одноуровневые, это когда пускаешь транзакцию, пишешь в базу, tcommit еще нет, а изменения видны всем остальным, следовательно, многоуровневые, это когда эти изменения видны остальным только после tcommit
Это не многоуровневость транзакций, это изоляция транзакций (если правильно ошибаюсь, описанный случай - это режим read committed). В каше режим dirty read (вообще говоря, если не принимать мер). Но согласовать режимы видимости изменений можно блокировками. Если блокировка была поставлена в контексте транзакций, то ее снятие реально срабатывает по окончании транзакции. Если читающий процесс использует согласованные блокировки, то можно сделать read committed в режиме блокировочника. Примерно так же (в общих чертах) поступает sql надстройка в каше.
...
Рейтинг: 0 / 0
29.09.2008, 10:11
    #35564515
ceshka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
to ну я:
да, с термином, не угадал, изолированность это точнее

P.S. как-то плавно топик по gt.m в Каше съезжает
...
Рейтинг: 0 / 0
15.10.2008, 00:34
    #35594698
al-veliev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
ceshkaпри знакомстве с системой возикло несколько ворпросов:
1. Насколько понимаю, GT.M, в отличие от Каше, поддерживает моногоуровневые и вложенные транзакции?
2. Перед запуском системы необходимо определять нужные переменные каждый раз ($gtmroutines, $gtm_dist, $gtmgbldir, $gtm_log)? А отсюда следует, что, определив переменную $gtmroutines, она используется для одной области, т.е. в разных областях разных рутин быть не может? Отсюда следует вопрос 3:
3. Области отсутствуют? ( разные $ZNSPACE в Каше ) Т.е. есть только одна область? Зачем тогда несколько *.dat файлов, процентные рутины, система, регулирующая области, регионы и т.д.?
4. Создание областей возможно, если запускать систему под разными пользователями, т.е. если определить для каждого пользователя разные переменные, приведённые выше, а путь к процентным рутинам прописать всем один и тот же в переменную $gtmroutines, плюс путь к рутинам для каждой области? Как в таком случае будет вести себя журнал?

2.Если Вы коллективно используете одну рабочую область, пропишите её в
файле /etc/profile.d/gtm.sh .
Если Вам нужно использовать программы из нескольких областей,
определите их последовательно в $gtmroutines наподобие того, как это делается в $path.
Этот метод описан в GT.M Acculturation CD. Прочтите там файл index.html.

3.GT.M может использовать разные сочетания программ и баз данных.
В этом он схож с VAXDSM.
Жёсткая фиксация (программный набор)-(база данных отсутствует).

4. Журнал по моему мнению должен работать нормально, так как он фиксирует изменения базы данных и программные наборы не затрагивает.
...
Рейтинг: 0 / 0
15.10.2008, 10:40
    #35595099
ceshka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
to al-veliev:
извините за возможно оффтопный вопрос, но gt.m не совсем OpenSourse ? Напрмер на Solaris SPARC версии в открытом доступе нет, а для Solaris on x86 вообще нет релиза?
Или это старые сведения?
http://objectmix.com/mumps/177127-gt-m-solaris.html
...
Рейтинг: 0 / 0
18.10.2008, 22:48
    #35602670
al-veliev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
ceshkato al-veliev:
извините за возможно оффтопный вопрос, но gt.m не совсем OpenSourse ? Напрмер на Solaris SPARC версии в открытом доступе нет, а для Solaris on x86 вообще нет релиза?
Или это старые сведения?
http://objectmix.com/mumps/177127-gt-m-solaris.html
Ув. ceshka!
Хочу поблагодарить Вас за предыдущий вопрос.
Он побудил меня поглубже закопаться в документацию по gt.m.
Поэтому дополняю сначала предыдущий ответ своими свежими знаниями.
Системная переменная для управления глобалями называется $ZGBLDIR,
программами - $ZROUTINES.
Обе они могут меняться "на ходу", таким образом Вы можете менять
по ходу исполнения свой набор программы-базы данных.
Про программы я прочел благодаря Вам.
Расширенный синтаксис в gt.m описан в руководстве по языку в файле PDF
(в HTML варианте отсутствует):

$export gtmgbldir="/probe/mybase.gld"
$gtm
GTM>w $zgbldir
/probe/mybase.gld
GTM>w ^a
RED
GTM>s $zgbldir="test.gld"
GTM>w $zgbldir
test.gld
GTM>w ^a
BLUE
GTM>w ^a,!,^|"/probe/mybase.gld"|a ;- доступ немонтированной глобали а.
BLUE
RED

Сам я пользуюсь gt.m под linux. Сегодня товарищ установил свежевыставленный
gt.m V5.3 с виртуальной машиной под Windows и сообщил мне, что всё OK.
По поводу использования gt.m под другими ОС Вам наверное лучше задать вопрос на comp.lang.mumps или yahoo mumpsprogramming group.
Вам обязательно ответят что-либо конструктивное - народ там доброжелательный.
В принципе они и исходники опубликовали, так что можно попытаться откомпилировать.
...
Рейтинг: 0 / 0
19.10.2008, 01:04
    #35602710
al-veliev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
ceshkato al-veliev:
извините за возможно оффтопный вопрос, но gt.m не совсем OpenSourse ? Напрмер на Solaris SPARC версии в открытом доступе нет, а для Solaris on x86 вообще нет релиза?
Или это старые сведения?
http://objectmix.com/mumps/177127-gt-m-solaris.html
Ув. ceshka! Хочу дополнить свой предыдущий пост прямым ответом на Ваш вопрос
с форума на sf.net

GT.M on Open Solaris
By: Doug Scott (drdoug007) - 2007-04-04 02:07
Hello,
Currently GT.M on Solaris (SPARC) which is closed source. I have the Open Source Linux x86 version running on Solaris Nevada (i.e. Open Solaris). After building a Centos 3.8 brandz zone, I just compiled and installed icu, and then ran the Linux version of GT.M V5.2-000. After this I was able to clone the brandz zone and setup a test database on the same machine. I would not run a bank on this setup, but it does make a nice test environment.

I am also close to porting the source of GT.M to Solaris x86 if anybody is interested.

Doug

Brandz Url: http://www.opensolaris.org/os/community/brandz
...
Рейтинг: 0 / 0
06.11.2008, 10:22
    #35636664
ceshka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
2 al-veliev, скажите пожалуйста, а выполнить операцию
Код: plaintext
1.
2.
s $p(a,"a", 255 )=""
s ^AA(a)=""
в gt.m как-нибудь возможно?
...
Рейтинг: 0 / 0
07.11.2008, 11:43
    #35639571
ceshka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
спасибо, нашел
...
Рейтинг: 0 / 0
07.11.2008, 11:52
    #35639598
ceshka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
хотя вру
...
Рейтинг: 0 / 0
07.11.2008, 20:29
    #35641094
al-veliev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
ceshka2 al-veliev, скажите пожалуйста, а выполнить операцию
Код: plaintext
1.
2.
s $p(a,"a", 255 )=""
s ^AA(a)=""
в gt.m как-нибудь возможно?
Длина ключа ограничена 80 байт (по памяти). Если превысите - получите ошибку gt.m.
K.S.Bhaskar рекомендует в таких случаях переписать код...
А обойти эти грабли можно пока что только через дополнительный ключ.
...
Рейтинг: 0 / 0
08.11.2008, 18:59
    #35641873
al-veliev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
ceshka2 al-veliev, скажите пожалуйста, а выполнить операцию
Код: plaintext
1.
2.
s $p(a,"a", 255 )=""
s ^AA(a)=""
в gt.m как-нибудь возможно?
Ув. ceshka, экспромты часто бывают неудачными. Мой тоже.
Поэтому хочу Вам поведать результаты сегодняшних изысканий. Как я полагаю, Вас интересует возможность перенастройки базы данных под конкретную задачу (в данном случае имелись в виду данные с увеличенными индексами). В GT.M этим занимается утилита GDE (Global Directory Editor). На неё имеется документация, но в ней ни одного примера. Поэтому я сначала изложу некоторые моменты. Изменение длины индексов и данных возможно. При этом следует соблюдать соотношение Key_size < Record_size < Block_size , а также порядок изменения. Насколько я понял, под Key_size имеется в виду суммарная длина всех индексов . Если Вы хотите увеличить параметры - надо начинать с меньшего и заканчивать большим, уменьшить - соответственно с большего и заканчивать меньшим. Размер ключа и записи регулируется в регионе, размер записи - в сегменте. Также нужно иметь в виду, что файл базы данных может быть подсоединен к разным глобальным структурам. В этом случае характеристики для него должны быть идентичны - во второй глобальной структуре создаётся для него отдельный сегмент и регион. В примере размер блока увеличивается до 2048 байт, размер записи - до 512 байт, размер ключа - до 256 байт. Если Вы захотите уменьшить эти числа, то используйте данные команды c(hange) в обратном порядке.
Код: plaintext
1.
2.
3.
4.
5.
6.
$gtm
GTM>d ^GDE
GDE>c -s DEFAULT -bl= 2048 
GDE>c -r DEFAULT -r= 512 
GDE>c -r DEFAULT -k= 256 
GDE>v
GDE>e
Также хочу заметить, что уменьшение параметров в общем случае не приведет к заметному ускорению скорости обработки, а только уменьшит размер файлов баз данных. Для локальных данных всё "по максимуму", так что Вы сможете при необходимости использовать это для организации косвенной индексации без изменения характеристик баз данных.
...
Рейтинг: 0 / 0
25.11.2008, 21:53
    #35675236
al-veliev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
Недавно я сделал редактор глобалей для GT.M (наподобие GEDIT ). Работает под управлением Apache как CGI-шлюз . Доступен как Freeware у меня на сайте http://www.cgi2m.net.ua . Краткое описание, руководство по установке и ссылка на загрузку пробной версии в статье GEDIT . Функциональность слегка ограничена, но в работе может оказаться полезной. Буду признателен за отзывы.
...
Рейтинг: 0 / 0
27.11.2008, 17:14
    #35680032
ceshka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
al-veliev,
я плохо знаю Apache, но неплохо было бы спрашивать у пользователя:
с какой директорией работаем;
(работать с указанной директорией или со своей, если не указано, скрипт также грузить или не нужно, если не указан)
скрипт для загрузки переменных ($gtmgbldit,$gtmroutine и т.д.)
И в gedit.cgi провернуть:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
# вообще, я не уверен, что это допустимо
if [[ ${указанная_директория:-""} != "" ]]; then 
	cd ${указанная_директория}
fi

if [[ ${скрипт_указанный_пользователем:-""} != "" ]]; then 
	. ${скрипт_указанный_пользователем}
	exec mumps -r \^gedit
  else всё остальное, что уже прописано в gedit.cgi
fi

ошибка в написании mupip - написано mumip

P.S. пока не ставил, ставлю Apache и переставляю линукс
P.P.S.S. Извините за придирчивость
...
Рейтинг: 0 / 0
27.11.2008, 17:47
    #35680147
al-veliev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
ceshkaal-veliev,
я плохо знаю Apache, но неплохо было бы спрашивать у пользователя:
с какой директорией работаем;
(работать с указанной директорией или со своей, если не указано, скрипт также грузить или не нужно, если не указан)
скрипт для загрузки переменных ($gtmgbldit,$gtmroutine и т.д.)
И в gedit.cgi провернуть:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
# вообще, я не уверен, что это допустимо
if [[ ${указанная_директория:-""} != "" ]]; then 
	cd ${указанная_директория}
fi

if [[ ${скрипт_указанный_пользователем:-""} != "" ]]; then 
	. ${скрипт_указанный_пользователем}
	exec mumps -r \^gedit
  else всё остальное, что уже прописано в gedit.cgi
fi

ошибка в написании mupip - написано mumip

P.S. пока не ставил, ставлю Apache и переставляю линукс
P.P.S.S. Извините за придирчивость
Ув ceshka, с Вашей стороны это не придирчивость, а нормальный подход. Чем больше замечаний я получу, тем лучше в конце концов выйдет.
Относительно $gtmgbldir и $gtmroutine я еще сам в раздумье, т.к. их можно и в самой программе определить в некоторых случаях.
mumip - это сервисная утилита, которая необходима для некоторых регламентных операций.
Например, если Вы выключили компьютер во время работы с СУБД
Код: plaintext
mumip -r f=file.dat
GT.M 5.3 я еще не смотрел, возможно она там называется mupip. Важно, чтобы мы с Вами имели в виду одно и то же.
В Апаче выполняемый скрипт должен иметь определенную структуру, т.к. ввод-вывод направляется на броузер, а также и располагаться в определенном месте, в котором разрешено выполнение скриптов. Поэтому вряд ли получится что-либо спросить, прежде чем не отправлен HTTP-заголовок и передана форма для запроса. В интернете такие вещи вообще-то не привествуются.
Сам ^gedit, как Вы наверное поняли, написан на основе cgi.m. Вставлены только подпрограммы формирования массивов для JavaScript, записи и удаления узла из БД. Я их выставлю, но не хочу отрывать хакерам дверь с кодом перехвата злонамеренного HTML/JavaScript кода. Так что в этом плане мне тоже нужно бы посоветоваться, как это лучше сделать.
...
Рейтинг: 0 / 0
28.11.2008, 20:25
    #35683015
al-veliev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
Утилита в GT.M 5.3 действительно называется mupip . Наверное, не у одного меня с её старым названием были проблемы - я её стабильно переименовывал. Еще хотел написать Вам, чтобы Вы ограничили доступ из Интернета к локальным папкам Апаче, если Ваш компьютер в Сети. Это можно сделать либо в файле настройки .etc/httpd/conf/httpd.conf либо записав данные настройки в файлы .htaccess
Код: plaintext
1.
Deny from all
Allow from  127 . 0 . 0 . 1 
Поместите эти файлы в /var/www/html и /var/www/cgi-bin
А за скрипт - спасибо, обязательно пригодится.
...
Рейтинг: 0 / 0
30.11.2008, 18:28
    #35684079
al-veliev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько вопросов по GT.M
to ceshka,
Сегодня я разместил исходник gedit.m, упростив антихакерскую обработку на вводе-выводе данных.
В комплексе с описанными мероприятиями безопасность пострадать не должна, а пользы от того, что присутствует исходный текст, намного больше. Надеюсь, что у Вас получилось запустить shell-script под Apache. Вообще это брыкастый зверек.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / несколько вопросов по GT.M / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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