본문 바로가기

개발관련/데이터베이스

Length specified in network packet payload did not match number of bytes read;


아주 특별한 경우에 만나는 에러 메세지라 기억해 놓기위해 적는다.

위의 메세지는 MSSQL서버에 나오는 로그 메세지인데,

어떠한경우냐면
디비를 SQLSERVER2005 (MSSQL2005)를 사용하고 자바에서 sqljdbc.jar을 사용하고 있는데
디비에 컨넥션을 연결할때 아이디와 패스워드설정이 분명하 맞음에도 불구하고 디비에서는 로그인을 실패했다고 나오는데?!

자바의 로그파일에는

 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(Unknown Source)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(Unknown Source)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
        at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)


이런식으로 에러 메세지가 나온다.

디비 서버에서는

Length specified in network packet payload did not match number of bytes read; the connection has been closed. Please contact the vendor of the client library

요런 메세지를 출력해준다.

네트워크 패킷이 어쩌구 저쩌구...

로그인이 안됐다고 어쩌구....

설정도 다 맞다.
네트워크 통신도 잘된다.

그래서 변경한게 sqljdbc.jar을 새로나온게 있어서 그걸로 바꿔줬다...


.
.
.
.
.
.
.
.
.
.
.



.
.
.
잘 된다......헐..!!!!