Как исправить ошибку «Unhandled event loop exception»?
Когда я пишу код в Eclipse , то по нажатию или Ctr+Space , либо просто пишу и только хочет появиться авто-дополнение, как выбивает ошибку и авто-дополнение слов перестаёт работать именно в этом классе. Но перейдя в другой и начиная писать код через некоторое время тоже выбивает эту же ошибку и авто-дополение так же перестаёт работать. Кто-нибудь сталкивался или знает как это исправить?
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.ArrayIndexOutOfBoundsException: 1) at org.eclipse.swt.SWT.error(SWT.java:4282) at org.eclipse.swt.SWT.error(SWT.java:4197) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:138) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) at org.eclipse.equinox.launcher.Main.run(Main.java:1410) Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.jdt.internal.codeassist.InternalCompletionProposal.findConstructorParameterNames(InternalCompletionProposal.java:257) at org.eclipse.jdt.internal.codeassist.InternalCompletionProposal.findParameterNames(InternalCompletionProposal.java:1456) at org.eclipse.jdt.ui.text.java.CompletionProposalLabelProvider.appendUnboundedParameterList(CompletionProposalLabelProvider.java:113) at org.eclipse.jdt.ui.text.java.CompletionProposalLabelProvider.createMethodProposalLabel(CompletionProposalLabelProvider.java:272) at org.eclipse.jdt.ui.text.java.CompletionProposalLabelProvider.createStyledLabel(CompletionProposalLabelProvider.java:562) at org.eclipse.jdt.internal.ui.text.java.LazyJavaCompletionProposal.computeDisplayString(LazyJavaCompletionProposal.java:262) at org.eclipse.jdt.internal.ui.text.java.LazyJavaCompletionProposal.getStyledDisplayString(LazyJavaCompletionProposal.java:238) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.handleSetData(CompletionProposalPopup.java:831) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$24(CompletionProposalPopup.java:821) at org.eclipse.jface.text.contentassist.CompletionProposalPopup$3.handleEvent(CompletionProposalPopup.java:583) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) at org.eclipse.swt.widgets.Table.checkData(Table.java:1166) at org.eclipse.swt.widgets.Table.wmNotifyChild(Table.java:6729) at org.eclipse.swt.widgets.Control.wmNotify(Control.java:5534) at org.eclipse.swt.widgets.Composite.wmNotify(Composite.java:1896) at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:5086) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4584) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1610) at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2061) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4985) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2425) at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:564) at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:430) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4623) at org.eclipse.swt.widgets.Table.windowProc(Table.java:5893) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4972) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2425) at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:564) at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:430) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4623) at org.eclipse.swt.widgets.Table.windowProc(Table.java:5893) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4972) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2425) at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:564) at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:430) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4623) at org.eclipse.swt.widgets.Table.windowProc(Table.java:5893) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4972) at org.eclipse.swt.internal.win32.OS.SendMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.SendMessage(OS.java:3275) at org.eclipse.swt.widgets.Table.setItemCount(Table.java:4645) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.setProposals(CompletionProposalPopup.java:1111) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$7(CompletionProposalPopup.java:1092) at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:499) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:482) at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:377) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) . 22 more
Event loop exception anylogic как убрать
Focused on delivering choice, investment protection and flexibility to organizations with valuable COBOL assets
Veryant Knowledge Base
When I attempt to run my program nothing happens, but I notice the following error in the Error Log view:
Message Plug-in ------------------------------ -------------- Unhandled event loop exception org.eclipse.ui
and when I open the error log I see:
!ENTRY org.eclipse.ui 4 0 2010-11-09 16:44:55.197 !MESSAGE Unhandled event loop exception !STACK 0 java.lang.NoClassDefFoundError: com/iscobol/rts/IscobolClass . at com.iscobol.plugins.editor.launch.IscobolLaunchConfigurationDelegate.doExecute(IscobolLaunchConfigurationDelegate.java:216)
This error occurs when the «Default isCOBOL Runtime build» is set to an invalid path or filename.
To correct this error, select Preferences from the Window menu and click on the isCOBOL node in the tree. Set the «Default isCOBOL Runtime build» field to a valid path and file name or clear the field’s value to allow the IDE to use the isCOBOL runtime build included with the IDE.
| User Comments |
- How do I set up a CVS repository and access it from Eclipse and the isCOBOL IDE?
- How to filter the problems view to avoid seeing the errors of so many different programs in a project?
- isCOBOL IDE or Eclipse error «Workspace in use or cannot be created, choose a different one»
- Can you recommend a book for learning the Eclipse based isCOBOL IDE?
- isCOBOL IDE Eclipse Troubleshooting
- How do I make an isCOBOL program that will run on a mobile device, like iPad?
- Does Veryant provide a plugin to Eclipse or did Veryant customize Eclipse to be the IDE for isCOBOL?
- How do I install support for Subversion (SVN) in Eclipse or isCOBOL IDE?
- What are the steps to add an external tool or integrate a utility such as JDBC2FD into the isCOBOL IDE?
- On which version of Eclipse are the isCOBOL ‘s built?
- Generate stopped working after upgrading the isCOBOL IDE
- What is the current working directory when I launch my program from the IDE?
- How do I configure the IDE to put logs and other files in separate project folders?
- How do I install new plugins received from Veryant Support?
- Were you aware of the ability of «block selection» in the isCOBOL Editor under Eclipse?
- Toggling comments in the properties file editor
- Is there a way to stop the pop up from coming up when I start to type in code in the program?
- How to create groups of fields on the IDE screen painter, that use the same area on the screen, but visible at different moments?
- How can I work with the java property ‘file.encoding’ inside the isCOBOL IDE?
- Did you know you can compare text files using the isCOBOL IDE?
- How to generate and compile an isCOBOL IDE workspace in background-mode
- How can we avoid having to select the way a program will be «Run As» or «Debug As» in the IDE each time we run it?
- How to create a report with the IDE Report Designer
- How to use existing FD/SL copybooks in the Screen Programs without generating FD/SL from IDE Data View
- How to run batch programs on a Linux server and compile and debug them from the IDE
- Guide to update the isCOBOL development environment
- Working with Remote Projects
- How to view two different consoles in the IDE
| Additional Information |
| Article Number: 156 |
| Created: 2010-11-09 5:58 PM |
| Rating: |
| Article Options |
| Print this Question |
| Email Question to Friend |
| Export to PDF File |
| Export to MS Word |
| Subscribe to Article |
| Search Knowledge Base |
© Veryant — All Rights Reserved
Veryant and isCOBOL are trademarks or registered marks of Veryant in the United States and other countries. All other marks are the property of their respective owners.
Anylogic error when connecting Excel-database: «Event Loop Exception null»
Whenever I want to connect an Excel-database the following error message pops up: Event Loop Exception null It happens when I want to access the Excel-file by «Database — Create or import a table. » and also when I want to access it by an agent population. Does anyone know how to fix this problem?
asked Jan 4, 2022 at 16:39
13 3 3 bronze badges
I got that on my macbook, on windows it doesn’t happen. I think it’s just a bug
Jan 4, 2022 at 16:51
Actually, I use windows. The pevious days it was working properly. But yes, probably it’s a bug
Jan 4, 2022 at 16:58
should not be a problem on Windows. Can you share more details and screenshots. What exactly do you do, what does the xls file look like. have you tried to recreate the issue with a simple file?
Jan 4, 2022 at 17:55
I also once had this problem, closing anylogic and excel, deleting all the database and restarting my computer did fix this problem.
Jan 4, 2022 at 18:04
Unfortunately, it happens on windows. I used this setting several times: 1) emty and new model 2) simplest xls datatable in MS Excel 365 and also MS Excel 2013 with two columns (name and age) and three rows of names and ages. I also closed all models, restated Anylogic (Research License) and the computer, but the problem still occurs.
Устранение ошибок
В этом документе перечислены решения проблем, которые наиболее часто встречались пользователям AnyLogic. Если вы столкнулись с какой-то проблемой или ошибкой, и не нашли ее решения ни в Справке AnyLogic, ни в разделе Часто задаваемые вопросы, то вы можете обратиться за помощью к Службе технической поддержки (воспользовавшись командой Обратиться за помощью. ).
Общие ошибки
Произошла ошибка «No more handles»
Эта ошибка часто происходит при работе с некоторыми конфигурациями аппаратных средств, например, когда вы щелкаете по сложному элементу управления в панели Свойства.
Не существует простого способа решить эту проблему. Мы рекомендуем закрыть все модели, с которыми вы не работаете в данный момент, и перезапустить AnyLogic.
В качестве временного решения вы можете закрыть сообщение об ошибке, а затем щелкнуть по панели Свойства и продолжить работу:

Это поможет вам на время избавиться от ошибки, затем вам придется повторить эти действия.
Произошла ошибка компиляции: Неправильное имя типа агента: слово уже закреплено за исполняющим модулем AnyLogic
Вы создали тип агента с именем, которое уже используется в AnyLogic (например, Map ).
Дважды щелкните мышью по описанию ошибки в панели Ошибки. AnyLogic переключится в поле свойств Имя соответствующего типа агента. Задайте новое имя для типа агента и скомпилируйте модель заново. После этого ошибка должна исчезнуть.
Произошла ошибка «Out Of Memory». Как я могу ее исправить?
Эта ошибка свидетельствует о том, что вашей модели не хватает памяти для хранения данных или для вычислений. Она может произойти как при запуске модели, так и во время ее работы. Зачастую она дополняется уточнением «Java heap space». Такая ошибка не говорит о том, что вы исчерпали ресурсы вашего компьютера, и в большинстве случаев она может быть исправлена.
Наиболее очевидным способом устранения такой ошибки является увеличение объема выделенной Java памяти. По умолчанию объем памяти, выделенной для модели, ограничен 64 мегабайтами, что даже близко не приближается к обычным объемам физической памяти современных компьютеров. Поэтому вы можете легко позволить себе выделить больший объем памяти для вашей модели. Для этого нужно будет перейти к странице свойств Дополнительные вашего эксперимента и ввести необходимое число в поле Максимальный размер памяти.
Другим способом является определение источника потребления памяти в вашей модели и устранение его путем небольшой переработки или оптимизации кода или структуры модели. Ниже мы перечислим наиболее часто встречающиеся причины чрезмерного потребления памяти:
- Большое количество агентов или сложная структура данных внутри агента
Объем памяти, необходимый для работы агентной модели, обычно пропорционален количеству агентов в модели. И естественно, чем сложнее структура агента, тем больше памяти он занимает. Чтобы минимизировать расходуемый на агента объем памяти, вы должны учесть следующее:- если у всех агентов есть параметр с одним и тем же значением, то лучше вынести такой параметр из типа агента на уровень выше, в тип агента, в который вложен массив агентов — в этом случае вместо множества экземпляров параметра будет создан только один
- если возможно, избегайте создания больших структур данных в классе агента
Произошла ошибка «IndexOutOfBoundsException»

