net.sourceforge.jtds.jdbc

Class MSSqlServerInfo


public class MSSqlServerInfo
extends java.lang.Object

This class communicates with SQL Server 2k to determine what ports its instances are listening to. It does this by sending a UDP packet with the byte 0x02 in it, and parsing the response.

An example of the return packet format is as follows:

 <3200000000 05 ea 00 53 65 72 76 65 72 4e 61 6d 65 3b 42 52 # ...ServerName;BR
 <3200000010 49 4e 4b 4c 45 59 3b 49 6e 73 74 61 6e 63 65 4e # INKLEY;InstanceN
 <3200000020 61 6d 65 3b 4d 53 53 51 4c 53 45 52 56 45 52 3b # ame;MSSQLSERVER;
 <3200000030 49 73 43 6c 75 73 74 65 72 65 64 3b 4e 6f 3b 56 # IsClustered;No;V
 <3200000040 65 72 73 69 6f 6e 3b 38 2e 30 30 2e 31 39 34 3b # ersion;8.00.194;
 <3200000050 74 63 70 3b 31 34 33 33 3b 6e 70 3b 5c 5c 42 52 # tcp;1433;np;\\BR
 <3200000060 49 4e 4b 4c 45 59 5c 70 69 70 65 5c 73 71 6c 5c # INKLEY\pipe\sql\
 <3200000070 71 75 65 72 79 3b 3b 53 65 72 76 65 72 4e 61 6d # query;;ServerNam
 <3200000080 65 3b 42 52 49 4e 4b 4c 45 59 3b 49 6e 73 74 61 # e;BRINKLEY;Insta
 <3200000090 6e 63 65 4e 61 6d 65 3b 44 4f 47 3b 49 73 43 6c # nceName;DOG;IsCl
 <32000000a0 75 73 74 65 72 65 64 3b 4e 6f 3b 56 65 72 73 69 # ustered;No;Versi
 <32000000b0 6f 6e 3b 38 2e 30 30 2e 31 39 34 3b 74 63 70 3b # on;8.00.194;tcp;
 <32000000c0 33 35 34 36 3b 6e 70 3b 5c 5c 42 52 49 4e 4b 4c # 3546;np;\\BRINKL
 <32000000d0 45 59 5c 70 69 70 65 5c 4d 53 53 51 4c 24 44 4f # EY\pipe\MSSQL$DO
 <32000000e0 47 5c 73 71 6c 5c 71 75 65 72 79 3b 3b          # G\sql\query;;
 
Version:
$Id: MSSqlServerInfo.java,v 1.8 2005/04/20 16:49:22 alin_sinpalean Exp $
Author:
Matt Brinkley

Field Summary

private int
numRetries
private String[]
serverInfoStrings
private int
timeout

Constructor Summary

MSSqlServerInfo(String host)

Method Summary

private static String
extractString(byte[] buf, int len)
int
getPortForInstance(String instanceName)
Call getInfo() before calling this method.
static String[]
split(String s, int ch)

Field Details

numRetries

private int numRetries

serverInfoStrings

private String[] serverInfoStrings

timeout

private int timeout

Constructor Details

MSSqlServerInfo

public MSSqlServerInfo(String host)
            throws SQLException

Method Details

extractString

private static final String extractString(byte[] buf,
                                          int len)

getPortForInstance

public int getPortForInstance(String instanceName)
            throws SQLException
Call getInfo() before calling this method. It parses the info string returned from SQL Server and looks for the port for the given named instance. If it can't be found, or if getInfo() hadsn't been called, it returns -1.
Parameters:
instanceName -
Returns:
port the given instance is listening on, or -1 if it can't be found.

split

public static String[] split(String s,
                             int ch)

Generated on September 18 2009