powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Список серверов ASA в проекте C++ (требуется библиотека)
23 сообщений из 23, страница 1 из 1
Список серверов ASA в проекте C++ (требуется библиотека)
    #33113859
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотелось бы получить список ASA серверов в локальной сети и на указанном компьютере. Существует ли готовая библиотека для использования в проекте на C++, которая не требует наличия на машине дополнительных компонент (т.е. ничего из дистрибутива самого ASA)?

С уважением,
Мартин Рахманов
http://jimmers.russia.webmatrixhosting.net/
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33114386
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jimmers пишет:

> Хотелось бы получить список ASA серверов в локальной сети и на указанном
> компьютере. Существует ли готовая библиотека для использования в проекте
> на C++, которая не требует наличия на машине дополнительных компонент
> (т.е. ничего из дистрибутива самого ASA)?

Чем не устраивает утилита dblocate из дистрибутива?
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33114435
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jimmersХотелось бы получить список ASA серверов в локальной сети и на указанном компьютере. Существует ли готовая библиотека для использования в проекте на C++, которая не требует наличия на машине дополнительных компонент (т.е. ничего из дистрибутива самого ASA)?
Да существует, но в ESQL. Читай в BOL про функцию db_locate_servers().
Из всего дистрибутива ASA понадобится только одна dblib?.dll. Которую можно будет скопировать прямо к себе в каталог :)
В общем, читайте про Embedded SQL - оно очень вкусно, хоть и слегка заморочено :)
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33114657
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Требование заказчика - никаких зависимостей от Sybase. В идеале - код, компилируемый в моё приложение. Поэтому варианты с dblib* не подходят.
Я уже написал почти код, одна проблема - как на UDP сокете обработать получение одновременное данных со многих хостов наилучшим образом?
Я посылаю широковещательное сообщение на UDP порт 2638 и жду ответа. Ответить могут сотни машин одновременно...

С уважением,
Мартин Рахманов
http://jimmers.russia.webmatrixhosting.net/
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33114685
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jimmersТребование заказчика - никаких зависимостей от Sybase. В идеале - код, компилируемый в моё приложение. Поэтому варианты с dblib* не подходят.
Не понял. Откуда такое требование и почему? Для чего может потребоваться получить список ASA серверов и при этом без использования ASA библиотек? Если заказчик боится, что со сменой версии сервера прийдется перекомпилировать клиента - то зря. dblib?.dll прекрасно совместим по вертикали.

jimmersЯ уже написал почти код, одна проблема - как на UDP сокете обработать получение одновременное данных со многих хостов наилучшим образом?
Я посылаю широковещательное сообщение на UDP порт 2638 и жду ответа. Ответить могут сотни машин одновременно...
Ну это тебе не сюда вообще-то :) Это в учебник по сетевым технологиям. Сам я частно говоря UDP использовал очень мало, так что на память не подскажу а собственный учебник дома. Но я все равно не понимаю почему нельзя использовать dll от ASA, если уже и так известно что мы ищем именно ASA сервера. К тому же там в ответе может содержаться куча полезной информации, которую методом хака разобрать конечно можно, но потратишь слишком уж много времни.
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33114731
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рассказываю подробно. Есть софт, который среди прочего должен обнаружить ASA сервера в указанной подсети или даже на указанной машине. Софт не должен быть завязан на Sybase по причине лицензирования, не говоря уже о том, что я очень сомневаюсь, что библиотека dblibN.dll не завязана ни на что больше (к примеру, на ключи в реестре). Это кратко про то, почему не катит решение от Sybase.

Про db_locate_servers: она ищёт в локальной сети. А требуется и на указанном по IP компе также.

Про хак: собственно, там всего три вещи в ответе можно найти, а именно имя базы, порт и IP сервера.

С уважением,
Мартин Рахманов
http://jimmers.russia.webmatrixhosting.net/
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33114862
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jimmers пишет:

> Я посылаю широковещательное сообщение на UDP порт 2638 и жду ответа.
> Ответить могут сотни машин одновременно...

