달력

32024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
상황  ------------

닷넷에서 자바 웹서비스를 호출할 경우 Web Connection 이 끊김.
자바측 WebService 는 총 4대의 서버이고 L4 로 로드밸런싱 되고 있음.

자바측 Keep-alive = false 이고
닷넷측 Keep-alive = true 이다.



using(wsjavaweb a = new wsjavaweb()){  <-- 1. 여기서는 연결됨(1번서버 바라봄)
    string result = a.methodCall();  <-- 2. 여기서 연결이 끊김.(L4 에서 다른 서버를 할당함)
}

자바측 웹로직 서버의 Keep-alive 가 false 이기 때문에 1번은 연결이 잘 됨.
그러나 2번 호출시 L4 에서 다른 서버로 연결을 보낼 경우 1번에서 연결된
WebRequest 연결을 사용할 수 없음.

해결 ------------

닷넷 측 웹서비스에서 Reference.cs 파일에 메소드를 오버라이드 하여 문제가 해결됨.

protected override WebRequest GetWebRequest(Uri uri)
{
    HttpWebRequest webRequest = (HttpWebRequest) base.GetWebRequest(uri);
    webRequest.KeepAlive = false;
    return webRequest;
}
Posted by tornado
|