2016-04-15 3 views
0

Я работаю над проектом миграции, в котором мы переносим одно приложение из Weblogic на сервер Websphere 8.5.Задание схемы по умолчанию WebSpehere 8.5 Server

В сервере Weblogic мы можем указать схему по умолчанию при создании источника данных, но я не вижу такой же возможности в сервере WebSpehere 8.5.

Есть ли какое-либо пользовательское свойство, с помощью которого мы можем его установить, я попробовал currentSchema = MySchema, но это не сработало.

+0

Мы подключаемся к базе данных Oracle – Dave

+0

вы используете WebSphere традиционного или WebSphere Liberty? –

+0

Я использую WebSphere традиционным – Dave

ответ

0

Этот ответ требует значительно больше работы, но я в том числе, потому что это проектируемой решение, чтобы настроить почти ничего о связи, в том числе схемы. WebSphere Application Sever позволяет вам предоставлять/расширять DataStoreHelper.

Knowledge Center document on providing a custom DataStoreHelper

В этом случае, вы можете продлить com.ibm.websphere.rsadapter.Oracle11gDataStoreHelper.

JavaDoc for Oracle11gDataStoreHelper

Следующие методы будут интересны:

  • doConnectionSetup, который выполняет инициализацию одноразовый на соединении, когда он впервые созданный
  • doConnectionCleanup, который сбрасывает состояние соединения перед возвратом это в пул соединений.

При переопределении doConnectionSetup, вы поставляются с вновь созданным соединением, на котором вы можете сделать,

super.doConnectionSetup(connection); 
Statement stmt = connection.createStatement(); 
try { 
    stmt.execute(sqlToUpdateSchema); 
} finally { 
    stmt.close(); 
} 

doConnectionCleanup позволяет учитывать возможность того, что код приложения, использующего соединение может переключаться схема к чему-то еще. doConnectionCleanup дает вам возможность сбросить его. Опять же, вы поставляются с подключением, на котором вы можете сделать,

super.doConnectionCleanup(connection); 
Statement stmt = connection.createStatement(); 
try { 
    stmt.execute(sqlToUpdateSchema); 
} finally { 
    stmt.close(); 
} 

Заметим, что в обоих случаях, вызывая соответствующий метод суперкласса важно, чтобы вы не уничтожить инициализации базы данных конкретных/который WebSphere Application Server создал на основе базы данных.

0

Насколько я знаю, Weblogic разрешает установку схемы по умолчанию, устанавливая «Init SQL to a SQL string which sets the current schema in the database, such as SQL ALTER SESSION SET CURRENT_SCHEMA = MySchema`. Таким образом, этот ответ предполагает единственный способ установить текущую схему источника данных через SQL.

В WebSphere самым близким к WebLogic Init SQL является свойство preTestSQLString на WebSphere.

Идея свойства preTestSQLString заключается в том, что WebSphere выполнит очень простой оператор SQL, чтобы убедиться, что вы правильно подключаетесь к своей базе данных при запуске сервера. Обычно значения для этого свойства являются действительно основными вещами, такими как select 1 from dual', but since you can put in whatever SQL you want, you could set preTestSQLString to SQL ALTER SESSION SET CURRENT_SCHEMA = MySchema`.

шагов от документации WebSphere (link):

  1. В административной консоли выберите Ресурсы> JDBC-провайдеров.
  2. Выберите поставщика и щелкните Источник данных в разделе Дополнительные свойства.
  3. Выберите источник данных и нажмите Свойства источника данных WebSphere Application Server в разделе Дополнительные свойства.
  4. Установите флажок PreTest Connections.
  5. Введите значение для интервала повторения соединения PreTest, который измеряется в секундах. Это свойство определяет частоту, с которой создается новый запрос на соединение после неудачной операции предварительного тестирования.
  6. Введите действительный оператор SQL для строки PreTest SQL. Используйте надежную команду SQL с минимальным воздействием на производительность; этот оператор обрабатывается каждый раз, когда соединение получается из бесплатного пула. Например, «select 1 from dual» в oracle или «SQL select 1» в SQL Server.
0

Универсальные пул соединений (UCP) представляет собой пул соединений Java и Whitepaper "UCP with Webshere" показывает, как настроить UCP в качестве источника данных.

для JDBC DataSource, шаги похожи, но вы можете выбрать JDBC по умолчанию водитель вариант.

Заканчивать бумаги для справки.

Смежные вопросы