Ошибка 29273 что это: Ерип ошибка обмена данными с сервером расвиком сервис ошибка 29273

Содержание

«Не смогла пройти мимо»: керчане поздравили ветерана, про которого забыли местные чиновники (ВИДЕО) » Керчь ИНФО

«Не смогла пройти мимо»: керчане поздравили ветерана, про которого забыли местные чиновники (ВИДЕО)

Ветеран войны остался без парада и внимания чиновников на День Победы. Ошибку исправили керчане, которые самостоятельно поздравили ветерана цветами и подарками.

Он – 1926 года рождения и ему 94 года. Несмотря на возраст, коренной керчанин Семен ИВАЩЕНКО держится молодцом. Хоть и передвигается с помощью трости, это не мешает ему часто прогуливаться по улицам города. Так он и познакомился на днях с жительницей Керчи Анной Железняк.

«Я здесь с ребенком гуляла во дворе. Пожилой дедушка здесь ходил. Мы стали разговаривать. Он спросил, тепло ли мне на солнце. Так завязался разговор. Я его и раньше видела на рынке. Он выходил, торговал своей старой посудой. Спросила, как прошел 9 мая? Как поздравили. На что он сказал, что никто не пришел. И, если в прошлом году приходили волонтеры с пакетами, социальная служба, то в этом году он остался без какого-либо внимания», - рассказала Анна.


Девушка говорит, дедушка оказался скромным, сказал, что не обижается. Однако Анна решила, священный праздник должен быть у каждого ветерана. Позвонила друзьям-волонтерам. Сегодня они пришли поздравить Семена Григорьевича с праздником, принесли цветы, охапку воздушных шаров и несколько пакетов с продуктами.

«Почему ветеран с 14 медалями на груди остался без какого-либо поздравления в День Победы? И сегодня мы своими силами собрались, принесли продуктов, цветы и постарались подарить человеку праздник. Пусть и немного запоздалый, но сделали человеку приятно. Но так нельзя, сколько их осталось выдающихся людей, которые нам подарили мирное небо над головой?», - рассказала керчанка.


Больше часа пролетели незаметно. Пели песни, общались. Волонтеры зачитали два письма, которые лежали на столе. В одном ветерана поздравил глава Крыма Сергей АКСЕНОВ. Во втором – президент России Владимир ПУТИН. В свою очередь Семен Григорьевич поделился воспоминаниями о войне. Правда, память подводит, и многие даты он уже не помнит. Рассказывает, на фронт попал в 44-м году, в пехоту. А об окончании войны узнал на границе Германии и Австрии.

«Когда 8 мая в 3 часа ночи Жуков подписал окончание войны, мы стояли на границе Германия-Австрия. Вену брали 13 апреля. Нас подняли в 5 часов. И сообщили, что кончилась война. И полтора суток мы шли маршем. Ну что сделаешь. Слава Богу, прожили, пережили», - поделился воспоминаниями ветеран.


Также Семен Григорьевич рассказал, что уже несколько лет добивается восстановления документов подтверждающих, что он - участник войны. Их украли в поезде, когда возвращался домой. Пока у него на руках удостоверение «Ветеран тыла», и в одной из справок есть упоминание, что он является ветераном войны и участником боевых действий. Волонтеры пообещали, что помогут.

Читайте: Про героев забыли?: как в дни Победы выглядит воинское кладбище Керчи (ФОТО)

Отметим, история забывчивости администрации Керчи в отношении ветеранов не единственная. Редакция КерчьИНФО об этом писала и в прошлом году. Выводы чиновники так и не сделали...


 

Работа "в полях"

Один раз в квартал менеджеры и сотрудники головного офиса торговой сети "Вестер" на один день уходят "в поля" и становятся настоящими работниками торгового зала в магазине. Подобная практика не так давно пришла в Россию, но уже успела стать популярной и активно внедряется многими крупными торговыми сетями.
 

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

Не стал исключением и торговый центр "Вестер" на Сельме, где в этот раз стажировку прошли 10 офисных сотрудников. В компании считают, что руководящий состав должен понимать специфику работы сотрудников торгового зала. Продавцы, в свою очередь, усваивают высокие стандарты обслуживания клиентов.

 

Идеальная команда

 

Все сотрудники торговой сети "Вестер" владеют минимум одной линейной профессией. Совместная стажировка в зале помогает офисному персоналу разобраться, на что обращают внимание покупатели конкретных отделов, где необходимо улучшить качество сервиса. Во время работы в качестве продавцов менеджеры наравне с линейным персоналом формируют заявки, принимают и фасуют товары, а также выкладывают их на полки. Живые впечатления от работы в "поле" и знание проблемных мест помогают в дальнейшем эффективно использовать полученные навыки. 

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

Связаны одной целью 

В этот раз продавец-кассир Мария Садец узнала, как работается в тандеме с топ-менеджером ТС "Вестер". На протяжении рабочего дня Мария и

коммерческий директор торговой сети "Вестер" Наталья Каминская работали над оформлением входной зоны, где в преддверии новогоднего периода будут выставляться топ-товары месяца. 

– Главное при работе в зале – это управление персоналом, который вверен директору магазина, – рассказывает Наталья Каминская. – Здесь имеется в виду и грамотная расстановка сотрудников магазина по рабочим местам, и обеспечение доступности товара для покупателя, и оснащение каждой товарной позиции верным ценником. 

По словам Натальи Каминской, при выкладке товара необходимо руководствоваться определенным принципом, а работая на кассе – помнить о доброжелательности. Комплексное представление о процессах в торговом зале невозможно составить, просиживая в офисе.  

– Мне это помогает делать верификацию ассортимента, понимать, какие проблемы существуют и как их оптимально решить. Я могу увидеть, как моя работа и работа сотрудников отдела, который я возглавляю, реализуется на местах. 

– Помощь лишней не бывает, работы в магазине хватает, – с улыбкой говорит продавец-кассир Мария Садец. – Сотрудники офиса могут подсказать нам, например, совместимость товара, новую категорию продукции. Есть такие вещи, которые не всегда доступны продавцу на месте. 

Пример для подражания 

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

– Знаете, какой вывод я делаю после таких мероприятий? Что все мы – молодцы, что работаем одной большой, но дружной командой и не делим между собой: это моя работа, это не моя работа. Это наша общая компания, мы работаем на одно большое дело, мы учимся друг у друга. Это большой и полезный опыт для всех, – отмечает директор магазина "Вестер" на Сельме Светлана Капралова

Руководитель торгового центра не понаслышке знает о пользе корпоративного обучения. Так, Светлана Капралова работает в компании уже более 10 лет, а начинала она когда-то простым консультантом. Она до сих пор с благодарностью вспоминает своих учителей. 

Это я теперь вкладываю свои знания в своих сотрудников. Но если смотреть в целом, я ведь своего рода и креативный директор – нахожу любой компромисс, понимаю и нахожу выход из любой ситуации, – говорит Светлана Капралова. 

– Сотрудники офиса приходят к нам уже не в первый раз, – продолжает директор магазина. – Идея очень простая: со своей стороны, со стороны директора, я чувствую, что мы становимся как команда ближе, потому что вместе с менеджерами офиса находимся на рабочем месте. Когда мы начинаем работать вместе, мы уточняем нюансы, ищем компромиссы или вместе находим ошибки, которые можем исправить.  

– У меня в этом магазине отличная команда, – добавляет Светлана Капралова. – Когда есть хорошая команда, работать намного легче и проще. Твои заведующие, твои сотрудники – такие же единомышленники, как и ты, отдаются работе со всей душой и понимают, что это не для кого-то, а для себя делается, чтобы им здесь приятнее было работать. Тогда и работается легко, и понимание в коллективе есть. 

Работая "в полях", помимо фактической помощи работники офиса формируют и свою универсальность. Теперь они понимают, как работает каждый отдел магазина, и в случае необходимости смогут оперативно помочь как своим коллегам, так и покупателям.

© Информационное агентство Русский Запад

Мартин Фробишер (ок. 1535–1594). Шеренга великих путешественников

Читайте также

45. Микеланджело — статуе Дня (1535 г.)

45.  Микеланджело?— статуе Дня (1535 г.) Проворный День, единым махом ты Украсил позолотой Апеннины И тут же сполз в туманные низины, Покинувши горбатые хребты. Здесь спит Свобода в царстве нищеты, Здесь вялый люд покорнее скотины, А ты беспечно осветил равнины Под

46. Сэр Томас Мор — жене (1535 г.)

46. Сэр Томас Мор?— жене (1535 г.) Мне ведомо, как пламя очага Приветливый уют струит по дому, Как тень скользит по потолку ночному, Как мне улыбка близких дорога. И знаю я, как холодны снега, Как ветер треплет рощу, что солому, Как заметает путь и верховому И пешему жестокая

Вторая Аудиенция: зов Южного моря (1530–1535)

Вторая Аудиенция: зов Южного моря (1530–1535) Снова в Мексике. Кортеса переполняла радость. Он возвращался с высоко поднятой головой, богатый, осыпанный почестями, с престижными титулом и должностью. В глубине души он не верил, что когда-нибудь снова ступит на землю Новой

20. Джордж Мартин и Дик Джеймс

20. Джордж Мартин и Дик Джеймс Происхождение, пристрастия и уровень культуры Джорджа Мартина должны были, казалось развести его и «Битлз» на расстояние в миллион световых лет. Высокий красавец, он мог бы выступать в амплуа героя-любовника, его манеры выдавали образование,

Сан-Мартин-де-Ре

Сан-Мартин-де-Ре Вечером Бэтон пересылает мне три сигареты и бумагу, и я читаю: «Бабочка, я знаю, что ты будешь поминать меня добрым словом. Я надзиратель, но стараюсь как можно меньше вредить заключенным. Я взялся за эту работу потому, что у меня девять детей, и я надеюсь на

Томас Мор, канцлер Англии (1478–1535)

Томас Мор, канцлер Англии (1478–1535) Канцлер Английского королевства и мыслитель, изобретатель «Утопии» Томас Мор родился 7 февраля 1478 года в Лондоне в семье юриста. Его отец Джон Мор был богатым человеком и занимал должность судьи Высшего королевского суда. Мальчиком

Густав II Адольф, король Швеции (1594–1632)

Густав II Адольф, король Швеции (1594–1632) Король Густав II Адольф, заложивший основы шведского великодержавия и за свои военные успехи получивший прозвище «Северный лев», родился 9 декабря 1594 года в Стокгольме. Он был сыном короля Швеции Карла IX и Кристины Гольштейн. Отец

Мартин

Мартин Дорогая Вальтраут, я только что узнал о смерти Мартина - сегодня, 8 февраля 1993 года, - и сразу же позвонил Вашей дочери.Хотя такой спокойной смерти можно только позавидовать, эта внезапная новость нас глубоко потрясла. Еще недавно он был здесь, и у нас произошел один

«МАРТИН ИДЕН»

«МАРТИН ИДЕН»

Екатерина Арагонская – Генриху VIII (1535 год)

Екатерина Арагонская – Генриху VIII (1535 год) Дорогой милорд, супруг,вверяю Вам себя. Час моей смерти уже близок, и посему нежная любовь, каковую я питаю к Вам, побуждает меня в нескольких словах напомнить Вам о здоровье и спасении души, которые Вам надлежит ставить превыше

Сан-Мартин-де-лос-Андес

Сан-Мартин-де-лос-Андес По заброшенной хижине мы поняли, что добрались до границы между Чили и Аргентиной. Я был на свободе и написал на стене хижины: «До скорого свиданья, моя родина. Я ухожу, но ты остаешься со мною».В Сан-Мартине-де-лос-Андес нас должен был ждать знакомый

17. Крещение кровью (1534–1535)

17. Крещение кровью (1534–1535) Казалось, что империя, страдавшая от многочисленных внутренних потрясений и внешних ударов, вот-вот развалится. В то время как внешняя угроза исходила от французов и турок-османов, подъём религиозных движений в германских княжествах выглядел

18.

 За Шварцвальдом (1535–1536)

18. За Шварцвальдом (1535–1536) Старые противоречия между Францией, империей и Венецией, ослабившие христианский мир, побудили турок к новому нашествию в Европу. Повсюду шла война. Но где был Фауст? Решил ли он, как бывало прежде, служить императору? В то время Фауст давно

Обед в Базеле (ок. 1535)

Обед в Базеле (ок. 1535) Вспомнив байку про случай с нечистой силой в Ликсхайме, Гаст приводит «другую историю о Фаусте»:«Когда мы с ним обедали в Большой коллегии в Базеле, он отдал повару изжарить птиц, и не знаю, где он купил их или от кого получил в подарок, потому что их

Мартин Борман

Мартин Борман Самой ненавистной и диктаторской личностью в ближайшем окружении Адольфа Гитлера был рейхслейтер Мартин Борман. Внешне и тогда, когда ему это было нужно, он со своими кошачьими манерами казался олицетворением чрезмерного дружелюбия. Однако на самом деле он

В поисках идеала / Хабр

Раз пошла такая пьянка, то и я, в свою очередь, решил представить на суд общественности свой вариант макета, который, как мне кажется, находится очень близко к идеальному.

А в итоге у меня получилось вот что: http://gruzzilkin.110mb.com/layout/
По моей задумке идеальный макет должен обладать следующими свойствами:
  • Doctype XHTML 1.0 Strict;
  • верстка без использования таблиц в качестве элементов оформления;
  • кроссбраузерность;
  • валидный html и css код;
  • макет не разваливается при изменении размеров страницы и масштабировании шрифтов;
  • смотрелось бы приемлемо с отключенной графикой;
  • содержимое обрамляется красивой рамкой со скругленными углами;
  • подвал всегда прижат к низу экрана;
  • колонки одинаковой высоты;
  • контент в HTML-коде страницы находится как можно выше;
  • минимум «лишних» элементов разметки.

Считаю, что все пункты плана, кроме последнего, мне выполнить удалось.

В принципе, все что я сделал, является тем же велосипедом, но собрал я этот велосипед из разных деталей по всему Интернету:

  • перевод статьи «В поисках Святого Грааля» на Design For Masters;
  • статья «Flexible box with custom corners and borders» на 456 Berea st;
  • статья «Faux Absolute Positioning» на A List Apart.

Вот как я шел к созданию итогового макета:

Для начала был взят и сверстан свой вариант Holy Grail. Посмотреть его можно здесь. Он ничем революционным не отличался от того варианта, что был на ALA, просто подвал прижат к низу экрана и колонки одинаковой высоты.
После появления статьи «Faux Absolute Positioning» на A List Apart, я под впечатлением от этой техники решил переделать свой «идеальный» макет, и вот что у меня получилось в итоге.
Потом я наткнулся на разработанный Роджером Йоханссоном (Roger Johansson) способ создания гибких рамок и решил дополнить им свой макет.
В конце концов я получил то, что хотел. Но в то же время количество дополнительных блоков в моем варианте просто ужасает. Так же стоит отметить, что для «колонок одинаковой высоты» не получится применить не повторяющееся фоновое изображение, прижатое к низу этих самых колонок (т.к. низ находится далеко за пределами окна просмотра). Т.е. это изображение пришлось бы позиционировать внутри родительского контейнера .box или (и?) .content. И если у вас на руках будет дизайн, отличающийся от моего, с ним придется долго и упорно танцевать.
Не считая себя опытным и искушенным верстальщиком, я хотел бы попросить совета у пользователей Хабра, как можно было бы оптимизировать данный макет? Или уже есть другие способы, намного проще моего и удовлетворяют всем описанным выше требованиям?
Заранее спасибо за ответы.

ORA-29273: подсказки сбоя HTTP-запроса

Вопрос: Я получение ошибки ORA-29273 при выполнении HTTP-запроса:

SQL> выберите utl_http. request ('http://www.mysys.com') из двойной;
*

ОШИБКА в строка 1:
ORA-29273: сбой HTTP-запроса
ORA-06512: в "SYS.UTL_HTTP", строка 1577
ORA-24247: доступ к сети запрещен по списку контроля доступа (ACL)
ORA-06512: в строке 1

Как я могу устранить ошибку ORA-29273?

Ответ: Утилита oerr показывает это на ошибке ORA-29273:

ORA-29273 - Ошибка HTTP-запроса.

Причина: Пакет UTL_HTTP не смог выполнить HTTP-запрос.

Действие: Использование get_detailed_sqlerrm, чтобы просмотреть подробное сообщение об ошибке.
Исправьте ошибку и повторите HTTP-запрос.

В большинстве случаев ошибка ORA-29273 не помогает само, и вам нужно посмотреть на второе сообщение, чтобы увидеть первопричина прерывания. В этом случае настоящая ошибка - это Ошибка ORA-24247.

Обучение Oracle от Дона Бурлесона

Лучшее на сайте "Оракул Учебные курсы "находятся на расстоянии одного телефонного звонка! Вы можете пройти индивидуальное обучение Oracle от Дональда Берлесона прямо у себя в магазине!



Burleson - американская команда

Примечание: Этот оракул документация была создана как справочник по поддержке и обучению Oracle для использования нашими Специалисты-консультанты по настройке производительности администраторов баз данных. Не стесняйтесь задавать вопросы на нашем Форум Oracle.

Проверить опыт! Кто-нибудь рассматривая возможность использования услуг специалиста службы поддержки Oracle, следует самостоятельно исследовать их полномочия и опыт, а не полагаться на реклама и самопровозглашенная экспертиза. Все законные эксперты Oracle публиковать их оракул квалификации.

Опечатка? Технологии Oracle меняются, и мы стремимся обновлять нашу информацию о поддержке Oracle BC.Если вы обнаружите ошибку или у вас есть предложение по улучшению нашего содержания, мы будем признательны за ваше Обратная связь. Просто электронное письмо:

и укажите URL-адрес страницы.


Авторские права © 1996-2020

Все права защищены Бурлесон

Oracle

® является зарегистрированным товарным знаком Oracle Corporation.

Неустранимая ошибка SSL / Сбор дампа с помощью tcpdump и анализ с помощью Wireshark

Недавно столкнулся с проблемой SSL в Oracle Database 11.2.0.4 Среда Enterprise Edition.
Проблема возникала при тестировании веб-службы SSL.
Этот веб-сервис SSL был вызван с использованием UTL_HTTP через Oracle Wallet.

Пример тестовой команды:
select UTL_HTTP.request ('https: // ', null, '', 'wallet_password') из двойного;

Вызов завершился ошибками «ORA-29273 HTTP Request failed» и «ORA-28860: Fatal SSL error».

Я проверил кошелек, все в порядке.
Сертификаты были правильными, и кошелек был доступен.. (ее можно было открыть и запросить)
Версия базы данных была 11.2.0.4 Enterprise Edition .. Она работала в облаке Exadata на компьютере Заказчика.
База данных была создана с использованием облачного графического интерфейса пользователя среды Exadata Cloud at Customer.

В любом случае; «Неустранимая ошибка SSL» показалась мне такой странной, поэтому я решил проанализировать ее дальше.

Сначала я проверил IP-адрес сервера, на котором размещалась эта веб-служба.
Затем я проверил маршрут в ОС, чтобы найти интерфейс, который использовался при вызове этой веб-службы.
Найдя интерфейс, я запустил на нем tcpdump и воспроизвел ошибку. (с использованием sqlplus / в качестве sysdba на сервере базы данных)

Моя команда tcpdump была следующей;

tcpdump -s 0 -i bondeth0 -w erman.tcpdump

Обратите внимание, что:
Я использовал параметр s, потому что -s 0 установит байт захвата на максимальное значение.
Я использовал параметр -w, чтобы создать выходной файл для анализа с помощью Wireshark.
Я использовал -i, чтобы указать интерфейс Ethernet для захвата.

Собрав tcpdump, я открыл файл с именем erman.tcpdump с помощью Wireshark.

Я переупорядочил содержимое файла по IP-адресу назначения и сразу увидел трафик и пакеты, связанные с SSL-соединением.

Проблема была там ..

Сервер пытался использовать TLS V1.2, но клиент (Oracle Database) не смог его обработать.


Настоящей ошибкой была ошибка «Версия протокола». Это означает, что база данных Oracle, которая пыталась вызвать веб-службу, не могла обработать трафик TLS 1.2.

На самом деле, у меня было сообщение в блоге о другом случае использования SSL, и в этом сообщении я уже упоминал об этой поддержке TLS 1.2 для Oracle Database 11.2.0.4.

Здесь -> https://ermanarslan.blogspot.com/2018/12/rdbms-tls-12-support-and-issues-ora.html

В основном;

Oracle Database нуждается в MESv415 для поддержки TLS 1.2, и этот MESv415 поставляется с блоком питания DB OCT 2018 .. (или Exadata Bundle Patch OCT 2018)

Обратите внимание, что -> поскольку это была среда ECC, мы применили Exadata Bundle OCT 2018.. (В DB PSU 2018 было много конфликтов и несовместимости с патчами, которые были применены в Oracle Home, созданном с помощью облачного графического интерфейса)

Патч, который я применил, был Oracle Database Патч для EXADATA (OCT2018- 11. 2.0.4.181016) для ошибки 28462975.


Обратите внимание, что: MES - это сокращение от RSA BSAFE Micro Edition Suite, который представляет собой набор инструментов для разработки программного обеспечения для встраивания криптографических, сертификатов и технологий безопасности транспортного уровня (TLS) в приложения, устройства и системы C и C ++.С выпуском блока питания в октябре 2018 г. все поддерживаемые версии БД используют набор инструментов RSA BSAFE MESv415 или выше. Что ж ... После исправления базы данных с помощью Exadata Bundle Patch OCT 2018 проблема была исправлена.

Но на самом деле я написал это сообщение в блоге, чтобы показать вам аналитическую часть.

Как вы уже понимаете, важно правильно провести анализ ...

В конце дня мы анализируем сетевые пакеты с помощью wirehark .. Мы также использовали команду route, команду tcpdump и т. Д..

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

для https - Oracle Database Development

В последнем посте блога я писал о том, как получить доступ к HTTP-ресурсу и необходимому для этого ACL. Это отлично работает для HTTP, но по мере того, как мир обращается к HTTPS, в большинстве случаев этого недостаточно.

В этом посте я рассмотрю, как настроить хранилище доверенных сертификатов в базе данных, чтобы разрешить доступ по протоколу HTTPS.Я буду использовать тот же простой выбор для захвата html для веб-страницы, чтобы показать, как это работает.

Где мы остановились

Последнее сообщение в блоге закончилось тем, что показало, как доступ по HTTPS к тому же веб-сайту, который мы начали работать с HTTP, дал нам ошибку сертификата. Вы можете просмотреть этот пост, чтобы увидеть настройку ACL для HTTP.

Это ошибка, которую мы получаем сейчас.

  выберите utl_http.request ('https://example.com') из двойного;  
 ORA-29273: Ошибка HTTP-запроса.
ORA-06512: в «SYS.UTL_HTTP ", строка 1530
  ORA-29024: Ошибка проверки сертификата 
ORA-06512: в "SYS.UTL_HTTP", строка 380
ORA-06512: в «SYS. UTL_HTTP», строка 1470
ORA-06512: в строке 1
29273. 00000 - «Ошибка HTTP-запроса»
* Причина: пакету UTL_HTTP не удалось выполнить HTTP-запрос.
* Действие: используйте get_detailed_sqlerrm, чтобы просмотреть подробное сообщение об ошибке.
 Исправьте ошибку и повторите HTTP-запрос. 

Таким образом, у нас есть ACL для разрешения вызова, но сертификату этого веб-сайта нельзя доверять.

Что такое трастовый магазин

Нам нужно настроить наше хранилище доверенных сертификатов. Это механизм, показывающий, что вы хотите доверять определенным сертификатам. Мы хотим доверять тем, которые используются поставщиками, выдающими сертификаты.

Нам не нужен сертификат для определенного веб-сайта, а только те, которые находятся в цепочке сертификатов, использованных для его создания. Будет как минимум на один сертификат больше, чем сертификат для сайта, к которому вы обращаетесь.

Мы видим эту работу каждый день, когда просматриваем Интернет.Почти каждый сайт, который вы посещаете в наши дни, перенаправляется на https. Мой блог обслуживается обоими. Я только что заметил, что функция пересылки HTTP на HTTPS не активна, так что сейчас она работает. Мне нужно будет посмотреть на это, но я заметил это только после того, как написал этот пост.

Вернемся к веб-браузерам: у них есть хранилище доверенных сертификатов, заполненное наиболее распространенными из них, так что вы переходите на каждый сайт без предупреждений. Иногда вы попадаете в тот, которого нет или у которого истек срок действия сертификата. База данных поставляется с пустым хранилищем доверенных сертификатов, что заставляет вас явно доверять каждому сертификату, который вы хотите использовать.

Как скачать сертификат

Когда вы просматриваете все блоги, в которых говорится о HTTPS для Oracle DB, все инструкции, которые я нашел, были сосредоточены на том, как вы нажимаете на сертификат через веб-браузер. Больше всего это видно в IE. Проблема в том, что эти инструкции в значительной степени устаревают, как только веб-браузер выпускает новую версию. Я знаю несколько вещей, которые так часто перемещаются в пользовательском интерфейсе. Кажется, что ни один поставщик еще не нашел в своем графическом интерфейсе места, где он был бы доволен.

Хотя мне нравится графический интерфейс для выполнения специальных задач, я совсем не доволен тем, что полагаюсь на него для загрузки вещей, необходимых для установки. Если есть новый сертификат, я хочу просто получить его с помощью скрипта, а не щелкать по нему в графическом интерфейсе.

После долгого чтения, тестирования и экспериментов я обнаружил, что это работает во всех случаях, которые я пробовал.

  openssl s_client -connect example.com:443 -showcerts  

Далее следует базовое объяснение, для полного понимания сначала погрузитесь в мир openssl.

s_client запускает это как клиент, подключающийся к удаленному серверу с помощью SSL / TLS. Это означает, что подключение будет выполняться как веб-браузер или любая другая клиентская программа (например, база данных).

-connect определяет хост: порт для подключения.

-showcerts отображает всю цепочку сертификатов.

Для example.com он вернет что-то вроде этого:

 ПОДКЛЮЧЕНО (00000008)
depth = 2 C = США, O = DigiCert Inc, OU = www.digicert.com, CN = Global Root CA DigiCert
проверить возврат: 1
глубина = 1 C = США, O = DigiCert Inc, CN = DigiCert SHA2 Secure Server CA
проверить возврат: 1
depth = 0 C = США, ST = Калифорния, L = Лос-Анджелес, O = Интернет-корпорация по присвоению имен и номеров, OU = Technology, CN = www.example.org
проверить возврат: 1
---
Цепочка сертификатов
 0 с: / C = США / ST = Калифорния / L = Лос-Анджелес / O = Интернет-корпорация по присвоению имен и номеров / OU = Technology / CN = www.example.org
 i: / C = US / O = DigiCert Inc / CN = DigiCert SHA2 Secure Server CA
----- НАЧАТЬ СЕРТИФИКАТ -----
MIIHQDCCBiigAwIBAgIQD9B43Ujxor1NDyupa2A4 / jANBgkqhkiG9w0BAQsFADBN
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E
aWdpQ2VydCBTSEEyIFNlY3VyZSBTZXJ2ZXIgQ0EwHhcNMTgxMTI4MDAwMDAwWhcN
MjAxMjAyMTIwMDAwWjCBpTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3Ju
aWExFDASBgNVBAcTC0xvcyBBbmdlbGVzMTwwOgYDVQQKEzNJbnRlcm5ldCBDb3Jw
b3JhdGlvbiBmb3IgQXNzaWduZWQgTmFtZXMgYW5kIE51bWJlcnMxEzARBgNVBAsT
ClRlY2hub2xvZ3kxGDAWBgNVBAMTD3d3dy5leGFtcGxlLm9yZzCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBANDwEnSgliByCGUZElpdStA6jGaPoCkrp9vV
rAzPpXGSFUIVsAeSdjF11yeOTVBqddF7U14nqu3rpGA68o5FGGtFM1yFEaogEv5g
rJ1MRY / d0w4 + dw8JwoVlNMci + 3QTuUKf9yh38JxEdG3J37Mfj2C3cREGkGNBnY80
eyRJRqzy8I0LSPTTkhr3okXuzOXXg38ugr1x3SgZWDNuEaE6oGpyYJIBWZ9jF3pJ
QnucP9vTBejMh474qvyd0QVQq3WxHrogy4nUbWw3gihMxT98wRD1oKVma1NTydvt
hcNtBfhkp8kO64 / hxLHrLWgOFT / l4tz8IWQt7mkrBHjbd2XLVPkCAwEAAaOCA8Ew
ggO9MB8GA1UdIwQYMBaAFA + AYRyCMWHVLyjnjUY4tCzhxtniMB0GA1UdDgQWBBRm
mGIC4AmRp9njNvt2xrC / oW2nvjCBgQYDVR0RBHoweIIPd3d3LmV4YW1wbGUub3Jn
ggtleGFtcGxlLmNvbYILZXhhbXBsZS5lZHWCC2V4YW1wbGUubmV0ggtleGFtcGxl
Lm9yZ4IPd3d3LmV4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5lZHWCD3d3dy5leGFt
cGxlLm5ldDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG
AQUFBwMCMGsGA1UdHwRkMGIwL6AtoCuGKWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNv
bS9zc2NhLXNoYTItZzYuY3JsMC + gLaArhilodHRwOi8vY3JsNC5kaWdpY2VydC5j
b20vc3NjYS1zaGEyLWc2LmNybDBMBgNVHSAERTBDMDcGCWCGSAGG / WwBATAqMCgG
CCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMAgGBmeBDAEC
AjB8BggrBgEFBQcBAQRwMG4wJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2lj
ZXJ0LmNvbTBGBggrBgEFBQcwAoY6aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29t
L0RpZ2lDZXJ0U0hBMlNlY3VyZVNlcnZlckNBLmNydDAMBgNVHRMBAf8EAjAAMIIB
fwYKKwYBBAHWeQIEAgSCAW8EggFrAWkAdwCkuQmQtBhYFIe7E6LMZ3AKPDWYBPkb
37jjd80OyA3cEAAAAWdcMZVGAAAEAwBIMEYCIQCEZIG3IR36Gkj1dq5L6EaGVycX
sHvpO7dKV0JsooTEbAIhALuTtf4wxGTkFkx8blhTV + 7sf6pFT78ORo7 + cP39jkJC
AHYAh4W / 51l8 + IxDmV + 9827 / Vo1HVjb / SrVgwbTq / 16ggw8AAAFnXDGWFQAABAMA
RzBFAiBvqnfSHKeUwGMtLrOG3UGLQIoaL3 + uZsGTX3MfSJNQEQIhANL5nUiGBR6g
l0QlCzzqzvorGXyB / yd7nttYttzo8EpOAHYAb1N2rDHwMRnYmQCkURX / dxUcEdkC
wQApBo2yCJo32RMAAAFnXDGWnAAABAMARzBFAiEA5Hn7Q4SOyqHkT + kDsHq7ku7z
RDuM7P4UDX2ft2Mpny0CIE13WtxJAUr0aASFYZ / XjSAMMfrB0 / RxClvWVss9LHKM
MA0GCSqGSIb3DQEBCwUAA4IBAQBzcIXvQEGnakPVeJx7VUjmvGuZhrr7DQOLeP4R
8CmgDM1pFAvGBHiyzvCh2QGdxFl6cf7wbp7BoLCRLR / qPVXFMwUMzcE1GLBqaGZM
v1Yh3lvZSLmMNSGRXdx113pGLCInpm / TOhfrvr0TxRImc8BdozWJavsn1N2qdHQu
N + UBO6bQMLCD0KHEdSGFsuX6ZwAworxTg02 / 1qiDu7zW7RyzHvFYA4IAjpzvkPIa
X6KjBtpdvp / aXabmL95YgBjT8WJ7pqOfrqhpcmOBZa6Cg6O1l4qbIFH / Gj9hQB5I
0Gs4 + eH6F9h4SojmPTYkT + 8KuZ9w84Mn + M8qBXUQoYoKgIjN
----- КОНЕЦ СЕРТИФИКАТА -----
 1 с: / C = US / O = DigiCert Inc / CN = DigiCert SHA2 Secure Server CA
 i: / C = US / O = DigiCert Inc / OU = www. digicert.com/CN=DigiCert Глобальный корневой центр сертификации
----- НАЧАТЬ СЕРТИФИКАТ -----
MIIElDCCA3ygAwIBAgIQAf2j627KdciIQ4tyS8 + 8kTANBgkqhkiG9w0BAQsFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0xMzAzMDgxMjAwMDBaFw0yMzAzMDgxMjAwMDBaME0xCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxJzAlBgNVBAMTHkRpZ2lDZXJ0IFNIQTIg
U2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
ANyuWJBNwcQwFZA1W248ghX1LFy949v / cUP6ZCWA1O4Yok3wZtAKc24RmDYXZK83
nf36QYSvx6 + M / hpzTc8zl5CilodTgyu5pnVILR1WN3vaMTIa16yrBvSqXUu3R0bd
KpPDkC55gIDvEwRqFDu1m5K + wgdlTvza / P96rtxcflUxDOg5B6TXvi / TC2rSsd9f
/ ld0Uzs1gN2ujkSYs58O09rg1 / RrKatEp0tYhG2SS4HD2nOLEpdIkARFdRrdNzGX
kujNVA075ME / OV4uuPNcfhCOhkEAjUVmR7ChZc6gqikJTvOX6 + guqw9ypzAO + sf0
/ RR3w6RbKFfCs / mC / bdFWJsCAwEAAaOCAVowggFWMBIGA1UdEwEB / wQIMAYBAf8C
AQAwDgYDVR0PAQH / BAQDAgGGMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYY
aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMHsGA1UdHwR0MHIwN6A1oDOGMWh0dHA6
Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RDQS5jcmwwN6A1
oDOGMWh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RD
QS5jcmwwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwHQYDVR0OBBYEFA + AYRyCMWHVLyjnjUY4tCzh
xtniMB8GA1UdIwQYMBaAFAPeUDVW0Uy7ZvCj4hsbw5eyPdFVMA0GCSqGSIb3DQEB
CwUAA4IBAQAjPt9L0jFCpbZ + QlwaRMxp0Wi0XUvgBCFsS + JtzLHgl4 + mUwnNqipl
5TlPHoOlblyYoiQm5vuh7ZPHLgLGTUq / sELfeNqzqPlt / yGFUzZgTHbO7Djc1lGA
8MXW5dRNJ2Srm8c + cftIl7gzbckTB + 6WohsYFfZcTEDts8Ls / 3HB40f / 1LkAtDdC
2iDJ6m6K7hQGrn2iWZiIqBtvLfTyyRRfJs8sjX7tN8Cp1Tm5gr8ZDOo0rwAhaPit
c + LJMto4JQtV05od8GiG7S5BNO98pVAdvzr508EIDObtHopYJeS4d60tbvVS3bR0
j6tJLp07kzQoh4jOlOrHvdPJbRzeXDLz
----- КОНЕЦ СЕРТИФИКАТА -----
 2 с: / C = US / O = DigiCert Inc / OU = www. digicert.com/CN=DigiCert Глобальный корневой центр сертификации
 i: / C = US / O = DigiCert Inc / OU = www.digicert.com / CN = Глобальный корневой центр сертификации DigiCert
