Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Запуск java SP - не работает почему-то...
|
|||
|---|---|---|---|
|
#18+
Есть хранимая проца на java. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Возможно, она сама неверная, а может дело в чем-то другом. Короче, не вызывается. Иду по предлагаемым db2 ошибкам: 1 The class was not found on the CLASSPATH. 2 The class did not implement the required interface ("COM.ibm.db2.app.StoredProc" or "COM.ibm.db2.app.UDF") or lacked the Java "public" access flag. 3 The default constructor failed or was unavailable. 4 Could not load driver for "jdbc:default:connection". 5 Could not establish default context. 1. Класс activitier.jar в CLASSPATH указан, он находится в SQLLIB\FUNCTION 2. есть же 3. есть же 4. Где-то проскакивало, что это может быть связано с тем, что не указан какой-то путь, но сейчас не могу найти - что и где... 5. А это что такое? 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2006, 19:58 |
|
||
|
Запуск java SP - не работает почему-то...
|
|||
|---|---|---|---|
|
#18+
Есть 2 способа написания java SP. 1. Если при декларации вы указываете PARAMETER STYLE DB2GENERAL, то: 1.1. Класс должен расширять COM.ibm.db2.app.StoredProc. 1.2. Метод должен быть public void. 1.3. Соединение получается с помощью метода getConnection() этого StoredProc. 2. Если при декларации вы указываете PARAMETER STYLE JAVA, то: 1.1. Класс должен быть public и может не расширять COM.ibm.db2.app.StoredProc. 1.2. Метод должен быть public static void. 1.3. Соединение получается с помощью DriverManager.getConnection("jdbc:default:connection"). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 11:32 |
|
||
|
Запуск java SP - не работает почему-то...
|
|||
|---|---|---|---|
|
#18+
У меня используется PARAMETER STYLE JAVA - критериям, получается, соответствует. Убрал extends, раз оно необязательно... А в чем еще дело может быть? Может, в самом деле jdbc-драйвер не грузится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 12:07 |
|
||
|
Запуск java SP - не работает почему-то...
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 12:50 |
|
||
|
Запуск java SP - не работает почему-то...
|
|||
|---|---|---|---|
|
#18+
Спасибо! Зарегистрировал. CALL sqlj.install_jar( 'file:///C:/Program Files/IBM/SQLLIB/FUNCTION/wizards.jar', 'wizards' ) Затем пробую так: Код: plaintext 1. 2. 3. 4. 5. 6. - не работает. Говорит, что was unable to map to a single Java method, хотя и метод у меня назван верно, и вообще он лишь один - ни с чем не спутаешь... И соответствие параметра есть: varchar(2000) <=> string[] Я не могу понять, где ошибка... Кстати, если не указывать 'wizards:' - процедура создается почему-то... Зато потом, при вызове Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 14:23 |
|
||
|
Запуск java SP - не работает почему-то...
|
|||
|---|---|---|---|
|
#18+
Поместите пока свой class файл в sqllib/functions. Зарегистрируйте функцию как EXTERNAL NAME 'activitier.setMsgNo'. Пробуйте вызвать. Если не получится - полный пример java кода покажите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 14:55 |
|
||
|
Запуск java SP - не работает почему-то...
|
|||
|---|---|---|---|
|
#18+
Как функцию? Я как процедуру регистрирую... Попробовал - положил класс в FUNCTION, jar не делал. В CLASSPATH прописал и путь к FUNCTION, и этот конкретный activitier.class.... Сейчас выдается сообщение, что class not found. Ничч-ч-чего не понимаю! А полный код java - так в первом моем сообщении и есть полный код класса... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 15:59 |
|
||
|
Запуск java SP - не работает почему-то...
|
|||
|---|---|---|---|
|
#18+
Ага, стоп... Я менял в какой-то момент DYNAMIC RESULT SETS на единицу. Вернул ноль. Ошибка выглядит так: Procedure or user-defined function "CIC_USER.SETMSGNO", specific name "SQL061206141801100" aborted with an exception "[IBM][CLI Driver][DB2/NT] SQL0418". Уже ближе к делу, но всё же... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 16:25 |
|
||
|
Запуск java SP - не работает почему-то...
|
|||
|---|---|---|---|
|
#18+
Щас посмотрел внимательнее ваши посты - у вас v9? На своей v8 только что попробовал: --- import java.sql.*; // JDBC classes public class activitier { public static void setMsgNo ( String msgBody ) throws SQLException { // Get connection to the database Connection con = DriverManager.getConnection("jdbc:default:connection"); PreparedStatement stmt = null; ResultSet rs = null; try { String sql = "select cast(? as varchar(2000)) from sysibm.sysdummy1"; stmt = con.prepareStatement( sql ); stmt.setString( 1, msgBody ); rs = stmt.executeQuery(); } finally { if (rs!=null) rs.close(); if (stmt!=null) stmt.close(); if (con!=null) con.close(); } } } --- CREATE PROCEDURE SETMSGNO ( IN MESSAGE VARCHAR(2000) ) LANGUAGE java PARAMETER STYLE java EXTERNAL NAME 'activitier.setMsgNo'; --- Поместил class файл в sqllib\function, classpath не трогал и вам не советую. call SETMSGNO('') - работает. P.S.: executeQuery - для select. executeUpdate - для update, delete, insert. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 16:25 |
|
||
|
Запуск java SP - не работает почему-то...
|
|||
|---|---|---|---|
|
#18+
NafigatorProcedure or user-defined function "CIC_USER.SETMSGNO", specific name "SQL061206141801100" aborted with an exception "[IBM][CLI Driver][DB2/NT] SQL0418". Уже ближе к делу, но всё же... Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 16:29 |
|
||
|
Запуск java SP - не работает почему-то...
|
|||
|---|---|---|---|
|
#18+
Да, оставил только строчку коннекшна - отработало. Проблема в запросе. Буду разбираться. Однако когда класс у меня заработает - хотелось бы, чтобы заработал и jar... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 16:34 |
|
||
|
Запуск java SP - не работает почему-то...
|
|||
|---|---|---|---|
|
#18+
По свежим следам опять попробовал (с этой одной строчкой) воспользоваться jar - ничего не вышло: unable to map... :( В чем же ошибка, где он видит неоднозначность методов? :(( Почему класс работает, а jar - нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 17:20 |
|
||
|
Запуск java SP - не работает почему-то...
|
|||
|---|---|---|---|
|
#18+
Попробовал и в jar завернуть - у меня работает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 17:49 |
|
||
|
Запуск java SP - не работает почему-то...
|
|||
|---|---|---|---|
|
#18+
Для чистоты эксперимента я даже взял Ваш вариант процедуры.... Не понимаю! Возможно, всё-таки в моей системе не прописаные какие-то пути или переменные, необходимые для правильной работы? :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 18:07 |
|
||
|
Запуск java SP - не работает почему-то...
|
|||
|---|---|---|---|
|
#18+
Заметил, что при выполнении процедуры, которая регистрирует jar, он копируется в каталог \FUNCTION\jar\[имя пользователя, под которым запущена база]\ Установил Developer Workbench, он мне выдал чуть отличающийся вариант создания процедуры (на имена не обращайте внимания - я имена функций менял в процессе, имена классов) - имя package после jar добавилось, оно же фигурирует в исходнике после package: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Но картины это не изменило - всё тот же опротивевший "unable to map"! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 20:04 |
|
||
|
Запуск java SP - не работает почему-то...
|
|||
|---|---|---|---|
|
#18+
NafigatorЗаметил, что при выполнении процедуры, которая регистрирует jar, он копируется в каталог \FUNCTION\jar\[имя пользователя, под которым запущена база]\Он копируется в каталог \FUNCTION\jar\[имя пользователя, создавшего процедуру] А вообще, вот вам совет: не используйте пока в серьезных целях v9. Если поиграться или вы жить не можете без нового xml-ядра, то можно, конечно. Я практически уверен, что ее на протяжении еще как минимум 3-4-х фикспаков будет штормить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2006, 09:52 |
|
||
|
Запуск java SP - не работает почему-то...
|
|||
|---|---|---|---|
|
#18+
Забавно, но сегодня, после очередной попытки, у меня всё получилось. Так и не понял, в чем была проблема... Совпало так, что в одном из источников увидел, что перед jar id можно указать схему: сработало. Убрал схему - всё равно сработало... Черт-и-что... :-\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2006, 12:59 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=34180980&tid=1604926]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
76ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 430ms |

| 0 / 0 |
