2010-05-27 3 views
2

최대 절전 모드에서 수행중인 작업을 파악하려고 노력 중이며 p6spy를 mysql jdbc 드라이버의 프록시로 사용하고 있으므로 데이터베이스에 실제로 무엇이 있는지 확인할 수 있습니다. 필자는 p6spy의 결과물에 약간 혼란 스럽습니다 - 어떤 빛에도 감사드립니다!최대 절전 모드 p6spy 문제

문제는 이것입니다. Test1a 클래스와 test1b 클래스의 두 개의 새로운 객체를 생성합니다. 내 로그 출력은 다음과 같습니다

Hibernate: 
    /* insert com.play.hibernate1.Test1 
     */ insert 
     into 
      Test1 
      (name, value, id) 
     values 
      (?, ?, ?) 
1274973057265|1|1|batch|/* insert com.play.hibernate1.Test1 */ insert into Test1 (name, value, id) values (?, ?, ?)|/* insert com.play.hibernate1.Test1 */ insert into Test1 (name, value, id) values ('Test 1', 10, 5) 
Hibernate: 
    /* insert com.play.hibernate1.Test1 
     */ insert 
     into 
      Test1 
      (name, value, id) 
     values 
      (?, ?, ?) 
1274973057265|0|1|batch|/* insert com.play.hibernate1.Test1 */ insert into Test1 (name, value, id) values (?, ?, ?)|/* insert com.play.hibernate1.Test1 */ insert into Test1 (name, value, id) values ('Test 2', 20, 6) 
1274973057267|2|1|statement|/* insert com.play.hibernate1.Test1 */ insert into Test1 (name, value, id) values (?, ?, ?)|/* insert com.play.hibernate1.Test1 */ insert into Test1 (name, value, id) values ('Test 2', 20, 6) 
1274973057268|0|1|commit|| 

나는 JDBC addBatch API에 아마도 통화에서 두 개의 '배치'문을 볼 수 있지만 무엇이다이 일을 '1,274,973,057,267 | 2 | | 1 개 문'? 그것은 두 번째 인서트가 반복되는 것처럼 보입니다 만, 그렇지 않다는 것을 알고 있습니다. 그렇지 않으면 두 개가 아닌 3 개의 행이 표시되거나 최소한 오류가 발생합니다.

두 번째 삽입 문이 반복되는 이유는 무엇입니까?

내 spy.properties에서 '배치'를 제외하면이 이상한 불량 라인 만 표시됩니다.

모든 조명에 감사드립니다!

답변

1

아 - 내가 말해야하는 것 때문에 나타나는 문제는 p6spy의 다소 놀라운 디자인 결정입니다.

일괄 처리 명령문의 경우, 명령문이 배치에 추가 될 때 로그 기록을 확인한 다음 배치가 실제로 실행될 때 실행되는 LAST 문을 표시하도록 결정되었습니다. 당신이 알게되면 그 도구가 내가 거기 왜 당신이 이해할 수있는 것 같아요, 무엇을,하지만 당신이 여기 스레드를 읽은 일이 않는 한 완전히 혼란스럽고 직관적입니다 :

http://sourceforge.net/projects/p6spy/forums/forum/166969/topic/666877

0

그것의 꼬리 끝 (513) *의 spy.propertie * s의 파일에서 타임 스탬프 alt text

0

의 일부처럼 보이는 excludecategories의 기본 속성은 을 제외 할 수 있습니다 [info,debug,result,batch, 입니다 10 카테고리를 선택하면 원하는 것을 얻을 수 있습니다.