Источники данных ColdFusion 9 по умолчанию для предприятия - PullRequest
0 голосов
/ 09 августа 2011

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

<cfset factory = createObject("java", "coldfusion.server.ServiceFactory")>
<cfset datasources = factory.getDataSourceService().getDatasources()>
<cfloop collection="#datasources#" item="dsnName">
        #dsnName#<br>
 </cfloop>

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 15 декабря 2011

Это должно помочь вам определить, в каком экземпляре вы находитесь:

<cfscript>
loc = {};
loc.machineName = createObject('java','java.net.InetAddress').localhost.getCanonicalHostName();
loc.machineName2 = createObject('java','java.net.InetAddress').localhost.getHostName();
loc.hostAddress = createObject('java','java.net.InetAddress').localhost.getHostAddress();
loc.instanceName = createObject('java','jrunx.kernel.JRun').getServerName();
writeDump( var: loc );
</cfscript>

Если у вас возникли проблемы с получением источников данных, вам может понадобиться сначала пройти аутентификацию с паролем администратора cf, например:

createObject('component','CFIDE.adminapi.administrator').login('your-password');

В службе источника данных есть метод datasourceExists (), verifyDatasource () и getDatasource (), который может оказаться полезным:

<cfscript>
loc = {};
loc.dss = createObject('java','coldfusion.server.ServiceFactory').getDataSourceService();
loc.datasources = loc.dss.getDatasources();
loc.exists = loc.dss.datasourceExists('your-dsn');
loc.verified = loc.dss.verifyDatasource('your-dsn');
loc.datasource = loc.dss.getDatasource('your-dsn');
writeDump( var: loc );
</cfscript>
...