ngrinder clustering error

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

ngrinder clustering error

neal
Error executing SQL UPDATE PUBLIC.DATABASECHANGELOGLOCK SET LOCKED = TRUE, LOCKEDBY = 'DESKTOP-Q2JNTGJ (192.168.0.132)', LOCKGRANTED = '2022-05-31 11:13:56.504' WHERE ID = 1 AND LOCKED = FALSE: Values of types "CHARACTER(5)" and "BOOLEAN" are not comparable

h2 다운로드받고 실행후에  

java -jar ngrinder-controller-X.X.war -p 8080 -cm easy -clp 10010 -r region1 -sr sub1,sub2 -cp 9001

해당 명령어를 통해 클러스터링을 시도하면 다음과 같은 에러메세지가 출력이 됩니다.

DB안에 DATABASECHANGELOGLOCK 테이블에 해당 데이터가 없는거 같은데

직접 데이터를 넣어야하는건가요? 아니면 제가 뭔가를 빼먹고 있는걸까요..;

DATABASECHANGELOGLOCK 테이블도 직접 만들어서 넣어봤지만 저 에러메세지가 해결이 되질않습니다..
Reply | Threaded
Open this post in threaded view
|

Re: ngrinder clustering error

leedonggyu
Administrator
안녕하세요.

'LOCKED = FALSE: Values of types "CHARACTER(5)" and "BOOLEAN" are not comparable'

위 오류 메세지를 봤을 땐, DATABASECHANGELOGLOCK 테이블 스키마가 현재 구동시키시는 ngrinder의 liquibase 버전과 호환이 안되는 것 같습니다(스키마상 LOCKED 컬럼이 CHARACTER(5) 타입으로 정의 되어 있는것 같네요, 반대일수도..), 스키마를 변경시켜 주시던지, 아니면 DATABASECHANGELOGLOCK를 drop 후 가동시켜 보시기 바랍니다. 아마 해당 테이블이 없으면 liquibase가 자동 생성할 것 같습니다.

그리고 클러스터 모드는 mysql 을 사용하시거나, h2를 tcp 모드로 동작하도록 하셔야 합니다.
Reply | Threaded
Open this post in threaded view
|

Re: ngrinder clustering error

neal
답변감사합니다. 말씀해주신대로 다시 시도해보겠습니다!
Reply | Threaded
Open this post in threaded view
|

Re: ngrinder clustering error

neal
In reply to this post by leedonggyu


말씀해주신것처럼 처음에 tcp로 h2을 동작하도록 url를 작성했습니다.



해당 DB에 접속해서 DATABASECHANGELOGLOCK 테이블 DROP 시키고

명령어를 다시 입력해봐도 같은 에레메세지만 출력됩니다..

현재 진행과정에서 제가 빼먹은 부분이 있을까요??

P.S 스키마에 타입정의 되어있는걸 변경하려고 했는데

Feature not supported: "META"; SQL statement:

기능이 지원하지 않는다는 문구만 출력되고 변경이 되질않습니다;
Reply | Threaded
Open this post in threaded view
|

Re: ngrinder clustering error

leedonggyu
Administrator
혹시 명령어 다시 입력하셨다는게 어떤건가요?
해당 테이블 드랍하시고 그 상태에서 ngrinder controller를 그냥 재 가동 한번 해보실 수 있으실까요?
(아니면 db를 초기화 하고, ngrinder 홈 폴더 (.ngrinder) 도 삭제한 후에 클린한 상태에서 가동해보는 것도 방법일 것 같습니다.)
그리고, non-cluster 모드(단순 java -jar ngrinder-controller-X.X.war)로 동작시킬때도 같은 오류가 발생하나요?
Reply | Threaded
Open this post in threaded view
|

Re: ngrinder clustering error

neal
This post was updated on .
해당 명령어

java -jar ngrinder-controller-X.X.war -p 8080 -cm easy -clp 10010 -r region1 -sr sub1,sub2 -cp 9001

위와 같은 명령어로 clustering을 시도했으나 같은 에러메세지가 출력되었습니다.

해당 테이블 드랍하고 재 가동시에도 역시 DATACHANGELOGLOCK 관련 메세지가 출력됩니다.
(삭제후 클린한 상태에서도 마찬가지이구요.)

NON Cluster모드에서는 오류 없이 잘 작동되어 해당기능으로 서버 부하 테스트는 진행했습니다.
다만 clustering을 통해서도 부하테스트를 진행해보고자 해서 시도 중이였습니다.

P.S  Error creating bean with name 'databaseUpdater': Invocation of init method failed; nested exception is org.ngrinder.common.exception.NGrinderRuntimeException: Exception occurs while Liquibase update DB

DATABASECHANGELOGLOCK 관련 에러메세지 외에도 위와 같은 에러 메세지가 출력되는데
처음에 DB 업데이트 하는 과정에서부터 에러가 나서 DATABASECHANGELOGLOCK의 값이 변경되지 않은걸까..
하는 생각을 해봤는데 이게 맞을까요??
Reply | Threaded
Open this post in threaded view
|

Re: ngrinder clustering error

leedonggyu
Administrator
tcp 모드로 동작시키는 h2 db의 버전을 ngrinder 에서 embedded로 사용하는 1.4.197 버전으로 맞춰서 한번 구동해 주실 수 있으신가요?
최신버전의 h2 사용하신다면 ngrinder 코드와 호환이 안될수도 있을 것 같습니다.
Reply | Threaded
Open this post in threaded view
|

Re: ngrinder clustering error

neal
말씀해주신것처럼 1.4.197 버전으로 실행시키려고 하는데
install 해도 계속 최신버전으로 h2가 실행되는 문제가 생겼습니다.. 하핳...

이 문제 해결하고 해당버전으로 시도해보고 안되면 다시 글 남기겠습니다.

감사합니다.