Вообще-то говоря сервер ASA может быть поднят и на другом порту,
отличном от 2638. Мало того, их может быть несколько штук одновременно
на одной машине.
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33114968
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не сочтите за дерзость, но тем не менее, разрешите мне рассказать немного об архитектуре ASA в плане обнаружения экземпляров, основываясь на документации и опыте работы с ним:

Экземпляр может быть поднят на любом порту, но специальная служба, отвечающая за обнаружение экземпляров, всегда слушает на UDP порту 2638. При получении датаграммы опредёленного вида, эта служба отсылает ответ, содержащий имя базы, обслуживаемой экземпляром и порт, на котором экземпляр работает. Под службой я разумею отдельный поток процесса сервера. Разумеется, этот поток можно отключить - см. опцию -sb (не уверен, под рукой нет мануала).

Вот об этом я и пишу – программа уже написана почти, сомнения только в обработке множества ответов.
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33115277
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не парься, это реально.
Делал такую штуку, чтоб показывала сколько, какие и где стоят серваки.
Правильным путем идешь. Слушаешь UDP порт и все, в чем проблема-то?
Нужно только свой слушающий сервер биндить на широковещательный порт, а он может быть разный, от 192.168.255.255 до 255.255.255.255. Лучше всего взять сниффер и посмотреть какие пакетики, куда шлются.
Но это уже сетевые технологии, и скорее всего это не тот форум.
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33115374
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще.
На счет разных портов, у меня не получалось слать на 2638 запрос, и получать ответ от сервера, который висит на 2650. Вот если слать на 2650, ответ приходит.
В сети могут стоять всякие разные файерволы (или просто так сеть настроена), и серваки вообще могут быть не видны (родными средствами тоже).
Создавая собственное средство в этом месте, Вы ограничиваете функционал системы. Лучше вообще отказаться от "поисковиков". Вдруг они (заказчик) сменят версию АСА, или другую СУБД возьмут.
Хотя, конечно же, если просят - их проблемы.
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33115404
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2iLLer

Вы не совсем поняли суть проблемы. ASA всегда слушает на UDP 2638 (конечно, если broadcast не отключен через опцию –sb). Клиент, который ищет экземпляры в сети, рассылает широковещательное сообщение на UDP порт 2638. Тут вариантов нет и быть не может – иначе бы ничего не работало в принципе (я про то, что номер порта фиксирован). Конечно, при прохождении через firewall этот трафик может быть отрублен (и будет отрублен, если firewall настроен правильно) – но это не мои проблемы.

Далее, если в локальной сети тысячи экземпляров ASA и все они разом ответят клиенту, то надо корректно обработать ответы – не потерять ничего, не зависнуть и т.п. Вот это и проблема – как написать этот код.
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33115468
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jimmersВы не совсем поняли суть проблемы. ASA всегда слушает на UDP 2638 (конечно, если broadcast не отключен через опцию –sb). Клиент, который ищет экземпляры в сети, рассылает широковещательное сообщение на UDP порт 2638.
Версия какая?
На моей 6.04 такое не работает. Не слушают сервера 2638, если они запущены на других портах - бесспорный факт, проверенный сниффером.
С 9-ой не пробовал, может и слушает.

jimmers
Далее, если в локальной сети тысячи экземпляров ASA и все они разом ответят клиенту, то надо корректно обработать ответы – не потерять ничего, не зависнуть и т.п. Вот это и проблема – как написать этот код.
Вкладываю пример. Как доработать разберетесь.
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33115480
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версию разумею свежайшую, т.е. девятку.

Примера не вижу.
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33115497
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.

По поводу древних версий: любопытно, как оно работает в 6-ке. Неужели там порт другой? И вообще, в шестой версии есть возможность получения списка ASA серверов в сети?
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33115540
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то не вложилось, повтор.
Способ в 6-ке есть, недокументированный, как я понимаю.
В примере увидите, но повторяю еще раз, 6-ка не сидит на других портах.
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33116061
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, вечером посмотрю на 6-ке под Linux.

