Передача информации из одной системы в другую с помощью очередей (Queues) считается самым недёжным вариантом, не даром, очереди часто используются в банковской сфере. Данный функционал может быть реализован с помощью любой из технологий: IBM MQ, Rabbit MQ, Apache Active MQ и др. Некоторые решения являются платными (IBM MQ), некоторые - бесплатными.
IBM MQ по моему мнению является самой крутой реализацией по работе с очередями, при этом она самая дорогая и не простая в установке (особенно по сравнению с Rabbit MQ).
Исходные данные:
- виртуальный сервер с установленной операционной системой Linux Debian 8 x64;
- панель управления сервером ISP Manager Lite 5.
Перед установкой IBM® WebSphere® MQ может потребоваться создать файловые системы для хранения кода продукта и рабочих данных, а также минимальные требования к хранилищу для этих файловых систем. Каталог установки по умолчанию для кода продукта может быть изменен во время установки, но местоположение рабочих данных не может быть изменено.
Чтобы определить размер файловой системы /var/mqm для установки сервера, нужно учесть следующие моменты:
Требования к хранилищу для IBM WebSphere MQ также зависят от того, какие компоненты необходимо установить и сколько рабочего пространства нужно.
До начала установки IBM WebSphere MQ необходимо создать файловую систему (директорию) /var/mqm/ принадлежащей пользователю mqm из группы mqm. Права пользователя mqm на директорию /var/mqm/ должны быть полными, на сайте IBM рекомендуют 755, хотя, мне кажется, что 644 вполне достаточно.
Соответственно, нужно сначала создать группу - mqm и пользователя в ней - mqm.
Директория /var/mqm/ используется для всех установок IBM WebSphere MQ в систему. По возможности используйте отдельный логический диск (partition/separate volume) для данных IBM WebSphere MQ.
Практика показывает, что если работа с MQ будет не особо сложная и замороченная, и какие-то особенные настройки MQ не требуются, то можно пропустить этот раздел и совсем ничего не делать. Группа mqm и пользователь mqm будут автоматически созданы при установке компонента MQSeriesRuntime.
1. Скачать нужный дистрибутив с сайта IBM, например, этот: 7.5.0.8-WS-MQC-LinuxX64.tar.gz (236.08 MB), ссылка на страницу для скачивания: https://www-945.ibm.com (самостоятельно найти эту страницу не просто, сайт у IBM - тот еще квест!).
Примечание: требуется авторизация на сайте IBM (IBM id и пароль).
2. Скопировать полученный архив на сервер во временную директорию:
3. Распаковать архив:
4. В консоли перейти в папку с дистрибутивом:
root@testserver:~# cd /tmp
root@testserver:/tmp#
5. Запустить скрипт mqlicense.sh:
root@testserver:/tmp# ./mqlicense.sh
Licensed Materials - Property of IBM 5724-H72 (C) Copyright IBM Corporation 1994, 2013 All rights reserved.
US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
IMPORTANT: READ CAREFULLY
Two license agreements are presented below.
1. IBM International License Agreement for Evaluation of Programs
2. IBM International Program License Agreement
If Licensee is obtaining the Program for purposes of productive use (other than evaluation, testing, trial "try or buy," or demonstration): By clicking on the "Accept" button below, Licensee accepts the IBM International Program License Agreement, without modification.
If Licensee is obtaining the Program for the purpose of Press Enter to continue viewing the license agreement, or enter "1" to accept the agreement, "2" to decline it, "3" to print it, "4" to read non-IBM terms, or "99" to go back to the previous screen.
Самое важное написано в конце. Нажать 1 и энтер.
1
Agreement accepted: Proceed with install.
root@testserver:/tmp#
Можно было также запустить процесс принятия лицензии без возможности ее просмотра с помощью команды:
./mqlicense.sh -accept
Установить нужные компоненты IBM WebSphere MQ.
Как минимум нужно обязательно установить MQSeriesRuntime и MQSeriesClient
6. Debian по умолчанию не дружит с rpm-пакетами, нужно ему помочь в этом:
root@testserver:/tmp# apt install rpm
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
debugedit libarchive13 libnspr4 libnss3 librpm3 librpmbuild3 librpmio3 librpmsign3 rpm-common rpm2cpio
Suggested packages:
rpm-i18n lrzip alien elfutils rpmlint rpm2html
The following NEW packages will be installed:
debugedit libarchive13 libnspr4 libnss3 librpm3 librpmbuild3 librpmio3 librpmsign3 rpm rpm-common rpm2cpio
0 upgraded, 11 newly installed, 0 to remove and 93 not upgraded.
Need to get 10.8 MB of archives.
After this operation, 15.4 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Конечно же согласиться:
Do you want to continue? [Y/n] y
Get:1 http://cdn-fastly.deb.debian.org/debian stretch/main amd64 libnspr4 amd64 2:4.12-6 [117 kB]
Get:2 http://cdn-fastly.deb.debian.org/debian stretch/main amd64 libnss3 amd64 2:3.26.2-1.1+deb9u1 [1,161 kB]
Get:3 http://cdn-fastly.deb.debian.org/debian stretch/main amd64 librpmio3 amd64 4.12.0.2+dfsg1-2 [1,166 kB]
Get:4 http://cdn-fastly.deb.debian.org/debian stretch/main amd64 debugedit amd64 4.12.0.2+dfsg1-2 [1,114 kB]
Get:5 http://cdn-fastly.deb.debian.org/debian stretch/main amd64 libarchive13 amd64 3.2.2-2 [294 kB]
Get:6 http://cdn-fastly.deb.debian.org/debian stretch/main amd64 librpm3 amd64 4.12.0.2+dfsg1-2 [1,255 kB]
Get:7 http://cdn-fastly.deb.debian.org/debian stretch/main amd64 librpmbuild3 amd64 4.12.0.2+dfsg1-2 [1,157 kB]
Get:8 http://cdn-fastly.deb.debian.org/debian stretch/main amd64 librpmsign3 amd64 4.12.0.2+dfsg1-2 [1,106 kB]
Get:9 http://cdn-fastly.deb.debian.org/debian stretch/main amd64 rpm-common amd64 4.12.0.2+dfsg1-2 [1,124 kB]
Get:10 http://cdn-fastly.deb.debian.org/debian stretch/main amd64 rpm2cpio amd64 4.12.0.2+dfsg1-2 [1,106 kB]
Get:11 http://cdn-fastly.deb.debian.org/debian stretch/main amd64 rpm amd64 4.12.0.2+dfsg1-2 [1,213 kB]
Fetched 10.8 MB in 31s (343 kB/s)
Selecting previously unselected package libnspr4:amd64.
(Reading database ... 48949 files and directories currently installed.)
Preparing to unpack .../00-libnspr4_2%3a4.12-6_amd64.deb ...
Unpacking libnspr4:amd64 (2:4.12-6) ...
Selecting previously unselected package libnss3:amd64.
Preparing to unpack .../01-libnss3_2%3a3.26.2-1.1+deb9u1_amd64.deb ...
Unpacking libnss3:amd64 (2:3.26.2-1.1+deb9u1) ...
Selecting previously unselected package librpmio3.
Preparing to unpack .../02-librpmio3_4.12.0.2+dfsg1-2_amd64.deb ...
Unpacking librpmio3 (4.12.0.2+dfsg1-2) ...
Selecting previously unselected package debugedit.
Preparing to unpack .../03-debugedit_4.12.0.2+dfsg1-2_amd64.deb ...
Unpacking debugedit (4.12.0.2+dfsg1-2) ...
Selecting previously unselected package libarchive13:amd64.
Preparing to unpack .../04-libarchive13_3.2.2-2_amd64.deb ...
Unpacking libarchive13:amd64 (3.2.2-2) ...
Selecting previously unselected package librpm3.
Preparing to unpack .../05-librpm3_4.12.0.2+dfsg1-2_amd64.deb ...
Unpacking librpm3 (4.12.0.2+dfsg1-2) ...
Selecting previously unselected package librpmbuild3.
Preparing to unpack .../06-librpmbuild3_4.12.0.2+dfsg1-2_amd64.deb ...
Unpacking librpmbuild3 (4.12.0.2+dfsg1-2) ...
Selecting previously unselected package librpmsign3.
Preparing to unpack .../07-librpmsign3_4.12.0.2+dfsg1-2_amd64.deb ...
Unpacking librpmsign3 (4.12.0.2+dfsg1-2) ...
Selecting previously unselected package rpm-common.
Preparing to unpack .../08-rpm-common_4.12.0.2+dfsg1-2_amd64.deb ...
Unpacking rpm-common (4.12.0.2+dfsg1-2) ...
Selecting previously unselected package rpm2cpio.
Preparing to unpack .../09-rpm2cpio_4.12.0.2+dfsg1-2_amd64.deb ...
Unpacking rpm2cpio (4.12.0.2+dfsg1-2) ...
Selecting previously unselected package rpm.
Preparing to unpack .../10-rpm_4.12.0.2+dfsg1-2_amd64.deb ...
Unpacking rpm (4.12.0.2+dfsg1-2) ...
Setting up libarchive13:amd64 (3.2.2-2) ...
Setting up libnspr4:amd64 (2:4.12-6) ...
Processing triggers for libc-bin (2.24-11+deb9u1) ...
Processing triggers for man-db (2.7.6.1-2) ...
Setting up libnss3:amd64 (2:3.26.2-1.1+deb9u1) ...
Setting up librpmio3 (4.12.0.2+dfsg1-2) ...
Setting up debugedit (4.12.0.2+dfsg1-2) ...
Setting up librpm3 (4.12.0.2+dfsg1-2) ...
Setting up rpm-common (4.12.0.2+dfsg1-2) ...
Setting up librpmbuild3 (4.12.0.2+dfsg1-2) ...
Setting up librpmsign3 (4.12.0.2+dfsg1-2) ...
Setting up rpm2cpio (4.12.0.2+dfsg1-2) ...
Setting up rpm (4.12.0.2+dfsg1-2) ...
Processing triggers for libc-bin (2.24-11+deb9u1) ...
Если Debian уже "дружит", и все, что надо уже установлено, то отобразится, например, следующее:
root@testserver:~# cd /tmp
root@testserver:/tmp# apt install rpm
Reading package lists... Done
Building dependency tree
Reading state information... Done
rpm is already the newest version (4.12.0.2+dfsg1-2).
The following packages were automatically installed and are no longer required:
javascript-common libjs-jquery libjs-sphinxdoc libjs-underscore php-bz2 php-curl php-gettext php-php-gettext php-phpseclib php-tcpdf php-zip php7.0-bz2
php7.0-curl php7.0-zip
Use 'apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 249 not upgraded.
root@testserver:/tmp#
7. Теперь установим MQSeriesRuntime:
root@testserver:~# cd /tmp
root@testserver:/tmp# rpm -ivh MQSeriesRuntime-7.5.0-8.x86_64.rpm
rpm: RPM should not be used directly install RPM packages, use Alien instead!
rpm: However assuming you know what you are doing...
Preparing... ################################# [100%]
Creating group mqm
Creating user mqm
Updating / installing...
1:MQSeriesRuntime-7.5.0-8 ################################# [100%]
8. Теперь установим MQSeriesClient:
root@testserver:/tmp# rpm -ivh MQSeriesClient-7.5.0-8.x86_64.rpm
rpm: RPM should not be used directly install RPM packages, use Alien instead!
rpm: However assuming you know what you are doing...
Preparing... ################################# [100%]
Updating / installing...
1:MQSeriesClient-7.5.0-8 ################################# [100%]
Готово!
Если нужно установить абсолютно все-все пакеты, то писать команду:
rpm -ivh MQSeries*.rpm
Если нужно устанавливать в другую директорию на сервере, отличную от папки по умолчанию, то нужно добавить префикс:
rpm --prefix /opt/customLocation -ivh MQSeriesRuntime-7.5.0-8.x86_64.rpm
Результат установки:
Если работа с очередями IBM MQ будет реализована с помощью PYTHON или PHP, то необходимо также установить компонент MQSeriesSDK:
root@testserver:~# cd /tmp
root@testserver:/tmp# rpm -ivh MQSeriesSDK-7.5.0-8.x86_64.rpm
rpm: RPM should not be used directly install RPM packages, use Alien instead!
rpm: However assuming you know what you are doing...
Preparing... ################################# [100%]
Updating / installing... 1:MQSeriesSDK-7.5.0-8 ################################# [100%]
root@testserver:/tmp#
Проверить, какие компоненты установлены можно тут: /opt/mqm/properties/version/
Источник: https://www.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.ins.doc/q009010_.htm
Installing a WebSphere® MQ client on a 32 bit or 64 bit Linux system
1. Log in as root, or switch to the superuser using the su command.
2. Make your current directory the location of the installation file. The location might be the mount point of the DVD, a network location, or a local file system directory.
3. Run the mqlicense.sh script. If you want to view a text-only version of license, which can be read by a screen-reader, type:
./mqlicense.sh -text_only
The license is displayed.
If want to accept the license without it being displayed, you can run the mqlicense.sh script with the -accept option.
./mqlicense.sh -accept
You must accept the license agreement before you can proceed with the installation.
4. If this installation is not the first installation on the system, you must run crtmqpkg to create a unique set of packages to install on the system:
a. Enter the following command:
crtmqpkg suffix
where suffix is a name of your choosing, that will uniquely identify the installation packages on the system. suffix is not the same as an installation name, although the names can be identical. suffix is limited to 16 characters in the ranges A-Z, a-z, and 0-9.
b. Set your current directory to the location specified when the crtmqpkg command completes. This directory is a sub-directory of /var/tmp/mq_rpms, in which the unique set of packages is created. The packages have the suffix value contained within the filename.
5. Install IBM WebSphere MQ. The minimum components you must install are the MQSeriesRuntime and the MQSeriesClient.
- To install to the default location, /opt/mqm, use the rpm -ivh command to install each component that you require.
rpm -ivh MQSeries*.rpm
To install to a non-default location use the rpm --prefix option. For each installation, all of the IBM WebSphere MQ components that you require must be installed in the same location.
The installation path specified must either be an empty directory, the root of an unused file system, or a path that does not exist. The length of the path is limited to 256 bytes and must not contain spaces.
For example, to install the runtime and server components to /opt/customLocation on a 32-bit Linux system:
rpm --prefix /opt/customLocation -ivh MQSeriesRuntime-7.5.0-0.i386.rpm MQSeriesClient-7.5.0-0.i386.rpm
- If you have chosen this installation to be the primary installation on the system, you must now set it as the primary installation. Enter the following command at the command prompt:
MQ_INSTALLATION_PATH/bin/setmqinst -i -p MQ_INSTALLATION_PATH
You can have only one primary installation on a system. If there is already a primary installation on the system, you must unset it before you can set another installation as the primary installation. For more information, see Changing the primary installation .
- You might want to set up the environment to work with this installation. You can use the setmqenv or crtmqenv command to set various environment variables for a particular installation of IBM WebSphere MQ. For more information, see setmqenv and crtmqenv.
- For instructions on how to verify your installation, see Verifying an IBM WebSphere MQ client installation
Ширитон Виталий Иванович - полковник ВВС, летал на Л-29, Л-39, МИГ-17, МИГ-21. С 1978 по 1984 годы был командиром полка 809 УАП (в/ч 19109) Харьковского высшего военного авиационного училища летчиков. При нем летный состав впервые в истории части освоил полеты в сложных метеоусловиях при первом минимуме погоды с использованием СДУ и боевое применение по наземным целям с практической стрельбой неуправляемыми...
AirSpeak - наверное самый известный курс обучения летного и диспетчерского состава фразеологии радиообмена. Ситуации, приведенные в этом курсе - максимально приближены к реальной эксплуатации воздушных судов и обслуживания воздушного движения. Рассмотрены, конечно, только самые основные и элементарные случаи. Но основной упор данного курса делается на количество повторений и понимание основ...
Некоторые жадные владельцы сайтов настолько дорожат своим уникальным содержимым, размещенном в интернете, что порой удивляешься - как они вообще решились на такое - публично это все выложить в сеть?!? :))) Цифровые скряги внедряют в страницы сайта специальные JS-скрипты, блокирующие выделение текста и возможность сделать клик правой кнопкой, добавляют специальные CSS-стили, блокирующие...
Каждый эксплуатант (авиакомпания) при выполнении полетов должен тем или иным способом определять эксплуатационные минимумы для взлета и захода на посадку для каждого аэродрома с учетом: наличия/отсутствия/работосопособности системы огней ВПП, функционирования наземных и бортовых навигационных средств, препятствий в районе аэродрома и минимума командира воздушного судна. Эксплуатационные минимумы...
Код экземпляра устройства (vendor code) электронного оборудования или компонента позволяет узнать - какой именно производитель создал данное оборудование (hardware). Владение информацией о коде экземпляра устройства позволяет найти драйверы именно для этого устройства, реально совместимые с ним.
Межгосударственный авиационный комитет 16 ноября 2011 года, Бексаев Введение Необходимость сбора больших объёмов данных, связанных с безопасностью полётов, и обработки этих массивов в кратчайшие сроки всё больше диктует необходимость использования компьютерных технологий при передаче/приёме и обработке данных. В настоящее время всё чаще для сбора и анализа данных используются электронный документооборот, что...
Исходные данные: Сто планшетов Apple iPad; Множество документов (~ 60 шт) разного размера (от 1 до 200 Мб), периодически обновляемых, каждый документ по своему регламенту. Необходимо обеспечить: Наличие всех этих документов в актуализированном состоянии в любой момент времени непосредственно на всех этих iPad'ах; Элементарную (хотя бы) защиту этих документов.