Вероятно, вы обращаетесь к несуществующему элементу популяции/коллекции. Эта ошибка, как правило, возникает при вызове таких функций, как get(i), remove(i) , и так далее, когда значение передаваемого аргумента i превосходит размер популяции.
В таких случаях код может выглядеть следующим образом: collection.get(0) . В данном случае вы пытаетесь обратиться к элементу пустой коллекции collection .
Еще один пример — функция remove_people(people(1)) , где удаляется элемент популяции people .
Произошла ошибка при переименовании элемента с заменой ссылок на него
При выполнении переименования с заменой ссылок на заменяемое имя по команде Ctrl + Enter , появилось диалоговое окно, информирующее о возникновении фатальной ошибки:

Не стоит пугаться такой ошибки, это не ошибка AnyLogic или вашей модели. Как вы можете увидеть из приведенного в диалоговом окне описания, «This refactoring cannot be performed correctly due to syntax errors in compilation unit», то есть переименование не было выполнено вследствие того, что в данном элементе (чаще всего — типе агента) есть ошибки компиляции. Это означает, что вы пытались произвести переименование с заменой ссылок на меняемое имя в тот момент, когда в классе были критические ошибки. Эти ошибки сделали класс некомпилируемым, и поэтому AnyLogic не смог произвести переименование и перекомпилировать код класса заново.
Поэтому мы рекомендуем вам вначале скомпилировать модель с помощью команды Построить модель , исправить все критические ошибки, а уже затем произвести переименование с заменой всех ссылок на меняемое имя.
Мне было показано сообщение о том, что срок действия лицензии на Сервис технической поддержки истек
При приобретении AnyLogic вы автоматически получили право на бесплатное использование Сервиса технической поддержки в течение года с момента покупки AnyLogic. В течение этого времени вы могли обращаться с любыми вопросами в службу технической поддержки, а также скачивать и устанавливать обновления AnyLogic. Поэтому если вы приобрели AnyLogic более года назад и не обновляли срок действия лицензии на Сервис технической поддержки, то срок действия лицензии на использование вами Сервиса технической поддержки уже истек, о чем вас и уведомляет данное сообщение.
Если вы хотите продлить срок действия лицензии, чтобы и в дальнейшем иметь возможность работать с последними обновлениями AnyLogic и обращаться за консультациями в службу технической поддержки, вам нужно будет продлить срок действия лицензии на Сервис техподдержки. Для этого, пожалуйста, свяжитесь с нами адресу support@anylogic.com.
Я успешно экспортировал(а) модель в виде отдельного Java приложения, но при попытке запуска созданного .bat-файла ничего не происходит
Все, что я вижу — это лишь следующее сообщение об ошибке: ‘java’ is not recognized as an internal or external command, operable program or batch file .
Simulation Applications (модели, созданные с помощью опции AnyLogic Экспорт -> Отдельное Java приложение) являются Java приложениями и требуют установки Java на той машине, на которой вы хотите запустить ваше приложение. Вы можете скачать дистрибутив Java с веб-сайта Oracle.
В моей модели присутствует стохастика, но все прогоны эксперимента выдают одни и те же результаты
Чтобы прогоны стохастической модели были уникальными, нужно установить случайное начальное число у генератора случайных чисел. В этом случае прогоны модели не смогут быть воспроизведены в силу того, что при каждом новом запуске модели генератор случайных чисел будет инициализироваться другим числом. По умолчанию при создании простого эксперимента ему приписывается фиксированное начальное число, поэтому генератор случайных чисел всегда инициализируется одним и тем же начальным числом, и все запуски модели идентичны.
Задание случайного начального числа генератора случайных чисел более подробно описано здесь.
Результаты прогонов моей модели не являются воспроизводимыми, хотя я и выбрал фиксированное начальное число в свойствах генератора случайных чисел
Вероятно, вы используете в вашей модели функцию random() . Именно она и может быть источником стохастики.
Опция Фиксированное начальное число задает свойства генератора случайных чисел, который используется функциями вероятностных распределений AnyLogic. Полный список этих функций можно найти здесь.
Функция же random() принадлежит классу java.lang.Math и обладает своим собственным генератором случайных чисел. Поэтому при каждом новом прогоне модели эта функция будет возвращать новые случайные числа. И если вы хотите, чтобы результаты прогонов вашей модели были воспроизводимыми, выберите опцию Фиксированное начальное число и используйте только функции вероятностных распределений AnyLogic.
Еще один возможный источник случайности — использование коллекции HashMap . Использование в модели коллекций такого типа может привести к тому, что даже при выбранной опции Фиксированное начальное число генератора случайных чисел, результаты такой модели будут различаться (будут невоспроизводимыми).
Я не могу найти файл журнала ошибок (.log-файл)
Файл журнала ошибок находится в одном из следующих каталогов (в зависимости от вашей операционной системы):
«Users/ /. /Workspace/.metadata/.log»
где имя пользователя — это имя вашего аккаунта в ОС Windows, а название версии AnyLogic — либо AnyLogicPLE , либо AnyLogicProfessional , либо AnyLogic University (в зависимости от того, с какой версией вы работаете).
Если в проводнике Windows не включено отображение расширений файлов, то файл может выглядеть безымянным.
» /. /Workspace/.metadata/.log»
«~/. /Workspace/.metadata/.log»
Для моей библиотеки не создается Javadoc документация
Когда я экспортирую свою библиотеку, создается только .jar-файл. Я не могу увидеть файлы документации Javadoc, хотя и выбираю при экспорте опцию Создать Javadoc.
Причина может быть одной из следующих:
- На вашем компьютере не установлен компонент Javadoc
- Путь к приложению javadoc.exe не прописан в переменных среды Windows. Чтобы прописать его, перейдите в Панель управления|Система|Дополнительные и нажмите на кнопку Переменные среды. Затем выберите переменную Путь, нажмите Редактировать. и добавьте путь к приложению javadoc.exe.
После этого попробуйте сделать экспорт библиотеки еще раз.
Эта Javadoc-документация не будет отображаться помощником подстановки кода для блоков вашей библиотеки — эта возможность пока еще не реализована.
Пропала панель инструментов AnyLogic
Вероятно, это произошло в результате непреднамеренного изменения расположения элементов пользовательского интерфейса AnyLogic.
Если произошла данная или подобная ситуация, когда вы расположили панели AnyLogic неудобным образом, и хотите вернуться к первоначальным настройкам расположения, то вы можете воспользоваться командой Восстановить расположение панелей, доступной из меню Инструменты.
Эта команда восстанавливает принятые по умолчанию настройки расположения панелей, редактора и панелей инструментов (когда панели Проекты и Палитра прикреплены к левому краю окна AnyLogic, панель Свойства — к правому и т.д.), и в том числе и располагает панель инструментов на ее первоначальном месте под меню AnyLogic.
При открытии модели из снэпшота появляется ошибка Stack overflow
Такое может происходить в случаях, когда вы открываете снэпшот модели, в которой есть несколько агентов, ссылающихся на агенты того же или более высокого уровня в пользовательских полях. Например, в значениях параметров или переменных.
Причиной ошибки является ограничение стандартной библиотеки Java, используемой AnyLogic для сериализации классов. Чтобы обойти проблему, отключите сохранение проблемных переменных или параметров в секции Специфические их свойств.
Чтобы значения переменных и параметров корректно сохранялись в снэпшотах, переключитесь на режим нестандартной сериализации. Для этого добавьте следующую строчку в значение свойства Custom Modifiers:
Примечание: Чтобы свойство Custom Modifiers было доступно в секции Специфических свойств элемента, необходимо включить Режим разработчика библиотек на экране Инструменты > Настройки > Разработка.
Библиотека моделирования процессов
Возникла ошибка «java.lang.RuntimeException. Агент не смог покинуть порт»
Эта ошибка не является ошибкой AnyLogic, а свидетельствует скорее о логической ошибке в вашей диаграмме процесса или «узком месте» в моделируемой вами системе. Причина ее в том, что агенты не могут покинуть выходной порт, отмеченный красным кружком на анимированной диаграмме процесса, и войти во входной порт последующего блока.
Некоторые блоки могут выталкивать агентов, не дожидаясь, когда последующие блоки будут готовы их принять. Если агент не может покинуть блок в течение нулевого модельного времени, возникает ошибка выполнения модели. Таким образом, AnyLogic исключает возможность скрытой буферизации или блокирования, поэтому вы всегда будете знать о произошедшем в вашей модели переполнении и сможете найти это «узкое место» модели.
Чтобы решить эту проблему, нужно будет либо добавить блок-буфер (например, Queue) после блока с выделенным портом, либо перейти на протокол потока агентов PULL в блоке, где возникает ошибка. Чтобы переключиться с протокола PUSH на протокол PULL, в свойствах блока откройте секцию Специфические и отключите опцию Разрешить вытеснение.
Возникла ошибка «Агент не обладает ресурсом, который пытается присоединить, или же они находятся в разных точках сети»
Вы пытаетесь присоединить ресурс(ы) к агенту с помощью блока ResourceAttach, но агент и ресурс находятся в этот момент в разных точках сети. Поэтому вам вначале нужно сделать так, чтобы они находились в одном узле сети (переместив либо агента, либо ресурс), а уже потом соединять их вместе.
Либо же агент предварительно не занял этот ресурс, а это условие является обязательным при соединении агента с ресурсом — прежде, чем соединять агента с ресурсом, нужно его занять с помощью блока Seize.
Я пытался динамически соединить порты блоков библиотеки, но ничего не произошло
Если вы динамически измените соединения портов блоков библиотеки с помощью методов connect()/disconnect() или map()/unmap() , то конечные порты не узнают о новом соединении и будут продолжать функционировать согласно устаревшей информации о топологии соединений, установленной при запуске модели. Чтобы обновить информацию о соединениях портов, нужно вызвать метод refreshConnections() у тех портов, которые были динамически соединены или отсоединены от других портов. Например, если программно был соединен порт out блока myService , то после этого вам нужно будет выполнить следующий код:
Эта демонстрационная модель показывает пример динамического соединения блоков библиотеки. Она содержит два отдельных участка диаграммы процесса, которые вы можете соединить щелчком по расположенной между ними кнопке. Чтобы понять реализацию подхода, вы можете посмотреть на поле Действие этой кнопки.
Блок Unbatch не извлекает агентов из поступающих агентов-партий
В моей диаграмме процесса есть комбинация блоков Batch — Unbatch, но блок Unbatch не извлекает агентов из поступающих на его вход агентов-партий, собранных ранее блоком Batch.
Чтобы разрешить блоку Unbatch извлекать агентов из поступающих на его вход агентов-партий, вы должны сбросить флажок Постоянная партия на странице свойств предшествующего блока Batch.
Пешеходная библиотека
Если я использую нестандартные фигуры больших размеров для анимации пешеходов, то пешеходы двигаются поверх друг друга (их фигуры накладываются друг на друга во время анимации). Правильное ли это поведение?
Пешеходная библиотека была разработана для моделирования пешеходных потоков. Предполагалось, что пользователи будут использовать настоящие размеры пешеходов и моделируемых пространств. Разумеется, вы можете рисовать большие фигуры и использовать их для анимации пешеходов, но диаметр в 20 метров, конечно, не отражает реальность. Если вы хотите увеличить размер ваших пешеходов, мы рекомендуем увеличить масштаб анимации.
Агенты
Мой агент получает сообщения от других агентов, но заданный в диаграмме состояний переход в другое состояние при получении сообщения не срабатывает.
Чтобы получать сообщения в диаграмме состояний необходимо пересылать входящие сообщения этой диаграмме.
Откройте диаграмму того типа агента, который получает сообщения. Зажмите правую кнопку мыши и перетащите диаграмму вниз в графическом редакторе. Вы увидите элемент connections:

Щелкните по этому элементу. Откройте секцию Взаимодействие в панели Свойства и поставьте флажок возле соответствующей диаграммы состояний в таблице Перенаправлять сообщение в.

При запуске агентной модели возникла ошибка «Ошибка при выполнении дискретного события: d != com.anylogic.engine.MessageDeliveryType»
В данном случае вы отправляете сообщение другому агенту, используя функцию, которая не поддерживается в пространстве, где находятся ваши агенты. Например, вы используете функцию sendToRandomNeighbor() . Эта функция доступна только в том случае, если агент, который ее вызывает, находится в дискретном пространстве. Но в вашей модели агенты находятся в пространстве другого типа (непрерывном или ГИС-пространстве), и при вызове этой функции появляется данная ошибка.
Подробное описание способов взаимодействия агентов и доставки сообщений вы найдете в статье Взаимодействие агентов справки AnyLogic.
Диаграммы состояний
В моей модели возникли ошибки «Элемент не достижим. Соедините его с диаграммой состояний, объявленной с помощью Начала диаграммы состояний»
Каждый элемент диаграммы состояний (состояние, переход и т.д.) должен принадлежать какой-то диаграмме состояний, т.e. переход должен соединять какие-то состояния или псевдо-состояния, а состояние должно быть соединено с диаграммой состояний. В тех случаях, когда конечные точки ваших переходов будут просто «висеть в воздухе» или же состояния не будут соединены с другими элементами корректно объявленной диаграммы состояний, возникнут упомянутые выше ошибки.
Поэтому первым делом вам нужно будет проверить, все ли элементы соединены с диаграммой состояний. Сделайте двойной щелчок по ошибке в панели Ошибки. Вы увидите, что некорректно нарисованный элемент будет выделен в графическом редакторе.

