Когда фиксировать изменения?

Мой собственный опыт с этой проблемой заключается в следующем. Большинство связанных с весной веб-страниц и книг, по-видимому, предполагают, что наиболее подходящий синтаксис следующий.

    <mvc:resources mapping="/resources/**" location="/resources/" />

Вышеупомянутый синтаксис предполагает, что вы можете разместить свои статические ресурсы (CSS, JavaScript, изображения) в папка с именем «resources» в корне вашего приложения, то есть /webapp/resources/.

Однако, по моему опыту (я использую Eclipse и плагин Tomcat), единственный подход, который работает, - это если вы поместите папку ресурсов внутри WEB_INF (или META-INF). Итак, синтаксис, который я рекомендую, следующий:

    <mvc:resources mapping="/resources/**" location="/WEB-INF/resources/" />

В вашем JSP (или аналогичном) ссылайтесь на ресурс следующим образом.

<script type="text/javascript"
        src="resources/my-javascript.js">
</script>

Не стоит забывать, что весь вопрос возник только потому, что я хотел, чтобы мой диспетчер диспетчера весны (фронт-контроллер) перехватил все, все динамическое. Итак, у меня есть следующее в моем web.xml.

<servlet>
    <servlet-name>front-controller</servlet-name>
    <servlet-class>
                org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
    <!-- spring automatically discovers /WEB-INF/<servlet-name>-servlet.xml -->
</servlet>

<servlet-mapping>
    <servlet-name>front-controller</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

Наконец, поскольку я использую текущие лучшие практики, у меня есть следующее в моем сервлет-сервлете xml (см. Выше).

<mvc:annotation-driven/>

И у меня есть следующее в моей фактической реализации контроллера, чтобы убедиться, что у меня есть метод по умолчанию для обработки всех входящих запросов.

@RequestMapping("/")

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

5
задан wolφi 6 June 2018 в 08:00
поделиться

6 ответов

Фиксация приводит к Oracle, пишущий материал в диск - т.е. в файле журнала отката так, чтобы независимо от того, что фиксировавшая транзакция сделала, может быть восстанавливаемым в случае сбоя питания, и т.д. Запись в файле медленнее, чем запись в памяти, таким образом, фиксация будет медленнее, если выполнено для многих операций подряд скорее затем для ряда объединенных обновлений.

В Oracle 10 г там являются асинхронной фиксацией, которая делает ее намного быстрее, но менее надежной: https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-6158695.html

PS я знаю наверняка, что, в сценарии видел в определенном приложении, изменяя количество объединенных обновлений от 5K до 50K, делает его быстрее порядком величины (в 10 раз быстрее).

3
ответ дан 14 December 2019 в 19:31
поделиться

А также уменьшая частоту фиксации, необходимо также рассмотреть работающие массовые обновления вместо отдельных.

1
ответ дан 14 December 2019 в 19:31
поделиться

Сокращение частоты фиксаций, конечно, ускорит вещи, однако поскольку Вы читаете и пишете в эту таблицу часто существует потенциал для блокировок. Только можно определить вероятность тех же данных, обновляемых одновременно. Если шанс этого является низким, фиксируйте каждые 50 строк и контролируйте ситуацию. Метод проб и ошибок я боюсь :-)

1
ответ дан 14 December 2019 в 19:31
поделиться

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

0
ответ дан 14 December 2019 в 19:31
поделиться

@CodeSlave на Ваши Ваши вопросы отвечает @stevechol, если я удаляю ВСЕ возрастающие фиксации, будет блокировками. Я предполагаю, не приходит ли ничто лучше, я буду следовать, его совет выбирают случайное число, контролируют загрузку и корректируются соответственно. При применении @diciu twaks.

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

0
ответ дан 14 December 2019 в 19:31
поделиться

Быстрее/Медленнее?

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

Почему это помогло бы?

Очевидно, меньше операций фиксации, который в свою очередь означает меньше записей на диск и т.д.

И прямые ответы DBA?

Если это было легко, Вам не будет нужен тот.

0
ответ дан 14 December 2019 в 19:31
поделиться
Другие вопросы по тегам:

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