Application.cf c переменные и память в области приложения - PullRequest
0 голосов
/ 30 января 2020

У меня была проблема с приложением в coldfusion 9 и application.cf c. В методе onRequestStart были переменные с примером области приложения:

<cffunction name = "onRequestStart">
    <cfset application.URL_Images = 
    '<img src = "http: // # server_name #: # server_port # / aseng / images / logo1.jpg">'>
</cffunction>

Поскольку у меня есть много людей, обращающихся к приложению, сервер дал тайм-аут, и я увидел в Мониторе, что приложение области потребляло много memory.

Вопрос в том, занимают ли переменные области приложения в Application.cf c больше памяти, чем в Application.cfm?

В Application.cfm серверу не удалось взломать sh.

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

Как я могу установить эти переменные без использования памяти на сервере? Чтобы обойти эту проблему, я возвращался к Application.cfm, пока не убедился, что Application.cf c создан правильно.

Спасибо

1 Ответ

0 голосов
/ 31 января 2020

Переменные области приложения в Application.cf c занимают больше памяти, чем в Application.cfm

Ответ: Нет. Совсем нет.

Возможно, вы устанавливаете в область действия application то, чего не должно быть. Этот код говорит, что для всех пользователей, для каждого запроса, переопределите переменную уровня приложения. Похоже, что это значение должно быть переменной уровня request, поскольку оно изменяется в зависимости от пользователя и его настроек.

  • Пользователь 1 запускает запрос и задает значение application.URL_Images.
  • Пользователь 2 запускает запрос и устанавливает значение application.URL_Images.
  • Пользователь 1 завершает их запрос и читает значение application.URL_Images, которое теперь было изменено.
  • Пользователь 2 выполняет свой запрос, и все в порядке.
  • Пользователь 1 задается вопросом, почему он видит сообщение go.

Это может быть просто так что загрузка вашего приложения достигает текущих лимитов ресурсов. Странно, что он действует странно только с cfc, а не с cfm.

  • Проверьте версию JDK и убедитесь, что она последняя из поддерживаемых CF 9
  • Убедитесь, что у вас достаточно памяти, выделенной для экземпляров приложения.

Наконец, рассмотрим, как вы структурировали Applicaiton.cfc. Там может быть что-то еще, перегружающее область действия application, основанную на триггерах функции CFC, которая работает в другом состоянии в CFM. Я хотел бы изучить больше того, что еще находится в области приложения, и убедиться, что там есть, когда оно загружается и нужно ли его там «кэшировать».

...