powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / Informix [игнор отключен] [закрыт для гостей] / Начать с нуля с Informix 14
23 сообщений из 23, страница 1 из 1
Начать с нуля с Informix 14
    #40074888
Всем привет! Есть опыт с другими базами, но с информикс нет и глаза разбегаются, а поджилки трясутся от ужаса.
Установил версию 14 для разработчиков, инициализировал сервер как предлагал установщик. Дальше непонятно, как создать объекты. Какая база существует по умолчанию? Каким пользователем можно подключиться? Обычно я работаю из SquirrelSQL по JDBC. Драйвер подключил, нужно заполнить строку соединения, но ни имя базы, ни пользователь/пароль не знаю где взять.
Что почитать на IBM доках, чтобы найти эти значения?
От количества административных утилит голова пухнет.
Всё что от меня требуется - это создать 3 таблицы и если возможно несколько хранимых процедур для их CRUD. Ничего заумно-особенного.
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40074901
Установщик добавил в windows\system32\etc\services

ol_informix1410 9088/tcp
dr_informix1410 9089/tcp
lo_informix1410 9090/tcp
ol_informix1410_json 27017/json

когда я вызываю netstat, то oninit.exe слушает только на 9090 порту. что нужно сделать, чтобы информикс слушал и внешние соединения?
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40074919
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сибирский Пушистый,

стандартные базы, создаваемые по умолчанию - sysadmin, stores и sysmaster.
Используйте юзера/пароль из операционки, обычно при инсталляции еще и создает informix account, но я винду не помню.
Основная утилита в которой делается 95% работы - dbaccess , лежит в $INFORMIXDIR/bin . Примеры кода на java с строками коннекта лежат в $INFORMIXDIR/demo .
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40074920
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сибирский Пушистый,

на каком порту информикс слушает описано в файле sqlhosts

https://www.ibm.com/docs/en/informix-servers/12.10?topic=files-sqlhosts-file-sqlhosts-registry-key

default location of the sqlhosts file is:

UNIX:
$INFORMIXDIR/etc/sqlhosts
Windows:
%INFORMIXDIR%\etc\sqlhosts.%INFORMIXSERVER%


Там можно "в лоб" прописать номер порта, не заморачивась названием сервиса.

Для винды есть утилита Setnet32
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40075021
Выбегалло,

С файлами я, кажется, разобрался, там всё правильно, но слушать на портах кроме 9090 оно не желает. Зная IBM, я начинаю подозревать, что Developer Edition возможно доступен только локально. Подтвердить или опровергнуть из документации это я пока не смог: нигде не говорится о таком ограничении.
Как только я откатил снапшот, переустановил в каталог в корне с именем длиной меньше 8 символов и руками добавил переменные среды, то сразу заработали утилиты. В dbaccess я смог создать себе тестовую базу и увидеть её из Squirrel установленной на саму виртуалку.
Затык остаётся только с подключением извне. Поскольку установщик прописал в sqlhosts имя самой машины для ol_ и dr_, то для доступа по IP, как мне кажется, делать запись в etc/hosts не нужно, но я пробовал добавлять её, равно как и прописывать это имя в DNS, и всё равно ничего не изменилось. Может быть нужно регистрировать и запускать отдельные экземпляры oninit как сервисы? Увы, догадки закончились.
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40075025
Выбегалло
Сибирский Пушистый,
Там можно "в лоб" прописать номер порта, не заморачивась названием сервиса.

А как выглядит формат с прописыванием порта прямо в sqlhosts?
сейчас там что-то вроде

ol_informix1410 olsoctcp myvmhostname ol_informix1410
dr_informix1410 drsoctcp myvmhostname dr_informix1410
lo_informix1410 olsoctcp 127.0.0.1 lo_informix1410
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40075194
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сибирский Пушистый
Выбегалло
Сибирский Пушистый,
Там можно "в лоб" прописать номер порта, не заморачивась названием сервиса.

А как выглядит формат с прописыванием порта прямо в sqlhosts?
сейчас там что-то вроде

ol_informix1410 olsoctcp myvmhostname ol_informix1410
dr_informix1410 drsoctcp myvmhostname dr_informix1410
lo_informix1410 olsoctcp 127.0.0.1 lo_informix1410



drsoctcp тебе не нужен, оставь

