Время ожидания ColdFusion WSDL при первом вызове - PullRequest
3 голосов
/ 22 января 2009

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

Есть ли способ сохранить эту службу активной на моем конце или на стороне поставщика веб-услуг, который также является приложением CF (отдельное подразделение нашей компании)? Устранить неполадки немного сложно, потому что это происходит только один раз после длительного периода. И я не хочу настраивать отдельный процесс, чтобы просто пинговать этот сервис.

Ответы [ 3 ]

4 голосов
/ 23 января 2009

Если сервер регулярно перезагружается между вызовами шаблона, убедитесь, что в администраторе включена настройка «сохранять файлы классов» (в режиме кэширования), чтобы предотвратить перекомпиляцию шаблона после каждой перезагрузки сервера.

1 голос
/ 02 февраля 2009

Вы можете попробовать использовать следующий метод на стороне клиента веб-сервиса. CF7 + получил встроенный Java-сервис coldfusion.server.ServiceFactory.

Код может выглядеть как

<cftry>
    <!--- here goes attempt to invoke service method, maybe dummy "ping" --->
<cfcatch type="any">
    <!--- trying to refresh WSDL --->
    <cfset createObject("java","coldfusion.server.ServiceFactory").XmlRpcService.refreshWebService(ServiceURL) />
</cfcatch>
</cftry>
<!--- usual code --->

Надеюсь, это поможет.

Примечание: эта фабрика содержит много полезных методов, но практически не содержит документации по Интернету. Хорошей идеей было бы сбросить его и немного изучить.

1 голос
/ 22 января 2009

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

...