Как избежать неожиданных и внезапных закрытий Java-приложений, с их корректным сохранением?

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

И так, что же необходимо делать, для того чтобы был выполнен завершающий код в момент прерывания работы с приложением? Например, используя Swing, вы пишите тестовый редактор, при начале работы, ваше приложение создает временный файл. Данный временный файл должен быть удалён, после того как пользователь закроет ваше приложение. До того как завершиться работа, особенно если вы пишите приложения, которые состоят из большого количества сервлетов, вам необходимо вызвать метод destroy, при чем для каждого из вами загруженных сервлетов.

Если пользователь завершил работу с приложением в некорректной форме, а именно так он всегда и поступает, тогда виртуальная машина Java завершает свою работу, но к счастью, прежде чем выгрузить себя, виртуальная машина действует следующим путём:

1. Машиной будут запущены все виртуальные shutdown-ловушки, которые вы установили, если таковые имеются.
2. Во втором случаи машина вызывает все fina-lize-операции (конечно же, если есть подходящие).

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

- необходимо описать класс, который наследует класс Thread;
- в новом классе следует осуществить метод run. Данный метод содержит код, который и будет влиять на дальнейшее завершение программы не зависимо от того, на сколько корректно было выполнено завершение работы с приложением;
- далее свяжите класс shutdown-ловушки непосредственно с вашим Java-приложением;
- далее регистрируем ловушку по средствам метода addShutdownHook.

Октябрь 15, 2008 — Рубрика: Java
Метки: , ,

Создание подключений к базе данных в ADO.NET

Первое, что нам необходимо при работе с базой данных — это создание подключения к ней. При этом необходимо указать где она находится, на какой машине в сети, авторизироваться, указать конкретную базу данных в СУБД. При этом в зависимостии от СУБД, меняются требования к определению этих параметров. Ниже мы постараемся рассмотреть примеры подключения к «большой», рассчитанной на большое количество активных сессий (одновременных подключений) Microsoft SQL Server и «маленькой» и простенькой базой Access.

Октябрь 11, 2008 — Рубрика: ASP
Метки: , ,