Распределенные объекты какао, клиент GC, сервер без GC - PullRequest
2 голосов
/ 14 октября 2008

У меня есть установка, в которой есть два процесса Какао, взаимодействующих с распределенными объектами (DO). Клиент использует сборщик мусора, сервер - нет.

Кажется, что клиент цепляется за отдаленные объекты за пределами моих прямых ссылок на них. Это означает, что даже после того, как у меня нет ссылок на объекты, они остаются в собственности, принадлежащей NSDistantObjectTableEntry. Очевидно, что они не освобождаются на сервере.

Только когда клиент выходит из системы, он отпускает все удаленные объекты. Разрыв соединения вручную, вероятно, также будет работать, но я не хочу этого делать во время работы клиента.

Есть ли способ сказать клиенту GC'd DO отпустить удаленные объекты, на которые больше нет ссылок локально?

1 Ответ

1 голос
/ 11 июля 2010

Может существовать цикл сохранения, который охватывает клиент и сервер, т. Е. Объект клиента сохраняет прокси объекта сервера, который в свою очередь сохраняет прокси объекта клиента.

Это очень простой пример цикла сохранения, когда задействовано более двух объектов, диагностировать становится сложнее.

См. Тонкие опасности распределенных объектов , например, о других ошибках, связанных с DO.

...