{"id":1350,"date":"2011-05-30T05:22:48","date_gmt":"2011-05-30T09:22:48","guid":{"rendered":"http:\/\/www.tridens.si\/?p=1350"},"modified":"2021-12-01T15:36:41","modified_gmt":"2021-12-01T15:36:41","slug":"oracle-advanced-queuing-e-oracle-brm","status":"publish","type":"post","link":"https:\/\/tridenstechnology.com\/pt\/oracle-advanced-queuing-and-oracle-brm\/","title":{"rendered":"Oracle Enfileiramento avan\u00e7ado e Oracle BRM"},"content":{"rendered":"<p>No nosso \u00faltimo artigo, <a href=\"https:\/\/tridenstechnology.com\/integrating-oracle-brm-with-enterprise-applications\/\">Integrar o Oracle BRM com aplica\u00e7\u00f5es empresariais<\/a>Na sec\u00e7\u00e3o \"Integra\u00e7\u00e3o BRM-CRM\", explic\u00e1mos uma forma de implementar uma integra\u00e7\u00e3o BRM-CRM. A solu\u00e7\u00e3o sugerida consistia em criar um conector no lado do BRM e lig\u00e1-lo a uma aplica\u00e7\u00e3o de terceiros. No entanto, tamb\u00e9m \u00e9 poss\u00edvel adoptar uma abordagem diferente, utilizando <strong>Oracle Enfileiramento avan\u00e7ado<\/strong>que ser\u00e1 o objecto do presente artigo.<\/p>\n\n\n\n<p>Recentemente, estivemos envolvidos num projecto em que o cliente pretendia uma integra\u00e7\u00e3o \"segura\" sem a necessidade de ser em tempo real; uma solu\u00e7\u00e3o quase em tempo real seria suficiente, disseram eles. O que queremos dizer com integra\u00e7\u00e3o segura \u00e9 ter uma solu\u00e7\u00e3o que n\u00e3o afecte qualquer ac\u00e7\u00e3o realizada, como a compra de um produto ou a cria\u00e7\u00e3o de uma factura, por uma falha na liga\u00e7\u00e3o de comunica\u00e7\u00e3o (ou qualquer outro erro) entre o Oracle BRM e o software de terceiros. Ao implementar um conector dm personalizado para integra\u00e7\u00e3o de dados, qualquer opera\u00e7\u00e3o conclu\u00edda sem sucesso reverter\u00e1 toda a a\u00e7\u00e3o. Embora isso possa ser um comportamento desejado, nesse caso n\u00e3o era; portanto, decidimos usar o Oracle Advanced Queuing. Identific\u00e1mos que o nosso pior cen\u00e1rio seria o de problemas na base de dados, mas haveria tamb\u00e9m muitos outros problemas; para come\u00e7ar, o sistema BRM n\u00e3o funcionaria correctamente.<br>Outras vantagens que identific\u00e1mos foram a persist\u00eancia dos dados (os eventos s\u00e3o armazenados na base de dados at\u00e9 que a aplica\u00e7\u00e3o do consumidor esteja pronta para processar as mensagens em fila de espera) e uma tecnologia Oracle AQ j\u00e1 comprovada.<\/p>\n\n\n\n<p>Implementamos com sucesso essas mudan\u00e7as no Oracle BRM vers\u00e3o 7.3 e 7.3.1 com o Oracle Database 10g (10.2.0.1.0 64bit) e 11g (11.2.0.1.0 64bit) com o componente Oracle Advanced Queuing (AQ).<\/p>\n\n\n\n<p>O processo de publica\u00e7\u00e3o de eventos do Oracle BRM utilizando o Oracle Advanced Queuing funciona pode ser visto na figura abaixo:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"\/\/i3.wp.com\/tridenstechnology.com\/wp-content\/uploads\/2021\/07\/Oracle_Advanced_Queuing_and_Oracle_BRM.gif\"><img fetchpriority=\"high\" decoding=\"async\" width=\"610\" height=\"402\" src=\"\/\/i3.wp.com\/tridenstechnology.com\/wp-content\/uploads\/2021\/07\/Oracle_Advanced_Queuing_and_Oracle_BRM.gif\" alt=\"\" class=\"wp-image-7185\"\/><\/a><figcaption>Figura 1: O processo de sincroniza\u00e7\u00e3o de dados utilizando o Oracle Advanced Queuing.<\/figcaption><\/figure><\/div>\n\n\n\n<p>Para desenvolver um processo de sincroniza\u00e7\u00e3o deste tipo, \u00e9 necess\u00e1rio efectuar alguns passos preliminares. Estas incluem:<br>1. Instala\u00e7\u00e3o do EAI Manager.<br>o M\u00f3dulo EAI Connection Manager (CM) (inclui c\u00f3digos de opera\u00e7\u00e3o exigidos pelo EAI),<br>o Gestor de dados EAI,<br>o M\u00f3dulo externo (EM) gerador de carga \u00fatil - tamb\u00e9m designado por EAI Java Server ou eai_js.<br>2. Depois de concluir a instala\u00e7\u00e3o do EAI Manager, configure os valores nos arquivos de configura\u00e7\u00e3o CM e EAI DM (pin.conf), bem como no arquivo de propriedades do Gerador de Carga \u00datil (Infranet.properties).<br>3. Configure a lista de notifica\u00e7\u00e3o de eventos que deseja publicar, editando os arquivos de configura\u00e7\u00e3o para notifica\u00e7\u00e3o de eventos (arquivos $BRM_HOME\/sys\/data\/config\/pin_notify*) e mescle-os antes de executar o utilit\u00e1rio load_pin_notify.<br>4. Defina eventos no ficheiro de configura\u00e7\u00e3o do gerador de cargas \u00fateis EM (payloadconfig.xml).<\/p>\n\n\n\n<p>Ap\u00f3s a conclus\u00e3o das etapas preliminares, \u00e9 hora de criar e configurar a Fila Avan\u00e7ada Oracle. Aqui est\u00e3o os passos (o terceiro passo pode variar, pois depende da sua configura\u00e7\u00e3o):<br>1. Crie uma fila de espera:<br>pin_ifw_sync_oracle.pl create -l $USER\/$PASS@$DB -q TEST_QUEUE -t TEST_QUEUE<br>2. Teste a fila de espera (passo opcional):<br>pin_ifw_sync_oracle.pl test -l $USER\/$PASS@$DB -q TEST_QUEUE<br>3. Inicie sess\u00e3o na sua base de dados como utilizador SYSTEM e defina os privil\u00e9gios de concess\u00e3o adequados para o seu \"t_user\":<br>exec dbms_aqadm.grant_queue_privilege('ALL', 'PUSER.TEST_QUEUE', 't_user');<br>conceder execu\u00e7\u00e3o em puser.pin_event_ty a t_user;<br>conceda a execu\u00e7\u00e3o em sys.dbms_aqin a t_user;<\/p>\n\n\n\n<p>Em seguida, precisamos de um produtor de filas, uma aplica\u00e7\u00e3o que vai colocar em fila de espera os eventos definidos anteriormente. \u00c9 necess\u00e1rio implementar um m\u00f3dulo personalizado (biblioteca) e defini-lo no ficheiro de configura\u00e7\u00e3o dm_eai, na entrada \"plugin_name\".<br>Existe tamb\u00e9m uma forma mais simples de realizar esta tarefa. Se j\u00e1 tiver instalado o \"Account Synchronization DM\", encontrar\u00e1 uma implementa\u00e7\u00e3o de um m\u00f3dulo produtor de filas no gestor de dados dm_ifw_sync. No entanto, se escolher esta op\u00e7\u00e3o, s\u00e3o necess\u00e1rias algumas entradas adicionais no ficheiro de configura\u00e7\u00e3o dm_eai.<\/p>\n\n\n\n<p>Depois de ter um produtor de filas em funcionamento, v\u00e1 em frente e invoque alguns dos seus eventos para ver se eles s\u00e3o colocados em fila. As filas de espera podem ser consultadas na tabela definida aquando da cria\u00e7\u00e3o da fila.<\/p>\n\n\n\n<p>Por fim, precisar\u00e1 de um consumidor de fila, uma aplica\u00e7\u00e3o que ler\u00e1 e retirar\u00e1 as mensagens da fila. Existem v\u00e1rias interfaces program\u00e1ticas dispon\u00edveis para aceder ao Oracle Streams AQ nas seguintes linguagens de programa\u00e7\u00e3o: Java (JMS), PL\/SQL, C (OCI), Visual Basic (OO4O), AQ XML Servlet (IDAP).<br>Com a implementa\u00e7\u00e3o do seu cliente personalizado, ter\u00e1 controlo total sobre a velocidade, o momento e o n\u00famero de mensagens a serem processadas. Por exemplo, durante as horas de menor movimento, pode processar mais dados do que durante as horas de maior movimento.<\/p>\n\n\n\n<p>Esperamos ter-lhe dado algumas indica\u00e7\u00f5es v\u00e1lidas sobre como proceder ao processo de integra\u00e7\u00e3o\/sincroniza\u00e7\u00e3o entre o Oracle BRM e sistemas e\/ou aplica\u00e7\u00f5es de terceiros.<\/p>","protected":false},"excerpt":{"rendered":"<p>No nosso \u00faltimo artigo, Integra\u00e7\u00e3o do Oracle BRM com aplica\u00e7\u00f5es empresariais, explic\u00e1mos uma forma de implementar uma integra\u00e7\u00e3o BRM-CRM. A solu\u00e7\u00e3o sugerida foi criar um conetor no lado do BRM e conect\u00e1-lo a um aplicativo de terceiros. No entanto, tamb\u00e9m \u00e9 poss\u00edvel adotar uma abordagem diferente usando o Oracle Advanced Queuing, que...<\/p>","protected":false},"author":1,"featured_media":3163,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38],"tags":[],"class_list":["post-1350","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oracle-billing","category-38","description-off"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.5 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Oracle Advanced Queuing and Oracle BRM - Tridens<\/title>\n<meta name=\"description\" content=\"It is also possible to take a different approach by using Oracle Advanced Queuing, which will be the subject of this article.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tridenstechnology.com\/pt\/oracle-advanced-queuing-e-oracle-brm\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Oracle Advanced Queuing and Oracle BRM\" \/>\n<meta property=\"og:description\" content=\"It is also possible to take a different approach by using Oracle Advanced Queuing, which will be the subject of this article.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tridenstechnology.com\/pt\/oracle-advanced-queuing-e-oracle-brm\/\" \/>\n<meta property=\"og:site_name\" content=\"Tridens\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/tridenstechnology\" \/>\n<meta property=\"article:published_time\" content=\"2011-05-30T09:22:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-12-01T15:36:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/08\/oracle-brm-services.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1934\" \/>\n\t<meta property=\"og:image:height\" content=\"1934\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ale\u0161\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@TridensTech\" \/>\n<meta name=\"twitter:site\" content=\"@TridensTech\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ale\u0161\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Oracle Enfileiramento avan\u00e7ado e Oracle BRM - Tridens","description":"Tamb\u00e9m \u00e9 poss\u00edvel adoptar uma abordagem diferente, utilizando o Oracle Advanced Queuing, que ser\u00e1 o tema deste artigo.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/tridenstechnology.com\/pt\/oracle-advanced-queuing-e-oracle-brm\/","og_locale":"pt_PT","og_type":"article","og_title":"Oracle Advanced Queuing and Oracle BRM","og_description":"It is also possible to take a different approach by using Oracle Advanced Queuing, which will be the subject of this article.","og_url":"https:\/\/tridenstechnology.com\/pt\/oracle-advanced-queuing-e-oracle-brm\/","og_site_name":"Tridens","article_publisher":"https:\/\/www.facebook.com\/tridenstechnology","article_published_time":"2011-05-30T09:22:48+00:00","article_modified_time":"2021-12-01T15:36:41+00:00","og_image":[{"width":1934,"height":1934,"url":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/08\/oracle-brm-services.png","type":"image\/png"}],"author":"Ale\u0161","twitter_card":"summary_large_image","twitter_creator":"@TridensTech","twitter_site":"@TridensTech","twitter_misc":{"Escrito por":"Ale\u0161","Tempo estimado de leitura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/#article","isPartOf":{"@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/"},"author":{"name":"Ale\u0161","@id":"https:\/\/tridenstechnology.com\/#\/schema\/person\/ccd247e07a5e0f856ec13af63d611358"},"headline":"Oracle Advanced Queuing and Oracle BRM","datePublished":"2011-05-30T09:22:48+00:00","dateModified":"2021-12-01T15:36:41+00:00","mainEntityOfPage":{"@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/"},"wordCount":787,"commentCount":0,"publisher":{"@id":"https:\/\/tridenstechnology.com\/#organization"},"image":{"@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/#primaryimage"},"thumbnailUrl":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/08\/oracle-brm-services.png","articleSection":["Oracle Billing"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/","url":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/","name":"Oracle Enfileiramento avan\u00e7ado e Oracle BRM - Tridens","isPartOf":{"@id":"https:\/\/tridenstechnology.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/#primaryimage"},"image":{"@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/#primaryimage"},"thumbnailUrl":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/08\/oracle-brm-services.png","datePublished":"2011-05-30T09:22:48+00:00","dateModified":"2021-12-01T15:36:41+00:00","description":"Tamb\u00e9m \u00e9 poss\u00edvel adoptar uma abordagem diferente, utilizando o Oracle Advanced Queuing, que ser\u00e1 o tema deste artigo.","breadcrumb":{"@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/#primaryimage","url":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/08\/oracle-brm-services.png","contentUrl":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/08\/oracle-brm-services.png","width":1934,"height":1934,"caption":"Oracle BRM Services"},{"@type":"BreadcrumbList","@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/tridenstechnology.com\/"},{"@type":"ListItem","position":2,"name":"Oracle Advanced Queuing and Oracle BRM"}]},{"@type":"WebSite","@id":"https:\/\/tridenstechnology.com\/#website","url":"https:\/\/tridenstechnology.com\/","name":"Tridens","description":"Monetiza\u00e7\u00e3o, fatura\u00e7\u00e3o e carregamento de ve\u00edculos el\u00e9ctricos","publisher":{"@id":"https:\/\/tridenstechnology.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tridenstechnology.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/tridenstechnology.com\/#organization","name":"Tridens","url":"https:\/\/tridenstechnology.com\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/tridenstechnology.com\/#\/schema\/logo\/image\/","url":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/02\/tridens_logo_invert.png","contentUrl":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/02\/tridens_logo_invert.png","width":600,"height":191,"caption":"Tridens"},"image":{"@id":"https:\/\/tridenstechnology.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/tridenstechnology","https:\/\/x.com\/TridensTech","https:\/\/www.instagram.com\/tridenstechnology\/","https:\/\/www.linkedin.com\/company\/tridens","https:\/\/www.youtube.com\/user\/TridensIT"]},{"@type":"Person","@id":"https:\/\/tridenstechnology.com\/#\/schema\/person\/ccd247e07a5e0f856ec13af63d611358","name":"Ale\u0161","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/secure.gravatar.com\/avatar\/0df040b8c52446051022ab32cd2ac1dc64d3c7eed18d5bd5ab9f2992b8935fc8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0df040b8c52446051022ab32cd2ac1dc64d3c7eed18d5bd5ab9f2992b8935fc8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0df040b8c52446051022ab32cd2ac1dc64d3c7eed18d5bd5ab9f2992b8935fc8?s=96&d=mm&r=g","caption":"Ale\u0161"},"description":"Ales Pristovnik \u00e9 o CEO da Tridens Technology, uma empresa eslovena especializada no desenvolvimento de solu\u00e7\u00f5es de software para a ind\u00fastria autom\u00f3vel. Ele tem uma longa hist\u00f3ria na ind\u00fastria de TI, tendo trabalhado para v\u00e1rias grandes empresas no passado. Ele tem uma paix\u00e3o pela tecnologia e inova\u00e7\u00e3o, e o seu foco actual \u00e9 o desenvolvimento de solu\u00e7\u00f5es que ir\u00e3o melhorar a seguran\u00e7a e efici\u00eancia da ind\u00fastria autom\u00f3vel. Ele tem um forte background em lideran\u00e7a e gest\u00e3o, e est\u00e1 empenhado em impulsionar a sua empresa no sector da tecnologia em constante evolu\u00e7\u00e3o.","url":"https:\/\/tridenstechnology.com\/pt\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/tridenstechnology.com\/pt\/wp-json\/wp\/v2\/posts\/1350","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tridenstechnology.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tridenstechnology.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tridenstechnology.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tridenstechnology.com\/pt\/wp-json\/wp\/v2\/comments?post=1350"}],"version-history":[{"count":0,"href":"https:\/\/tridenstechnology.com\/pt\/wp-json\/wp\/v2\/posts\/1350\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tridenstechnology.com\/pt\/wp-json\/wp\/v2\/media\/3163"}],"wp:attachment":[{"href":"https:\/\/tridenstechnology.com\/pt\/wp-json\/wp\/v2\/media?parent=1350"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tridenstechnology.com\/pt\/wp-json\/wp\/v2\/categories?post=1350"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tridenstechnology.com\/pt\/wp-json\/wp\/v2\/tags?post=1350"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}