Спасибо. Проверю. У нас правда макс 1тыс. вроде (и то не уверен, что такое не в clob'e храним), но, блин, снова та же диллема: Unicode и размер в байтах )))))
Хуже :) Это знают «все» кто Oracle only, или с него в мир реляционных баз пришел или… Просто это идет (немного?) в разрез всех других виденных баз и вызывает мягко говоря WTF удивление.
Вопрос не в том, что кто-то добавил или убрал char в синтаксис statement'ом. Вопрос в том, что это котрлогичное поведение которое ты не ожидаешь от базы (не буду про стоимость и пр.) и все это нужно «всего лишь» для совместимости, которая, возможна нужна не многим.
Это нечто такое простое и базовое, что я уверен знают далеко не все.
По поводу toolзы — скрипты были сгенерированы стандартным ПО (не самописным). Там видать эти «сюрпризы» знали :). Далее система развивалась, что-то изменялось-добавлялось (скрипты писались вручную). В части есть char, в части нет :) Потом провели расследование какого фига оно таки иногда падает. Нашли, вычистили. Решили поделиться опытом. Вдруг не мы одни такие. Мало ли…
Насколько я вижу-знаю, это не так: nvarchar (а точнее nvarchar2) — это некий специальный тип, которые появился до unicode (данные со stackoverflow, не проверял), а сейчас это нечто маргинальное для хранения данных в кодировке UTF-16 (AL16UTF16), в то время, как в varchar2 по умолчанию данные в кодировке UTF-8 (AL32UTF8).
То, о чем Вы пишите — 100% в MS SQL'е, где именно nvarchar типы мы, например, и используем, но не в Oracle. Кодировка для varchar2 по-умолчанию в Unicode'ом Oracle'e — это UTF-8 (AL32UTF8).
Опять же, по данным stackoverflow не все PLSQL ф-ии совместимы с nvarchar2 (не то, чтобы это было таким уж нужным, но все же ...).
Не уверен, что понимаю о каком лимите идет речь. Нужно просто постоянно явно писать, что длина varchar2 в символах, а не байтах и по данным Oracle лучше значение по умолчанию для этой настройки не менять. И это печалит и, скорее всего, является постоянным источником ошибок для систем с хранением текстов в Unicode'e.
Если логи пустые, то томкат даже не смог стартануть (обычно сообщения о занятых портах пишутся сильно позже). Те это или права или путь к jvm (хотя я в tutorial’e налажал и не изменил JAVA_HOME, так эти сообщения в логах были).
Если еще есть виртуалка с tomcat 9 — посмотрите в логи томката (каталог logs). Если сервис стартует и останавливается, значит между этими событиями происходит какое-то событие (например, неправильный путь к JVM, порт занят и пр.).
Я бы на Вашем месте очистил каталог logs (сделал его пустым) и перезапустил tomcat9 сервис и посмотрел в логи.
По поводу сокета. Так вроде бы не умеет в них Apache Tomcat (или я не умею его готовить). Jetty умеет, но по условиям задачи нужен Tomcat.
Tomcat умеет в Ajp и есть связка Apache + tomcat по AJP (и в этом варианте, насколько мне помнится) даже не нужно ничего в томкате кофигурить — Apache Web Server сам корретно ip, порты и пр. прокидывает.
Точнее так. Судя по данным с сайта Ubuntu пакет tomcat9 появится только в версии disco AKA 19.04 А чем плох вариант скачать zip/gzip и установить 9 или версию 8.5 (ее к слову тоже нет в пакетах). Шаги по томкату брать отсюда, например.
Все прочее кроме расположение tomcat файлов (в том числе и config) у вас останется без изменения (т.е. чуть больше будет прыжков по автозапуску и пр. и прописывать org.apache.catalina.valves.RemoteIpValve нужно будет в файле conf/server.xml и все, как кажется).
Спасибо, посмотрел. Не до конца понял, как этот docker image мне может помочь. Моя цель поднять reverse proxy с бесплатным (не самоподписным!) https сертификатом с минимальными усилиями. Кажется, для этого container'а уже нужно иметь уже готовые https сертификаты и он решает вопрос настройки nginx + ssl. Я понимаю, что если покопаться, то, наверное, найдется и такое решение (docker image for nginx + ssl + let's enctypt), но по моим внутренним ощущениям docker в этой задаче overkill. Т.е. нужна какая-то простая штука которую запускаешь и забываешь на годы (или пока Java не съест всю память :). А тут еще мы добавляем промежуточный слой docker'a с которым тоже могут быть свои особенности (от пробрасывания логов до изменений в сам образ и пр.).
Я бы сказал, что Java9 для меня это про JVM + API, а не про синтаксические изменения в самом языке. Хотя type inference Java 10 (var a=1;) тоже ничего. Java 9 — immutable collections, stream changes, options improvement, http improved API и т.д.
Мне это все сильно напоминает Java 6 после Java 5.
Это скорее вопрос рук тех «орлов» кто писал plugin который Вы использовали. Т.е. по большому счету к Eclipse JDT у меня претензий нет (хотелось бы больше, но жить можно), а вот со Scala все просто отвратительно (на наших сценариях). К слову, похожие на Ваши «глюки» я с какой-то периодичностью отлавливаю для Eclipse Clojure plugin'a (Counterclockwise) — т.е. ты вроде редактируешь ф-ию, обновляешь ее через repl, а эффекта 0, но возможно дело в другом. Эта проблема случайная…
WTFудивление.Вопрос не в том, что кто-то добавил или убрал char в синтаксис statement'ом. Вопрос в том, что это котрлогичное поведение которое ты не ожидаешь от базы (не буду про стоимость и пр.) и все это нужно «всего лишь» для совместимости, которая, возможна нужна не многим.
Это нечто такое простое и базовое, что я уверен знают далеко не все.
По поводу toolзы — скрипты были сгенерированы стандартным ПО (не самописным). Там видать эти «сюрпризы» знали :). Далее система развивалась, что-то изменялось-добавлялось (скрипты писались вручную). В части есть char, в части нет :) Потом провели расследование какого фига оно таки иногда падает. Нашли, вычистили. Решили поделиться опытом. Вдруг не мы одни такие. Мало ли…
То, о чем Вы пишите — 100% в MS SQL'е, где именно nvarchar типы мы, например, и используем, но не в Oracle. Кодировка для varchar2 по-умолчанию в Unicode'ом Oracle'e — это UTF-8 (AL32UTF8).
Опять же, по данным stackoverflow не все PLSQL ф-ии совместимы с nvarchar2 (не то, чтобы это было таким уж нужным, но все же ...).
Вместо Subscription указано Description?
Если логи пустые, то томкат даже не смог стартануть (обычно сообщения о занятых портах пишутся сильно позже). Те это или права или путь к jvm (хотя я в tutorial’e налажал и не изменил JAVA_HOME, так эти сообщения в логах были).
Я бы на Вашем месте очистил каталог logs (сделал его пустым) и перезапустил tomcat9 сервис и посмотрел в логи.
Он, скорее всего, уже чем-то занят на это виртуалке. lsof Вам в помощь
Tomcat умеет в Ajp и есть связка Apache + tomcat по AJP (и в этом варианте, насколько мне помнится) даже не нужно ничего в томкате кофигурить — Apache Web Server сам корретно ip, порты и пр. прокидывает.
Наверняка можно и nginx + tomcat ajp настроить.
Точнее так. Судя по данным с сайта Ubuntu пакет tomcat9 появится только в версии disco AKA 19.04 А чем плох вариант скачать zip/gzip и установить 9 или версию 8.5 (ее к слову тоже нет в пакетах). Шаги по томкату брать отсюда, например.
Все прочее кроме расположение tomcat файлов (в том числе и config) у вас останется без изменения (т.е. чуть больше будет прыжков по автозапуску и пр. и прописывать org.apache.catalina.valves.RemoteIpValve нужно будет в файле conf/server.xml и все, как кажется).
И еще раз спасибо за комментарий.
Мне это все сильно напоминает Java 6 после Java 5.