Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / В коннект сессии передать параметры компа юзера. / 15 сообщений из 15, страница 1 из 1
14.03.2013, 12:24
    #38183560
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В коннект сессии передать параметры компа юзера.
Добрый день!
Есть закрытое приложение, толстый клиент. Оно работает через Application (аля 3-х звенка) - потому на базе (9.7) мы не видим аудита чья сессия пользователя, хотелось бы видеть на базе в параметрах сессии и логин юзера, под которым он зашёл в приложение и имя машины пользователя:

Строка подключения взята из конструктора, больше интересует параметра DBPARM, хочу примерно как выделено жирным,
но как эти параметры называются на самом деле не знаю.
Вопрос наверное находится на стыке например java и IBM (знатокам java драйвера), но все же - может кто подскажет?

Код: java
1.
2.
3.
4.
5.
6.
STRING hostName = 'SUPERWORK/worker';
String login_us = 'USVER';
SQLCA.DBMS = "JDBC"
SQLCA.LogPass = 'testter'
SQLCA.LogId = "123456"
SQLCA.DBParm = "URL='jdbc:db2://datserv:50000/DAT17',Driver='com.ibm.db2.jcc.DB2Driver' , Host Name = + 'hostName '  + ',' + Login = + 'login_us ' "
...
Рейтинг: 0 / 0
14.03.2013, 13:32
    #38183767
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В коннект сессии передать параметры компа юзера.
В Oracle подсказали , как
Лучше бы конечно через драйвер при первоначальном коннекте, но можно как и в Oracle с помощью процедуры после коннекта:
DBMS_APPLICATION_INFO.SET_MODULE (module_name IN VARCHAR2, action_name IN VARCHAR2);
http://docs.oracle.com/cd/E11882_01/appdev.112/e16760/d_appinf.htm#CHEJCFGG

Есть что нибудь похожее в DB2 должно быть?!
...
Рейтинг: 0 / 0
14.03.2013, 13:40
    #38183782
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В коннект сессии передать параметры компа юзера.
Опять наверное вопрос не вкусный, но свои мольбы я обращаю к Марку)) I need help!
...
Рейтинг: 0 / 0
14.03.2013, 14:36
    #38183923
m72
m72
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В коннект сессии передать параметры компа юзера.
medoed,

Это что получается, для каждого клиента апп-сервера создается выделенный коннект к БД?
(а может и не один) ?
...
Рейтинг: 0 / 0
14.03.2013, 14:47
    #38183950
В коннект сессии передать параметры компа юзера.
medoed,

Common IBM Data Server Driver for JDBC and SQLJ properties for DB2 servers
Насколько помню, в этом случае можно/нужно заполнять:
clientAccountingInformation
clientApplicationInformation
clientProgramId
clientProgramName

Если пулом соединений рулит сервер приложений IBM WebSphere Application Server, то он эту информацию может заполнять сам.
...
Рейтинг: 0 / 0
14.03.2013, 15:52
    #38184107
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В коннект сессии передать параметры компа юзера.
m72medoed,

Это что получается, для каждого клиента апп-сервера создается выделенный коннект к БД?
(а может и не один) ?
Да, Websphera отдельный коннект для каждого пользователя...
...
Рейтинг: 0 / 0
14.03.2013, 15:53
    #38184111
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В коннект сессии передать параметры компа юзера.
Евгений Хабаровmedoed,

Common IBM Data Server Driver for JDBC and SQLJ properties for DB2 servers
Насколько помню, в этом случае можно/нужно заполнять:
clientAccountingInformation
clientApplicationInformation
clientProgramId
clientProgramName

Если пулом соединений рулит сервер приложений IBM WebSphere Application Server, то он эту информацию может заполнять сам.
Спасибо проверяю...
...
Рейтинг: 0 / 0
14.03.2013, 16:01
    #38184133
В коннект сессии передать параметры компа юзера.
medoedm72medoed,

Это что получается, для каждого клиента апп-сервера создается выделенный коннект к БД?
(а может и не один) ?
Да, Websphera отдельный коннект для каждого пользователя...
Неправильный ответ.

