Systemantics: Как Системная Работа и Особенно Как Они Сбой . Получите его, использовал дешевый. Но Вы не могли бы получить юмор, пока Вы не работали над несколькими неудавшимися проектами.
красота книги является годом авторского права.
, Вероятно, самый глубокий "закон" на дом представил в книге:
Фундаментальная Теорема Вида отказа (F.F.T).: Сложные системы обычно работают в виде отказа.
идея, являющаяся, это там приводит к сбою части в любой данной части программного обеспечения, которые маскируются отказами в других частях или проверками в других частях. Посмотрите реальный пример в машина излучения Therac-25 , чьи дефекты программного обеспечения были замаскированы аппаратными средствами failsafes. Когда аппаратные средства failsafes были удалены, состояние состязания программного обеспечения, которое пошло необнаруженное все те годы, привело к машине, уничтожающей 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 каждый раз, когда вы вносите изменения, но значение кажется довольно статичным, так что это не должно быть проблемой.
Используя apache, вы могли. В конфигурации apache (httpd.conf) или на вашем виртуальном хосте, если у вас загружен модуль Env, вы можете сделать это:
SetEnv APP_ENVIRONMENT DEVELOPMENT
Затем из ColdFusion:
#cgi['APP_ENVIRONMENT']#
Если вы сбросите область действия CGI, значение не будет отображаться, но оно будет быть там, если вы его выведете.
Моя первая мысль при чтении вопроса заключалась в том, чтобы установить переменную SERVER:
Но тогда проблема в том, где это установить?
В CF9 будет onServerStart ( ) для такого рода вещей.