MySQL и mariadb, строка подключения.
На всякий случай оставлю тут, что бы каждый раз не искать по интернетам кошерные параметры подключения последних версий драйвера Connector/J.
jdbc:mysql://192.168.0.1/BaseName?zeroDateTimeBehavior=CONVERT_TO_NULL&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Europe/Moscow&useSSL=false
Android и MySQL
Ан нет, не поддерживается в роботе работа JDBC.
DriverManager.getConnection
Вызывает эксцепшены, мол нет классов
java.sql
И все, гудбай друг.
Предлагают через WEB приложения данные из базы качать 🙁 Из-за такой ерунды придется в глассфише посредника писать 🙁
Эмуляторы из Android studio и AMD Ryzen 2400G процессор
Стал разбираться в проблеме. Из заголовка понятно, что у меня не Intel процессор 🙂 Я от них отказался, после того как все мои Intel машины начали дико тормозить после патчей с исправлением проблем безопасности данных устройств. Купил не дорогой комплект на AMD Ryzen 2400G. Производительность для разработки и администрирования отличная. На нем даже играть можно без особых проблем. Во всяком случае мой игровой ноутбук на i5 gforce 760 тихо скулит в стороне.
Понятно, что х86 эмуляторы, требующие драйвера от компании Intel, работать не будут. Так-как этот драйвер на AMD не устанавливается. Но и эмуляторы arm не заработали! Крутил, вертел, так и не запустились. Пришлось железный телефон подключать.
Вот так и живем со шнурком в компутере 🙁
Не получаю уведомления.
Поэтому заранее прошу прощение, если не отвечаю на вопросы в старых темах. Не я такой, блогспот такой 🙁
java.lang.annotation.AnnotationFormatError: Duplicate annotation for class: interface javax.validation.constraints.
@Id
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 100)
@Column(name = «login»)
private String login;
При каждом обращении к этой сущности ловлю:
Exception: java.lang.annotation.AnnotationFormatError: Duplicate annotation for class: interface javax.validation.constraints.NotNull
Если закомментирую описание @NotNull, получаю:
Exception: java.lang.annotation.AnnotationFormatError: Duplicate annotation for class: interface javax.validation.constraints.Size
Оказывается, описание @Column дублирует эти описания и выдает исключение.
Теперь правильно писать так:
@Id
@Basic(optional = false)
@Column(name = «login», length = 100, nullable = false)
private String login;
Glassfish, я понял почему его не любят.
Сначала я поставил версию 5. Локально работает отлично, удаленно не работает. Не возможно подключиться к админской консоли.
Времени разбираться не было. Забил на 5-ку, поставил 4-ку. Все работало до тех пор, пока не начал REST методы пилить. Оказывается встроенный XML парсер требует java определенной, старой (очень старой) версии.
Новая версия парсера, которую я подсунул глассфишу, отказывается работать с 4-кой 🙂
Забил на 4-ку, начал разбираться с 5-кой. Оказывается, для нормальной удаленной работы 5-ки требуется java 8 билд не более u152. Едрить твою через…
Пришлось качать нестабильную версию 5.0.1. Удаленное управление работает, парсер работает.
Но сколько на это было убито времени и нервов…
Это вот оно как Михалыч.
Дал распробовать это чудо коллегам. Им понравилось. Решил переехать на MySQL. Скачал 8-ю версию. Импортировал базы своих приложений. Везде пришлось переписывать вызовы драйвера и параметры подключений. Но вобщем все мои приложения заработали.
Включаю jira, и… опа опа ла бузука. Нифига не работает. Как оказалось, ей требуется версия 5.6 максимум. Пипец. Полдня потерял на это…
Сделаю для жиры контейнер, буду гонять её оттуда.
GlassFish 5, standalone client
Появилось время на самокапание, решил попробовать сервер приложений GlassFish в связке с RMI клиентом на Java. Написал простейший ejb с методом sayHello.
@Stateless
public class MainSessionBean implements MainSessionBeanRemote {
@Override
public String sayHello() {
return «Hello world!»;
}
}
Ну и в клиенте, его вызов.
try {
props.load(new FileInputStream(«jndi.properties»));
InitialContext ctx = new InitialContext(props);
MainSessionBeanRemote bean =
(MainSessionBeanRemote)ctx.lookup(
«java:global/CorpServer/CorpServer-ejb/MainSessionBean»);
System.out.println(bean.sayHello());
} catch …
Если создавать клиент средствами самого NetBeans, то все работает. Но как только пытаюсь запустить приложение из командной строки, ничего не работает, не находит нужных библиотек.
В инете готового решения проблемы не нашел. После долгой боли и мучений выработал метод получения необходимых библиотек, для стандалон клиента.
- В glassfish ищем батник package-appclient и запускаем его. Он создаёт файл glassfish5/glassfish/lib/appclient.jar
- Из этого файла из директории modules извлекаем все файлы jar и копируем к себе в проект. Почему то, если использовать сам appclient.jar ничего не работает.
- Но там не хватает двух файлов. Их придется ручками скопировать из glassfish5/glassfish/modules. Файлы: bean-validator-cdi.jar и bean-validator.jar
Все, клиент коннектится, методы вызываются.
Как сэкономить 10 миллионов при размещении рабочих мест пользователей в облаке.
Первый вариант. Ставим виртуальную машину прямо на компьютер пользователя.
Второй вариант. Облако.
Поиск технологии.
- Нужна система с начальной емкостью 50 виртуальных машин по 2 ядра процессора и 4-6 гигов RAM на гостевую систему.
- Система будет наращиваться по 10 рабочих машин.
- Живая миграция не нужна (но приветствуется).
- Лицензии нужно купить сразу или по мере расширения, и никаких новомодных ежегодных подписок.
- Система должна занимать минимум места в стойке.
Цена вопроса.
И тут мы решили включить мозг!
Железо.
|
Лезвий:
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
||
|
Вм на лезвие:
|
10
|
|||||||||||||||
|
Micro Blade
|
Итого:
|
429 556
|
630 556
|
831 556
|
1 032 556
|
1 233 556
|
1 434 556
|
1 635 556
|
1 836 556
|
2 037 556
|
2 238 556
|
2 439 556
|
2 640 556
|
2 841 556
|
3 042 556
|
|
|
шасси
|
228 556
|
Кол-во вм.:
|
10
|
20
|
30
|
40
|
50
|
60
|
70
|
80
|
90
|
100
|
110
|
120
|
130
|
140
|
|
лезвие
|
201 000
|
За вм.:
|
42 956
|
31 528
|
27 719
|
25 814
|
24 671
|
23 909
|
23 365
|
22 957
|
22 640
|
22 386
|
22 178
|
22 005
|
21 858
|
21 733
|
|
Вм на лезвие:
|
10
|
|||||||||||||||
|
Super Blade
|
Итого:
|
450 896
|
665 178
|
879 460
|
1 093 742
|
1 308 024
|
1 522 306
|
1 736 588
|
1 950 870
|
2 165 152
|
2 379 434
|
2 593 716
|
2 807 998
|
3 022 280
|
3 236 562
|
|
|
шасси
|
236 614
|
Кол-во вм.:
|
10
|
20
|
30
|
40
|
50
|
60
|
70
|
80
|
90
|
100
|
110
|
120
|
130
|
140
|
|
лазвие
|
214 282
|
За вм.:
|
45 090
|
33 259
|
29 315
|
27 344
|
26 160
|
25 372
|
24 808
|
24 386
|
24 057
|
23 794
|
23 579
|
23 400
|
23 248
|
23 118
|
Цена рабочего места при полной комплектации: 21 733 рублей.
Софт.
- По возможности быстро развернуть новое рабочее место.
- Снапшоты.
- Бекапы рабочих мест.
- Удобство для админов.
- Вируализировать простые рабочие станции обычных пользователей, без тяжелого софта.
Удобство администрирования.
Во всяком случае лично мне понадобилось три недели, что бы разобраться с предоставляемым VirtualBox-м java API, что бы разобраться с JavaFX и написать софт, облегчающий работу линейным админам. Вот такой:
