2011-07-01 3 views
0

기존 시스템에서 실패의 근본 원인을 찾으려고합니다. 나는 그것에 대해 많이 알지 못한다. 그러나 문제는 Hibernate를 통해 Postregsql에 큰 행을 삽입하는 것과 같다. 약 50-100k 크기의 TEXT 필드가있는 레코드를 삽입 할 수 없습니다.빅 삽입 쿼리가 Hibernate Postgresql에 실패했습니다.

postgresql 자체에는 문제가되지 않아야합니다. 하지만 거기에 영향을 미칠 수있는 최대 절전 모드에서 몇 가지 설정 \ 매개 변수가있을 것 같아요. 검색 방향에 대한 제안 사항이 있습니까? 더 단서를 얻기 위해, 로컬 시스템에의하거나 서버 로그 경우

+1

오류가 발생하면 예외가 발생해야합니다. 나는 그것의 메시지를 (내가 그것을 볼 수 있다면)보기 시작할 것이다. –

+0

로그가 깨끗하게 보이므로 최대 절전 모드에서 문제가있는 것 같습니다. – m5ba

+1

"실패"한다는 것은 무엇을 의미합니까? 오류가 있습니까? 텍스트가 잘 렸는가? 이 열없이 행이 삽입 되었습니까? 인서트는 자동으로 무시됩니까? 당신은 Hibernate에 의해 생성 된 insert SQL 쿼리를 보았는가? 삽입 작업을 수행하는 코드는 어디에 있습니까? 당신이 우리에게 그것을 보여줄 수 없다는 것이 너무 비밀 스러운가? 세부 사항을 알려주지 않음으로써 우리가 당신을 도울 수 있도록 매우 어렵게 만듭니다. –

답변

1
  • 먼저 나는 예외에 을 찾아보십시오. 이후 행을 삽입 할 때 라고 말하면 어떨지 알 수 있습니다.

  • 텍스트가 필드에 몇 바이트 밖에없는 행을 삽입하여 이 작동하는지 확인해보십시오. 연결이 이고 느린 삽입 횟수가 5035보다 많으면 이 발생하여 제한 시간이 초과되어 롤백이 발생합니다.

  • 또한 삽입이 더 큰 트랜잭션 에 속하는지 또는 더 작은 트랜잭션에서 실행되는지 확인하십시오.

  • plain jdbc (그냥 일시적으로)에 삽입하여 연결 문제가 없는지 확인하십시오.

  • 문제가 연결에없는 경우 최대 절전 모드 매개 변수를 조정할 수 있습니다. 두 번째 캐시를 사용하지 않도록 설정할 수 있습니다. 스택 예외 또는 디버깅 세션은 변경할 매개 변수를 아는 데 도움이됩니다.

관련 문제