E aí galera, estou desenvolvendo uma aplicação Java Desktop com conexão com banco de dados SQLServer 2008 R2 e estou usando o driver ‘sqljdbc4.jar’. As minhas aplicações estavam rodando normalmente mas quando atualizei meu JDK para a versão 1.6.0_29 o driver parou de funcionar, a aplicação fica travada na hora de buscar a conexão, quando eu volta para a versão 1.6.0_27 ele funciona normalmente. O problema é que meus clientes estão usando a JRE 1.6.0_29 e a aplicação parou de funcionar, alguém tem alguma sugestão?
Não conhecia esse driver vou testar aqui e logo digo o que aconteceu…
Estava percebendo aqui também esse driver na versão JRE 1.7.0 na hora de busca um campo data ele traz a data errado exemplo busco uma data ‘30/11/2011’ e ele traz ‘28/11/2011’, mas agora está tudo certo mudei de driver e funcionou certinho, apesar dele não reconhecer um campo do tipo ‘Time’ eu consegui contornar isso através de um código SQL. Para quem tiver o mesmo problema acesse o link passado pelo Rafael lá tem tudo explicadinho.
Vlw pela ajuda, flw!
[quote=Ivan Alves]Estava percebendo aqui também esse driver na versão JRE 1.7.0 na hora de busca um campo data ele traz a data errado exemplo busco uma data ‘30/11/2011’ e ele traz ‘28/11/2011’, mas agora está tudo certo mudei de driver e funcionou certinho, apesar dele não reconhecer um campo do tipo ‘Time’ eu consegui contornar isso através de um código SQL. Para quem tiver o mesmo problema acesse o link passado pelo Rafael lá tem tudo explicadinho.
Vlw pela ajuda, flw![/quote]
Achou mais alguma informação a respeito deste problema? Tivemos esse problema aqui, mas não ficou claro exatamente se é a versão do jre. Na época procurei muito na net e não achei ninguem reportando algo semelhante.
O ruim é que ele fica eternamente parado e não dá nenhuma informação que ajude a entender o erro.
A falta de funcionamento do drive jdbc da Microsoft ocorre por causa de um bug (Bug ID: 7103725) com o JDK 1.6.0_29 e esta resolvido na JDK 1.6.0_30 que está disponível . Este bug não afeta a 1.7 .
Para saber mais:
http://www.fabioalmeida.net/blog/?p=356
A falta de funcionamento do drive jdbc da Microsoft ocorre por causa de um bug (Bug ID: 7103725) com o JDK 1.6.0_29 e esta resolvido na JDK 1.6.0_30 que está disponível . Este bug não afeta a 1.7 .
Para saber mais:
http://www.fabioalmeida.net/blog/?p=356[/quote]
Na verdade também instalei a versão 1.7.0 do JRE do java e o bug que percebi que ocorreu aqui foi em relação a data que estava 2 dias atrasado ou seja tinha um campo Date no banco e tinha dados que estava com a data de 30/11/2011 e quando eu buscava pelo Drive ele me retornava 28/11/2011, então quando mudei para o Driver ‘jTDC’ funcionou direitinho ele só não suporta o tipo ‘TIME’ mas isso é o de menos já que a maior parte dos meus bancos não usa esse tipo. Flw!
A falta de funcionamento do drive jdbc da Microsoft ocorre por causa de um bug (Bug ID: 7103725) com o JDK 1.6.0_29 e esta resolvido na JDK 1.6.0_30 que está disponível . Este bug não afeta a 1.7 .
Para saber mais:
http://www.fabioalmeida.net/blog/?p=356[/quote]
Estou na dúvida se é o mesmo erro. Pq me parece que tem duas coisas diferentes, primeiro que pelo que me lembro o problema era na versão 22, e depois que ela não lançava nenhuma exception. Quando fazia a conexão pelo driverManager a aplicação ficava parada nessa linha. Bom talvez se deixasse algumas horas até lançasse uma exceção, mas não ocorreu aqui.
Pior que isso ficou “para trás” aqui, já que era apenas em uma máquina de dev. Mas to naquela angústia de entender realmente o que aconteceu
Tem um algumas coisas lá no site da Oracle segue o link
http://bugs.sun.com/bugdatabase/view_bug.do;jsessionid=67e9426ea851374c67f5e9dae529?bug_id=7103725
Não sei se o problema é o mesmo do meu mas o oque ocorre no meu é o seguinte.
package Eventos;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Jdbc {
public static void main(String args[]) {
Connection con = null;
Statement stm;
ResultSet msql;
String jdbcdriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String databaseurl = "jdbc:sqlserver://localhost:1433;"
+ "databaseName=Eventos;user=dell;password=;";
try {
Class.forName(jdbcdriver);
System.out.println("Driver Carregado!!!!!");
con = DriverManager.getConnection(databaseurl);
System.out.println("Conectado!!!!!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
if (con != null) {
try {
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
01/12/2011 11:19:07 com.microsoft.sqlserver.jdbc.SQLServerConnection
GRAVE: Java Runtime Environment (JRE) version 1.6 is not supported by this driver. Use the sqljdbc4.jar class library, which provides support for JDBC 4.0.
Exception in thread “main” java.lang.UnsupportedOperationException: Java Runtime Environment (JRE) version 1.6 is not supported by this driver. Use the sqljdbc4.jar class library, which provides support for JDBC 4.0.
at com.microsoft.sqlserver.jdbc.SQLServerConnection.(SQLServerConnection.java:223)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:840)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Eventos.Jdbc.main(Jdbc.java:22)
[quote=cassiomedeiros]Não sei se o problema é o mesmo do meu mas o oque ocorre no meu é o seguinte.
package Eventos;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Jdbc {
public static void main(String args[]) {
Connection con = null;
Statement stm;
ResultSet msql;
String jdbcdriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String databaseurl = "jdbc:sqlserver://localhost:1433;"
+ "databaseName=Eventos;user=dell;password=;";
try {
Class.forName(jdbcdriver);
System.out.println("Driver Carregado!!!!!");
con = DriverManager.getConnection(databaseurl);
System.out.println("Conectado!!!!!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
if (con != null) {
try {
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
01/12/2011 11:19:07 com.microsoft.sqlserver.jdbc.SQLServerConnection
GRAVE: Java Runtime Environment (JRE) version 1.6 is not supported by this driver. Use the sqljdbc4.jar class library, which provides support for JDBC 4.0.
Exception in thread “main” java.lang.UnsupportedOperationException: Java Runtime Environment (JRE) version 1.6 is not supported by this driver. Use the sqljdbc4.jar class library, which provides support for JDBC 4.0.
at com.microsoft.sqlserver.jdbc.SQLServerConnection.(SQLServerConnection.java:223)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:840)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Eventos.Jdbc.main(Jdbc.java:22)
[/quote]
Esse é outro caso, mais simples. Você usa o java 1.6 e o sqljdbc.jar não serve para ele, você deve usar o sqljdbc4.jar, no meu caso ambos vieram no mesmo zip que baixei no site da microsoft. Mas tente agora com o sqljdbc4.jar, ai sim pode ser que ocorra o erro que estamos falando (torço para que não ocorra ).
Como o usuário acima disse esse erro não é o mesmo já que no meu ele nem lança exceção ele só fica travado o driver por ele citado irá resolver seu problema depois você pode ver o drive jTDS, para prevenir futuros problemas como o meu!
A falta de funcionamento do drive jdbc da Microsoft ocorre por causa de um bug (Bug ID: 7103725) com o JDK 1.6.0_29 e esta resolvido na JDK 1.6.0_30 que está disponível . Este bug não afeta a 1.7 .
Para saber mais:
http://www.fabioalmeida.net/blog/?p=356[/quote]
Estou na dúvida se é o mesmo erro. Pq me parece que tem duas coisas diferentes, primeiro que pelo que me lembro o problema era na versão 22, e depois que ela não lançava nenhuma exception. Quando fazia a conexão pelo driverManager a aplicação ficava parada nessa linha. Bom talvez se deixasse algumas horas até lançasse uma exceção, mas não ocorreu aqui.
Pior que isso ficou “para trás” aqui, já que era apenas em uma máquina de dev. Mas to naquela angústia de entender realmente o que aconteceu [/quote]
fausto:
Você já conseguiu descobrir a causa desse problema? Estou com problemas semelhantes depois da migração pro Java 7. A aplicação trava no momento exato em q tenta conectar ao banco. E isso acontece somente em uma máquina.
Você tem alguma dica que poderia me ajudar?
A falta de funcionamento do drive jdbc da Microsoft ocorre por causa de um bug (Bug ID: 7103725) com o JDK 1.6.0_29 e esta resolvido na JDK 1.6.0_30 que está disponível . Este bug não afeta a 1.7 .
Para saber mais:
http://www.fabioalmeida.net/blog/?p=356[/quote]
Estou na dúvida se é o mesmo erro. Pq me parece que tem duas coisas diferentes, primeiro que pelo que me lembro o problema era na versão 22, e depois que ela não lançava nenhuma exception. Quando fazia a conexão pelo driverManager a aplicação ficava parada nessa linha. Bom talvez se deixasse algumas horas até lançasse uma exceção, mas não ocorreu aqui.
Pior que isso ficou “para trás” aqui, já que era apenas em uma máquina de dev. Mas to naquela angústia de entender realmente o que aconteceu [/quote]
fausto:
Você já conseguiu descobrir a causa desse problema? Estou com problemas semelhantes depois da migração pro Java 7. A aplicação trava no momento exato em q tenta conectar ao banco. E isso acontece somente em uma máquina.
Você tem alguma dica que poderia me ajudar?[/quote]
Cara a minha única dica é usar o driver jTDS que não possui esses bugs até onde eu vi. Além disso é bem fácil de usar e acredito que você não terá mais problemas!