Год НЕИЗВЕСТЕН. СПРАВОЧНИК ПО СИСТЕМНЫМ ПРОГРАММАМ

Очередная книжка (PDF, 4.7 MB). СПРАВОЧНИК ПО СИСТЕМНЫМ ПРОГРАММАМ. Распознанный слой есть.

Год не известен, ISBN не достоверен.

Рубрика: Работа | Метки: , | Оставить комментарий

Обновление существующей инсталляции DSpace до версии 5.3 на платформе Windows

Ниже будет рассмотрен ворклог обновления существующей инсталляции DSpace, выполненной по технологии, описанной в моих прошлых статьях. Пути, системные переменные и пр. вещи соответствуют таковым в прошлых статьях.

В данном конкретном примере будет обновляться Dspace 4.1. Небольшая оговорка — в данной инсталляции dspace, tomcat и pgsql «живут» в c:\service, а java, maven и ant — в c:\runtime.

0. Бэкап

0.1. Бэкап assetstore — копируем [dspace]\assetstore куда-нибудь
0.2. Бэкап [dspace] — копируем [dspace] куда-нибудь (можно совместить с предыдущим пунктом, если расположение стандартное)
0.3. Бэкап кастомизированных webapps — копируем [tomcat]\wbapps\ куда-нибудь
0.4. Бэкап базы данных — в принципе, сделать дамп можно и с помощью графической утилиты PGadminIII, но я делаю бэкап базы в рамках такого вот батника:

set now=%TIME:~0,-3%
set now=%now::=%
set now=%now: =0%
set now=%DATE:~-4%.%DATE:~3,2%.%DATE:~0,2%_%now%
SET PGPASSWORD=ТУТ_ВАШ_ПАРОЛЬ
mkdir c:\BACKUP\%now%\db && C:\RUNTIME\POSTGRE\bin\pg_dump.exe -i -h 127.0.0.1 -p 5432 -U dspace -F c -b -v -f C:\BACKUP\%now%\db\database-%now%.dmp dspace && mkdir c:\BACKUP\%now%\content && dspace packager -d -a -u -t AIP -e ideafix@ideafix.name -i 10995/0 c:\backup\%now%\content\elarurfu.zipp && mkdir c:\backup\%now%\metadata && dspace metadata-export -a -f c:\BACKUP\%now%\metadata\data.csv

Данный код создаёт в в c:\backups\ папку с именем ГГГГ.ММ.ДД_ЧЧММСС и в ней папки db, content и metadata соответственно с базой, контентом в формате METS и метаданными в CSV. Подробнее об этом можно почитать в статье про Бэкап.

1. Подготовка RUNTIME

Нам понадобится:

1.1 Дистрибутив DSPACE 5.3 (dspace-5.3-src-release.zip)
1.2 Дистрибутив JDK 8 (jdk-8u60-windows-x64.exe)
1.3 Дистрибутив Apache Maven 3.0.5 или новее.
1.4 Apache Ant 1.8 или новее
1.5 Apache tomcat 7.0.30 или новее

Собственно, все требования по runtime описаны тут и нужно проверить версии уже установленного софта.

000После удаления старой версии JDK и установки новой (я ставлю по примеру старых инструкций в c:\runtime\jdk и c:\runtime\jre) нужно дать команды:

java -version
ant -version
mvn -v

И убедиться во-первых что все пути работают, и во-вторых, что с версиями у нас всё в порядке.

001

Версию Tomcat можно проверить руками, если Tomcat нуждается в обновлении, не забудьте сохранить server.xml и пр. конфигурационные файлы, при обновлении старая директория удаляется.

2. Подготовка дистрибутива

003

2.1. Извлекаем исходники в c:\runtime\dspace-5.3-src-release. По картинке видно, что изначально на машине был установлен Dspace 4.0, а потом обновлен до 4.1.
2.2. Вносим необходимые изменения в c:\runtime\dspace-5.3-src-release\build.properties. Идея появления данного файла в том, чтобы избавить пользователя от правок dspace.cfg и некоторых других конфигов в процессе сборки. Все критичные переменные dspace собраны в одном файле. Как показывает практика, оно в общем работает, но есть частности. Мой поправленный вариант выглядит как-то так:

# DSpace build.properties
# This file should be customised to suit your build environment.
# Note that not all configuration is handled here, only the most common
# properties that tend to differ between build environments.
# For adjusting global settings or more complex settings, edit the relevant config file.
#
# IMPORTANT: Do not remove or comment out settings in build.properties
# When you edit the "build.properties" file (or a custom *.properties file),
# take care not to remove or comment out any settings. Doing so, may cause
# your final "dspace.cfg" file to be misconfigured with regards to that
# particular setting. Instead, if you wish to remove/disable a particular
# setting, just clear out its value. For example, if you don't want to be
# notified of new user registrations, ensure the "mail.registration.notify"
# setting has no value, e.g. "mail.registration.notify="
#

##########################
# SERVER CONFIGURATION #
##########################

# DSpace installation directory. This is the location where you want
# to install DSpace. NOTE: this value will be copied over to the
# "dspace.dir" setting in the final "dspace.cfg" file. It can be
# modified later on in your "dspace.cfg", if needed.
dspace.dir = C:/SERVICE/DSPACE

# DSpace host name - should match base URL. Do not include port number
dspace.hostname = ИМЯРЕК

# DSpace base host URL. Include port number etc.
dspace.baseUrl = http://ИМЯРЕК

# The user interface you will be using for DSpace. Common usage is either xmlui or jspui
dspace.ui = jspui

# Full link your end users will use to access DSpace. In most cases, this will be the baseurl followed by
# the context path to the UI you are using.
#
# Alternatively, you can use a url redirect or deploy the web application under the servlet container root.
# In this case, make sure to remove the /${dspace.ui} from the dspace.url property.
dspace.url = http://ИМЯРЕК

# Name of the site
dspace.name = COMMON ARCHIVE

# Solr server
solr.server=http://localhost/solr

# Default language for metadata values
default.language = ru

##########################
# DATABASE CONFIGURATION #
##########################

# Uncomment the appropriate block below for your database.
# postgres
db.driver=org.postgresql.Driver
db.url=jdbc:postgresql://localhost:5432/dspace
db.username = dspace
db.password = ИМЯРЕК

# oracle
#db.driver= oracle.jdbc.OracleDriver
#db.url=jdbc:oracle:thin:@//localhost:1521/xe
#db.username=dspace
#db.password=dspace

# Schema name - if your database contains multiple schemas, you can avoid
# problems with retrieving the definitions of duplicate object names by
# specifying the schema name that is used for DSpace.
# ORACLE USAGE NOTE: In Oracle, schema is equivalent to "username". This means
# specifying a "db.schema" is often unnecessary (i.e. you can leave it blank),
# UNLESS your Oracle DB Account (in db.username) has access to multiple schemas.
db.schema =

# Maximum number of DB connections in pool
db.maxconnections = 30

# Maximum time to wait before giving up if all connections in pool are busy (milliseconds)
db.maxwait = 5000

# Maximum number of idle connections in pool (-1 = unlimited)
db.maxidle = -1

# Determine if prepared statement should be cached. (default is true)
db.statementpool = true

# Specify a name for the connection pool (useful if you have multiple applications sharing Tomcat's dbcp)
# If not specified, defaults to 'dspacepool'
db.poolname = dspacepool

#######################
# EMAIL CONFIGURATION #
#######################

# SMTP mail server
mail.server = ИМЯРЕК

# SMTP mail server authentication username and password (if required)
# mail.server.username = myusername
# mail.server.password = mypassword
mail.server.username = ИМЯРЕК
mail.server.password = ИМЯРЕК

# SMTP mail server alternate port (defaults to 25)
mail.server.port = 25

# From address for mail
mail.from.address = elib@ИМЯРЕК

# Currently limited to one recipient!
mail.feedback.recipient = dspace-help@myu.edu

# General site administration (Webmaster) e-mail
mail.admin = elib@ИМЯРЕК

# Recipient for server errors and alerts
#mail.alert.recipient = email-address-here
mail.alert.recipient=elib@ИМЯРЕК

# Recipient for new user registration emails
#mail.registration.notify = email-address-here
mail.registration.notify=elib@ИМЯРЕК

########################
# HANDLE CONFIGURATION #
########################

# Canonical Handle URL prefix
#
# By default, DSpace is configured to use http://hdl.handle.net/
# as the canonical URL prefix when generating dc.identifier.uri
# during submission, and in the 'identifier' displayed in JSPUI
# item record pages.
#
# If you do not subscribe to CNRI's handle service, you can change this
# to match the persistent URL service you use, or you can force DSpace
# to use your site's URL, eg.
#handle.canonical.prefix = ${dspace.url}/handle/
#
# Note that this will not alter dc.identifer.uri metadata for existing
# items (only for subsequent submissions), but it will alter the URL
# in JSPUI's 'identifier' message on item record pages for existing items.
#
# If omitted, the canonical URL prefix will be http://hdl.handle.net/
handle.canonical.prefix = http://ИМЯРЕК/handle/

