안녕하세요.
그동안 Xe 홈페이지를 운영하면서... 라이믹스로 업그레이드를 매번 생각하다.
이번에 업데이트를 마쳤습니다.
버전은 1.9.9.6 입니다.
여기서 한가지 문제점이 생겨버렸는데요.
제가 운영하는 사이트가 동일 DB에 데이터베이스만 달리하여 라이믹스, 웹게임? 두가지가 있습니다.
라이믹스 (이하 rm), 웹게임 (이하 Game) 두가지에서 포인트(rm), 게임 스코어(Game)이 연동 되게 만들어두었습니다.
1. 포인트(Rm) -> 게임 스코어(Game)으로 동기화 [Rm.DB 테이블 xe_point] → [Game.DB 테이블 Game_Score]
- 위와 같이 데이터를 동기화 시키면 정상적으로 잘 됩니다. (UPDATE 이용)
2. 게임 스코어(Game) -> 포인트(Rm)으로 동기화 [Game.DB 테이블 Game_Score] → [Rm.DB 테이블 xe_point]
- 위와 같이 동기화를 시키면 Rm.DB 테이블 xe_point가 적용되지 않습니다. (UPDATE 이용)
- 매번 같은 증상이 발생하는것이 아닌 10번중 1번꼴로 해당 증상이 발생합니다.
- 서로 세션은 공유하지 않습니다.
저희가 처음에는 php 문제인가 하여 여러가지 로그를 남기며 테스트를 해보았지만
sql의 UPDATE는 정상적으로 들어간 뒤 추후에 다시 Rm쪽에서 이전 데이터로 휘귀 시키는듯 합니다.
이게 저희쪽 호스팅 문제인건지, Rm 자체적으로 point 변수를 변경시키지 않았을때 검사하는 로직이 있는건지 잘모르겠네요.
SQL로 DB를 직접 조작하지 말고 point 모듈의 getPoint, setPoint 함수를 사용하세요.
포인트 불러오는 부분의 성능 개선을 위해 지난 4년간 캐시 방식 등 상당히 많은 변화가 있었기 때문에 (특히 point.controller.php는 처음부터 끝까지 모두 새로 작성한 것이나 다름없습니다) 코어에서 공식 지원하는 함수를 사용하지 않고 DB를 직접 조작하면 변경사항이 적용되지 않을 수도 있습니다.