С уважением,
Мартин Рахманов
http://jimmers.russia.webmatrixhosting.net/
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33116237
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jimmersЕсть софт, который среди прочего должен обнаружить ASA сервера в указанной подсети или даже на указанной машине. Софт не должен быть завязан на Sybase по причине лицензирования,
А вам не кажется, что тут есть легкая нестыковка? :) Если есть сомнения с точки зрения лицензирования, то вы не имеете права (с точки зрения лицензирования) перехватывать и напрямую работать с 2638-ым портом. И вообще, зачем искать ASA сервера если вы не собираетесь с ними работать? А без лицензии вы с ними работать не сможете.

jimmersне говоря уже о том, что я очень сомневаюсь, что библиотека dblibN.dll не завязана ни на что больше (к примеру, на ключи в реестре).
Зря сомневаешься. Не завязана. Не использует она ни ключей в реестре, ни дополнительных dll, и даже dblib6.dll запросто подключится к девятому серверу.

jimmersПро db_locate_servers: она ищёт в локальной сети. А требуется и на указанном по IP компе также.
А к указаному по IP компу надо просто попытаться подсоединиться :)
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33116253
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlА вам не кажется, что тут есть легкая нестыковка? :) Если есть сомнения с точки зрения лицензирования, то вы не имеете права (с точки зрения лицензирования) перехватывать и напрямую работать с 2638-ым портом. И вообще, зачем искать ASA сервера если вы не собираетесь с ними работать? А без лицензии вы с ними работать не сможете.

Не кажется. Где именно в лицензионном соглашении сказано, что я не имею права посылать и принимать пакеты своей тулзой?

White OwlЗря сомневаешься. Не завязана. Не использует она ни ключей в реестре, ни дополнительных dll, и даже dblib6.dll запросто подключится к девятому серверу.

Тогда вопрос лицензии всё равно в силе.

White OwlА к указаному по IP компу надо просто попытаться подсоединиться :)

Ну это уже полная чушь. Мне требуется получить список баз, работающих на указанном компьютере. Не больше, ни меньше. Подключение - совершенно иное действие.

С уважением,
Мартин Рахманов
http://jimmers.russia.webmatrixhosting.net/
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33116489
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jimmers White OwlА к указаному по IP компу надо просто попытаться подсоединиться :)Ну это уже полная чушь. Мне требуется получить список баз, работающих на указанном компьютере. Не больше, ни меньше. Подключение - совершенно иное действие.
К сожалению, получить список запущеных баз на сервере не подключившись к какой-либо из баз на этом сервере не возможно. Во всяком случае ни через один официальный протокол. Может быть получится это сделать напрямую через UDP. Может быть.
Но меня до сих пор жутко мучает вопрос - ЗАЧЕМ??? Вы делаете универсальную утилиту администрирования?
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33116539
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlК сожалению, получить список запущеных баз на сервере не подключившись к какой-либо из баз на этом сервере не возможно.

Ну это вы ошибаетесь. Откройте документацию на предмет dblocate, например. Или когда в Interactive SQL нажимают кнопку Find. Никакого коннекта к серверу не происходит, просто по UDP отсылается запрос. Почитайте документацию - про broadcast.

Для чего я не могу сказать - NDA.
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33123804
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jimmersСпасибо, вечером посмотрю на 6-ке под Linux.

С уважением,
Мартин Рахманов
http://jimmers.russia.webmatrixhosting.net/

Не могу проверить, ибо 6-ка на Red Hat Enterprise Linux 3 не полностью работает: сам сервер пашет, а вот клиентские инструменты - нет, так как они требуют ncurses 4, тогда как в системе 5-ка (установить 4-ку нереально - огромное количество зависимостей от 5-ки). В этой связи у меня просьба к петербуржцам: у кого есть Red Hat Linux 5/6 либо ASA 9 под Linux - поделитесь, пожалуйста.

Спасибо
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33130344
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Up

С уважением,
Мартин Рахманов
http://jimmers.russia.webmatrixhosting.net/
...
Рейтинг: 0 / 0
Список серверов ASA в проекте C++ (требуется библиотека)
    #33132315
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Остались вопросы?
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Список серверов ASA в проекте C++ (требуется библиотека)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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