6
votes

Obtenir le nom de l'instance à Coldfusion 10

Comment puis-je obtenir le nom de l'instance ColdFusion ("CFusion" par exemple) dans ColdFusion 10 ?

Pré-10 Vous pouvez le faire en utilisant l'objet Jrun Java: xxx

mais depuis que Jrun a été remplacé par Tomcat, j'ai besoin de trouver une nouvelle façon d'obtenir le nom d'instance.

Je sais que cela peut être fait à l'aide de l'administrateur API mais cela ne fonctionne pas pour moi à cause de problèmes de sécurité.


3 commentaires

De quoi en avez-vous besoin?


Déterminer quelle instance servent votre demande. Nous avons plusieurs instances servant la même application derrière un équilibreur de charge. Je veux savoir quelle instance CF gère ma demande car elle peut instance01, instance02 ou instance03.


Jan, je suis curieux de savoir pourquoi vous dites qu'il existe des "problèmes de sécurité" qui vous permettent d'utiliser l'API administrateur pour résoudre ce problème, car Marcin a également montré. C'est la solution prête pour CF10, car comme vous dites que vous ne pouvez plus compter sur l'objet JRun. Je pouvais comprendre si vous pensiez que toutes les méthodes API AMIN nécessitent de vous connecter (avec la méthode de connexion de l'administrateur.cfc dans l'API administrateur), mais comme on peut le voir dans l'exemple de Marcin, ce n'est pas l'une de ces méthodes. Cela devrait fonctionner pour n'importe qui. Je suis vraiment sincèrement curieux ce que cela ferait «ne fonctionnerait pas» pour vous.


3 Réponses :


-5
votes

Cela devrait fonctionner:

<cfset inetAddressObj = createObject("java", "java.net.InetAddress") />
<cfset machineName = inetAddressObj.localhost.getCanonicalHostName() />


2 commentaires

Hélas, qui renvoie le nom de la machine, mais j'ai plusieurs instances exécutées sur la machine même . J'ai besoin du nom de l'instance CF. Mais merci d'avoir répondu!


Ce n'est pas le nom "instance" - et ce code fonctionne dans n'importe quelle version pour obtenir le nom "amical" de la machine.



5
votes

Regardez dans la portée du serveur. Il y a une valeur chez Server.Coldfusion.rootdir. Sur CF10 Ceci est le répertoire de l'instance. Donc, pour l'instance "CFusion" sur mon Mac, par exemple, cette valeur est / Applications / ColdFusion10 / CFusion. Vous pouvez attraper le dernier annuaire NAMD sur le chemin et c'est le nom de l'instance. Pas exactement élégant, mais pourrait vous obtenir ce dont vous avez besoin.


4 commentaires

Cela semble fonctionner. Ce n'est pas le dernier dir de la configuration multi-serveurs, mais il est là: c: \ cf \ serveurs \ instance01 \ cfusion-oreille \ cfusion-guerre \ web-inf \ cfu sion


intéressant. pourrait être une chose mac vs pc


Mon configuration autonome locale est la suivante: c: \ coldfusion10 \ cfusion et c: \ coldfusion10 \ secondinstance il semble donc être autonome vs. multi- chose serveur.


Eh bien, cf 10 n'a pas la même configuration "MultiServer" que cf9 et précédente avaient. Il a l'installation "serveur" et l'installation de guerre / oreille. Votre licence détermine si vous pouvez configurer plusieurs instances lorsqu'il est installé à l'aide de la méthode d'installation de «serveur». Heureux que vous ayez eu le travail cependant.



5
votes

Il existe un composant "Runtime" dans l'API d'administration en CF10. Vous pouvez obtenir le nom de l'instance avec cet extrait de code:

var runtime = createObject("component", "CFIDE.adminapi.runtime");
instance = runtime.getInstanceName();


0 commentaires