|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
Добрый день всем! Начал пробовать GTM, и столкнулся с проблемой, которой ни в MSM, ни в Cache не было. Проблема вот в чём: Если первый терминальный пользователь, запустивший рутину GTM закроет свой терминал, а второй пользователь при этом работает, то при входе третьего пользователя возникает ошибка: Код: plaintext 1. 2. 3.
Если же первый пользователь продолжает работать бесконечно, то проблем нет, но мне кажется это не совсем нормальная ситуация. Подозреваю, что существуют какие-то дополнительные настройки для работы в многопользовательском режиме либо в самом GTM, либо в Линуксе. Не могу их найти. :-( Версия GTM последняя : V6.3-007_x86_64. Ставил на чистую Ubuntu 18.04. в профиле пользователя устанавливаю переменные окружения gtmroutines, gtmgbldir, gtm_linktmpdir, gtmdir, затем запускаю стандартный gtmprofile, и рутину: Код: plaintext 1.
При загрузке линукса устанавливаю переменные окружения: /etc/profile.d/gtm63.sh Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 15:30 |
|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
albert_konЕсли первый терминальный пользователь, запустивший рутину GTM закроет свой терминал, а второй пользователь при этом работает, то при входе третьего пользователя возникает ошибка ... Поскольку с таким вообще не сталкивались, хотя задачка у нас многопользовательская и многоджобовая, придется тебе показать тестовый вариант такой программки. Тогда такое можно будет легко потестить и дать какие-то рекомендации. А может, в процессе создания тестового примера, ты и сам поймешь в чем проблема. Т.е. она точно не в ГТ.М... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 07:40 |
|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
krvsa, там все просто: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Если второй пользователь читал/писал в базу, остановился на ***, первый пользователь выходит из программы и терминала, то третий пользователь получает ошибку уже на попытке чтения $d(^test). GTM устанавливал из-под пользователя gtmuser. У каждого пользователя user1-user3 свой вход в Ubuntu, они находятся в общей группе gtmuser. для файла базы данных gtm.dat стоят права на чтение и запись для владельца и для группы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 08:38 |
|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
albert_kon , небольшие уточнения по действиям... Запускаем 3 терминала... В первом запускаем программу и доходим до "Pause". Потом то же повторяем во втором терминале... Заканчиваем работу в первом терминале и закрываем его. Пытаемся повторить действия в третьем терминале... Все так? Я немного переделал твою программку, сохранив суть. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 14:47 |
|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
Не вижу никаких проблем. Хоть тыщу терминалов... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 15:00 |
|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
Можно закрыть и открыть сколько угодно.. Ничего не происходит. В смысле , что работает как и должно быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 15:05 |
|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
Valeriu, а что у вас показывает Ubuntu после перезагрузки ? ipcs и ps aux | grep 'mumps' есть mumps-процессы какие-то ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 15:46 |
|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
krvsa, да, все так У вас не вылетает ошибка ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 15:46 |
|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
albert_kon, У меня только стоит CentOS 6.4 Код: sql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 15:59 |
|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
Извиняюсь, я не читал внимательно. Это у меня процессы запущенных терминалов ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 16:03 |
|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
Valeriu, Спасибо что откликнулись и Вам и krvsa ! судя по картинкам, вход всегда происходил под пользователем root. У меня в примере user1,user2,user3 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 16:03 |
|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
Valeriu, да, желательно бы сразу после загрузки ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 16:05 |
|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
albert_kon, После перезагрузки Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
У вас висят процессы ? Пробовали снять командой : mupip stop ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 16:16 |
|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
Valeriu, У меня вот такая петрушка: После перезагрузки все пусто: gtmuser@gtmserver:~$ ps -ef | grep mumps gtmuser 1341 1092 0 19:34 pts/0 00:00:00 grep --color=auto mumps gtmuser@gtmserver:~$ ipcs ------ Очереди сообщений -------- ключ msqid владелец права исп. байты сообщения ------ Сегменты совм. исп. памяти -------- ключ shmid владелец права байты nattch состояние ------ Массивы семафоров -------- ключ semid владелец права nsems После входа двух пользователей видим, что user1 является владельцем семафора: gtmuser@gtmserver:~$ ps -ef | grep mumps user1 1697 1436 0 19:36 pts/1 00:00:00 /usr/lib/fis-gtm/V6.3-007_x86_64/utf8/mumps -r ^ARM user2 1843 1797 0 19:37 pts/2 00:00:00 /usr/lib/fis-gtm/V6.3-007_x86_64/utf8/mumps -r ^ARM gtmuser 1845 1092 0 19:37 pts/0 00:00:00 grep --color=auto mumps gtmuser@gtmserver:~$ ipcs ------ Очереди сообщений -------- ключ msqid владелец права исп. байты сообщения ------ Сегменты совм. исп. памяти -------- ключ shmid владелец права байты nattch состояние 0x00000000 294912 user1 666 4640768 1 0x00000000 327681 user1 777 1048576 1 0x00000000 360450 user1 666 7520256 2 0x00000000 458755 user2 666 4640768 1 0x00000000 491524 user2 777 1048576 1 ------ Массивы семафоров -------- ключ semid владелец права nsems 0x2b4a8c88 196608 user1 777 3 0x00000000 229377 user1 666 3 После выхода user1 из терминала семафор пустой, но user1 кое-где остался: gtmuser@gtmserver:~$ ps -ef | grep mumps user2 1843 1797 0 19:37 pts/2 00:00:00 /usr/lib/fis-gtm/V6.3-007_x86_64/utf8/mumps -r ^ARM gtmuser 1850 1092 0 19:38 pts/0 00:00:00 grep --color=auto mumps gtmuser@gtmserver:~$ ipcs ------ Очереди сообщений -------- ключ msqid владелец права исп. байты сообщения ------ Сегменты совм. исп. памяти -------- ключ shmid владелец права байты nattch состояние 0x00000000 360450 user1 666 7520256 1 0x00000000 458755 user2 666 4640768 1 0x00000000 491524 user2 777 1048576 1 ------ Массивы семафоров -------- ключ semid владелец права nsems После ошибки - уже user3 является владельцем семафора, следы от user1 так и остаются: gtmuser@gtmserver:~$ ps -ef | grep mumps user2 1843 1797 0 19:37 pts/2 00:00:00 /usr/lib/fis-gtm/V6.3-007_x86_64/utf8/mumps -r ^ARM gtmuser 1992 1092 0 19:39 pts/0 00:00:00 grep --color=auto mumps gtmuser@gtmserver:~$ ipcs ------ Очереди сообщений -------- ключ msqid владелец права исп. байты сообщения ------ Сегменты совм. исп. памяти -------- ключ shmid владелец права байты nattch состояние 0x00000000 360450 user1 666 7520256 1 0x00000000 458755 user2 666 4640768 1 0x00000000 491524 user2 777 1048576 1 ------ Массивы семафоров -------- ключ semid владелец права nsems 0x2b4a8c88 262144 user3 777 3 Процессы не висят, но в итоге остался какой-то сегмент памяти за user1. Возможно все это и не говорит ни о чём, просто не знаю где еще копать. :-( При завершении программы вторым пользователем вот еще что сейчас заметил: %GTM-E-CRITSEMFAIL, Error with semaphores for region /home/gtmuser/.fis-gtm/V6.3 -007_x86_64/g/gtm.dat %GTM-E-SYSCALL, Error received from system call gds_rundown SEMCTL failed to get ftok_semval -- called from module /usr/library/V63007/src/gds_rundown.c at line 318 %SYSTEM-E-ENO22, Invalid argument %GTM-E-NOTALLDBRNDWN, Not all regions were successfully rundown %GTM-E-GVRUNDOWN, Error during global database rundown ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 17:15 |
|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
ValeriuУ вас висят процессы ? Пробовали снять командой : mupip stop ? Процессы вроде бы не висят... Для mupip stop где можно посмотреть process-id ? Я пробовал по разному, но всегда у меня всегда ответ " No such process". А что у вас в source /usr/gtm63A/uci/sys можно полюбопытствовать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 17:26 |
|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
albert_kon, Для mupip stop где можно посмотреть process-id Первый терминал: Код: sql 1. 2. 3. 4. 5. 6.
Второй: Код: sql 1. 2. 3. 4. 5. 6. 7.
можно полюбопытствовать ? можно. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 17:41 |
|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
У меня пока по прежнему. Если под одним пользователем все запускать, то ошибки нет и у меня. Под разными пользователями - ошибка. Скачал виртуалку с установленной на GT.M Vista, и вот там видно, что несмотря на то, что процессы запущены от самого пользователя (user1), семафорами владеет группа (gtmuser) Видимо где-то тут разгадка. Пока ищу. Отпишусь как найду. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2019, 11:03 |
|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
albert_konУ меня пока по прежнему. Если под одним пользователем все запускать, то ошибки нет и у меня. Под разными пользователями - ошибка. У нас настроено только для одного пользователя... Все работает. Напрягать админа под эту проблему не хотел. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 07:58 |
|
Многопользовательская работа в GTM
|
|||
---|---|---|---|
#18+
Результат какой-то всё же я получил: На YottaDB r1.24_x86_64 под Ubuntu 18.04 тестовый пример работает как положено: Каждый пользователь входит-выходит сколько угодно раз, семафор сохраняется за первым вошедшим. После последнего вышедшего семафор освобождается, и т.д. независимо от того кто первый вошел. Этого я и добивался. Какой-то глюк возможно был в той версии GTM V6.3-007_x86_64. Спасибо огромное krvsa и Valeriu !!!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2019, 14:38 |
|
|
start [/forum/topic.php?fid=39&msg=39790178&tid=1556202]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 262ms |
total: | 395ms |
0 / 0 |