- Если это состояние, то сделайте его частью корректно заданной диаграммы состояний.
- Если это переход, то проверьте начальную и конечную точку на предмет соединения с состояниями. Правильно соединенные точки должны при выделении перехода подсвечиваться зелеными точками. Если какая-то точка выделена белым кружком, то это означает, что она не лежит на границе состояния, и для того, чтобы установить корректное соединение, вы должны передвинуть ее туда самостоятельно. На приведенном ниже рисунке вы можете видеть, что конечная точка перехода успешно соединена с нижним состоянием, в то время, как начальная точка не лежит на границе верхнего состояния и для устранения ошибки должна быть туда помещена.
Возможно, вы перепутали индикатор начального состояния с началом диаграммы состояний, как показано на приведенном ниже рисунке:

Как вы можете видеть, пользователь использовал здесь указатель начального состояния вместо начала диаграммы состояний. В таком случае нужно удалить указатель и заменить его элементом Начало диаграммы состояний, как показано на рисунке ниже:

Диаграммы и элементы сбора данных
Диаграмма во время моделирования остается пустой, данные на нее не добавляются
Причина может быть одной из следующих:
- Новые значения не добавляются на вашу диаграмму, потому что у нее выбрана опция Не обновлять автоматически. В этом случае перейдите к свойствам диаграммы и выберите опцию Обновлять автоматически.
- Отображаемый на диаграмме набор данных не обновляется новыми значениями — у него выбрана опция Не обновлять автоматически. В этом случае перейдите к свойствам набора данных и выберите опцию Обновлять автоматически.
Мой набор данных хранит дублированные значения
Причина этого, скорее всего, в том, что ваш набор данных обновляется несколько раз в одни и те же моменты времени. Дело в том, что в AnyLogic обновление набора данных новыми значениями задается сразу в двух разных местах:
- В свойствах самого набора данных
- В свойствах диаграмм, отображающих значения этого набора данных
Скорее всего, у вас есть диаграмма, отображающая значения этого набора данных (а может, и несколько таких диаграмм или графиков). И опция автоматического обновления выбрана как у диаграммы, так и у самого набора данных. Чтобы решить эту проблему, можно, например, перейти к свойствам диаграммы и выбрать опцию Не обновлять автоматически.
На гистограмме не отображается функция распределения, хотя флажок «Отображать ф-ю распределения» у нее выбран
Причина того, что на гистограмме не отображается функция распределения, состоит в том, что эта функция не вычисляется соответствующим элементом Данные гистограммы, значения которого отображаются на этой гистограмме.
Перейдите на страницу свойств этого элемента сбора данных и выберите там опцию Считать CDF.
Системная динамика
Возникла ошибка: Метод copyFrom(HyperArray) в типе HyperArray неприменим для аргументов (int)
В вашей модели есть переменная (например, накопитель), объявленная массивом системной динамики. В качестве Начального значения у этого массива задана скалярная величина, а должен быть задан вектор значений. Каждое значение в векторе будет задавать значение соответствующего элемента массива. Начальное значение массива проще будет задать с помощью специального редактора (это описано в данной статье).
Базы данных
Как улучшить работу модели со включенным журналом выполнения модели?
Если выполнение эксперимента с включенным журналом выполнения модели занимает намного больше времени, вы можете отключить сбор данных для некоторых ненужных вам журналов.
Как отключить сбор данных для журнала
- После того, как вы завершили хотя бы один прогон модели и собрали информацию для журналов, разверните ветку База данных в панели Проекты.
- Разверните ветку элемента Журнал. Вы увидите в ней список журналов.
- В дереве проектов выберите ненужный вам журнал и выберите опцию Мне не нужен этот лог в его свойствах.
Как мы можем улучшить эту статью?
- Общие ошибки
- Библиотека моделирования процессов
- Пешеходная библиотека
- Агенты
- Диаграммы состояний
- Диаграммы и элементы сбора данных
- Системная динамика
- Базы данных