В WAS существует понятие пула соединений. как собственно и в любом сертифицированном сервере приложений.
Если приложения, использующие пул, написаны правильно, то соединение с базой берется из пула на время выполнения SQL-операций и возвращается в пул сразу после завершения этих операций. Т.е. приложение не удерживает соединение монопольно.
Пул открывает некоторое количество физических соединений с СУБД, достаточное для обслуживания запросов, исполняемых одновременно. При этом, если в свойствах пула максимальное количество соединений ограничено, по достижении максимума запросы на соединения будут становиться в очередь, либо приложению будет возвращаться ошибка о исчерпании пула, зависит от настроек пула.

К примеру, если есть сервлет, который выполняет короткие запросы к базе при формировании страницы, то вполне реально обслуживать скажем сотню веб-пользователей пулом из 10 соединений, т.к. запросы они передают серверу не строго одновременно.
...
Рейтинг: 0 / 0
14.03.2013, 16:18
    #38184169
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В коннект сессии передать параметры компа юзера.
Евгений Хабаровmedoed,

Common IBM Data Server Driver for JDBC and SQLJ properties for DB2 servers
Насколько помню, в этом случае можно/нужно заполнять:
clientAccountingInformation
clientApplicationInformation
clientProgramId
clientProgramName

Если пулом соединений рулит сервер приложений IBM WebSphere Application Server, то он эту информацию может заполнять сам.

Поставил:
SQLCA.DBParm = "URL='jdbc:db2://datserv:50000/DAT17',Driver='com.ibm.db2.jcc.DB2Driver', clientProgramName = ' my_prog', clientProgramId = 'Prog_test'"

Ничего не изменилось, не помогло. Клиент у меня пока PowerBuilder, драйвер - JDBC .
...
Рейтинг: 0 / 0
14.03.2013, 16:21
    #38184177
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В коннект сессии передать параметры компа юзера.
Евгений Хабаровmedoedпропущено...

Да, Websphera отдельный коннект для каждого пользователя...
Неправильный ответ.

В WAS существует понятие пула соединений. как собственно и в любом сертифицированном сервере приложений.
Если приложения, использующие пул, написаны правильно, то соединение с базой берется из пула на время выполнения SQL-операций и возвращается в пул сразу после завершения этих операций. Т.е. приложение не удерживает соединение монопольно.
Пул открывает некоторое количество физических соединений с СУБД, достаточное для обслуживания запросов, исполняемых одновременно. При этом, если в свойствах пула максимальное количество соединений ограничено, по достижении максимума запросы на соединения будут становиться в очередь, либо приложению будет возвращаться ошибка о исчерпании пула, зависит от настроек пула.

К примеру, если есть сервлет, который выполняет короткие запросы к базе при формировании страницы, то вполне реально обслуживать скажем сотню веб-пользователей пулом из 10 соединений, т.к. запросы они передают серверу не строго одновременно.

Но в этих же соединениях базы для пула можно прописать одинаковые параметры, например имя хоста пользователя и его логин?
В сервере приложений WebSphere - не силен, каюсь...
...
Рейтинг: 0 / 0
14.03.2013, 16:44
    #38184260
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В коннект сессии передать параметры компа юзера.
Евгений Хабаровmedoed,

Common IBM Data Server Driver for JDBC and SQLJ properties for DB2 servers
Насколько помню, в этом случае можно/нужно заполнять:
clientAccountingInformation
clientApplicationInformation
clientProgramId
clientProgramName

Если пулом соединений рулит сервер приложений IBM WebSphere Application Server, то он эту информацию может заполнять сам.
Можно попросить пример как это сделать на java, установить эти параметры (пусть даже и не в драйвере).
Кстати, нашел вопрос Марка на иностранном форуме, но там оперируются структуры и язык С.
Спасибо!
...
Рейтинг: 0 / 0
14.03.2013, 16:51
    #38184280
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В коннект сессии передать параметры компа юзера.
medoedЕвгений Хабаровmedoed,

Common IBM Data Server Driver for JDBC and SQLJ properties for DB2 servers
Насколько помню, в этом случае можно/нужно заполнять:
clientAccountingInformation
clientApplicationInformation
clientProgramId
clientProgramName

