Как установить переменную всего сервера в ColdFusion

Systemantics: Как Системная Работа и Особенно Как Они Сбой . Получите его, использовал дешевый. Но Вы не могли бы получить юмор, пока Вы не работали над несколькими неудавшимися проектами.

красота книги является годом авторского права.

, Вероятно, самый глубокий "закон" на дом представил в книге:

Фундаментальная Теорема Вида отказа (F.F.T).: Сложные системы обычно работают в виде отказа.

идея, являющаяся, это там приводит к сбою части в любой данной части программного обеспечения, которые маскируются отказами в других частях или проверками в других частях. Посмотрите реальный пример в машина излучения Therac-25 , чьи дефекты программного обеспечения были замаскированы аппаратными средствами failsafes. Когда аппаратные средства failsafes были удалены, состояние состязания программного обеспечения, которое пошло необнаруженное все те годы, привело к машине, уничтожающей 3 человек.

6
задан Fish Below the Ice 4 August 2014 в 15:15
поделиться

3 ответа

Проще всего установить переменную среды ОС (на системном уровне или для пользователя, под которым работает ColdFusion) и перезапустить службу. Затем переменная становится доступной в области CGI:

<cfset EnvName = CGI.COLDFUSION_ENVIRONMENT>
<cfoutput>#EnvName#</cfoutput>

Вы также можете использовать системные свойства Java. В администраторе ColdFusion перейдите в «Настройки сервера / Java и JVM» и добавьте что-то вроде этого в «Аргументы JVM»:

-Dcom.mycompany.environment=development

Затем вы можете запросить это значение в ColdFusion:

<cfset System  = CreateObject("java", "java.lang.System")>
<cfset EnvName = System.getProperty("com.mycompany.environment")>
<cfoutput>#EnvName#</cfoutput>

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

10
ответ дан 8 December 2019 в 18:39
поделиться

Используя apache, вы могли. В конфигурации apache (httpd.conf) или на вашем виртуальном хосте, если у вас загружен модуль Env, вы можете сделать это:

SetEnv APP_ENVIRONMENT DEVELOPMENT

Затем из ColdFusion:

#cgi['APP_ENVIRONMENT']#

Если вы сбросите область действия CGI, значение не будет отображаться, но оно будет быть там, если вы его выведете.

3
ответ дан 8 December 2019 в 18:39
поделиться

Моя первая мысль при чтении вопроса заключалась в том, чтобы установить переменную SERVER:

Но тогда проблема в том, где это установить?

В CF9 будет onServerStart ( ) для такого рода вещей.

0
ответ дан 8 December 2019 в 18:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: