Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Время жизни dblink_connect? / 7 сообщений из 7, страница 1 из 1
15.08.2015, 14:49
    #39030004
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время жизни dblink_connect?
Сколько существует коннект, созданный dblink_connect?
...
Рейтинг: 0 / 0
15.08.2015, 14:58
    #39030007
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время жизни dblink_connect?
Winnipuh,
1. пока не скажете dblink_disconnect -- из родительского сеанса
2. или pg_terminate_backend(пид) -- откуда угодно
3 . или не закроете родительскую сессию.
... <и т.п.>
...
Рейтинг: 0 / 0
15.08.2015, 19:54
    #39030094
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время жизни dblink_connect?
Вот интересно, можно сделать такое же, но постоянное, где-то запомненное, что-то типа Linked Server как в SQL Server, то есть чтобы постоянно существовал?
...
Рейтинг: 0 / 0
16.08.2015, 04:47
    #39030180
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время жизни dblink_connect?
WinnipuhВот интересно, можно сделать такое же, но постоянное, где-то запомненное, что-то типа Linked Server как в SQL Server, то есть чтобы постоянно существовал?

постоянно в смысле автоматически в любом новом коннекте выданном приложению?
через pgbouncer легко... делаете хранимку которая вызывает этот dblink connect
и ставите ее в connect_query='SELECT вашахранимка();' в pgbouncer в настройках вашего пула.

"
connect_query
Query to be executed after a connection is established, but before allowing the connection to be used by any clients.
"

Через connect_query вообще можно много интересной инициализационной логики накрутить типа создания "постоянных временных таблиц" И тд и тп.

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
16.08.2015, 15:37
    #39030296
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время жизни dblink_connect?
Maxim BogukWinnipuhВот интересно, можно сделать такое же, но постоянное, где-то запомненное, что-то типа Linked Server как в SQL Server, то есть чтобы постоянно существовал?

постоянно в смысле автоматически в любом новом коннекте выданном приложению?
через pgbouncer легко... делаете хранимку которая вызывает этот dblink connect
и ставите ее в connect_query='SELECT вашахранимка();' в pgbouncer в настройках вашего пула.

"
connect_query
Query to be executed after a connection is established, but before allowing the connection to be used by any clients.
"

Через connect_query вообще можно много интересной инициализационной логики накрутить типа создания "постоянных временных таблиц" И тд и тп.

--
Maxim Boguk
www.postgresql-consulting.ru
возможно, это то, что нужно ТС, но я думаю, что нет.

мне бы хотелось иметь расшаренное соединения (конкретный пид) -- чтобы из любого другого получать именно его -- с его окружением. я бы через него обменивался. Т.е. нужно именованное соединение, доступное по имени из любого другого (если не занято).

а баунсер, даже если [случайно] выдаст вам нужное, сделает сразу discard all
если я не прав -- то в цитате не хватает деталей.

а то , что про баунсер -- с той же точностью -- через [fdw] сервера -- открываете соединение dblink, вместо строки соединения -- имя сервера -- и делов. накладные -- каждое обращение через создание нового соединения -- решаемо ... тем же баунсером.
...
Рейтинг: 0 / 0
17.08.2015, 08:17
    #39030523
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время жизни dblink_connect?
qwwqвозможно, это то, что нужно ТС, но я думаю, что нет.

мне бы хотелось иметь расшаренное соединения (конкретный пид) -- чтобы из любого другого получать именно его -- с его окружением. я бы через него обменивался. Т.е. нужно именованное соединение, доступное по имени из любого другого (если не занято).

а баунсер, даже если [случайно] выдаст вам нужное, сделает сразу discard all
если я не прав -- то в цитате не хватает деталей.

а то , что про баунсер -- с той же точностью -- через [fdw] сервера -- открываете соединение dblink, вместо строки соединения -- имя сервера -- и делов. накладные -- каждое обращение через создание нового соединения -- решаемо ... тем же баунсером.

1)C расшаренным dblink на всех ничего не получится в текущих версиях.

2)а зачем pgbouncer в transaction pooling mode то discard all; то делать???? Чтобы сбросить все что в connect_query сделали???
Из официальной документации:
"When transaction pooling is used, the server_reset_query should be empty, as clients should not use any session features. If client does use session features, then they will be broken as transaction pooling will not guarantee that next query will be run on same connection."
А без discard all; все выданные клиентам соединения будут всегда иметь установленный dblink готовый к использованию (ну почти всегда конечно, если оно оборвется по каким то причинам то клиент должен это корректно обрабатывать).

PS: автору топика стоит в сторону FDW смотреть а не в сторону dblink, FDW автоматом открывает соединение при первом обращении в foreign серверу:
"postgres_fdw establishes a connection to a foreign server during the first query that uses a foreign table associated with the foreign server. This connection is kept and re-used for subsequent queries in the same session. However, if multiple user identities (user mappings) are used to access the foreign server, a connection is established for each user mapping."
см: http://www.postgresql.org/docs/9.4/static/postgres-fdw.html

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
17.08.2015, 11:29
    #39030611
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время жизни dblink_connect?
[quot Maxim Boguk]qwwqвозможно, это то, что нужно ТС, но я думаю, что нет.

мне бы хотелось иметь расшаренное соединения (конкретный пид) -- чтобы из любого другого получать именно его -- с его окружением. я бы через него обменивался. Т.е. нужно именованное соединение, доступное по имени из любого другого (если не занято).

а баунсер, даже если [случайно] выдаст вам нужное, сделает сразу discard all
если я не прав -- то в цитате не хватает деталей.

а то , что про баунсер -- с той же точностью -- через [fdw] сервера -- открываете соединение dblink, вместо строки соединения -- имя сервера -- и делов. накладные -- каждое обращение через создание нового соединения -- решаемо ... тем же баунсером.

1)C расшаренным dblink на всех ничего не получится в текущих версиях.

2)а зачем pgbouncer в transaction pooling mode то discard all; то делать???? Чтобы сбросить все что в connect_query сделали???
Из официальной документации:
"When transaction pooling is used, the server_reset_query should be empty, as clients should not use any session features. If client does use session features, then they will be broken as transaction pooling will not guarantee that next query will be run on same connection."
А без discard all; все выданные клиентам соединения будут всегда иметь установленный dblink готовый к использованию (ну почти всегда конечно, если оно оборвется по каким то причинам то клиент должен это корректно обрабатывать).

PS: автору топика стоит в сторону FDW смотреть а не в сторону dblink, FDW автоматом открывает соединение при первом обращении в foreign серверу:
"postgres_fdw establishes a connection to a foreign server during the first query that uses a foreign table associated with the foreign server. This connection is kept and re-used for subsequent queries in the same session. However, if multiple user identities (user mappings) are used to access the foreign server, a connection is established for each user mapping."
см: http://www.postgresql.org/docs/9.4/static/postgres-fdw.html

Да, видимо FDW, но я тут рядом открывал тему про FDW, какие-то они недоделанные немножко.
Скажем мне надо версию для Windows: sqlite_fdw - нашел, даже работает, но только на чтение, tds_fdw - а нету.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Время жизни dblink_connect? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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