Возможное состояние гонки при создании Struts в ColdFusion

я видел периодические ошибки в нескольких системах, которые ямы работали над тем, чтобы использовать ту же методологию (не тот же код), что привело меня к мысли, что проблема может быть связана с созданием и использованием структур в одном запросе. Я'мне интересно, если этотам возможносостояние гонки?

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

В начале запроса код ищет записи базы данных, связанные с рассматриваемым элементом. Эти записи представляют изображения для продукта (ов). Эти записи возвращаются в одномCFQuery вызов (или, точнее, вызов функции, которая возвращает результатыCFQuery вызов, сформированный в структуру, содержащую различную информацию).

Затем код перебирает предоставленную структуру изображения и добавляет различную информацию в локальную структуру. Позже в запросе мы используем данные в структуре для отображения изображений в нашем<img> теги. Мы также заполняем<img> пометить сdata- атрибуты для использования с JavaScript.

В случае, если какое-либо конкретное изображение не было правильно возвращено запросом - обычно из-за отсутствия физического файла - мы используем универсальное изображение-заполнитель. Это делается путем помещения создания структуры внутриtry/catch блок.

Важно отметить:это работает.

Какие'однако происходит то, чтоочень периодическипри обращении к узлу в структуре мыПосле создания мы обнаруживаем, что его не существует, и CF выдает ошибку - это происходит, может быть, в 1% случаев, и при повторной загрузке той же страницы все будет отлично работать.

У нас была такая же проблема на нескольких системах, на нескольких серверах, в разных версиях ColdFusion (8 & 10, чтобы быть конкретным) и использование совершенно другого кода для достижения аналогичных результатов. Первая система, на которой я видел эту проблему, фактически использоваласьFileExists чтобы проверить, доступен ли файл образа, и, таким образом, я подумал, что проблема, вероятно, была вызвана узким местом файловой системы - я пытался обойти это во многих случаях и в конечном итоге полностью исключил его в новой системе - но проблема сохраняется.

Единственное, о чем я могу думать, это то, что при создании структуры и последующем использовании этой структуры в том же запросеs вероятность возникновения состояния гонки; посредством чего я ссылаюсь на узел в структуре перед нимЗакончено быть созданным. Я'Я не использую потоки здесь, поэтому я могуна самом деле не вижу, как этовозможно ... ям из других идей.

Некоторый код ниже, чтобы показать, что яЯ делаю, но, учитывая, что та же проблема возникает в совершенно разных системах, я думаю, чтоs методология, а не код, который имеет проблему.







    
        
        
            
        
                            
    
        
        
            
        
                            
    
        
        
            
        
                            

    <img class="altProdImgcfif i EQ 'image_03' endImage/cfif" src="#Local['ImageURL_' & i & '_Small']#" image="#i#" alt="" data-imgsmall="#Local['ImageURL_' & i & '_Small']#" data-imgmed="#Local['ImageURL_' & i & '_Med']#" data-imglarge="#Local['ImageURL_' & i & '_Large']#" data-imgnum="#i#" data-pid="#Arguments.pid#">

Ошибка возникает в<img> тег, когда ссылается на узел, созданный в предыдущем коде - что-то вроде:

Элемент ImageURL_image_02_Large не определен в Java-объекте типа класса coldfusion.runtime.LocalScope.

Но только очень редко ... Яперезагрузить и этоЯ буду отлично работать каждый раз.

Итак ... извините за эпическую длину вопроса, но кто-нибудь может увидеть, как это могло произойти?

Ответы на вопрос(1)

Ваш ответ на вопрос