title image


Smiley Per JDBC von Linux auf MS SQL Server zugreifen
Hallo zusammen,



ich habe ein kleines Problem bei einem Java Agent, der auf einem Dominoserver läuft. Aber ich glaube, dass Domino hier eine Nebenrolle spielt.

Es geht darum, dass ich von meinem Debian Linux Rechner mit der JVM 1.3 von IBM eine Verbindung mit JDBC herstellen möchte.

Dafür habe ich mit Eclipse ein Projekt erstellt, welches von meinem Client aus auch läuft und die Daten des SQL-Servers bzw. der Datenbank ausliest.

Nun habe ich diesen in einer Dominodatenbank per Cut & Paste übernommen.



Wenn der Agent losrennt, kommt die Meldung:



AMgr: Agent ('SQL-Notes NEW' in 'Test.nsf') error message: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.



Das sieht ja so aus, als wenn die Verbindung zum SQL Server aufgrund von Firewall o.ä. nicht klappen würde.

Aber wenn ich von dem Rechner mit telnet ip 1433 eine Verbindung mache, gehts. Die Namensauflösung geht auch.



Die JDBC Treiber habe ich von dieser MS Seite:



http://www.microsoft.com/downloads/details.aspx?FamilyID=9f1874b6-f8e1-4bd6-947c-0fc5bf05bf71&DisplayLang=de



Also was könnte das Problem sein? Bin für jeden Tip dankbar.



Ach so:



Der Code sieht so aus:



import lotus.domino.*;

import java.io.ByteArrayOutputStream;

import java.io.PrintWriter;

import java.sql.*;



public class JavaAgent extends AgentBase {



private java.sql.Connection con = null;

private final String url = "jdbc:microsoft:sqlserver://";

private final String serverName= "server";

private final String portNumber = "1433";

private final String databaseName= "Database";

private final String userName = "sa";

private final String password = "test";

// Informs the driver to use server a side-cursor,

// which permits more than one active statement

// on a connection.

private final String selectMethod = "cursor";



// Constructor

public JavaAgent(){}



private String getConnectionUrl(){

return url+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectMethod+";";

}



private java.sql.Connection getConnection(){

try{

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);

if(con!=null) System.out.println("Connection Successful!");

}catch(Exception e){

e.printStackTrace();

System.out.println("Error Trace in getConnection() : " + e.getMessage());

}

return con;

}



/*

Display the driver properties, database details

*/



public void displayDbProperties(){

java.sql.DatabaseMetaData dm = null;

java.sql.ResultSet rs = null;

try{

con= this.getConnection();

if(con!=null){

dm = con.getMetaData();

System.out.println("Driver Information");

System.out.println("\tDriver Name: "+ dm.getDriverName());

System.out.println("\tDriver Version: "+ dm.getDriverVersion ());

System.out.println("\nDatabase Information ");

System.out.println("\tDatabase Name: "+ dm.getDatabaseProductName());

System.out.println("\tDatabase Version: "+ dm.getDatabaseProductVersion());

System.out.println("Avalilable Catalogs ");

rs = dm.getCatalogs();

while(rs.next()){

System.out.println("\tcatalog: "+ rs.getString(1));

}

rs.close();

rs = null;

closeConnection();

}else System.out.println("Error: No active Connection");

}catch(Exception e){

e.printStackTrace();

}

dm=null;

}



private void closeConnection(){

try{

if(con!=null)

con.close();

con=null;

}catch(Exception e){

e.printStackTrace();

}

}















public void NotesMain() {

try {

Session session = getSession();

AgentContext agentContext = session.getAgentContext();



JavaAgent myDbTest = new JavaAgent();

myDbTest.displayDbProperties();

} catch(Exception e) {

System.out.println("catch ..........");

e.printStackTrace();

}

}

}





cu







geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: