Select date in calendarSelect date in calendar

Pages: 1
Hold не выпускает ресурсы даже по recalculateConditions()
Приветствую, коллеги!
Сначала расскажу предпосылки:
Есть задача создать очередь заявок, максимальный размер данной очереди нужно уметь менять во время работы модели. Задачу эту решил использовав Hold (соответствующее обсуждение http://www.anylogic.ru/forum?PAGE_NAME=read&FID=2&TID=121)Image

Если ничего не менять, то всё работает как часы, но вот ни задача при определённых условиях Hold перестаёт освобождать ресурсы.
Такая история:
  1. В модели идёт Hold с названием queueCondition, который моделирует очередь с переменной вместимостью, за ним следует Service по имени analysis (см. картинку)
  2. у Hold стоит Режим = "Условие"
    Условие блокировки: queueOccupiedSlots >= queueSize.getIntValue(), 
    Где queueOccupiedSlots счётчик обновляемый в сервисе analysis (далее описано как)
    queueSize - текстовое поле, задающее максимальный размер очереди
  3. В Service следующие свойства:
    Максимальная вместимость: true
    Задать выбор ресурса: true
    Условие выбора ресурса: (analysisOccupiedSlots < analysisLimit.getIntValue()) && (analysisInterchangeability || (!analysisInterchangeability && unit instanceof Analyst)),
    где analysisOccupiedSlots счётчик увеличивающийся при захвате ресурса этим сервисом, и уменьшающийся при захвате следующим ресурсом.
    analysisLimit - текстовое поле, задающее максимальное суммарное число ресурсов, которые могут находится на обработке в этом сервисе и в очереди следующего сервиса
    analysisInterchangeability - для простоты скажем, что этот константа, которая может быть true или false. 
    При входе: 
    Code
    queueOccupiedSlots++;
    
    При захвате ресурса: 
    Code
    analysisOccupiedSlots++;
    queueOccupiedSlots--;
    queueCondition.recalculateConditions();
    

  4. Так вот проблема возникает только в том случае, если:
    - analysisInterchangeability = false
    - Hold блокирует поступление новых заявок
    - Уменьшаем значение текстового поля analysisLimit 
    Не воспроизводится, если хотя бы одно из этих условий не выполнено (например analysisLimit увеличен, а не уменьшен)
Симптомы: После уменьшения значения в поле analysisLimit сервис analysis постепенно покидают все заявки, а новые в него больше не поступают

Вероятно, я что-то делаю не так, но документация не даёт мне понять, что именно. Подскажите, пожалуйста, как исправить или переделать эту модель, чтобы работало, как мне нужно.
Edited: Денис Тучин - 21.09.2015 14:13:34
[Проблема] При работе модели 2D отображения агентов крутятся независимо от аттракторов, Можно как-то настроить, чтобы всегда правильно поворачивались, или это баг AnyLogic?
Есть значит ResourcePool-ы, у них задано базовые местоположения с аттракторами (количество соответствует размеру пула): 
Image

При запуске модели, ресурсы повернуты нормально:
Image

Но после того как модель из заберёт на время и вернёт в пул, они переворачиваются в хаотичном порядке:
Image


Можно как-то настроить, чтобы всегда правильно поворачивались, или это баг AnyLogic?
PS: Проблема не только с ResourcePool-ами, но и с объектами типа Queue и Service.

AnyLogic 7 Personal Learning Edition 7.1.2
Билд: 7.1.2.201502051939 x64
Воспроизводится на Win 7 и Win 8
Возможно ли смоделировать очередь, где условие входа в очередь задаётся логическим выражением?
Доброго всем дня!
Моделирую Lean/Kanban, есть такое требование: пользователь должен иметь возможность менять размер очереди (от этого меняются статистические данные и графики в реальном времени).
Проблема в том, что если в очереди 10 агентов, то при уменьшении вместимости (capacity) очереди до 5, все лишние агенты из неё выбрасываются. В Канбан логика несколько иная: агенты должны остаться в очереди, но и новые агенты не должны в очередь попадать, пока там не появится место. Вопрос, как это наиболее оптимально организовать?
Первая идея была сделать очередь с максимальной вместимостью, но задать Условие выбора ресурса, как это можно сделать у Service или у Seize типа queueOccupiedSlots < eueSize.getIntValue().
Пока в голову приходит только сделать костыль, поставив Service перед очередью с 0-й задержкой. Может есть более изящные решения?
Edited: Денис Тучин - 06.05.2015 08:30:12
Pages: 1