|
Java форум JavaTalks форум программистов
|
|
|
|
| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
StripedCat : 18 Новичок Откуда: Самара
|
Янв 13, 2012 9:13 |
|
|
| В состав glassfish входит derby. Базы лежат в glassfish/databases, если не перекрыта переменная derby_home. Там создаётся каталог=БД chapter02DB после прогона главы 2. asadmin start-database, asadmin stop-database запускает и останавливает сервер derby |
|
|
|
 |
Spinner : 11 Новичок
|
Янв 13, 2012 10:12 |
|
|
| StripedCat писал(а): |
| asadmin start-database, asadmin stop-database запускает и останавливает сервер derby |
А почему бы не использовать при разработке, тем более книжного туториала возможности, которые предоставляет IDE?! Но я ни в коем случае не пропагандирую "Терминал - зло!!!" Я лишь предложил варианты использования того, что дает среда. Тем более - мы в разделе про IDE'шки.
Пока что не увидел в книге предпосылок для "тонкого" управления состоянием сервером приложений; на первых порах свободно обходятся EjbContainer'ом, без сервера. |
|
|
|
 |
StripedCat : 18 Новичок Откуда: Самара
|
Янв 13, 2012 13:05 |
|
|
| Выигрыша не вижу. Все нужные либы для derby даёт мавен, и нужные версии, именно в этом его сила. Сервер БД должен где-то уже работать, а где - указывается в строке соединения или в настройках пула. Лёгкий доступ к ij, который даёт этот плагин, не нужен, мы итерактивно никаких sql-операторов не вводим. |
|
|
|
 |
StripedCat : 18 Новичок Откуда: Самара
|
Янв 13, 2012 13:38 |
|
|
Для подробного просмотра БД можно применять Database Development Perspective, но я применяю более богатый свободный клиент - squirrel. Подключается к любой базе, к какой есть jdbc. Конечно, в реальных проектах мы будем работать с родным клиентом: Toad для Оракл, IBExpert для firebird, Management Studio для MSSQL... Но в squirrel есть вкладка Hibernate и прочие особенности, инструмент полезный. Я подключаюсь к derby,firebird,MSSQL,MySQL,ODBC источникам.
 |
|
|
|
 |
Spinner : 11 Новичок
|
Янв 13, 2012 13:48 |
|
|
| StripedCat писал(а): |
| Выигрыша не вижу. |
Молчу-молчу. Все мы тут знаем обо всех-всех-всех возможностях клипсы.
| StripedCat писал(а): |
| Все нужные либы для derby даёт мавен, и нужные версии, именно в этом его сила. |
Не согласен. "Сила" эта "работает" - когда артефакты не удаляются с репозиториев, когда репозитории не переезжают хз куда, на деревню дедушке. Но это тема для другого разговора.
Появился вот вопрос по 6ой главе. Надеюсь, что поможете понять.
Класс: org.beginningee6.book.chapter06.Main, часть метода main:
| Код: |
Book book = new Book();
// setting book props
book = bookEJB.createBook(book); // (1)
// code
book.setTitle("H2G2");
book = bookEJB.updateBook(book); // (2)
// code
bookEJB.deleteBook(book); // (3)
// code
|
Правильно ли я понимаю, что в отмеченных мной строках кода(1-3), на каждый вызов бина создается отдельная транзакция, так ли это? Потому что я не увидел чтоб мы в этом коде или еще где-то инициировали транзакции, но так как BookEJB по дефолту CMT - тогда получается именно так - на каждый удаленный вызов бина извне контейнера создается транзакция, если не настроено иначе. |
|
|
|
 |
StripedCat : 18 Новичок Откуда: Самара
|
Янв 13, 2012 14:49 |
|
|
| Цитата: |
Не согласен. "Сила" эта "работает" - когда артефакты не удаляются с репозиториев, когда репозитории не переезжают хз куда, на деревню дедушке. Но это тема для другого разговора.
|
Бывает. Я поэтому поставил Nexus, беру артефакты оттуда. Хоть где-то из объединяемых репозиториев да останется. |
|
|
|
 |
StripedCat : 18 Новичок Откуда: Самара
|
Янв 13, 2012 15:29 |
|
|
Лучше иметь дело сразу с БД на диске, потому что база в памяти исчезает после завершения программы. Раскомментируем настройки для Client Server mode.
После прогона программы действительно образовалась БД из таблицы с одной записью. Мы видим, что изменённый файл persistence.xml и все каталоги, где он содержится, помечены чёрным квадратиком с белой звёздочкой - различия с репозиторием обнаружены и помечены. Но исключения в консоли тревожат. Откуда они взялись? Как избавиться от них? Откуда берётся запрос про таблицу SEQUENCE ? В книге об этом ничего не сказано.
Вот наша созданная база с одной таблицей и одной записью
Если же мы запутались и хотим восстановить исходную версию из репозитория, то правой кнопкой мыши по файлу в Project Explorer - Team - Revert
 |
|
|
|
 |
Spinner : 11 Новичок
|
Янв 13, 2012 17:30 |
|
|
|
|
|
|
 |
StripedCat : 18 Новичок Откуда: Самара
|
Янв 13, 2012 21:58 |
|
|
Вот так выглядит из linux. Не забудем потом найти и поставить maven plugin connectors, из-за нехватки которых будут ошибки в главе 4.
а это потенциальная пила для нервов - в линуксе регистр букв в имени файла имеет значение, а для derby (и mySQL) база - это просто каталог, для firebird база - это один файл. Будем внимательны при прописывании строк подключения!
А вот как выглядит база из squirrel в линуксе
Вот запуск примера для клиент-серверной derby и те же самые исключения.
Теперь можно добавлять записи в базу с русскими буквами, гонять мавен цели site и прочие, подбирать репозиторий, куда будем коммитить измененные. Хотелось бы svn, потому что плагин именно для него и сейчас на практике он используется в большинстве контор. Спасибо за ссылку на дискуссию по этим примерам! Вместе мы продвинемся успешно через все главы!
Посмотреть, сколько открыто транзакций, интересный вопрос! Первое, что приходит в голову, это глядеть на них со стороны сервера. Например, для firebird есть системная таблица RDB$TRANSACTIONS, для MSSQL - системные view sp_*, для оракла - тоже что-то наподобие. Для derby, может, и есть, а может, и нет, уж очень маленькая она. Надо в документации рыться по системным объектам. |
|
|
|
 |
Spinner : 11 Новичок
|
Янв 14, 2012 22:24 |
|
|
| Пожалуйста, делай сриншоты без указателя мыши >_< |
|
|
|
 |
StripedCat : 18 Новичок Откуда: Самара
|
Янв 16, 2012 10:21 |
|
|
Ура! Ещё один шаг сделан! Активные транзакции отслеживаются! Для этого поставим точку останова на методе commit(), он ещё не будет выполнен.
а потом переключимся в squirrel и дадим запрос к системной таблице derby, отвечающей за транзакции
1 транзакция - сам squirrel, 1 транзакция - запрос к таблице транзакций, осталась 1 транзакция из нашего приложения. |
|
|
|
 |
Spinner : 11 Новичок
|
Янв 18, 2012 12:39 |
|
|
Сейчас остановился на 7й главе.
Решил более подробно почитать про администрирование и настройку glassfish, и про настройку eclipselink. |
|
|
|
 |
|
|
|