Languages
 
 
 
 
Навигация
 
 

Потеря соединения с базой. Hibernate broken pipe.


Используя Hibernate, уже несколько раз сталкивался с проблемой потери соединения с базой данных, после достаточно долгого интервала неактивности. И каждый раз приходилось вспоминать, как же ж оно решается. Будем считать эту заметку памяткой для себя, ну и для тех, кто ее сможет найти в бескрайних просторах Internet.


Hibernate. Count запросы без HQL


Мне нравится пользоваться объектом Criteria для составления запросов. Очень удобно и наглядно, гораздо лучше чем писать запрос в виде HQL. Приведу пример:

  @SuppressWarnings("unchecked")
  public List<LogAdd> findAddLogs(Long minLogID) {
    Criteria criteria = session.createCriteria(LogAdd.class);
    criteria.add(Restrictions.gt("id", minLogID));
    criteria.addOrder(Order.asc("date"));
    return criteria.list();
  }

До недавнего времени приходилось использовать HQL только для запросов типа "count". Так как просто взять размер массива, означает достать все объекты из базы и только потом считать сколько их, а это нас явно не устраивает.


Установка Apache Tomcat 5.5 на Debian 4 (Etch) Linux


Если Вам быстро необходимо установить и настроить Apache Tomcat, возможно моя статья будет полезна.

1) Для начала необходимо установить Sun JDK 5. Взять его можно в репозитории для нестабильного программного обеспечения:

Добавим в файл репозиториев /etc/apt/sources.list следующие строки (если это еще не сделано):


Имя процесса java приложения в Mac OS X


Вот столкнулся с проблемой, что некоторые java приложения, запущенные в системе, имеют одно и то же имя процесса. Обычно для запуска java приложений под Mac OS X пользуются утилита JavaApplicationStub. И как результат, в Activity Monitor'e висит несколько процессов с именем JavaApplicationStub.

Чтоб наглядно показать проблему, я сделал HelloWorld приложение, и с удивлением обнаружил, что для него имя процесса отображается корректно.


Создание нового проекта с помощью maven2. Часть вторая (мастер)


Как и было предложено в прошлой моей публикации, скрипт создания maven приложения был улучшен. Теперь он выполнен в виде мастера создания приложения, что еще более облегчает процесс.

Ответив всего на пару вопросов и выбрав тип будущего приложения, вы получите готовый к открытию в Eclipse IDE проект.


Меню java приложения в трее операционной системы.


  Tagged

 Появилась задача сделать системное меню для java приложения. Посмотрев в данном направлении, я нашел несколько вариантов реализации:

  • java 6
  • java desktop components integraion library (jdic)
  • eclipse swt

 К предлагаемым библиотекам у меня было всего одно требование – поддержка основных операционных систем (win, linux и mac os). Java 6 отпала из за её отсутствия в системе от apple. Jdic тоже не умеет работать с меню в mac os. Короче говоря, остался только один вариант - eclipse swt. Да и то, поддержка все той же mac os появилась сравнительно недавно - начиная с версии 3.3, которая все еще в разработке (хотя есть и стабильные билды).


Создание нового проекта с помощью maven


  Tagged

Иногда мне приходится создавать маленькие проекты на java с целью попробовать какую-то библиотеку или же для каких-то вспомогательных нужд. Я думаю, что наиболее быстрый способ создать проект – это использовать archetype механизм в apache maven. Но, к сожалению, команда для создания нового проекта не очень удобна, так как требует от человека постоянно помнить несколько обязательных параметров (‘-DarchetypeGroupId’ or ‘-DgroupId’). Как вариант, можно сделать маленький bash скрипт, который стоит положить в корень папки с проектами.

Как пример, приведу сделанный мною скрипт (new_project.sh), который поможет быстрее стартовать:


Как создать Ваш собственный скин для maven 2 проекта


Maven - это open source система управления проектами, созданная в Apache software foundation. В ней присутствуют множество интересных вещей, включая понятие модели проекта (Project Object Model) и систему плагинов.

Одним из стандартных, и наиболее часто используемых плагинов, является site плагин (maven-site-plugin). Он предоставляет возможность генерации документации по проекту в виде web сайта. Начиная с версии 2.0-beta-5 появилась возможность создавать свои собственные скины для сайта с документацией.

Эта заметка будет интересна разработчиков, которые уже знакомы с системой maven 2 и используют ее. Я постараюсь сделать небольшое введение о том, как сделать свой скин.


Немного о Java I/O производительности


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

Есть хорошая статья о производительности ввода/вывода на сайте sun.

Пример 4-4 из статьи выглядит подходящим, но, как оказывается, и он не идеален. На это есть причины: моё приложение многопоточное. Каждый раз, когда я делаю синхронизацию по статическому полю, я создаю узкое место в программе – потому, что все потоки будут блокироваться, ожидая входа в синхронизированный блок кода.


Дизайн сайта


Я начал работать над дизайном моего сайта. Честно скажу, что дизайнер из меня не очень, поэтому сделать более-менее интересный вариант, казалось очень сложно. В результате у меня полечилось несколько вариантов, каждый из которых имеет какие-то недостатки.

 
 
 
 
 
 
  • hooligan
  • cupuyc
  • ESoImk
  • LeKz
  • Anton
 
 
 
© 2006-2008 kobyleha.com