powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2 AIX и молчаливый вызов хранимых процедур
9 сообщений из 9, страница 1 из 1
DB2 AIX и молчаливый вызов хранимых процедур
    #36525887
indicatrix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток господа!
Помогите разобраться, плз.

в DB2 9.1 fixpack0 под AIX создал тестовую хранимую процедуру

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
try{
  InitialContext ctx = new InitialContext();
  DataSource ds = (DataSource)ctx.lookup("test_jndi");
  Connection conn = (Connection)ds.getConnection();
  CallableStatement stmt  = (CallableStatement)conn.prepareCall("{ call TEST.UPDATE_SP( ? ) }");
  stmt.setObject(new Integer(  1  );
  ResultSet rs = stmt.executeQuery();
}catch(SQLException sqle){
  sqle.printStackTrace();
}catch(Exception e){
  e.printStackTrace();
}

процедуры TEST.UPDATE_SP в базе нет.
Беда в том что prepareCall проходит успешно и исполнение на AIX идет дальше, и падает с NumberFormatException.

Т.е. на DB2 под AIX не выдается SQLException.
Под Windows выдается SQLException о том что такой процедуры нет.

Создаю процедуру для апдейта XML колонки.
Под AIX молча выполняет, данные не апдейтит, ошибку не выдает.
Логи пустые...

Запутался совсем, где искать ошибку.
...
Рейтинг: 0 / 0
DB2 AIX и молчаливый вызов хранимых процедур
    #36525908
indicatrix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забыл уточнить что создал тестовый портлет под WebSpherePortal 6.0.
Настроил JNDI коннекшн.
...
Рейтинг: 0 / 0
DB2 AIX и молчаливый вызов хранимых процедур
    #36526102
indicatrix,

Попробуйте так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
try
{
  InitialContext ctx = new InitialContext();
  DataSource ds = (DataSource)ctx.lookup("test_jndi");
  Connection conn = ds.getConnection();
  CallableStatement сstmt  = conn.prepareCall("call TEST.UPDATE_SP(?)");
  сstmt.setInt( 1 );
  if ( cstmt.execute() )
  {
    ResultSet rs = cstmt.getResultSet();
    // Действия с резалтсетом
  }
  else 
  { 
    //Действия если нет резалтсета 
  }
}
catch(SQLException sqle)
{
  sqle.printStackTrace();
}
catch(Exception e)
{
  e.printStackTrace();
}
PS: Вообще то, в случае ошибки при вызове, SQLException должен формироваться в обязательном порядке.
Попробуйте выполнить этот код вне портала (как Standalone-класс) и для доп. информации можно включить трассировку JDBC (задается доп.свойствами соединения).
...
Рейтинг: 0 / 0
DB2 AIX и молчаливый вызов хранимых процедур
    #36526169
indicatrix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вне портала, к сожалению я не могу выполнить эти действия.
Я не могу прости использовать JDBC соединение.
т.к. у меня нет доступа к клиенту, у которого стоит мой тестовый портлет.
Я могу работать строго через JNDI соединение пула.
И смотреть логи.

У меня есть свой тестовый сервер с SUSE Linux, но на нем вообще другая проблема:
Перед апдейтом XML колонки я забираю out параметр через DB2Xml интерфейс.
А система мне ругается что DB2Xml не знает.

Запутался я системами, на Винде так работает, на Линуксе по другому, на Аикс третий способ.
:(
...
Рейтинг: 0 / 0
DB2 AIX и молчаливый вызов хранимых процедур
    #36526338
indicatrix,

Если я правильно понял, то доступа к целевой базе "в обход" портала у Вас нет ни в каком виде?
А прислать туда архив с тестовым приложением и попросить выполнить тоже нельзя?

На всякий случай пример тестового кода и командного файла для Windows во вложении.
Нужно выставить значение следующих переменных в командном файле:
JAVA_HOME - путь к корню JDK или JRE
JCC_HOME - путь к каталогу, где лежат db2jcc.jar, db2jcc_license_cu.jar или db2jcc_license_cisuz.jar
DB2_URL - JDBC URL к базе
Пользователь и пароль запрашиваются интерактивно
Файл трассы будет записан в тот же каталог, откуда исполняется cmd.

PS: Что выдается по команде db2level на целевом сервере AIX, и на тестовом сервере (Linux)?
Команду нужно выполнять в Shell-е владельца инстанса (db2inst1).
Если DB2 для Linux, Windows, Unix одной версии и фикспака, то работают они практически одинаково.

При исполнении кода через DB2 JDBC драйвер очень рекомендуется чтобы версия и фикс драйвера были не ниже, чем версия и фикс сервера.
...
Рейтинг: 0 / 0
DB2 AIX и молчаливый вызов хранимых процедур
    #36526665
indicatrix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На клиенте:
DB21085I Instance "db2inst1" uses "64" bits and DB2 code release "SQL09010"
with level identifier "02010107".
Informational tokens are "DB2 v9.1.0.0", "s060629", "AIX64", and Fix Pack "0".
Product is installed at "/opt/IBM/db2/V9.1".

У меня:
DB21085I Instance "db2inst1" uses "32" bits and DB2 code release "SQL09013"
with level identifier "01040107".
Informational tokens are "DB2 v9.1.0.3", "s070719", "MI00202", and Fix Pack "3".
Product is installed at "/opt/IBM/db2/V9.1".
...
Рейтинг: 0 / 0
DB2 AIX и молчаливый вызов хранимых процедур
    #36526869
indicatrix,

Рекомендуемый фикс для 9.1. - 8-ой.
Recommended Fix Packs for DB2 for Linux, UNIX and Windows


Личный тестовый сервер - прямой кандидат на обновление.
Не забыть перед апдейтом сделать бекап базы, не забыть после обновления произвести пост-установочные действия.

Сервер на AIX-е тоже кандидат на обновление, но если это "боевой" сервер, то следовать принятым у заказчика технологиям обновления. Опять же не забывать про бекапы.

Давайте так, обновите свой тестовый сервер, оттестируйте код у себя, как отдельно, так и в портале, если все будет работать, тогда можно приступать к тестированию у заказчика.
В этом случае в портале можно будет указывать путь к драйверу из комплекта СУБД, т.е. /opt/ibm/db2/V9.1/java.
...
Рейтинг: 0 / 0
DB2 AIX и молчаливый вызов хранимых процедур
    #36528055
indicatrix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Начал качать универсальный фикспак 8 на дб2 9.1 для тестового сервера.
И изучать доки по установке.
...
Рейтинг: 0 / 0
DB2 AIX и молчаливый вызов хранимых процедур
    #36528873
indicatrix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пока качается универсальный фикспак я скачал
фикспак 4 для JDBC: v9fp4_db2driver_for_jdbc_sqlj
там оказалось только 2 файла
db2jcc.jar
db2jcc_license_cu.jar
обновил их в директории сервера приложений и субд.
запустил тестовый портлет и.....
процедура сработала нормально,
тьфу-тьфу шоб не сглазить.

Вопрос теперь как будет работать на AIX.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2 AIX и молчаливый вызов хранимых процедур
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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