Если пулом соединений рулит сервер приложений IBM WebSphere Application Server, то он эту информацию может заполнять сам.
Можно попросить пример как это сделать на java, установить эти параметры (пусть даже и не в драйвере).
Кстати, нашел вопрос Марка на иностранном форуме, но там оперируются структуры и язык С.
Спасибо!

Подсказали jav -исты...\\\

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
public class ClientInfoTest {
  public static void main(String[] args) { 
   String url = "jdbc:db2://sysmvs1.stl.ibm.com:5021/san_jose";
    try {
      Class.forName("com.ibm.db2.jcc.DB2Driver");       
      String user = "db2adm";
      String password = "db2adm";
      Connection conn = DriverManager.getConnection(url,       1 
        user, password); 
      conn.setClientInfo("ClientUser", "Michael L Thompson");  2 
      conn.setClientInfo("ClientHostname, "sjwkstn1");
      // Execute SQL to force extended client information to be sent
      // to the server
      conn.prepareStatement("SELECT * FROM SYSIBM.SYSDUMMY1"
         + "WHERE 0 = 1").executeQuery();                      3 
    } catch (Throwable e) {
      e.printStackTrace();
    }
  }
}
...
Рейтинг: 0 / 0
14.03.2013, 17:06
    #38184315
В коннект сессии передать параметры компа юзера.
medoedЕвгений Хабаровпропущено...

Неправильный ответ.

В WAS существует понятие пула соединений. как собственно и в любом сертифицированном сервере приложений.
Если приложения, использующие пул, написаны правильно, то соединение с базой берется из пула на время выполнения SQL-операций и возвращается в пул сразу после завершения этих операций. Т.е. приложение не удерживает соединение монопольно.
Пул открывает некоторое количество физических соединений с СУБД, достаточное для обслуживания запросов, исполняемых одновременно. При этом, если в свойствах пула максимальное количество соединений ограничено, по достижении максимума запросы на соединения будут становиться в очередь, либо приложению будет возвращаться ошибка о исчерпании пула, зависит от настроек пула.

К примеру, если есть сервлет, который выполняет короткие запросы к базе при формировании страницы, то вполне реально обслуживать скажем сотню веб-пользователей пулом из 10 соединений, т.к. запросы они передают серверу не строго одновременно.

Но в этих же соединениях базы для пула можно прописать одинаковые параметры, например имя хоста пользователя и его логин?
В сервере приложений WebSphere - не силен, каюсь...
Да, обычной практикой является то, что все приложение (или его части) работает с пулом от одного идентификатора (с точки зрения СУБД). При этом каждый Resource Reference в приложении можно привязать к любому пулу соединений с уникальным идентификатором (userid/password). Делается это при связывании (binding) указанием нужного J2C Authentication Alias. Остальные параметры подключения (хост, порт, имя базы, и т.п.) задаются на уровне пула соединений.
...
Рейтинг: 0 / 0
14.03.2013, 17:13
    #38184326
В коннект сессии передать параметры компа юзера.
medoedЕвгений Хабаровmedoed,

Common IBM Data Server Driver for JDBC and SQLJ properties for DB2 servers
Насколько помню, в этом случае можно/нужно заполнять:
clientAccountingInformation
clientApplicationInformation
clientProgramId
clientProgramName

Если пулом соединений рулит сервер приложений IBM WebSphere Application Server, то он эту информацию может заполнять сам.
Можно попросить пример как это сделать на java, установить эти параметры (пусть даже и не в драйвере).
Кстати, нашел вопрос Марка на иностранном форуме, но там оперируются структуры и язык С.
Спасибо!
Описание для сервера приложений (WAS):
Network Deployment (All operating systems), Version 8.5 > End-to-end paths > Data access resources > Passing client information to a database
Network Deployment (All operating systems), Version 8.5 > Reference > Log and trace file descriptions > Implicitly set client information
...
Рейтинг: 0 / 0
15.03.2013, 11:17
    #38185226
medoed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В коннект сессии передать параметры компа юзера.
Когда делал тестовый проект - подсказали прикольную фичу на форуме PowerBuilder
Может кому пригодится:

Код: plsql
1.
2.
 
CALL SYSPROC.WLM_SET_CLIENT_INFO('USVER', 'MY_KOMP', NULL, NULL, NULL);
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / В коннект сессии передать параметры компа юзера. / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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