Acesso dois banco de dados (iniciando processo pelo actionPerfomace)(URGENTE)

11 respostas
guilhermevh

Bom dia pessoal,

Estou criando um sistema , onde o usuário preenche os dados de conexão de duas bases em tela, porém estou tendo um problema estranho (acho que de conceito (sou programador web e não desktop)). obs: Estou usando Netbeans para a programação visual(estressante).

O problema é:

tenho uma classe de processo para a conexão dos dbs, onde existem dois atributos Connection estáticos, que irão receber as conexões (Origem e Destino). Abaixo estão as chamadas que utilizo para iniciar as conexões.

//Inicia conf. banco de dados... ProcessoConexao.inicializarConexaoOrigem(); ProcessoConexao.inicializarConexaoDestino();

Essas chamadas estão dentro do actionPerfomace do jButton, e o método é chamado normalmente, porém na hora de realizar a conexão o sistema trava na chamada Class.forName(dadosConexao.getDriver());

E o mais estranho é que se eu colocar a mesma chamada diretamente no método main da aplicação e setar os dados fixos, funciona normalmente.

Alguém tem alguma idéia?

Já tentei em de varias formas, iniciando colocando outras threads, colocando ou tirando atributos estáticos…

Grato,
Att,

11 Respostas

guilhermevh

ninguém tem uma luz aí não?

ViniGodoy

Não seria uma boa você colocar o trecho de código onde a aplicação trava? Minha bola de cristal não está funcionando direito hoje, deve ser alguma inteferência de júpiter, que entrou no quadrante do peixe. Maldito quadrante do peixe.

T

Sem código fica difícil ajudar.
Posta as partes das classes que fazem parte dessa rotina.

guilhermevh

obrigado,
segue as informações ...

Class.forName(dadosConexao.getDriver());

       return DriverManager.getConnection(dadosConexao.getUrl(), dadosConexao.getUsuario(), dadosConexao.getSenha());

é lançado o erro: java.sql.SQLException: Network error IOException: Malformed reply from SOCKS server

eu citei que era na chamada Class.forName, mas está aí...

alguma idéia?

private static Connection connSysOrigem = null;
    private static Connection connSysDestino = null;
    private static Resources rb = new Resources( "migradorsys.resources.settings" );

    static {
        System.out.println("classe ProcessoConexao carregada...(teste)");
    }

    public static Connection getConexaoSysOrigem() {
        return connSysOrigem;
    }

    public static Connection getConexaoSysDestino() {
        return connSysDestino;
    }

    public static void inicializaConexaoSysOrigem() throws DadosConexaoException {

        DadosConexao dadosConecaoOrigem = new DadosConexao();

        dadosConecaoOrigem.setUsuario(rb.GetKeyValue("sysOrigem.conexao.usuario", ""));
        dadosConecaoOrigem.setUrl(rb.GetKeyValue("sysOrigem.conexao.url", ""));
        dadosConecaoOrigem.setSenha(rb.GetKeyValue("sysOrigem.conexao.senha", ""));
        dadosConecaoOrigem.setDriver(rb.GetKeyValue("sysOrigem.conexao.driver", ""));

        ConnectionFactory conFac = new ConnectionFactory();
        
        connSysOrigem = conFac.getConnection(dadosConecaoOrigem);

        System.out.println("conectou origem ok - " + rb.GetKeyValue("sysOrigem.conexao.driver", ""));

    }

    public static void inicializaConexaoSysDestino() throws DadosConexaoException {

        DadosConexao dadosConecaoDestino = new DadosConexao();

        dadosConecaoDestino.setUsuario(rb.GetKeyValue("sysDestino.conexao.usuario", ""));
        dadosConecaoDestino.setUrl(rb.GetKeyValue("sysDestino.conexao.url", ""));
        dadosConecaoDestino.setSenha(rb.GetKeyValue("sysDestino.conexao.senha", ""));
        dadosConecaoDestino.setDriver(rb.GetKeyValue("sysDestino.conexao.driver", ""));

        ConnectionFactory conFac = new ConnectionFactory();

        connSysDestino = conFac.getConnection(dadosConecaoDestino);

        System.out.println("conectou destino ok - " + rb.GetKeyValue("sysDestino.conexao.driver", ""));

    }
