2010-06-17 4 views
1

지금 우리는 서버 충돌로 비난 받고있는 기업 환경에서 약간의 수수께끼를 다루고 있지만, 우리가 범인이라고 확신하지는 않습니다. 서버 환경은 다음과 같습니다. ColdFusion의 주 데이터베이스와 MSSQL 데이터베이스가 있습니다. 그런 다음 다른 작업에 사용되는 다른 클라우드에 호스팅 된 보조 데이터베이스 (MySQL)를 보유합니다. 이 방식으로 시스템을 구성하는 주된 이유는 주 서버가 컨텐츠 관리 시스템에 의해 운영되므로 수정하거나 테이블을 추가하거나 그와 같은 작업을 할 수 없으므로 대체 데이터베이스를 사용하기 때문입니다. 의도적으로 중요한 항목은 없으며 대체 DB가 행을 반환하지 않으면 페이지가 제대로 렌더링되도록 페이지가 작성됩니다.보조 데이터베이스가 손상된 경우 기본 coldfusion 서버가 중단됩니까?

기본적으로 대체 MySQL 서버가 중단되거나 연결 수락을 중단하면 호스팅 된 5 개의 다른 사이트를 포함하여 전체 기본 클라우드를 사용 중입니다. CMS 공급자가 제공하지 않기 때문에 기본 ColdFusion 또는 데이터베이스 로그에 액세스 할 수 없습니다. 따라서 나는 그들이주는 설명의 타당성만을 근거로 판단 할 수있다.

CMS 공급자가 제공하는이 동작에 대한 설명은 Coldfusion에서 데이터베이스를 쿼리 할 때 스레드를 만들고 해당 데이터베이스가 응답하지 않으면 스레드가 계속 스택 될 수 있다는 것입니다. 결국 프로세서의 출입이 차단되고 서버가 다운됩니다. Coldfusion이 어떻게 작동하는지에 대한 정확한 설명입니까? 그렇다면 어쨌든 짧은 DB 시간 초과 등으로이를 방지 할 수 있습니까? 또는 CMS가 제기 한 전체 설명이 빨간색 청어이며 다른 것이 실제로 충돌을 일으키고 있습니다.

모든 안내가 크게 감사하겠습니다.

질문은 답변 - 문서 세계적으로 외부 자원 (cfquery 등/cfhttp 태그 등)에서 대기 내부 프로세스 시간 초과하지 않는 시간 제한 요청을 설정 http://kb2.adobe.com/cps/180/tn_18061.html http://www.adobe.com/devnet/server_archive/articles/cf_timeouts_and_unresponsive_requests.html

을 발견했다. 시간 초과를위한 유일한 방법은 수동으로 timeout 속성을 설정하는 것입니다. 이것을 설정하지 않으면 스레드 오버로드가 발생하고 서버가 손상되어 서버에서 발생합니다. 글 머리 기호 3을 읽고 트래픽에 따라에서

답변

5

http://kb2.adobe.com/cps/180/tn_18061.html

, 당신의 CMS 사람은 바로 수 있습니다. 위의 링크에서 또한

: 데이터베이스가 아래로 응답하지 않는 경우

, 몇 번 ColdFusion에서 서버는 데이터베이스에 다시 연결을 시도합니다? 결국 ColdFusion 서버가 다시 시작됩니까?

쿼리 요청이 발생할 때 데이터베이스가 다운되거나 데이터베이스에 대한 네트워크 링크가 다운되면 연결이 시간 초과됩니다 (cfquery 태그의 timeout 속성을 사용하여 시간 초과 기간을 사용자 정의 할 수 있음). 사용자. 연결 시간 제한을 설정하는 기능은 사용중인 드라이버에 따라 다릅니다. 이 오류를 트랩하여 ccryry/cfcatch 태그를 사용하여 프로그래밍 방식으로 처리 할 수 ​​있습니다.

여기서 catch하는 것은 cfquery 태그의 timeout 변수가 MySQL ODBC 드라이버와 호환되지 않는다는 것입니다. 기본 시간 초과 값을 찾을 수 없습니다. 5 분이라고합시다. 5 분 안에 하나 이상의 요청을 받으면 연결이 '쌓여'시작됩니다.

+0

흠, 좋은 찾을 수 있습니다. MySQL 드라이버와 "호환되지 않는다"는 것은 무엇을 의미합니까?cfquery 태그에서 timeout 값은 무시됩니다. 응용 프로그램의 제한 시간 값 또는 동시 요청 제한은 어떻습니까? 스택이나 큐처럼 작동합니까? IE는 한번만 더 이상 허용하지 않거나 가장 오래된 것은 한번만 남깁니다. 이 모든 것을 염두에두고 어쨌든 이러한 충돌을 방지 할 수 있습니까? –

+0

호환되지 않음 - KB 문서에 따르면 지원되지 않는다는 의미입니다. 서버 설정에서이 두 변수를 조합하면 문제를 해결할 수 있다고 생각합니다. 시간 초과 (분) : ColdFusion MX가 사용되지 않는 연결을 삭제하기 전에 유지 관리하는 시간 (분)입니다. 간격 (분) : 만료 된 데이터 소스 연결을 닫기 위해 서버가주기 사이에 대기하는 시간 (분). – Tommy

+0

또한 try/catch를 사용할 수도 있지만 연결을 호출하지 않으므로 .NET/Java와 같은 SQL을 실행하십시오. 나는 당신의 try/catch 서버가 예외를 던지기 전에 발생할 ODBC 시간 제한을 설정할 때까지 기다릴 것이라고 생각합니다. 그러나 해당 데이터베이스 연결에 대한 일부 유형의 호출을 호출 할 수 있어야합니다. 죄송합니다. CF를 수행 할 때 실제로이 문제를 해결하지 못했습니다./ – Tommy

관련 문제