Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Соединение с БД в desktop application


Автор: Zhenyusya 4.4.2014, 05:21
Я пишу на NetBeans 6.1.
Странность заключается в том, что в консольном или вебовском приложении коннект к БД db2 проходит отлично.
А в desktop application выдается ошибка на getConnection:
Код

java.lang.reflect.InvocationTargetException : Error opening socket to server ServerName/10.32.0.XXX on port 50000 with message : null  DB2ConnectionCorrelator: null

Хотя все делаю одинаково: подключила библиотеки db2jcc.jar, db2jcc_license_cisuz.jar, db2jcc_license_cu.jar, зарегистрировала драйвер и открываю соединение:
Код

        try{
            Class.forName("com.ibm.db2.jcc.DB2Driver");
            Connection conn_db2 = (Connection) DriverManager.getConnection("jdbc:db2://ServerName:50000/ros", "user", "pwd");
            conn_db2.close();
        }catch(Exception e){e.printStackTrace();}

Помогите, пожалуйста, разобраться, в чем же все-таки отличие desktop?

Автор: LSD 4.4.2014, 09:44
Полный стектрейс покажи.

Автор: Zhenyusya 4.4.2014, 10:10
Код

com.ibm.db2.jcc.c.DisconnectException: java.lang.reflect.InvocationTargetException : Error opening socket to server ServerName/10.32.0.XXX on port 50000 with message : null  DB2ConnectionCorrelator: null
        at com.ibm.db2.jcc.a.gc.a(gc.java:383)
        at com.ibm.db2.jcc.a.gc.<init>(gc.java:71)
        at com.ibm.db2.jcc.a.gc.<init>(gc.java:65)
        at com.ibm.db2.jcc.a.a.v(a.java:256)
        at com.ibm.db2.jcc.a.b.a(b.java:1855)
        at com.ibm.db2.jcc.c.p.<init>(p.java:1028)
        at com.ibm.db2.jcc.a.b.<init>(b.java:346)
        at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:165)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)
        at deadnvp.DeadNVPView.LoadDeads(DeadNVPView.java:295)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:662)
        at org.jdesktop.application.ApplicationAction.actionPerformed(ApplicationAction.java:698)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6041)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
        at java.awt.Component.processEvent(Component.java:5806)
        at java.awt.Container.processEvent(Container.java:2058)
        at java.awt.Component.dispatchEventImpl(Component.java:4413)
        at java.awt.Container.dispatchEventImpl(Container.java:2116)
        at java.awt.Component.dispatchEvent(Component.java:4243)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
        at java.awt.Container.dispatchEventImpl(Container.java:2102)
        at java.awt.Window.dispatchEventImpl(Window.java:2440)
        at java.awt.Component.dispatchEvent(Component.java:4243)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
com.ibm.db2.jcc.c.DisconnectException: java.lang.reflect.InvocationTargetException : Error opening socket to server ServerName/10.32.0.XXX on port 50000 with message : null  DB2ConnectionCorrelator: null
        at com.ibm.db2.jcc.a.gc.a(gc.java:383)
        at com.ibm.db2.jcc.a.gc.<init>(gc.java:71)
        at com.ibm.db2.jcc.a.gc.<init>(gc.java:65)
        at com.ibm.db2.jcc.a.a.v(a.java:256)
        at com.ibm.db2.jcc.a.b.a(b.java:1855)
        at com.ibm.db2.jcc.c.p.<init>(p.java:1028)
        at com.ibm.db2.jcc.a.b.<init>(b.java:346)
        at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:165)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)
        at deadnvp.DeadNVPView.LoadDeads(DeadNVPView.java:295)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:662)
        at org.jdesktop.application.ApplicationAction.actionPerformed(ApplicationAction.java:698)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6041)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
        at java.awt.Component.processEvent(Component.java:5806)
        at java.awt.Container.processEvent(Container.java:2058)
        at java.awt.Component.dispatchEventImpl(Component.java:4413)
        at java.awt.Container.dispatchEventImpl(Container.java:2116)
        at java.awt.Component.dispatchEvent(Component.java:4243)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
        at java.awt.Container.dispatchEventImpl(Container.java:2102)
        at java.awt.Window.dispatchEventImpl(Window.java:2440)
        at java.awt.Component.dispatchEvent(Component.java:4243)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

Автор: LSD 4.4.2014, 17:35
Цитата(Zhenyusya @  4.4.2014,  06:21 Найти цитируемый пост)
Странность заключается в том, что в консольном или вебовском приложении коннект к БД db2 проходит отлично.
А в desktop application выдается ошибка на getConnection:

Не совсем понимаю, чем косольное от desktop application отличается?

Добавлено через 1 минуту и 18 секунд
Видно что какая-то сетевая ошибка, но неясно что именно за ошибка. Возможно из-за прокси. Сервер в локальной сети или в интернете? Прокси в сети используется?

Автор: Zhenyusya 7.4.2014, 05:41
Цитата(LSD @  4.4.2014,  17:35 Найти цитируемый пост)
Не совсем понимаю, чем консольное от desktop application отличается?

Отличие только в способе создания приложения.
http://s1.ipicture.ru/uploads/20140407/h3z30BF6.jpg
Цитата(LSD @  4.4.2014,  17:35 Найти цитируемый пост)
Видно что какая-то сетевая ошибка, но неясно что именно за ошибка. Возможно из-за прокси. Сервер в локальной сети или в интернете? Прокси в сети используется?

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

Автор: LSD 9.4.2014, 15:54
http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=%2Fcom.ibm.db2.udb.apdv.java.doc%2Fdoc%2Frjvdsprp.htm в драйвере DB2. Может тогда что полезное напишет.

И попробуй в обоих приложениях открыть сокет по адресу ServerName:50000 (просто открыть, ничего писать/читать не нужно).

Автор: Zhenyusya 14.4.2014, 10:06
В консольном нормально создает сокет, а в десктоп - ошибка:
Код

java.net.SocketException: Can't connect to SOCKS proxy:Network is unreachable: connect
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:397)
        at java.net.Socket.connect(Socket.java:519)
        at java.net.Socket.connect(Socket.java:469)
        at java.net.Socket.<init>(Socket.java:366)
        at java.net.Socket.<init>(Socket.java:180)
        at deadnvp.DeadNVPView.LoadDeads(DeadNVPView.java:295)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:662)
        at org.jdesktop.application.ApplicationAction.actionPerformed(ApplicationAction.java:698)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6041)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
        at java.awt.Component.processEvent(Component.java:5806)
        at java.awt.Container.processEvent(Container.java:2058)
        at java.awt.Component.dispatchEventImpl(Component.java:4413)
        at java.awt.Container.dispatchEventImpl(Container.java:2116)
        at java.awt.Component.dispatchEvent(Component.java:4243)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
        at java.awt.Container.dispatchEventImpl(Container.java:2102)
        at java.awt.Window.dispatchEventImpl(Window.java:2440)
        at java.awt.Component.dispatchEvent(Component.java:4243)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

Автор: LSD 14.4.2014, 12:45
Цитата(Zhenyusya @  14.4.2014,  11:06 Найти цитируемый пост)
Can't connect to SOCKS proxy:Network is unreachable: connect

Вот и источник проблемы, как я и говорил это из-за прокси. У тебя десктоп приложение пытается для конекта к базе использовать прокси сервер. Надо смотреть код кто там ининиализирует настройки прокси.
Реокмендую почитать: http://docs.oracle.com/javase/6/docs/technotes/guides/net/proxies.html.

Автор: Zhenyusya 15.4.2014, 04:44
Мой это код. Нет там никакой инициализации настроек прокси. Просто одна единственная кнопочка (специально создала для эксперимента, думала, может, что в нормальном чего наворотила), при нажатии которой коннект к базе.

Автор: LSD 15.4.2014, 10:47
Цитата(Zhenyusya @  15.4.2014,  05:44 Найти цитируемый пост)
Мой это код. Нет там никакой инициализации настроек прокси. Просто одна единственная кнопочка (специально создала для эксперимента, думала, может, что в нормальном чего наворотила), при нажатии которой коннект к базе. 

Смотри параметры запуска, может какие системные проперти связанные с прокси инициализируются. Ну или выложи проект.

Автор: Zhenyusya 17.4.2014, 05:45
Помогло отключение прокси
Код
System.setProperty("java.net.useSystemProxies", "false");

Спасибо, wtbh, за http://forum.vingrad.ru/forum/topic-254832.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)