----- НАЧАТЬ СЕРТИФИКАТ -----
MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
CSDMAZOnTjC3U / dDxGkAV53ijSLdhwZAAIEJzs4bg7 / fzTtxRuLWZscFs3YnFo97
nh6Vfe63SKMI2tavegw5BmV / Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
43C / dxC // Ah3hdmoRBBYMql1GNXRor5h5idq9Joz + EkIYIvUX7Q6hL + hqkpMfT7P
T19sdl6gSzeRntwi5m3OFBqOasv + zbMUZBfHWymeMr / y7vrTC0LUq7dBMtoM1O / 4
gdW7jVg / tRvoSSiicNoxBN33shbyTApOB6jtSj1etX + jkMOvJwIDAQABo2MwYTAO
BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH / BAUwAwEB / zAdBgNVHQ4EFgQUA95QNVbR
TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK + t1EnE9SsPTfrgT1eXkIoyQY / Esr
hMAtudXH / vTBh2jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp / 2PV5Adg
06O / nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp + dWOIrWcBAI + 0tKIJF
PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU + Krk2U886UAb3LujEV0ls
YSEY1QSteDwsOoBrp + uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4 =
----- КОНЕЦ СЕРТИФИКАТА -----
---
Сертификат сервера
subject = / C = US / ST = California / L = Лос-Анджелес / O = Интернет-корпорация по присвоению имен и номеров / OU = Technology / CN = www. example.org
эмитент = / C = US / O = DigiCert Inc / CN = DigiCert SHA2 Secure Server CA
---
Имена ЦС сертификатов клиента не отправлены
Временный ключ сервера: ECDH, P-256, 256 бит
---
Подтверждение SSL прочитало 4643 байта и записало 322 байта
---
Новый, TLSv1 / SSLv3, шифр ECDHE-RSA-AES128-GCM-SHA256
Открытый ключ сервера - 2048 бит
Поддерживается безопасное повторное согласование
Сжатие: НЕТ
Расширение: НЕТ
Нет согласования ALPN
SSL-сессия:
 Протокол: TLSv1.2
 Шифр: ECDHE-RSA-AES128-GCM-SHA256
 Идентификатор сеанса: 9EABB694EB9920D06E661977AB2BA1C57C5E6BF8EAEE7D3CD96A5A853956E63F
 Идентификатор сеанса-ctx:
 Мастер-ключ: 42BDA71815735B41A0BBD512D84DB1B71B092C896CA498098D523B3A618809DD8926AFAD86F81

