Classic ASP에서는 Session 개체에 데이터베이스 연결을 저장할 수 있나요?

StackOverflow https://stackoverflow.com/questions/90100

문제

세션 개체에 데이터베이스 연결을 저장할 수 있나요?

도움이 되었습니까?

해결책 4

이 링크에서 http://support.microsoft.com/default.aspx/kb/243543

세션에 데이터베이스 연결을 저장하면 안됩니다.

내가 이해한 바에 따르면, 그렇게 하면 동일한 사용자에 대한 후속 ASP 요청은 동일한 스레드를 사용해야 합니다.

따라서 바쁜 사이트가 있는 경우 '귀하의' 스레드가 이미 다른 사람에 의해 사용되고 있을 가능성이 높으므로 해당 스레드가 사용 가능해질 때까지 기다려야 합니다.

여기에 더 많은 사용자를 곱하면 모든 사람이 다른 사람의 스레드를 기다리게 되고 반응이 좋지 않은 사이트가 됩니다.

다른 팁

일반적으로 그렇게 하는 것은 권장되지 않습니다. 좋은 도우미 함수/클래스를 사용하여 애플리케이션 변수의 연결 문자열을 사용하는 것이 훨씬 선호되는 방법입니다. 여기 일부 참고 사항입니다. (이제 피싱 사이트로 연결되므로 데드 링크가 제거되었습니다.)

그렇게 하면 응용프로그램을 단일 스레딩하는 효과가 발생하여 나쁜 일이 될 수 있다는 것을 기억합니다.

일반적으로 저는 응용 프로그램 변수에 어떤 개체도 저장하지 않습니다(물론 세션 변수에도 저장하지 않습니다).

데이터베이스 연결에 있어서는 절대 금물입니다.게다가 전혀 필요하지 않습니다.

ADO를 사용하여 데이터베이스와 통신하는 경우 동일한 연결 문자열 (네, 꼭 저장해두세요. 이것 애플리케이션 변수에서) 모든 데이터베이스 연결에 대해 '연결 풀링'이 백그라운드에서 구현됩니다.이는 연결을 해제할 때 실제로 연결이 파괴되지 않는다는 것을 의미합니다. 동일한 연결을 원하는 다음 사용자를 위해 한쪽에 배치됩니다.따라서 다음에 동일한 연결을 요청할 때 명시적으로 생성 및 인스턴스화할 필요 없이 '기성품'으로 연결됩니다. 이는 효율성이 상당히 향상되는 것입니다.

CJM이 말했듯이 Session 객체에 연결을 저장할 필요가 없습니다.연결 풀링이 훨씬 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top