Alexandre_Saudate

Qual é o driver?

[]´s

guilhermevh

o problema ocorre usando tanto net.sourceforge.jtds.jdbc.Driver (jtds 1.2.2) tanto com o org.postgresql.Driver (postgresql-8.2-504.jdbc4)
mas não acredito que seja o driver, pois como citei se a chamada for feita no main do projeto ele inicia normalmente …

obs: no caso, os dados ainda não estão vindo da tela, e sim de um arquivo .properties para faciliar os testes …

ViniGodoy

Eu vi. Mas só dizer isso deixa faltando várias informações:

  1. O erro lança alguma exception? Se sim, pode postar o stacktrace dela?
  2. Que driver você está usando?
  3. Seria bom ver como você está abrindo a conexão, como está guardando esse valor na variável e como faz para acessa-lo depois. Métodos estáticos são famosos por serem problemáticos em ambientes multi-thread.
  4. O que custa colocar o código do método inteiro onde a conexão é feita?
ViniGodoy

Há um tópico sobre esse seu assunto aqui:
http://forums.sun.com/thread.jspa?threadID=5278678

Você chegou a ver?

guilhermevh
1. stacktrace



migradorsys.model.DadosConexaoException: Erro ao tentar conectar no banco de dados. java.sql.SQLException: Network error IOException: Malformed reply from SOCKS server

at migradorsys.conexao.ConnectionFactory.getConnection(ConnectionFactory.java:27)

at migradorsys.business.ProcessoConexao.inicializaConexaoSysOrigem(ProcessoConexao.java:41)

at migradorsys.MigradorSysView$ConectarBasesTask.(MigradorSysView.java:536)

at migradorsys.MigradorSysView.conectarBases(MigradorSysView.java:524)

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.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)

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)

Caused by: java.sql.SQLException: Network error IOException: Malformed reply from SOCKS server

at net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:385)

at net.sourceforge.jtds.jdbc.ConnectionJDBC3.(ConnectionJDBC3.java:50)

at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:182)

at java.sql.DriverManager.getConnection(DriverManager.java:582)

at java.sql.DriverManager.getConnection(DriverManager.java:185)

at migradorsys.conexao.ConnectionFactory.getConnection(ConnectionFactory.java:24)

 35 more

Caused by: java.net.SocketException: Malformed reply from SOCKS server

at java.net.SocksSocketImpl.readSocksReply(SocksSocketImpl.java:87)

at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:429)

at java.net.Socket.connect(Socket.java:519)

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 net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:304)

at net.sourceforge.jtds.jdbc.SharedSocket.(SharedSocket.java:255)

at net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:310)

 40 more

2. drivers

net.sourceforge.jtds.jdbc.Driver (jtds 1.2.2) tanto com o org.postgresql.Driver (postgresql-8.2-504.jdbc4)

3.

na msg assim …

4.

não custa nada, só não quis poluir muito para não ficar confuso …

guilhermevh

ViniGodoy:
Há um tópico sobre esse seu assunto aqui:
http://forums.sun.com/thread.jspa?threadID=5278678

Você chegou a ver?


não tinha visto, mas já rodei o projeto compilado, em outra máquina, troquei os drives, deixei de colocar os métodos estáticos e sempre instancialos, mas acontece o mesmo problema … também já separei os módulos e funcina normalmente, o problema é quando a chamada é realizada pelo event do jButton, não consigo imaginar o que possa ser …

ViniGodoy

Pelo tipo do erro, o problema é mais embaixo mesmo.

Criado 28 de janeiro de 2010
Ultima resposta 1 de fev. de 2010
Respostas 11
Participantes 4