ol_informix1410 olsoctcp myvmhostname 9088
lo_informix1410 olsoctcp 127.0.0.1 9090
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40075197
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сибирский Пушистый
Выбегалло,

С файлами я, кажется, разобрался, там всё правильно, но слушать на портах кроме 9090 оно не желает. Зная IBM, я начинаю подозревать, что Developer Edition возможно доступен только локально. Подтвердить или опровергнуть из документации это я пока не смог: нигде не говорится о таком ограничении.
Как только я откатил снапшот, переустановил в каталог в корне с именем длиной меньше 8 символов и руками добавил переменные среды, то сразу заработали утилиты. В dbaccess я смог создать себе тестовую базу и увидеть её из Squirrel установленной на саму виртуалку.
Затык остаётся только с подключением извне. Поскольку установщик прописал в sqlhosts имя самой машины для ol_ и dr_, то для доступа по IP, как мне кажется, делать запись в etc/hosts не нужно, но я пробовал добавлять её, равно как и прописывать это имя в DNS, и всё равно ничего не изменилось. Может быть нужно регистрировать и запускать отдельные экземпляры oninit как сервисы? Увы, догадки закончились.


у тебя уже есть доступ через tcp, локальный доступ через shared memomy требует отдельной строки в sqlhosts с типом onipcshm в поле типа сервиса.
Если с другого компа нет доступа - то это проблемы сети, попробуй ping, укажи правильное полное имя вместо myvmhostname и правильный IP адрес вместо 127.0.0.1
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40075231
[quot Выбегалло#22330521]
Сибирский Пушистый
Выбегалло,
у тебя уже есть доступ через tcp, локальный доступ через shared memomy требует отдельной строки в sqlhosts с типом onipcshm в поле типа сервиса.
Если с другого компа нет доступа - то это проблемы сети, попробуй ping, укажи правильное полное имя вместо myvmhostname и правильный IP адрес вместо 127.0.0.1


Это не проблемы сети: виртуалка пингуется с хоста. Проблема в том, что на её внешнем ip никто не слушает, что видно из netstat.

Вот с хоста:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
C:\>telnet 192.168.1.34 9088
Connecting To 192.168.1.34...Could not open connection to the host, on port 9088: Connect failed

C:\>telnet 192.168.1.34 9089
Connecting To 192.168.1.34...Could not open connection to the host, on port 9089: Connect failed

C:\>telnet 192.168.1.34 9090
Connecting To 192.168.1.34...Could not open connection to the host, on port 9090: Connect failed

C:\>ping 192.168.1.34

Pinging 192.168.1.34 with 32 bytes of data:
Reply from 192.168.1.34: bytes=32 time<1ms TTL=128
Reply from 192.168.1.34: bytes=32 time<1ms TTL=128
Reply from 192.168.1.34: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.1.34:
    Packets: Sent = 3, Received = 3, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms
Control-C
А вот с самой виртуалки:

Код: plaintext
1.
2.
3.
C:\>telnet 192.168.1.34 9090
Connecting To 192.168.1.34...Could not open connection to the host, on port 9090: Connect failed

C:\>telnet 127.0.0.1 9090
И вот тут оно вяжется! Естественно, потому что на 9090 порту по лупбэк адресу слушает oninit.exe. А вот по внешнему он не слушает и ни на каких либо других портах тоже не слушает. Вот и получается, что доступ возможен только внутри виртуалки через сервер lo_, хотя все порты открыты, файрвола нет, сеть проброшена. Пока на 9088 порту не начнёт слушать какой-то процесс, снаружи достуа не получить. Вопрос как его заставить слушать.
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40075266
Выбегалло
drsoctcp тебе не нужен, оставь

ol_informix1410 olsoctcp myvmhostname 9088
lo_informix1410 olsoctcp 127.0.0.1 9090


Однако, Вы подали мне ценную идею!
Всё заработало, когда я сделал вот так:

ol_informix1410 olsoctcp 192.168.1.34 9088
lo_informix1410 olsoctcp 127.0.0.1 9090

Просто сменить имена сервисов на порты оказалось недостаточно: он всё равно слушал лишь на 9090. А вот когда я сменил хост на адрес, вот тогда он сразу услышал.

Спасибо за помощь!
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40075282
В итоге, достаточно лишь сменить имя хоста на IP для ol_ и всё работает. Но осадок остался: почему и зачем IBM везде распинается про записи в hosts, services, и везде использует имена, когда они не работают? Может быть нужны ещё какие-то телодвижения, о которых документация так же точно умалчивает?
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40075295
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сибирский Пушистый
В итоге, достаточно лишь сменить имя хоста на IP для ol_ и всё работает. Но осадок остался: почему и зачем IBM везде распинается про записи в hosts, services, и везде использует имена, когда они не работают? Может быть нужны ещё какие-то телодвижения, о которых документация так же точно умалчивает?
вместо ИП лучше поставить 0.0.0.0 нафсякей.
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40075307
Следующий затык случился с .NET Provider. Естественно, я наступил на грабли ibm.data.informix x86 нугет пакета и понял, что нужно пользоваться чем-то другим. Вроде бы изо всего выходит что IBM настаивает и рекомендует чтобы пользовались IBM.Data.Db2.
Но теперь когда я его подцепил, его DB2ConnectionStringBuilder не может построить строку соединения из той, которую, как мне кажется, следует использовать для Informix:

"Database=test;Host=192.168.1.34;Server=ol_informix1410;Service=9088;Protocol=olsoctcp;"

А с этим-то как бороться? Пока ничего внятного в документации я не смог найти. Видимо не там ищу. К Informix вообще можно подключиться из-под .NET, не покупая контракт, позволяющий скачть Informix SDK?

Relic Hunter
вместо ИП лучше поставить 0.0.0.0 нафсякей.

А чем это лучше?
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40075310
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сибирский Пушистый,

будет слушать на фсех адресах сервера
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40075311
Relic Hunter
будет слушать на фсех адресах сервера

полагаю, это уже не нужно. этой виртуалке осталось жить ровно столько, сколько займёт создать и отладить несколько маленьких процедур.
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40075477
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сибирский Пушистый,

Informix SDK - он бесплатный
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40075478
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сибирский Пушистый
В итоге, достаточно лишь сменить имя хоста на IP для ol_ и всё работает. Но осадок остался: почему и зачем IBM везде распинается про записи в hosts, services, и везде использует имена, когда они не работают? Может быть нужны ещё какие-то телодвижения, о которых документация так же точно умалчивает?


Имя хоста работает когда нормально работает DNS сервер и Informix может транслировать из имени в IP.
Имя сервиса работает ( unix/linux) когда это имя есть в /etc/services , где оно транслируется в номер порта, не знаю как в винде.
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40075543
Другой вопрос:

Почему параметры хранимой процедуры не получается объявлять как IN? Хотя OUT работает...

На стр 5-74 в мануале IBM Informix Guide to SQL: Syntax говорится, что параметры могут быть IN, OUT, INOUT. Но когда я объявляю их как IN, то получаю 201 Syntax errror на первую букву типа данных. Если со всех параметров убрать IN и оставить только OUT на одном, то процедура компилируется.
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40075580
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
Сибирский Пушистый,

от же вопрос - а зачем так?

В SPL удобно входные параметры получать при вызове а возвращать данные через return

create procedure test_proc (par1 int, par2 date)
returning int as r1, date as r2;
return par1, par2 with resume;
return par1, par2 with resume;
return par1, par2 with resume;
end procedure;
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40075753
cpr
Сибирский Пушистый,

от же вопрос - а зачем так?

В SPL удобно входные параметры получать при вызове а возвращать данные через return

create procedure test_proc (par1 int, par2 date)
returning int as r1, date as r2;
return par1, par2 with resume;
return par1, par2 with resume;
return par1, par2 with resume;
end procedure;


Конечно можно, но вопрос был про IN.
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40075808
cpr
Сибирский Пушистый,
В SPL удобно входные параметры получать при вызове а возвращать данные через return

Попробовал так, но возвращаемые поля не имеют имён. Им можно присвоить имена?
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40076264
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сибирский Пушистый
cpr
Сибирский Пушистый,
В SPL удобно входные параметры получать при вызове а возвращать данные через return

Попробовал так, но возвращаемые поля не имеют имён. Им можно присвоить имена?



нет, надо просто знать порядок возвращаемых параметров.
...
Рейтинг: 0 / 0
Начать с нуля с Informix 14
    #40077260
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
Сибирский Пушистый,

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


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