Как установить информацию о клиенте без WSConnection - PullRequest
0 голосов
/ 17 января 2019

Наш проект использует Websphere, и мы должны установить «информацию о клиенте», используя WSConnection . База данных DB2 использует их для аудита. И это прекрасно работает в Websphere. Однако мы хотим сейчас использовать ту же кодовую базу в консольном приложении, работающем вне веб-сферы. Поэтому я хочу изменить приведенный ниже код, чтобы он не зависел от веб-сферы или нет.

Есть ли какой-нибудь более стандартный способ выполнения нижеприведенного? Что-то с использованием прямой JDBC? Или какой-то другой подход, который позволяет мне не создавать зависимость от этого кода для веб-сферы и ее библиотек?

            Properties props = new Properties();

            props.setProperty(WSConnection.CLIENT_ID, userid);
            props.setProperty(WSConnection.CLIENT_APPLICATION_NAME, bpcode);

            if (connection instanceof WSConnection) {
                WSConnection wconn = (WSConnection) connection;
                wconn.setClientInformation(props);
            } else {
                log.error("Connection was NOT an instance of WSConnection so client ID and app could not be set");
            }

1 Ответ

0 голосов
/ 17 января 2019

Да, в JDBC были добавлены стандартные интерфейсы для настройки информации о клиенте.

Вы можете установить каждое свойство индивидуально, используя connection.setClientInfo (имя, значение) ,

Или, вы можете установить все сразу через connection.setClientInfo (свойства)

Чтобы определить точный набор имен свойств информации о клиенте, поддерживаемых вашим драйвером, используйте метод databaseMetaData.getClientInfoProperties () .

...