2013-10-22 3 views
-1

우리 은행 관련 응용 프로그램이 있으며 우리는이 심각한 문제에 직면하고 있습니다. 문제는 트랜잭션의 난수가 다른 상태로 변경된다는 것입니다. 예를 들어 오늘날 두 개의 LAC 트랜잭션이 보류 중으로 변경되었습니다. 대부분의 트랜잭션이 해결되었거나 승인되었습니다. 응용 프로그램이 너무 크기 때문에 쿼리 작성 문제를 찾을 수 없습니다. .알 수없는 쿼리로 인해 데이터베이스가 많이 변경되었습니다.

당분간 나는 유사한 요청이 너무 많이 발생하는지 또는 변경 사항이 데이터베이스 테이블에 너무 많은 항목에 있는지 확인하기 위해 데이터베이스와의 통신을 어떻게 든 제한 할 수 있는지 알고 싶습니다. 정지 또는 뭔가? 적어도이 일을 다시 할 수있는 모든 가능한 해결책은 높게 평가됩니다. 내가 거기에 확신

감사

당신은 버전 관리를 사용할 경우
+8

이것은 은행 계좌를 고려할 때 심각한 상황 인 것처럼 보입니다. 어느 은행입니까? 나는 그곳에 계좌를 개설 할 수 있도록 요청하고 있습니다. ;) –

+0

필자가 아는 한 MySQL은 외부 스크립트를 실행하여이를 수행한다. 최선의 방법은 데이타베이스 함수에이 코드를 삽입하는 것입니다 (DRY를 따르고 모든 페이지에서 다시 연결하지 않고 쿼리하는 것이어야 함). 또한 차단 방법이나 문제의 원인에 대한 자세한 정보를 제공하십시오. 최근 업데이트 이후에 시작 되었습니까? 최근에 봤습니까? 나는 이런 문제를 겪었다. (Ofcourse는 은행 응용 프로그램의 규모가 아니었다!) 그리고 그것은 내가 엉망이거나 몇 가지 WHERE 절을 놓쳤다. –

+0

농담을 제쳐두고, 기술로 프론트 엔드, 백엔드, 아키텍처 - 데이터베이스 연결 방법 ... 등등과 같은 몇 가지 대답을 얻을 수 있도록 구체적으로 질문을 업데이트하십시오. –

답변

1

는, 당신이 다시 마이너 버전 점 압연 시작하는 것이 좋습니다 각 커밋의 DB 관련 변경 사항을 확인할 것입니다.

편집 :

가 (당신이 당신에게 생산을 디버깅 할 때까지), 당신은 밤의 특정시기에이 테이블에 업데이트 권한을 취소 할 수있는 시간이기 위해 다음 테이블의 고정 세트에 일어나는 경우 이러한 업데이트가 발생하는 데이터베이스 사용자 그리고 나서 창이 사라진 후에 다시 권한을 부여하십시오. 이것은 필사적 인 상황이며 필사적 인 해결책입니다. 며칠 동안 만이 작업을 수행 할 수 있습니다 (사용자에게 영향을 미치지 않고 디버깅하는 데 가장 많은 돈을 쓸 수 있습니다).

또한이 문제가 발생하는 테이블 세트가 고정되어 있으면 코드 검색을 수행하십시오 이 테이블에 대한 쿼리를 업데이트하고 SQL 인젝션 취약점을 먼저 찾습니다. 그런 다음 잘못 구성된 SQL 업데이트를 찾습니다.

+0

우리는 실제로 최신 업데이트를 확인하고 있습니다. 그러나 우리가 문제의 어린이에게 도달하지 않을 때까지 우리는 이것이 다시 일어나기를 원하지 않습니다. 이상한 점은 이벤트 기반이 아니라 밤중에 아무도 시스템에서 작업하지 않는다는 것입니다. 고정 된 수의 트랜잭션이 없으면 트랜잭션의 백에서 랙까지 다양합니다. –

+0

적어도 고정 된 테이블 세트에서 발생하고 있습니까? 그렇다면 잠시 동안 (프로덕션을 디버깅 할 때까지) 이러한 업데이트가 발생하는 데이터베이스 사용자에 대한 특정 시간대의 테이블에 대한 업데이트 권한을 취소 할 수 있습니다. 그리고 나서 창이 사라진 후에 다시 권한을 부여하십시오. 이것은 필사적 인 상황이며 필사적 인 해결책입니다. 며칠 동안 만이 작업을 수행 할 수 있습니다 (사용자에게 영향을주지 않으면 서이를 디버깅하는 데 가장 많이 쓸 수 있습니다). –

+0

다시 한 번 특정 기간이나 특정 사용자 또는 특정 이벤트가 수정되지 않았습니다. 그것은 언제든지 발생할 수 있습니다. 아무도 시스템을 사용하지 않을 때 일어난 예일뿐입니다. 그러나 그렇습니다. 필사적 인 상황이며 필사적 인 해결책은 특정 테이블의 업데이트를 중단하는 것입니다. –

관련 문제