Я обнаружил, что когда я подключаюсь к приложению отладчиком и начинаю отлаживать, соединение с сервером терракоты теряется (?) И в журналах сервера терракоты появляются следующие сообщения:
2012-03-30 13: 45: 06,758 [L2_L1: Главный селектор TCComm Thread_R (прослушивание 0.0.0.0:9510)] WARN com.tc.net.protocol.transport.ConnectionHealthChecker Impl.Сервер DSO - 127.0.0.1:55112 может быть в длинном GC.Счетчик GC с момента последнего ответа пинга: 1 2012-03-30 13: 45: 27,761 [L2_L1: главный селектор TCComm Thread_R (прослушивание 0.0.0.0:9510)] WARN com.tc.net.protocol.transport.ConnectionHealthChecker Impl.Сервер DSO - 127.0.0.1:55112 может быть в длинном GC.Счетчик GC с момента последнего ответа пинга: 1 2012-03-30 13: 45: 31,761 [L2_L1: главный селектор TCComm Thread_R (прослушивание 0.0.0.0:9510)] WARN com.tc.net.protocol.transport.ConnectionHealthChecker Impl.Сервер DSO - 127.0.0.1:55112 может быть в длинном GC.Счетчик GC с момента последнего ответа пинга: 2
...
2012-03-30 13: 46: 37,768 [L2_L1: TCComm Main Selector Thread_R (прослушивание 0.0.0.0: 9510)] ОШИБКА com.tc.net.protocol.transport.ConnectionHealthChecke rImpl.Сервер DSO - 127.0.0.1:55112 может быть в длинном GC.Счетчик GC с момента последнего ответа пинга: 10. Но это слишком долго.Больше нет повторных попыток 2012-03-30 13: 46: 38,768 [HealthChecker] INFO com.tc.net.protocol.transport.ConnectionHealthCheckerImpl.Сервер DSO - 127.0.0.1:55112: DEAD 2012-03-30 13: 46: 38,768 [HealthChecker] ОШИБКА com.tc.net.protocol.transport.ConnectionHealthCheckerImpl: Сервер DSO - Объявлено, что соединение не работает (ID идентификатора соединения (1.0b1994ac80f14b7191080bdc3f3858317) is2012-03-30 13: 46: 38,768 [L2_L1: TCWorkerComm # 0_R] ПРЕДУПРЕЖДЕНИЕ com.tc.net.protocol.transport.ServerMessageTransport - ConnectionID (1.0b1994ac80f14b71 91080bdc3f38582a): ЗАКРЫТЬ СОБЫТИЕ: com.tC.5158277: подключено: false, закрыто: true local = 127.0.0.1: 9510 remote = 127.0.0 .1: 55112 connect = [Пт 30 марта 13:34:22 BST 2012] idle = 2001ms [чтение 207584, запись 229735].СОСТОЯНИЕ: ОТКЛЮЧЕНО
...
2012-03-30 13: 46: 38,799 [L2_L1: TCWorkerComm # 0_R] ИНФОРМАЦИЯ com.tc.objectserver.persistence.sleepycat.SleepycatPersistor - Состояние удаленного клиента для ChannelID = [1] 2012-03-30 13: 46: 38,801 [WorkerThread (channel_life_cycle_stage, 0)] INFO com.tc.objectserver.handler.ChannelLifeCycleHandler -: получено tran sport connect.Завершение работы клиента ClientID [1] 2012-03-30 13: 46: 38,801 [WorkerThread (channel_life_cycle_stage, 0)] INFO com.tc.objectserver.persistence.impl.TransactionStoreImpl - shutdownC lient (): удаление txns из БД: 0
После этого любая операция с кешем, такая как getWithLoader
просто не отвечает, пока сервер терракоты не будет перезапущен снова.
Вопрос: как это можно исправить / перенастроить?Я предполагаю, что это может произойти и в производстве (и на самом деле иногда случается), если по какой-либо (любой) причине приложение зависнет / устарело / и т.д.