powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подключение к другому компьютеру через DLL
16 сообщений из 16, страница 1 из 1
Подключение к другому компьютеру через DLL
    #39890407
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!


Есть Oracle 11, надо настроить подключение к определенному порту другого компьютера через DLL.

DLL лежит в каталоге BIN, со стороны Oracle она запускается, но не может подключиться к определенному порту другого компьютера.

Написал тестовый exe, который запускает DLL, положил в папку BIN, все работает, но если запускать эту DLL из Oracle, то она выдает ошибку подключения в порту.

Какие надо сделать настройки, чтобы Oracle мог видеть порт другого компьютера?
...
Рейтинг: 0 / 0
Подключение к другому компьютеру через DLL
    #39890463
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал подключиться через пакет UTL_TCP, получил ошибку

ORA-24247: отказ в доступе к сети в соответствии со списком контроля доступа (ACL)
ORA-06512: на "SYS.UTL_TCP", line 17
ORA-06512: на "SYS.UTL_TCP", line 267
ORA-06512: на "RB.PKG_ACTION", line 666
ORA-06512: на line 3
...
Рейтинг: 0 / 0
Подключение к другому компьютеру через DLL
    #39890469
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй через UTL_SMTP, может пролезет
...
Рейтинг: 0 / 0
Подключение к другому компьютеру через DLL
    #39890483
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров
Попробуй через UTL_SMTP, может пролезет


Не пролезло, точно такая же ошибка.
...
Рейтинг: 0 / 0
Подключение к другому компьютеру через DLL
    #39890486
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rb,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
24247. 00000 -  "network access denied by access control list (ACL)"
*Cause:    No access control list (ACL) has been assigned to the target
           host or the privilege necessary to access the target host has not
           been granted to the user in the access control list.
*Action:   Ensure that an access control list (ACL) has been assigned to
           the target host and the privilege necessary to access the target
           host has been granted to the user.
...
Рейтинг: 0 / 0
Подключение к другому компьютеру через DLL
    #39890492
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну раз с наскоку не получилось можно попробовать почитать доку
https://docs.oracle.com/cd/B19306_01/install.102/e10319/extproc.htm
Но, это, конечно, если мы друг друга поняли
...
Рейтинг: 0 / 0
Подключение к другому компьютеру через DLL
    #39890510
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прогнал скрипты по ACL отсюда:
http://www.interface.ru/home.asp?artId=20274

Из Oracle коннект прошел, а через DLL без изменений.
...
Рейтинг: 0 / 0
Подключение к другому компьютеру через DLL
    #39890515
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров
Ну раз с наскоку не получилось можно попробовать почитать доку
https://docs.oracle.com/cd/B19306_01/install.102/e10319/extproc.htm
Но, это, конечно, если мы друг друга поняли


Из настроек я менял только настройку листенера

Код: plsql
1.
ENVS = "EXTPROC_DLLS=ANY"



TNS_NAMES без изменений

SPIRE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = host)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SPIRE)
)
)

ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
...
Рейтинг: 0 / 0
Подключение к другому компьютеру через DLL
    #39891134
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возник еще один вопрос - функция, возвращающая VARCHAR2, возвращает только первый символ.

Объявление функции:
Код: plsql
1.
2.
3.
4.
5.
CREATE OR REPLACE FUNCTION TestString(p_IP IN Varchar2, p_port IN BINARY_INTEGER)
  RETURN VARCHAR2 AS EXTERNAL
  LIBRARY TEST4
  NAME "TestString"
  LANGUAGE c;



Том Кайт пишет, что надо указывать размер строки, которую вернет функция, но как это сделать?
...
Рейтинг: 0 / 0
Подключение к другому компьютеру через DLL
    #39891137
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rb,

Тут аналогичная проблема
...
Рейтинг: 0 / 0
Подключение к другому компьютеру через DLL
    #39891141
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-
Sergey_rb,

Тут аналогичная проблема


Да, я делал подключение DLL на другой работе, вот только много забыл...
...
Рейтинг: 0 / 0
Подключение к другому компьютеру через DLL
    #39891164
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Записал текст ошибки в файл.

При попытке подключение по TCP/IP из DLL возникла ошибка:

Код: plsql
1.
2.
System Error.  Code: 123.
Синтаксическая ошибка в имени файла, имени папки или метке тома
...
Рейтинг: 0 / 0
Подключение к другому компьютеру через DLL
    #39891178
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синтаксическая ошибка в имени файла, имени папки или метке тома

Sergey_rb

При попытке подключение по TCP/IP


Не верю ©
...
Рейтинг: 0 / 0
Подключение к другому компьютеру через DLL
    #39891186
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде разобрался.

Из Oracle передается тип Varchar2, на входе функции DLL тип PCHAR.

В функцию, вместо входящего параметра IP и номера порта поступает вот такое


Код: plsql
1.
2.
??????0
??



Если в функции DLL поменять pchar на string, то вообще ничего не приходит.


Oracle 11g 64 bit.
...
Рейтинг: 0 / 0
Подключение к другому компьютеру через DLL
    #39891189
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rb
Если в функции DLL поменять pchar на string, то вообще ничего не приходит.
Метод тыка здесь не пройдёт.
...
Рейтинг: 0 / 0
Подключение к другому компьютеру через DLL
    #39891206
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic
Sergey_rb
Если в функции DLL поменять pchar на string, то вообще ничего не приходит.
Метод тыка здесь не пройдёт.


Написал функцию в DLL, которая получает PCHAR и это же значение возвращает в виде PCHAR.
Функция возвращает корректное значение.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подключение к другому компьютеру через DLL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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