# CNRI Handle prefix
handle.prefix = 123456789

#######################
# PROXY CONFIGURATION #
#######################
# uncomment and specify both properties if proxy server required
# proxy server for external http requests - use regular hostname without port number
http.proxy.host =

# port number of proxy server
http.proxy.port =

#####################
# LOGLEVEL SETTINGS #
#####################
loglevel.other = INFO
# loglevel.other: Log level for other third-party tools/APIs used by DSpace
# Possible values (from most to least info): DEBUG, INFO, WARN, ERROR, FATAL
loglevel.dspace = INFO
# loglevel.dspace: Log level for all DSpace-specific code (org.dspace.*)
# Possible values (from most to least info): DEBUG, INFO, WARN, ERROR, FATAL

Тут нужно обратить внимание на то, что порт у меня по умолчанию 80, а JSPUI будет лежать в ROOT, поэтому dspace.url и dspace.base.url одинаковые.

2.3. Вноисм необходимые изменения в c:\runtime\dspace-5.3-src-release\dspace\config\dspace.cfg

Т.к. build.properties не даёт явно задать assetstore и некоторые другие параметры, придётся править конфиг. На данном этапе я вовсе рекомендую не надеяться на переменные и казуальное их хранилище в виде build.preperties, а открыть одновременно оба dspace.cfg, старый и новый и сравнить их построчно. Такой способ позволит не забыть никакую модификацию или кастомизацию.

Как минимум стоит обратить внимание на эти параметры, даже если Вы ничего не меняли в dspace.cfg ранее.

default.locale
webui.supported.locales
jspui.google.analytics.key (и аналог для xmlui)

3. Собственно сборка dsapce

3.1. Еще раз перечитываем это
3.2. Читаем это
3.2. cd c:\runtime\dspace-5.3-src-relese\dspace && mvn -U clean package
Если по каким-то причинам нужен Oracle, Mirage2, LNI или еще что-то из нестандартного — внимательно читаем пункт 4

004

Ну а теперь можно откинуться на спинку стула и понаблюдать за тем как maven собирает дистрибутив. На данном этапке как и прежде из сети скачивается около гигабайта исходников и деплоятся пакеты.

005

 

4. Обновление

4.1. Убеждаемся что Tomcat остановлен… ну мало ли, у меня просто запущен был 🙂
4.2. cd c:\RUNTIME\dspace-5.3-src-release\dspace\target\dspace-installer && ant update

006007

4.3. Обновляем базу — C:\SERVICE\PGSQL\bin\psql.exe -U dspace -f c:\SERVICE\DSPACE\etc\postgres\update-sequences.sql

008

После этого потребуется ввести пароль на базу данных (тот что в db.password в build.properties)

4.4. даём команду dspace database migrate

008

Дождавшись её выполнения идём в c:\service\dspace\log\dspace.log.ТЕКУЩАЯ_ДАТА, находим в нём строки в самом конце

2015-08-29 03:40:55,201 INFO org.dspace.storage.rdbms.DatabaseRegistryUpdater @ All Bitstream Format Regitry and Metadata Registry updates were completed.
2015-08-29 03:40:55,216 INFO org.flywaydb.core.internal.command.DbMigrate @ Current version of schema "public": 4.0
2015-08-29 03:40:55,216 INFO org.flywaydb.core.internal.command.DbMigrate @ Migrating schema "public" to version 5.0.2014.08.08
2015-08-29 03:40:55,247 INFO org.flywaydb.core.internal.command.DbMigrate @ Migrating schema "public" to version 5.0.2014.09.25
2015-08-29 03:40:55,497 INFO org.flywaydb.core.internal.command.DbMigrate @ Migrating schema "public" to version 5.0.2014.09.26
2015-08-29 03:40:56,326 INFO org.flywaydb.core.internal.command.DbMigrate @ Successfully applied 3 migrations to schema "public" (execution time 00:01.125s).
2015-08-29 03:40:56,435 INFO org.dspace.eperson.Group @ anonymous::update_group:group_id=0
2015-08-29 03:40:56,466 INFO org.dspace.eperson.Group @ anonymous::update_group:group_id=1
2015-08-29 03:40:56,466 INFO org.dspace.event.EventManager @

радуемся.

4.5. Даём команду dspace index-db-browse -f -d дожидаемся её выполнения.

009

4.6. Даём команду dspace cleanup -v дожидаемся её выполнения. Убеждаемся что либо сообщений об очистке нет, либо они все успешные.

