Re: JDBC Connection Issue
Joel Ross wrote:
markspace wrote:
jross wrote:
JDBC Driver: mysql-connector-java-2.0.14-bin.jar
JAVA: j2sdk1.4.2_10
These two are very old. Can you upgrade? Java in on version 6 now, 4
is no longer supported, and 5 is past EOL for free (unpaid) customers.
A 2.0 Connector appears to be ancient. 5 is the current version, 3 is
the earliest still available on MySQL's website.
Unfortunately these two version are what we are using I have tried
mysql-connector 3 and I still have the same issues. We are looking into
updating java in the future but at the moment it's too much work because
of all the new changes.
OK, fair enough. I don't have either of those versions on my system
here, so any testing I do of your program is going to use a different
runtime and a different Connect/J. If I find no issues... well, it
won't mean that much for you, will it.
Other idea: what version of MySQL are you connecting to?
OK, I notice a couple of things. One, when I first tried your program,
I was surprised that it ran, because I didn't add my own password and
user name yet. Then I noticed that you're printing only the
getMessage() of the exception, which is easy to miss, and rarely set to
anything useful. Please modify your Java program to print the entire
exception and stack trace. I made those changes below, I think you
could be missing an error trace from the Java program, just like I did.
Also, what happens if you don't run the Perl program, just the Java? If
it's Perl that causes the problem, I'd guess that the problem is in
Perl, not Java. Please try to get the Java program to fail by itself.
Test program with better error reporting below:
package mysqltest;
import java.sql.*;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;
class test
{
Connection conn;
public static void main( String[] args ) throws Exception
{
new test();
}
public test() throws Exception
{
PrintWriter result = null;
// File logFile = new File( "/tmp/socket/debug.log" );
result =
// new PrintWriter( new FileOutputStream(
//logFile.getName() ) );
new PrintWriter( System.out );
DriverManager.setLogWriter( result );
Class.forName( "com.mysql.jdbc.Driver" ).newInstance();
String url =
"jdbc:mysql://127.0.0.1/pos?autoReconnect=true&socketTimeout=120";
conn = DriverManager.getConnection( url, "user", "passwd" );
doSelectTest();
conn.close();
}
private void doSelectTest() throws Exception
{
System.out.println( "[OUTPUT FROM SELECT]" );
String query = "SELECT * FROM Table;";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery( query );
while( rs.next() )
{
String s = rs.getString( "column" );
System.out.println( s );
}
}
}