62ACFB12E5ECA1 Подсказка о времени существования билета сеанса TLS: 7200 (секунд) Билет сеанса TLS: 0000 - 57 22 f3 96 0c 39 7a 40-ec 8d ce a4 1b 04 67 f1 W ".F ........ 0020 - c9 c7 ce a6 97 5a 6f 0f-50 32 b6 6b d5 1c c2 12 ..... Zo.P2.k .... 0030 - 4f b3 41 00 1e a2 2a 57-b2 f8 a5 b7 cc d0 fa 86 O. A ... * W ........ 0040 - a8 66 78 c4 bb 0d ce fd-ca 6a 94 c8 cf c2 e0 44 .fx ...... j ..... D 0050 - f3 2f 13 7b 81 52 ef 8f-64 22 1e 81 24 3f fc 50 ./.{.R..d"..$?.P 0060 - 02 56 a2 11 9f 20 cb bf-5b ee ed 8b 0b e0 0d 28 .V ... .. [...... ( 0070 - 7a de 49 c0 c9 99 10 12-1b ea b5 38 da 57 42 6c z.I ........ 8.WBl 0080 - f4 df ae 0f f2 65 0e d0-72 29 af 11 61 af 8e c0..... э..р) .. а ... 0090-20 be 28 c9 4f 9a cf 5f-be 48 13 fd d7 e8 69 69. (. O .._. H .... ii Время начала: 15872
Тайм-аут: 7200 (сек) Проверить код возврата: 0 (ок) --- закрыто

Это довольно сложный файл для чтения и интерпретации, к счастью, нам нужно только захватить некоторые части и сохранить в файл или два.

Нам нужны следующие разделы:

 ----- НАЧАТЬ СЕРТИФИКАТ -----
<... вырезать ...>
----- КОНЕЦ СЕРТИФИКАТА ----- 

Вы найдете три таких раздела, только последние два скопируйте в новые файлы.В приведенных ниже примерах я буду использовать имена cert1. txt и cert2.txt.

Создание бумажника

Теперь мы готовы настроить кошелек для http-доступа example.com.

Для всего этого воспользуемся программой «orapki», установленной вместе с базой данных.

Давайте сначала создадим пустой кошелек, в который мы можем добавить сертификаты.

  orapki wallet create -wallet blogwallet -auto_login -pwd BlogWallet1  

При этом создается кошелек с именем «blogwallet», с его помощью выполняется автоматический вход в систему, а для внесения изменений требуется ввод пароля «BlogWallet».При необходимости имя файла можно указать с помощью пути.

Теперь, когда у нас есть кошелек, мы можем добавить два наших сертификата из цепочки сертификатов, которую мы нашли для example.com.

  orapki wallet add -wallet blogwallet -trusted_cert -pwd BlogWallet1 -cert cert1.txt
orapki wallet add -wallet blogwallet -trusted_cert -pwd BlogWallet1 -cert cert2. txt  

Взгляните на кошелек, это фактически каталог с файлами в нем.

Проверка работоспособности

Теперь у нас есть кошелек, который должен позволить нам, например, пройти проверку сертификата.com. Убедитесь, что файл кошелька доступен для чтения пользователю, запускающему базу данных, обычно «oracle».

  выберите utl_http.request ('https://example.com'
     , ноль
     , 'файл: / opt / oracle / oradata / XE / XEPDB1 / blogwallet /')
  от двойного;  
  "


  Пример домена   

Снова остальная часть вывода была отключена для краткости.

Вот и все, теперь у нас настроено соединение https.Немного ACL и немного добавления сертификатов в хранилище доверенных сертификатов, обслуживаемое кошельком в Oracle.

При этом можно настроить любой тип URI с использованием HTTPS, например, REST-вызовы или аутентификацию с использованием облачных сервисов. Но об этом в другой раз и в другом сообщении в блоге.

Библиотека документов

MarkView - результаты проверки документов в ORA-29273; ORA-06512; ORA-12545

  1. Последнее обновление
  2. Сохранить как PDF
  1. Резюме
    1. Поведение
    2. Известные причины
    3. Разрешение

Резюме

Поведение

Попытка извлечь документ в библиотеке документов MarkView приводит к ошибке:

При отправке вашего сообщения произошла ошибка.ORA-29273: сбой HTTP-запроса ORA-06512: в «SYS.UTL_HTTP», строка 1022 ORA-12545: Подключиться
не удалось, потому что целевой хост или объект не существует 

Я подтвердил, что модуль транспорта документов MarkView работает на порту 8888, открыв браузер и подключившись к странице OC4J по умолчанию.

Я указал IP-адрес сервера документов MarkView и порт http (8888) для модуля транспорта документов MarkView в пути к тому HTTP_TO_DTM в MarkView Administration для тома рассматриваемого документа (path = dtm: http: // 10.3.16.45: 8888 / mvasdtm).

Рассматриваемый документ можно без проблем просматривать с помощью средства просмотра MarkView, поэтому модуль транспорта документов MarkView, похоже, работает для этой операции.

Известные причины

Функция извлечения из библиотеки документов MarkView

использует пакет Oracle UTL_HTTP для подключения к модулю транспорта документов MarkView для копирования документа, связанного с записью. Похоже, что соединение из БД с модулем переноса документов MarkView не может быть завершено, поскольку модуль переноса документов MarkView не может ответить на задействованный процесс базы данных.

Разрешение

Чтобы попытаться исправить поведение, попробуйте следующее.

  1. Добавить полное имя сервера документов в файл локальных хостов сервера базы данных
  2. Измените предпочтение MVAS_DTM_BASE_URL, чтобы включить полное имя

После этого выезд должен работать нормально. Проблема этого типа обычно указывает на сетевую настройку сервера БД, вполне вероятно, что у него нет DNS и настройки домена по умолчанию, поэтому «исправление» этой настройки также должно решить проблему.

Ключевые слова: записи, управление, загрузка, TNS, сбой подключения, администратор, проверка

Вызов ORDS из ВНУТРИ БД

Мне все время задают этот вопрос… может ли ORDS помочь мне выполнить HTTP-вызов из базы данных?

И простой ответ: «Нет, не совсем так».

ORDS отвечает на HTTP-запросы, направленные к базе данных, а не на HTTP-запросы.

Но… если у вас есть база данных Oracle, которой нужно получать данные из другой базы данных, где не было доступной DB_LINK, тогда ORDS и HTTP могли бы быть решением.

Выполнение базы данных по HTTP-вызову из PL / SQL

Создание чрезвычайно очевидного заявления об отказе от ответственности

В этом нет никакого смысла, если ORDS, с которым вы разговариваете… обслуживает одну и ту же базу данных. Если БД выполняет GET или POST-вызов ORDS, который затем использует пул соединений JDBC, чтобы вернуться в вашу базу данных для выполнения запроса… это не имеет смысла. Вы могли бы просто использовать SQL и PL / SQL, чтобы получить то, что вам нужно, вместо добавления сети и HTTP в уравнение.

Этот сценарий предназначен для случаев, когда вам нужно перейти к ДРУГОЙ базе данных, а в вашем распоряжении нет DB_LINK.

Списки контроля доступа (ACL)

Произносится «ackles» - вам понадобится один из них, если вы работаете в экземпляре Oracle с версией 12c или более поздней. Эти правила говорят, кто и что может делать, когда речь идет о подключении базы данных к сети.

Мне нужно дать моему пользователю разрешение на обращение к ORDS в сети. Обратите внимание, что значения NULL в этих вызовах действуют как символы подстановки, поэтому чем более универсальным вы получаете, тем больше полномочий вы предоставляете пользователю. Используйте их с особой осмотрительностью и ВСЕГДА работайте со своим администратором баз данных.

 НАЧАТЬ
  DBMS_NETWORK_ACL_ADMIN.create_acl (
    acl => 'get_ords',
    description => 'позвольте мне обратиться к ордерам',
    принципал => 'HR',
    is_grant => ИСТИНА,
    привилегия => 'подключиться',
    start_date => SYSTIMESTAMP,
    end_date => NULL);
КОНЕЦ;
/

НАЧИНАТЬ
  DBMS_NETWORK_ACL_ADMIN.assign_acl (
    acl => 'get_ords',
    хост => '10 .39.205.48 ',
    lower_port => 8080,
    upper_port => NULL);
КОНЕЦ;
/ 

Если я попытаюсь запустить свою программу без этих правил, мне скажут «нет-нет-нет!»

 ОШИБКА в строке 1:
ORA-29273: Ошибка HTTP-запроса.
ORA-06512: в «SYS.UTL_HTTP ", строка 1029
ORA-24247: доступ к сети запрещен списком управления доступом (ACL)
ORA-06512: на строке 7 

Код

Подсказка перед Тимом, я позаимствовал копию его примера в пакете UTL_HTTP.

Мы просто собираемся выполнить простой GET для защищенной службы ORDS REST, а затем распечатать ответ, используя DBMS_OUTPUT.

 СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ПРОЦЕДУРУ show_json_from_url (
  p_url В VARCHAR2,
  p_username IN VARCHAR2 DEFAULT NULL,
  p_password В VARCHAR2 ПО УМОЛЧАНИЮ NULL
) В ВИДЕ
  l_http_request UTL_HTTP.req;
  l_http_response UTL_HTTP.resp;
  l_text VARCHAR2 (32767);
НАЧИНАТЬ
  - Сделайте HTTP-запрос и получите ответ.
  l_http_request: = UTL_HTTP.begin_request (p_url);

  - При необходимости используйте базовую аутентификацию.
  ЕСЛИ p_username НЕ НУЛЕНО И p_password НЕ НУЛЕНО, ТО
    UTL_HTTP.set_authentication (l_http_request, p_username, p_password);
  КОНЕЦ ЕСЛИ;

  l_http_response: = UTL_HTTP.get_response (l_http_request);

  - Прокрутите ответ.
  НАЧИНАТЬ
    ПЕТЛЯ
      UTL_HTTP.read_text (l_http_response, l_text, 32766);
      DBMS_OUTPUT.put_line (l_text);
    КОНЕЦ ПЕТЛИ;
  ИСКЛЮЧЕНИЕ
    КОГДА UTL_HTTP.end_of_body ТО
      UTL_HTTP.end_response (l_http_response);
  КОНЕЦ;
ИСКЛЮЧЕНИЕ
  КОГДА ДРУГИЕ ТОГДА
    UTL_HTTP.end_response (l_http_response);
    ПОДНИМАТЬ;
КОНЕЦ show_json_from_url; 

А потом пора его вызвать -

Пожалуйста, пожалуйста, не используйте мои пароли. И по возможности избегайте базовой аутентификации.

Код серверной части ORDS

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

 - Создано Oracle SQL Developer REST Data Services 19.4.0.351.1906
- Экспортированные определения REST из схемы ORDS версии 20.1.0.r0801154
- Схема: HR Дата: 18 мая, понедельник, 16:03:30 EDT 2020
-
ЗАЯВИТЬ
  l_roles OWA.VC_ARR;
  l_modules OWA.VC_ARR;
  l_patterns OWA.VC_ARR;
НАЧИНАТЬ
  ORDS.DEFINE_MODULE (
      p_module_name => 'дата',
      p_base_path => '/ date /',
      p_items_per_page => 25,
      p_status => 'ОПУБЛИКОВАНО',
      p_comments => NULL);
  ЗАКАЗЫ.DEFINE_TEMPLATE (
      p_module_name => 'дата',
      p_pattern => 'right_now',
      p_priority => 0,
      p_etag_type => 'HASH',
      p_etag_query => NULL,
      p_comments => NULL);
  ORDS.DEFINE_HANDLER (
      p_module_name => 'дата',
      p_pattern => 'right_now',
      p_method => 'ПОЛУЧИТЬ',
      p_source_type => 'json / item',
      p_items_per_page => 25,
      p_mimes_allowed => '',
      p_comments => NULL,
      p_source =>
'выберите systimestamp, sysdate из двойного'
      );

  l_roles (1): = 'Разработчик SQL';
  l_modules (1): = 'дата';
  ЗАКАЗЫ. DEFINE_PRIVILEGE (
      p_privilege_name => 'show_date_time',
      p_roles => l_roles,
      p_patterns => l_patterns,
      p_modules => l_modules,
      p_label => '',
      p_description => '',
      p_comments => NULL);

  СОВЕРШИТЬ;
КОНЕЦ; 

А как насчет HTTPS, сертификатов и…?

Вернитесь к сообщению Тима. У него там прекрасные примеры.

Намного более интересный пример

Что делать, если при использовании SQL с поддержкой REST у вас есть ПРОСМОТР, который при выборе из него фактически получает данные из удаленной базы данных через ORDS и функцию SQL с поддержкой REST?

Мой товарищ по команде Дермот написал точный сценарий.Это определенно работа, посмотрите-попробуйте!

Бах!

HEMESH ORAWORLD: ORA-29024: Ошибка проверки сертификата

Недавно мы получили удовольствие от экстренной замены SSL-сертификата в последнюю минуту. Я думаю, что большинство ИТ-магазинов были там, сделали это. Но проблема в том, что новый сертификат продления не работал - как теперь действовать?

1. Что-то не так после замены SSL-сертификата на аппаратном балансировщике нагрузки. Признаки - Ошибка страницы не найдена, ORA-29024: Ошибка проверки сертификата в журналах Oracle Application Server.Вернитесь к более старому сертификату, все снова в порядке. Но не терять время, так как он истекает завтра в 18:59 MST. Yeeegads!

2. Это внешний сервер билетов CAS, аутентифицируемый в базе данных Oracle с помощью вызовов UTL_HTTP. Выполнение следующего оператора select от имени пользователя с привилегиями выполнения на UTL_HTTP также показывает ту же проблему, независимо от URL-адреса -

select utl_http.request ('https: //hostname.domain/cas/login'

, null, null , null) от двойного;

ОШИБКА в строке 1: ORA-29273: сбой HTTP-запроса

ORA-06512: в «SYS.UTL_HTTP ", строка 1577

ORA-29024: Ошибка проверки сертификата

ORA-06512: строка 1

3. Хорошо, это Oracle, поэтому я знаю, что задействован Oracle Wallet. Он находится на сервере базы данных, поскольку мы применяем сертификаты на балансировщике нагрузки, ваша ситуация может также включать Oracle Wallet на OAS. Следующая инструкция select проверяет, действителен ли кошелек, не поврежден и имеет ли правильный пароль.

select utl_http.request ('https: // www .verisign.com / ', null,

' файл: / etc / ORACLE / WALLETS / oracle ',' password ') из двойного;

ОШИБКА в строке 1: ORA-29273: HTTP-запрос завершился неудачно

ORA-06512 : в "SYS.UTL_HTTP ", строка 1577

ORA-29024: Ошибка проверки сертификата ORA-06512: строка 1

4. Опять Yeegads! С кошельком что-то не так, как это может быть? DBA ничего не изменил, как делает ли замена сертификата недействительным кошелек? Итак, здесь начинается Хари Кари - я создаю резервную копию старого каталога кошелька, создаю новый кошелек в том же месте с тем же паролем. Все еще не работает, та же ошибка.

Теперь документ «My Oracle Support» -

Устранение неполадок ORA-29024: Ошибка проверки сертификата

Идентификатор документа: 756978.1

запускает меня, но я не могу найти ничего плохого с кошельком. Я использую как orapki (утилита командной строки кошелька), так и OWM (gui). Нет проблем с открытием кошелька с просмотром цепочки и т.д.

> orapki wallet display - кошелек.

Запрошенные сертификаты:

Сертификаты пользователей:

Доверенные сертификаты:

Тема: CN = GTE CyberTrust Root, O = GTE Corporation, C = US

Тема: OU = Общественный первичный центр сертификации класса 3, O = VeriSign \ , Inc., C = US

Тема: OU = Public Primary Certification Authority Class 2, O = VeriSign \, Inc., C = US

Subject: OU = Public Primary Certification Authority Class 1, O = VeriSign \, Inc., C = US

Тема: OU = Центр сертификации защищенного сервера, O = RSA Data Security \, Inc., C = US

Тема: CN = GTE CyberTrust Global Root, OU = GTE CyberTrust Solutions \, Inc., O = GTE Corporation, C = US

Тема: CN = Entrust.net Secure Server Certification Authority, OU = (c) 2000 Entrust.net Limited, OU = www.entrust.net/SSL_CPS incorp. по исх. (ограничивает ответственность), O = Entrust.net

Тема: CN = Центр сертификации Entrust.net (2048), OU = (c) 1999 Entrust.net Limited, OU = www.entrust.net / CPS_2048 incorp. по исх. (ограничивает ответственность), O = Entrust.net

Тема: CN = Entrust.net Secure Server Certification Authority, OU = (c) 1999 Entrust.net Limited, OU = www.entrust.net / CPS incorp. по исх. (ограничивает ответственность), O = Entrust.net, C = US

5. Нож проникает глубже в плоть, мне очень больно. Сейчас 22:00. Я разговаривал по мобильному телефону с другим ИТ-персоналом в течение 60 минут (они должны быть в моем «кругу друзей», так что, надеюсь, счет за мобильный телефон меня не убьет).Продолжайте с помощью документа по устранению неполадок - «И пользовательский, и доверенный сертификаты действительны, не просрочены и не отозваны» - у меня нет пользовательских сертификатов… с остальными все в порядке. Я воссоздавал кошелек несколько раз, каждый раз возвращал базу данных / балансировщик нагрузки / сервер OAS / CAS (вы чувствуете «отчаяние»), потому что я нахожу в другом документе

Как заменить истекший или истекающий сертификат в Wallet Manager

Идентификатор документа: 303299. 1

(почему этого шага не было в документе по устранению неполадок ORA-29024?), Который необходимо «перезапустить компонент, использующий кошелек i.e Webcache, HTTP-сервер или база данных, поскольку кошелек хранится в памяти и не будет повторно считан, пока компонент не будет перезапущен ». После нескольких часов тестирования по крайней мере на этом этапе я определил, что кошелек в основном действителен, потому что он работал вчера, но не сегодня с новым сертификатом. Но почему?

6. Последний шаг в документе -

"Если эта ошибка возникает при использовании с настроенным UTL_HTTPS, проверьте:

---> Все ли сертификаты защищенного веб-сайта

находятся в кошельке и цепочка сертификатов завершена.«

Что ж, может быть проблема в этом, сверившись с сетевым парнем, который заказал замену сертификата, он, похоже, подумал, что сертификат немного отличается от предыдущего. Мы дважды проверили его действительность, просмотрев его в нескольких браузерах. в этот момент все разошлись по домам, я вошел в Oracle SR (так как база данных не была отключена, я знал, что быстрого ответа не будет), парень-программист написал по электронной почте своим коллегам из CAS, сетевой парень отправил запрос на экстренную поддержку через Verisign.

7. На следующее утро я начал проверять веб-сайт Verisign, программист упомянул, что, по его мнению, это может быть проблема с цепочкой… возможно, нужен новый или обновленный промежуточный сертификат. Нож все еще был в глубине, из-за чего было трудно уснуть. На следующее утро сетевой специалист сказал, что определенно нужен новый промежуточный сертификат, согласно Verisign ... проверяя веб-сайт Verisign, их несколько. Чтобы получить нужный, вам понадобится номер заказа на сертификат. Служба поддержки Verisign приложила его к запросу в службу поддержки.

https://knowledge.verisign.com/support/ssl-certificates-support/index?page=content&id=AR657&actp=LIST (Промежуточные сертификаты CA Verisign)

8. Как установить этот промежуточный сертификат? Самый простой способ - использовать утилиту orapki. Предыдущая работа hari kari с промежуточными сертификатами дала мне понять, что Oracle «разборчива» с сертификатами и что для работы промежуточный сертификат необходимо назвать ca. crt. Я переименовал файл (переданный в двоичном формате) на ca.crt поместите его в папку / etc / ORACLE / WALLETS / oracle. Но мы еще не закончили. Он не импортируется, просто выдает ошибку, не могу открыть кошелек. Я даю ему полный путь, все та же ошибка.

Yeegads! Ойф! Хорошо… Я только что импортировал промежуточный сертификат в непроизводственный экземпляр, и он заработал. Почему производство меня огорчает?

9. Я сделал резервную копию (переместил) старый кошелек, еще ломтик и кости. Есть несколько каталогов со старыми кошельками ... ни один из них не работал с новым сертификатом во время тестирования предыдущей ночью, но все они работали со старым сертификатом, но ни один из них не позволил мне импортировать промежуточный сертификат.Аааааааааааааааааааааа! Создав новый кошелек, я использовал другую утилиту командной строки (Reflection) вместо Putty, потому что в другом документе от My Oracle Support упоминалось, что клавиатура может неправильно вводить пароль кошелька. Какие! Я всегда пользовался этой консольной утилитой, впервые услышал об этом. Поэтому я создаю новый кошелек с помощью Reflection и заключаю пароль в одинарную кавычку. Так что возьми это! и это! Вернись, злодей! Назад! Это война! По-прежнему проблемы.

cd / etc / ORACLE / WALLETS / oracle

orapki wallet create -wallet.-auto_login -pwd 'пароль'

орапки кошелек добавить -wallet. -trusted_cert -cert ca.crt -pwd 'password'

(не ждите, что что-нибудь скажет вам, что это было успешно, вы просто смотрите

, чтобы узнать, возникают ли какие-либо ошибки)

выберите utl_http.request ('https: / /www.verisign.com/',null,

'файл: / etc / ORACLE / WALLETS / oracle', 'password') из dual;

выберите utl_http.request ('https://www.verisign.com/',null,

* ОШИБКА в строке 1: ORA-29273: HTTP-запрос завершился неудачно

ORA-06512: в «SYS.UTL_HTTP ", строка 1577

ORA-28759: сбой при открытии файла ORA-06512: в строке 1

10. По крайней мере, СООБЩЕНИЕ ОБ ОШИБКЕ изменилось! Извините, но в этот момент мое отчаяние было на полном ходу, что-то вызывает у меня головокружение. Я перезапустил производственную базу данных, я знал, что это, вероятно, произойдет. Я незаметно меняю статус своего IM как занятый, чтобы уменьшить количество атакующих сообщений. Они запускаются быстро и яростно.

select utl_http.request ('https: / / domainname / cas / login ', null,

' file: / etc / ORACLE / WALLETS / oracle, 'password') из двойного;

выберите utl_http.запрос ('https: // domainname / cas / login',

null, 'file: / etc / ORACLE / WALLETS / oracle', 'password') от двойного

* ОШИБКА в строке 1: ORA-29273: HTTP запрос не выполнен

ORA-06512: в «SYS.UTL_HTTP», строка 1577

ORA-29106: Невозможно импортировать кошелек PKCS # 12. ORA-06512: в строке 1

11. Я понимаю, что пропустил заключительную цитату после / etc / ORACLE / WALLETS / oracle в операторе SQL. Правильно набрал его повторно, и он возвращает действительную веб-страницу, наконец, он закончился. Я снимаю нож, он может зажить через некоторое время.

12. Если вам нужно перенести существующий кошелек 10.2.x в 11.2.x - откройте его с помощью Oracle Wallet Manager в 11.2.x и повторно сохраните. Чтобы изменения вступили в силу, придется отскочить от базы данных.

Блог Дмитрия Гиелиса (Oracle Application Express

Этот пост является частью серии сообщений в блоге о лучшем и самом дешевом хостинге Oracle APEX: бесплатное облачное хранилище Oracle.

В предыдущих сообщениях мы настраивали нашу машину Always Free Oracle Cloud и автономную базу данных с Oracle Application Express (APEX).В этом посте я хочу показать вам, как начать работу с популярным механизмом печати и отчетности APEX Office Print (AOP). Программное обеспечение AOP позволяет очень легко экспортировать ваши данные в красивый PDF-файл, пользовательский файл Excel, модный PowerPoint или другие выходные форматы по вашему выбору, именно так, как вы этого хотите.

Многие заказчики, даже внутри Oracle, используют АОП для экспорта данных в желаемом формате. Данные могут поступать из базы данных, веб-службы REST или GraphQL или даже из таких компонентов, как интерактивный отчет / сетка из Oracle APEX.Хотя АОП работает с любой технологией, он наиболее известен в сообществе Oracle APEX как самый простой и наиболее интегрированный механизм печати для Oracle APEX. Вы создаете шаблон в DOCX, XLSX, PPTX, HTML или TEXT, указываете источник данных и указываете AOP, в каком формате вы хотите получить вывод (PDF, Excel, Word, Powerpoint, HTML, Text), а AOP сделает отдых! Вы можете найти больше информации об АОП в этой презентации.

Кристина Мур из Storm Petrel написала мне несколько дней назад следующее: «У нас есть клиент в одной из наших систем, который ежемесячно генерирует счет на 1888 страниц (около 2000 страниц).Самый последний счет на сумму 1,3 миллиона долларов США и занимал 384 МБ. АОП блестяще справляется с этим. Отличная работа. Я не могу отправить его вам по электронной почте из соображений конфиденциальности, но знаю, что в нем есть несколько разделов, которые также объединены с вашим инструментом ». Мне нравятся отзывы об использовании АОП, и я поражен, насколько творчески люди работают с АОП!

Я использую АОП в каждом проекте, потому что экспорт / печать - это рано или поздно требование и важная часть моих приложений Oracle APEX. Поэтому я подумал написать, как использовать это в Oracle Cloud 🙂

У нас есть два варианта: позволить нашей автономной базе данных Oracle и APEX взаимодействовать с облаком AOP или установить локальную версию AOP на нашей собственной вычислительной виртуальной машине.

Итак, приступим ... откройте браузер, перейдите на https://www.apexofficeprint.com и нажмите кнопку ПОДПИСАТЬСЯ на :
Введите свой адрес электронной почты и нажмите Регистрация :
Вы получите сообщение электронной почты . Нажмите Подтвердите свой адрес электронной почты кнопка:
Откроется браузер, где вы можете установить пароль для своей учетной записи:
После нажатия кнопки Set Password вы автоматически войдете в систему и увидите мастер Getting Started :
Следуйте указаниям мастера , и все готово! Это займет не более 15 минут 🙂

Вкратце мастер скажет вам:

  1. Загрузите программное обеспечение AOP и разархивируйте файл
  2. Перейдите в APEX> Мастерская SQL> Скрипты SQL> Загрузите и запустите файл aop_db_pkg. sql, который вы найдете в папке db. Это установит AOP PL / SQL API.
  3. Перейдите в APEX> Ваше приложение> Общие компоненты> Плагины и импортируйте плагины APEX, которые вы найдете в папке apex.
  4. Перейдите в APEX> Ваше приложение> Общие компоненты> Настройки компонентов> APEX Office Print (AOP) и введите свой ключ API, который вы найдете на панели инструментов на сайте AOP:


Параметры компонентов в вашем приложении APEX:
Выше показано, как настроить APEX Office Print (AOP) в вашем собственном приложении с помощью облака AOP.

Если вы внимательно посмотрите на предыдущий снимок экрана с настройками компонентов, посмотрите на AOP URL .
URL-адрес указывает, где запущен сервер AOP, с которым взаимодействуют подключаемый модуль AOP APEX и AOP PL / SQL API. По умолчанию это облако AOP, поэтому вам не нужно настраивать сервер AOP в вашей собственной среде.

Локальная версия AOP

Хотя облако AOP действительно удобно, поскольку оно поддерживается и поддерживается командой APEX Office Print, некоторые клиенты предпочитают запускать сервер AOP на своем собственном компьютере, особенно когда данные не могут покинуть центр обработки данных.

Итак, если вы будете читать дальше, я проведу вас через Настройка сервера AOP на вашей собственной вычислительной виртуальной машине в Oracle Cloud. Просто убедитесь, что вы уже установили пример приложения AOP, подключаемые модули и объекты базы данных, если необходимо, как указано в разделе «Начало работы» выше.

С терминала подключитесь к вашей виртуальной машине Oracle Cloud:

ssh -i ssh_key opc @ public_ip

Первое, что мы делаем, это меняем на пользователя root, так как мы хотим установить некоторые вспомогательные объекты для AOP, это будет проще сделайте это с пользователем root.Кроме того, перед каждой командой вы можете добавить sudo.

Мы вошли в систему как пользователь OPC, чтобы стать пользователем ROOT, который мы делаем:

sudo su

В отличие от других механизмов отчетности, программное обеспечение AOP существует только из нескольких файлов и устанавливается в кратчайшие сроки. Мы загрузим программное обеспечение в папку tmp на нашем компьютере и распакуем его в / opt / aop:

cd / tmp

wget https://objectstorage. us-ashburn-1.oraclecloud.com/n/id9u4qbhnjxj/b/apexofficeprint/o/aop_free_oracle_cloud.почтовый индекс

распаковать aop_free_oracle_cloud.zip -d / opt / aop

Вот и все !! Сервер АОП установлен!



Для поддержки вывода PDF AOP использует сторонний конвертер, такой как MS Office или LibreOffice. Вот шаги для установки LibreOffice:

yum install java-1.8.0-openjdk.x86_64

yum install cups.x86_64

wget http://ftp.rz.tu-bs.de/pub/mirror/tdf/tdf-pub/libreoffice/stable/6.2.7/rpm/x86_64/LibreOffice_6.2.7_Linux_x86-64_rpm.tar.gz

tar -xvf LibreOffice_6.2.7_Linux_x86-64_rpm.tar.gz

компакт-диск /tmp/LibreOffice_6.2.7.1_Linux_x86-64_rpm/RPMS/

yum localinstall * .rpm

ln -s /opt/libreoffice6.2/program/soffice / usr / sbin / soffice

Примечание: если одна из вышеперечисленных команд завершится неудачно, потому что yum заблокирован, вы можете снять блокировку с помощью: yum versionlock clear

Установлено LibreOffice. Чтобы проверить, все ли в порядке, вы можете запустить «soffice --version», и вы должны увидеть что-то вроде этого:



АОП имеет встроенный веб-сервер.Когда вы запускаете АОП, вы можете определить порт, на котором АОП будет слушать входящие запросы. Порт по умолчанию - 8010. Нам нужно будет сообщить Linux, что этот порт может обрабатывать запросы HTTP и HTTPS.

semanage port -a -t http_port_t -p tcp 8010

Чтобы запустить AOP на порту по умолчанию, выполните:

cd /
./opt/aop/v19.2.3/server/APEXOfficePrintLinux64 --enable_printlog &

Вы должны увидеть что-то вроде этого:



Ура !! АОП работает.

АОП поставляется с классным веб-редактором, мы сделаем его доступным на нашем домене dgielis.com/aop/. Для этого мы адаптируем Nginx, чтобы он также был обратным прокси для веб-редактора AOP.
Ну вот;

vi /etc/nginx/conf.d/dgielis.com.conf

И добавьте следующий раздел:

расположение / aop / {
proxy_pass http://127. 0.0.1:8010/;
}

Серверная часть конфигурационного файла становится:



Нам нужно перезагрузить Nginx:

nginx -s перезагрузить

А теперь, когда мы заходим в браузере на dgielis.com / aop / мы видим AOP Web Editor :



Теперь вы можете, например, загрузить образец, нажав кнопку «Загрузить образец» и выбрав PDF.
Прокрутите немного вниз и нажмите кнопку «Обработка», и PDF-файл будет создан 🙂



Веб-редактор построен на React.js, и вы можете перетащить свой шаблон и добавить некоторые данные для тестирования функций АОП. Также есть вкладка «Ведение журнала» (переключение между редактором и ведением журнала), так что вы можете видеть входящие запросы, результаты и вывод отладки в случае ошибок.
Теперь, если мы хотим указать нашим приложениям Oracle APEX использовать наш собственный сервер AOP, единственное, что нам нужно сделать, это изменить URL-адрес AOP.

В приложении Oracle APEX перейдите в Общие компоненты> Настройки компонентов> APEX Office Print (AOP) и измените AOP URL на URL вашей собственной вычислительной виртуальной машины:

Это оно! У вас все готово для печати и экспорта данных в вашей собственной среде 🙂
Я бы порекомендовал взглянуть на AOP Sample App , которое вы установили на последнем шаге, если вы следовали мастеру Getting Started.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *