|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Не нашел в MON таблицах что-либо, непосредственно указывающее на архитектуру и решил сделать отдельную ХП, но для формирования connString, опять же, необходим номера порта сервера текущего клиентского подключения. Код: plsql 1. 2. 3. 4. 5.
Кто как решал подобную задачу? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 13:30 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Hello, Rdb Dev! You wrote on 6 июля 2016 г. 13:32:02: Rdb Dev> непосредственно указывающее на архитектуру и снова всё тот же вопрос: НАХРЕНА? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 13:32 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Боюсь даже спросить, для чего это нужно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 13:37 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Не успел. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 13:37 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_dev, нету ни в таблицах мониторинга, ни в контекстных переменных этой инфы. В тройке тоже нет. Идеально было бы если можно было считать в таблицу мониторинга текущие параметры конфигурации. Возможно в 4.0 сделают. Проще сделать UDF которая будет брать инфу из конфига, по крайней мере насчёт порта. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 13:39 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Hello, Симонов Денис! You wrote on 6 июля 2016 г. 13:45:38: Симонов Денис> Проще сделать UDFтут программист нужен... (с) зы: проще дать уже таки ему гранату Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 13:46 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Симонов Денис> Идеально было бы если можно было считать в таблицу Симонов Денис> мониторинга текущие параметры конфигурации. Возможно в 4.0 сделают. Я вообще не понимаю, почему это в 3.0 не сделали, хотя бы то, что активно, без перечитывания с диска. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 13:47 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, задача не так проста как кажется на первый взгляд. В 3.0 параметры могут быть уровня сервера, БД и соединения. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 13:51 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Мимопроходящийи снова всё тот же вопрос: НАХРЕНА?Для реализации UDF функций блокировок. К примеру, для SS алгоритм функции может использовать обычные атомарные функции, а для CS - глобальные объекты ОС. Что-то типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 13:54 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_devДля реализации UDF функций блокировок. К примеру, для SS алгоритм функции может использовать обычные атомарные функции, а для CS - глобальные объекты ОС. Всегда используй "обычные атомарные функции" на общей памяти и будет тебе счастье. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 14:01 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Hello, Rdb Dev! You wrote on 6 июля 2016 г. 14:04:08: Rdb Dev> Для реализации UDF функций блокировок. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 14:07 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_dev, TIBConfigService с ФБ не работает? Я уже давно не проверял. isc_info_svc_get_config вроде должно возвращать содержимое firebird.conf. А в 3.0 там есть режим сервера. Но как я уже говорил, все это лабуда. Блокируем объект в коннекте, коннект умирает, и что дальше? Ни в какой архитектуре нельзя определить, в каком коннекте был заблокирован некий системный объект, и жив ли этот коннект или нет. Это сервер может определить, активна транзакция или нет (путем ее блокировки), а вот со всякими пользовательскими udf это не получится. "Это" - в смысле определения блокировки ресурса и его разблокирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 14:08 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovВсегда используй "обычные атомарные функции" на общей памяти и будет тебе счастье.CreateSharedMemory/AllocateSharedMemory? Вариант... Спасибо за подсказку! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 14:14 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
kdvTIBConfigService с ФБ не работает? Я уже давно не проверял. isc_info_svc_get_config вроде должно возвращать содержимое firebird.conf. А в 3.0 там есть режим сервера.Хотелось сделать чтоб работало из ХП или триггера. kdvНо как я уже говорил, все это лабуда. Блокируем объект в коннекте, коннект умирает, и что дальше? Ни в какой архитектуре нельзя определить, в каком коннекте был заблокирован некий системный объект, и жив ли этот коннект или нет.Можно еще ХП навернуть, что будет вызываться из триггеров или ХП других транзакций и проверять живучесть транзакции, заблокировавшей объекты, принудительно снимая блокировки в случае смерти этой транзакции, но видится мне, это далеко не самое красивое решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 14:27 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Мимопроходящий, многапиксюлей. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 14:27 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
kdv, мне кацца, в триггерах ON TRANSACTION COMMIT/ROLLBACK не хватает контекстных переменных типа COMMITTED_TRANSACTION/ROLLEDBACK_TRANSACTION. Хотя, наличие подобных контекстных переменных всё равно никак не поможет при отрубании транзакций через 'DELETE FROM MON$ATTACHMENTS'. :( ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 14:36 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_devМожно еще ХП навернуть, что будет вызываться из триггеров или ХП других транзакций и проверять живучесть транзакции, заблокировавшей объекты, принудительно снимая блокировки в случае смерти этой транзакции, но видится мне, это далеко не самое красивое решение. Что-то у меня есть подозрения, что ты бутерброт не с той стороны есть начал. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 14:38 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Симонов Денисзадача не так проста как кажется на первый взгляд. В 3.0 параметры могут быть уровня сервера, БД и соединения.? RDB$GET_CONTEXT ('SYSTEM' | 'USER_SESSION' | 'USER_TRANSACTION' , '<varname>') ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 14:43 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
DarkMasterЧто-то у меня есть подозрения, что ты бутерброт не с той стороны есть начал.Надо колбасой на язык? Рассмотрю любые варианты. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 14:44 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_dev, не прокатит. Я же сказал уровня сервера, БД и коннектов. 1. Уровня БД в контекстных переменных нет 2. Коннектов много, не факт что нужно знать свои параметры Поясню. Уровня БД обозначает что параметры заданы в databases.conf, а не в firebird.conf Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 14:50 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_devв триггерах ON TRANSACTION COMMIT/ROLLBACK не хватает контекстных переменных типа COMMITTED_TRANSACTION/ROLLEDBACK_TRANSACTION. Чем они могут отличаться от CURRENT_TRANSACTION? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 14:52 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Симонов Денис1. Уровня БД в контекстных переменных нетНу, список контекстов можно и расширить. Симонов Денис2. Коннектов много, не факт что нужно знать свои параметрыА вот тут ...опа! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 14:53 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЧем они могут отличаться от CURRENT_TRANSACTION? Ничем. Это у меня глюки из-за непонятно с чего возникшей аналогии с триггерами CONNECT/DISCONNECT. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 15:07 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_devХотелось сделать чтоб работало из ХП или триггера. можно использовать такое правило - если не знаешь или не можешь определить архитектуру, то делай так, как будто это всегда классик. Не ошибешься. Тут только единственное исключение - не использовать threadvar. rdb_devи проверять живучесть транзакции, заблокировавшей объекты ты не понял, совсем. Когда сервер сталкивается с активной конкурирующей транзакцией, он пытается на нее сделать лок. Если лок успешен, значит коннект (или процесс), стартовавший эту транзакцию отвалился, и транзакцию надо перевести в роллбэк. Если не успешен - транзакция жива. Ты это из процедур, функций, udf и прочего никак не можешь выполнить аналогичную проверку, или использовать подобный механизм для проверки блокированности своих объектов (мютексов, семафоров и проч). Потому что серверу наплевать на твои объекты. А кроме активного коннекта эти объекты проверять и блокировать-разблокировать больше некому. Еще раз привожу пример: - коннект выполняет функцию блокировки мютекса - коннект (процесс) отваливается. - мютекс заблокирован, а кто его заблокировал (и жив он или нет) - неизвестно. аминь. И снять такую блокировку можно по таймауту. Но вот проблема - у мютекса нет свойства "время блокировки". rdb_devс чего возникшей аналогии с триггерами CONNECT/DISCONNECT. если процесс/коннект умер, то для него disconnect не вызовется. Подозреваю, что on rollback для такой транзакции тоже не вызовется. насчет delete from mon$attachments - тоже не вызовется ни on disconnect, ни on rollback. То есть, у тебя возникает "дыра", при которой твои объекты могут оказаться заблокированными навечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 16:01 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_devКто как решал подобную задачу? Таблоид ее когда-то давно решал. В академических целях, как у него обычно водится :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 18:41 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
kdvТы это из процедур, функций, udf и прочего никак не можешь выполнить аналогичную проверку, или использовать подобный механизм для проверки блокированности своих объектов (мютексов, семафоров и проч). Потому что серверу наплевать на твои объекты. А кроме активного коннекта эти объекты проверять и блокировать-разблокировать больше некому. Еще раз привожу пример: - коннект выполняет функцию блокировки мютекса - коннект (процесс) отваливается. - мютекс заблокирован, а кто его заблокировал (и жив он или нет) - неизвестно. аминь. И снять такую блокировку можно по таймауту. Но вот проблема - у мютекса нет свойства "время блокировки".Проблема, в большей степени, обходится созданием собственных объектов блокировки в разделяемой памяти со штампом времени и фиксированным маленьким таймаутом (к примеру, 500мс), но начинает упираться в накладные расходы на маршалинг при вызове какой-нибудь UDF функции, типа hold_lock(:hndl_lock, CURRENT_TRANSACTION), продлевающей блокировку, а также сильно упираться в использование транзакций wait. Последнее вовсе начисто отбивает желание самостоятельной реализации через UDF, так как любая блокировка записей в конкурирующей транзакции, дольше заданного времени, приведет к автоматической разблокировки ресурса и неопределенному дальнейшему поведению. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 09:39 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
miwaonlineТаблоид ее когда-то давно решал. В академических целях, как у него обычно водится :)Так и я больше в академических целях, так как никто подобных задач передо мной не ставит, а свою собственную мысль не загонишь исключительно в рамки тех.заданий. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 09:41 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_dev а свою собственную мысль не загонишь исключительно в рамки тех.заданий.А как же ты тогда свои тех. задания пишешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 10:06 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
YuRock, чукча не писатель, чукча читатель. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 10:11 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Нашел решение Таблоида (самому интерессно стало): 18162493 . ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 10:20 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_devYuRock, чукча не писатель, чукча читатель. Ну а когда для себя что-то пишешь или для души? Или большой неописанный в тз кусок? Ты что, алгоритм хотябы вначале не описываешь? Что и как работать будет в будущем твоем творении? Ведь именно законченное, проработанное тз и экономит время и ресурсы. Быстрее сначала продумать и написать алгоритм (на русском языке, например), а потом закодить его спокойно и уверенно, чем сразу бросаться кодить пальцем в небо и затем либо переделывать 5 раз либо грабли и костыли оставлять. Наподобие внешних блокировок функций работы СУБД :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 10:47 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
miwaonline, в принципе, то же самое и тоже без порта, но мне не понятно нафига там обращение к MON$IO_STAT и это: select a.mon$server_pid + 0*(select count(*) from rdb$types,rdb$types) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 10:50 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_dev, читай комментарий dimitr выше втом топике ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 11:02 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_dev, теперь заверни это все в триггеры on commit/on rollback, и получи тормоза (как и было у Таблоида). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 11:23 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
извращение с (select count(*) from rdb$types,rdb$types) IMHO лишнее, на момент любого опроса MON$-таблиц всегда должно было произойти как минимум одно страничное чтение и/или одна страничная запись. И уж точно более одного страничного фетча. Т.е. если в MON$IO_STATS для БД ноль, то это точно CS/SC, в SS такого быть не должно в принципе. Выполнять холостые 10000 чтений из RDB$TYPES это слишком дорогая перестраховка. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 11:25 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
kdv, по сути архитектуру надо определить один раз в ON CONNECT триггере и запомнить её в контекстной переменной, а потом получать её от туда. Но решение с MON$ всё равно не очень, по крайней мере в 2.5, ибо может замедлить коннект. В системах где частые и короткоживущие коннекты это смерти подобно. В 3.0 с MON$ уже лучше. Кроме того можно сделать функцию, которая получает архитектуру по требованию и кеширует это значение в тех же контекстных переменных, вместо размещения в ON CONNECT. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 11:32 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
miwaonline, попробовал сделать "красившэ": Код: plsql 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.
но в ХП с EXECUTE STATEMENT ... ON EXTERNAL DATA SOURCE исключения db__xIamSS и db__xIamCS не поймать через WHEN EXCEPTION ... DO. :( ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 13:29 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
kdvтеперь заверни это все в триггеры on commit/on rollback, и получи тормоза (как и было у Таблоида). Нафига их заворачивать в эти триггеры? Не проще сделать это в триггере ON CONNECT и сохранить через RDB$SET_CONTEXT ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 13:33 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Симонов Денис, опередил. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 13:35 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Вообще странно, что нельзя отловить пользовательское исключение из EXECUTE STATEMENT ... ON EXTERNAL DATA SOURCE. "Триггера на события CONNECT и DISCONNECT выполняются в специально созданной для этого транзакции. Если при обработке триггера не было вызвано исключение, то транзакция подтверждается. Не перехваченные исключения откатят транзакцию и: • в случае триггера на событие CONNECT соединение разрывается, а исключения возвращается клиенту;" Пусть не по имени исключения, так как исключение выброшено не в текущем подключении к БД, но, хотя бы, по номеру. Вот как-то так: Код: plsql 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. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 14:18 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_devВообще странно, что нельзя отловить пользовательское исключение из EXECUTE STATEMENT ... ON EXTERNAL DATA SOURCE.??? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 14:21 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
hvlad, на оба исключения (db__xIamSS и db__xIamCS) я получаю только GDSCODE = 335544921 и SQLSTATE = '42000' ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 14:27 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_dev, решения у тебя какие-то проктостоматологические мягко говоря ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 14:28 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Симонов Денис, а это и не решения вовсе. Так... Мысли вслух. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 14:29 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_devhvlad, на оба исключения (db__xIamSS и db__xIamCS) я получаю только GDSCODE = 335544921 и SQLSTATE = '42000'А почему ты решил, что должен получить что-то другое ? Ты доку по EXEC STMT читал ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 15:51 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Hello, Симонов Денис! You wrote on 7 июля 2016 г. 15:54:57: Симонов Денис> решения у тебя какие-то проктостоматологические мягко говоряprofession de foi... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 15:56 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
hvladА почему ты решил, что должен получить что-то другое ? Ты доку по EXEC STMT читал ?? "Каждое исключение, вызванное оператором, возвращает eds_connection или eds_statement ошибки. Для обработки исключений в коде PSQL вы должны использовать WHEN GDSCODE eds_connection, WHEN GDSCODE eds_statement или WHEN ANY." Это понятно, но хотелось бы как-то ловить... Прекрасно вижу сообщение об ошибке, выплюнутое из ХП SERVER_MODE, и пойманное на клиенте (в IBExpert): 335544517: exception 11 335544382: DB__XIAMSS 335544382: Я супер сервер! а поймать не могу. :( Эх, если бы была какая-нибудь функция типа EXCEPTION(nestLevel), способная возвращать номер исключения из соединений соединения внешнего провайдера... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 16:47 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_dev, зачем вся эта проктостоматология? Почему EDS просто не может вернуть имя архитектуры? Подумай головным мозгом как перехватить исключения которых нет в твоей базе. Ведь EDS может подключаться не только к самой себе. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 17:00 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_dev, кстати зачем тебе потребовал определить архитектуру? Это всё твоя шальная затея с мьютексами что ли? Все решения должны проектироваться так чтобы они работали независимо от архитектуры сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 18:48 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Симонов Денисзачем вся эта проктостоматология? Почему EDS просто не может вернуть имя архитектуры?Хотя бы затем, чтобы, в данном случае, максимально ограничить и обезопасить "подключение" пользователя SERVER_MON_USER. Чтобы не ставить под угрозу целостность данных на сервере ФБ даже при отсутствие DMZ зоны за грамотно настроенным брандмауэром и наличие в сети хакера с инструментом ARP spoofing'а. Симонов ДенисПодумай головным мозгом как перехватить исключения которых нет в твоей базе. Ведь EDS может подключаться не только к самой себе.Я уже писал, что это можно сделать по номеру исключения, а как я этот номер буду интерпретировать - мои проблемы. Например: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 18:55 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_devХотя бы затем, чтобы в данном случае максимально ограничить и обезопасить подключение пользователя SERVER_MON_USER ты своим триггером ничего не обезопасил. Оно (подключение) уже произошло, просто исключение в ON CONNECT триггере его разрывает. Между инициализацией подключения и срабатыванием твоего триггера может произойти много чего интересного. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 18:55 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Симонов Денискстати зачем тебе потребовал определить архитектуру? Это всё твоя шальная затея с мьютексами что ли? Все решения должны проектироваться так чтобы они работали независимо от архитектуры сервера. Нее... Затея с собственной реализацией мьютексов/объектов блокировки не имеет смысла, а в FirebirdSQL реализацию таких вещей, я полагаю, не скоро добавят, если вообще когда-нибудь добавят. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 18:58 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Симонов Денисты своим триггером ничего не обезопасил. Оно (подключение) уже произошло, просто исключение в ON CONNECT триггере его разрывает. Между инициализацией подключения и срабатыванием твоего триггера может произойти много чего интересного.Всё правильно! Но без успешного выполнения триггера ON CONNECT, подключающийся пользователь не сможет выполнить DDL и что-нибудь попортить. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 18:59 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
rdb_dev, нет ты всё таки извращенец, да ещё и не читаешь ответы ДЕ. А ведь он тебе рассказал про простое решение без всяких там EDS, исключений и другой чепухи. Вот же оно Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 19:05 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Симонов Денис, а если добавить к этому проверку PID, то и SC от CS можно отличить ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 19:38 |
|
Кто как решал задачу определения архитектуры сервера v2.5 (Classic/Superserver) из ХП?
|
|||
---|---|---|---|
#18+
Симонов Дениснет ты всё таки извращенец, да ещё и не читаешь ответы ДЕ. А ведь он тебе рассказал про простое решение без всяких там EDS, исключений и другой чепухи. Вот же оноВидимо, я недоразобрался с примером Таблоида. Спасибо, что ткнул носом. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 01:39 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1562091]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
81ms |
get tp. blocked users: |
1ms |
others: | 278ms |
total: | 452ms |
0 / 0 |