010

Всё это можно делать на не обновлённых webapps и с выключенными tomcat.

5. Обновление WEBAPPS и SOLR индексов

5.1. Копируем jspui, oai и solr из c:\service\dspace\webapps в c:\service\tomcat\webapps
5.2. Запускаем Tomcat, ждем некоторое время, проверяем что у нас на http://ИМЯРЕК

011
5.3. Даём команды dspace stats-util -o && dspace oai import -o && dspace index-discovery -o

012

А дальше работа по кастомизации интерфейса, переносу настроек и пр…. но это уже совсем другая история.

Рубрика: Библиотека | Метки: | 9 комментариев

Новая тема

В общем, всё стало попроще и поконтрастнее. Буквы стали побольше, а спамботами стало чуть сложнее спамботить.

Прошу понять и простить.

11a9286d04eec756047b0164449d60b1

Рубрика: Без рубрики | Оставить комментарий

Zyxel Keenetic и Аппаратный обработчик пакетов.

Серия маршрутизаторов Keenetic от Zyxel лет пять назад стала буквально революцией на рынке потребительских устройств данного класса. В линейке есть устройства практически для каждого, от недорогих «переходников» с Ethernet/3G на WIFi до серьезных устройств с двухдиапазонным беспроводным модулем и серьезным процессором. Помимо приемлемой, хоть и не низкой цены, грамотного позиционирования и доступности в продаже у данных устройств есть еще одно очень важное достоинство — платформа NDMS.
 
Официальное описание NDMS достаточно скупо — Предоставляет базовые возможности коммутирования, маршрутизации и фильтрации трафика. Также содержит интерпретатор командной строки и web-интерфейс. Но на практике это одна из лучших операционных сред для домашних роутеров. Об одной маленькой особенности NDMS я хотел бы сейчас рассказать.
 
В моей домашней сети есть маршрутизатор Zyxel Keenetic первого поколения. Он работает на резервном провайдере, который так же является поставщиком IP телевидения (IGMP MultiCast). Помимо телевидения канал практически ни кем и ни чем не используется.
 
Во время падения основного канала, в резервный лезут торренты, трафик с ютьюба и пр. и телевизоры начинают заикаться. Нужно сказать что телевизоров у меня два и по ним частенько смотрятся два разных HD канала.
 
Разбор полётов показывает что даже 100 соединений торрент клиента в NAT или UPnP загружают процессор роутера на 100% и всё становится плохо. Установка компонента «Аппаратный обработчик пакетов» с ходу результатов не приносит. В NDMS первой версии после установки данного компонента появлялась «галочка» его активации, в NDMS второй версии ничего подобного не появляется. Сначала я решил что оно активируется само, но не всё так просто.
 
Для начала нужно обратиться к этой статье. В ней описана процедура установки и активации. Если в двух словах:

  • Установить компонент
  • Активировать его командой ppe в CLI (telnet)

Мягко говоря не тривиально, но и это еще не всё. После перезагрузки роутера штатно из CLI, web-интерфейса или по питанию, NAT опять станет «программным». Чтобы настройки сохранились, сразу после команды ppe нужно дать команду system config-save.
 
С таким твиком 1000 соединений в uTorrent с загрузкой в 10 Мегабайт в секунду и отдачей в 8 Мегабайт (тариф формально симметричный 99/99Mbps, но реально результаты чуть ниже) процессор роутера загружен на 0%. Всю работу на себя берет NAT сопроцессор. В результате пара приставок MAG245, показывающая пару FullHD каналов и торренты не пересекаются, ресурсов роутера хватает и ничего не тормозит и не виснет.
 
Ну и небольшое отступление. Роутер построен на базе процессора RT3052. На такой же аппаратной базе построен роутер моего провайдера SNR-CPE-W4n. О том что аппаратный NAT есть и он работает я узнал именно после изучения web-интерфейса SNR-CPE-W4n. Только вот незадача — при активации hardware NAT у роутера SNR через непродолжительное время случается зависание, а Zyxel работает сутками.
 
Общение с поддержкой Zyxel относительно причин по которым активация NAT сопроцессора была спрятана так глубоко и не вызвано ли это какими-то проблемами в RT3052 пока не дало результатов.

Рубрика: Железки | Метки: | 6 комментариев

Год 1989. Программное обеспечение персональных ЭВМ

Очередная книжка (PDF, 19 MB). Программное обеспечение персональных ЭВМ. Распознанный слой есть.

Рубрика: Работа | Метки: , | Оставить комментарий