Closed akopylov-rdv closed 3 years ago
@akopylov-rdv Можно привести 1с-ый код для установления соединения? Какой порт используется?
@akopylov-rdv В linux распакуйте компоненту и выполните команду ldd PinkRabbitMQLinuxLin64.so
.
@akopylov-rdv Можно привести 1с-ый код для установления соединения? Какой порт используется?
@ripreal Порты используются нестандартные 4273, 4274 c SSL Используемый код в обработке ИнтеграцияRabbitMQ rabbitmq-kaa.cf.zip
@akopylov-rdv В linux распакуйте компоненту и выполните команду
ldd PinkRabbitMQLinuxLin64.so
.
@ipalenov
@akopylov-rdv Лучше вмест ообработки напишите как вызываете метод Connect в компоненте? Какие передаете параметры?
@akopylov-rdv Лучше вмест ообработки напишите как вызываете метод Connect в компоненте? Какие передаете параметры?
В случае с windows
@akopylov-rdv Лучше вмест ообработки напишите как вызываете метод Connect в компоненте? Какие передаете параметры?
В случае с windows
- если Порт = 4274 и ЗащищенноеСоединение = Истина, то соединение НЕ проходит - Ошибка: Timeout
Ну по этому коду нам сложно понять в чем проблема :-)
Мы сейчас используем эту версию компоненты c защищенным соединением с кроликом на https://www.cloudamqp.com/, проблем вроде нет. Код в 1С примерно такой же как у вас.
Попробуйте сделать бесплатный инстанс на https://www.cloudamqp.com/ и подключиться с защищенным соединением к нему (обратите внимание, что там другой порт) Попробуйте подключиться к вашему кролику по защищенному соединению не через компоненту, а через какую-либо стороннюю программу (чтобы убедиться что защищенное соединение в принципе у вас в кролике работает, порт открыт, нет проблем с сертификатами)
@Begemoth2
@akopylov-rdv А версия компоненты 1.9. бекз защищенного соединения у Вас работает на линуксе?
@ripreal
На релизах 1.8, 1.9 при вызове метода connect() с ошибкой: RabbitMQ channel is not in usable state. Сетевые проблемы исключены, т.к. с использованием модуля pika (python) получается подключиться по защищенному и незащищенному протоколам.
На 1.8 и 1.9 компонента подключается, вызов метода connect() подвисает на секунд 10 и падает с ошибкой: RabbitMQ channel is not in usable state. В компоненте 1.9 нет ещё параметра ssl.
@Begemoth2 @ripreal С облачным ребитом и виндовой компонентой тоже самое, без SSL - работает, c SSL - нет, ошибка та же: timeout
Для ошибки таймаута, слишком быстро ответ происходит, может где-то нужно параметр таймаут > 0 указать
Возможно у Вас кривая сборка 1.10. Вот собрал тестовую конфу с одной кнопкой Connect и подключением к облачному раббиту через amqps. Она у меня работает. https://yadi.sk/d/Vxu51Aoqos9OCw Проверяйте.
@ripreal Работает подключение SSL под windows с x64 платформой, похоже проблема с компонентой для x32 разрядной платформы. К НЕоблачному ребиту получилось подключиться с SSL после того как в конфиге закомментировал проверку SSL цепочки сертификатов:
ssl_options.verify = verify_peer
Возможно, что-то не так работает с хранилищем сертификатов
Под Linux компонента не подключается (ПодключитьВнешнююКомпоненту).
Работает подключение SSL под windows с x64 платформой, похоже проблема с компонентой для x32 разрядной платформы.
Спасибо за информацию. Проверим у себя на x86, если найдем ошибку исправим (но не раньше завтра)
К НЕоблачному ребиту получилось подключиться с SSL после того как в конфиге закомментировал проверку SSL цепочки сертификатов:
ssl_options.verify = verify_peer
А где именно закомментировали эту строчку? Т.е. правильно я понимаю, что это какое-то стороннее приложение на openssl, которое с проверкой сертификатов не работало с вашим внутреннем кроликом, а без проверки работало?
Правильно я понимаю, что вам в проверка подлинности сертификата в компоненте нужна, по этому нужно найти место/способ как зарегистрировать его в виндовс так, чтобы его видела компонента (также, как видит для облачного кролика)?
Под Linux компонента не подключается (ПодключитьВнешнююКомпоненту).
Для линукса пока расследовать не планируем, т.к. в данный момент не планируем использовать данную версию компоненты для Линукс. Скорее всего проблема с зависимостями, т.е. нужно попробовать собрать все зависимости статически внутрь компоненты.
@Begemoth2 Планируем использовать компоненту только под Linux. Если не будет работать SSL, то можно найти временные решения, до тех пор, пока не станет работать.
А где именно закомментировали эту строчку?
В конфиге rabbitmq
@akopylov-rdv
@akopylov-rdv Мы немного поразбирались с линуксом, причина проблемы в том, что в 1с лежит своя версия libstdc++. версии 6.7. И все библиотеки, юзающие фичи из версий выше, грузиться не будут. Т.е. если мы собираем нашу либу под libstdc++ 6.7, то она грузится, но системная openssl.so не грузится, ибо она собрана под системную libstdc++
Т.е. нормальным решением проблемы будет собрать компоненту со статическими библиотеками (т.е. все библиотеки нужных версий засунуть в компоненту), но пока мы это делать не планируем.
Есть способ обхода, если у вас используется ubuntu16/debian8 то вы можете сами попробовать собрать компоненту по инструкции из readme, т.к. в этих ОС системная libstdc++ ниже 6.7, то должно собраться и работать (но мы не уверены, сами не проверяли)
@akopylov-rdv Мы собрали релиз компоненты для линукса (все библиотеки встроили внутрь компоненты) https://share.bit-erp.ru/public/file/szZvAWe-sUWVROBFbS-lQg/PinkRabbitMQ_v1.10_7.zip Прошу проверить, работает ли у вас и написать
@Begemoth2
Компонента v1.10.7 подключается:
ssl_options.verify = verify_peer
в конфигурации Rabbit MQ.
Проверял на ubuntu 20.04 и 18.04.Буду пробовать работать с компонентой. Это задачу можно закрывать, если будут ещё вопросы, то отдельно напишу.
Спасибо!
@akopylov-rdv Скажите, имеется ли у Вас возможность протестировать компоненту, собранную на GutHub Actions? https://github.com/BITERP/PinkRabbitMQ/suites/2709752247/artifacts/59728198
Столкнулся с рядом проблем при попытке использования компоненты: