В ColdFusion, там способ определить, на каком сервере код работает?

Похоже, что некоторые объяснения в порядке. Этот код

typedef struct {
    //...
} nrf_twi_mngr_transfer_t;

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

struct nrf_twi_mngr_transfer_struct {
    //...
};

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

В результате, учитывая два приведенных выше определения, вы должны определить свои массивы по-разному:

nrf_twi_mngr_transfer_t arr[10]; // if using typedef
struct nrf_twi_mngr_transfer_struct arr2[10]; // if using struct with no typedef

И на случай, если вам интересно,

struct {
    //...
} nrf_twi_mngr_transfer_obj;

Определяет объект анонимного типа структуры.

16
задан Patrick McElhaney 6 May 2009 в 18:43
поделиться

4 ответа

Это может помочь вам в дальнейшем ...

<cfscript>
machineName = createObject("java", "java.net.InetAddress").localhost.getCanonicalHostName();
hostaddress = createObject("java", "java.net.InetAddress").localhost.getHostAddress();
</cfscript>
<cfdump var="#machineName#"><br />
<cfdump var="#hostaddress#"><br />
28
ответ дан 30 November 2019 в 16:42
поделиться

Вы можете использовать серверные переменные , например

server.coldfusion.appserver 
server.coldfusion.expiration    
server.coldfusion.productlevel
server.coldfusion.productname   
server.coldfusion.productversion
server.coldfusion.rootdir   
server.coldfusion.serialnumber  
server.coldfusion.supportedlocales
server.os.additionalinformation 
server.os.arch  
server.os.buildnumber   
server.os.name  
server.os.version

, чтобы настроить ваш код для конкретных платформ. Выполните , чтобы узнать, что применимо к вашей версии Coldfusion.

Вы можете получить имя хоста с помощью вызова Java:

<cfscript>
machineName = createObject("java", "java.net.InetAddress").localhost.getHostName();
instanceName = createObject("java", "jrunx.kernel.JRun").getServerName();
</cfscript>
9
ответ дан 30 November 2019 в 16:42
поделиться

Я полагаю, что CGI.SERVER_NAME даст вам то, что вы хотите.

Редактировать за комментарий: Возможно, вы сможете сделать что-то более «низкое» ...

<cfset inet = CreateObject("java", "java.net.InetAddress")>  
<cfdump var = "#inet.getLocalhost().gethostname()#">  

(здесь нет сервера CF на работе, поэтому я не могу это проверить).

2
ответ дан 30 November 2019 в 16:42
поделиться

Еще одно место для поиска информации о выполняющемся процессе JRun - это следующий пример:

<cfset oErrorJRun = createObject("java","jrunx.kernel.JRun")/>
<cfset strServerName = oErrorJRun.ServerName />

Это даст вам имя экземпляра JRun, в котором выполняется код. Мы сталкивались со случаями, когда в нашей кластерной среде IIS на одном узле регистрировал попадание страницы, но JRun на другом узле обрабатывал запрос. Иногда JRun одного узла перестает отвечать, и нам нужно перезапустить некоторые службы, чтобы вернуть трафик на этот узел. Я использую приведенный выше код в моем плагине обработчика ошибок, чтобы вставить имя сервера в электронное письмо, которое я отправляю администраторам, и включить его в имя файла, в котором я пишу отладочную информацию.

2
ответ дан 30 November 2019 в 16:42
поделиться
Другие вопросы по тегам:

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