2014-06-14 2 views
1

openfire와 mysql을 사용하여 xmpp chat server를 구현하고 있습니다. Openfire는 db에 많은 테이블을 생성합니다. 그것은 명단 테이블을 가지고 있지만 거기에 단지 행을 추가 명부를 만들지 않습니다 어디에 사용자 테이블에 행을 추가로 사용자를 생성하고 사용자와 함께 로그인 할 수 있습니다. 그래서 내 질문은 openfire가 로스터를 다른 곳에 저장하는 이유는 로스터 테이블에서 항목을 삭제해도 여전히 이전 로스터를 보여주기 때문입니다.openfire는 데이터베이스를 제외한 로스터 값을 어디에서 저장합니까?

답변

1

로스터를 삭제하면 명단에 반영되지만 오픈 파이어 스토어 캐시로 시간이 걸립니다. Server manager-> cache summary로 가면 캐시 목록을 볼 수 있습니다. 명부 캐시를 삭제하면 로스터가 데이터베이스에있는 것과 동일하다는 것을 알 수 있습니다. 나는 다른 어느 곳에서나 openfire 스토어 명단 값을 생각하지 않는다. 그리고 사용자 명을 추가/삭제하면 사용자 서비스 플러그인으로 처리하거나 자바 플러그인으로 데이터베이스를 삭제/업데이트하지 마십시오.

0

메모리에 로스터를 캐시 할 가능성이 높습니다. 서버를 중지하고 데이터베이스를 변경 한 다음 서버를 시작하면 변경 사항이 반영된 것을 볼 수 있습니다. 실제로는 제대로 작동하지 않으므로 로스터를 변경하기 위해 프로토콜을 사용해야 할 수도 있습니다.

관련 문제