<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hespanha &#187; jboss</title>
	<atom:link href="http://www.hespanha.com.br/blog/category/jboss/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hespanha.com.br/blog</link>
	<description>Apenas um programador que ama o que faz e servo do Senhor Jesus</description>
	<lastBuildDate>Wed, 21 Sep 2011 22:47:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Rumo ao JBoss World 2009, Chicago, USA</title>
		<link>http://www.hespanha.com.br/blog/2009/08/rumo-ao-jboss-world-2009-chicago-usa/</link>
		<comments>http://www.hespanha.com.br/blog/2009/08/rumo-ao-jboss-world-2009-chicago-usa/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 17:13:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[jboss world]]></category>

		<guid isPermaLink="false">http://www.hespanha.com.br/blog/?p=49</guid>
		<description><![CDATA[Na próxima semana estarei pela primeira vez indo para os EUA participar do Jboss World. Como no projeto que eu estou atualmente aqui no UOL nós usamos 4 ferramentas da Jboss: JBoss AS, JBoss Drools, JBoss jBPM e Hibernate, a empresa acredita que é interessante a minha ida ao evento para estar acompanhando as últimas [...]]]></description>
			<content:encoded><![CDATA[<p>Na próxima semana estarei pela primeira vez indo para os EUA participar do Jboss World. Como no projeto que eu estou atualmente aqui no UOL nós usamos 4 ferramentas da Jboss: JBoss AS, JBoss Drools, JBoss jBPM e Hibernate, a empresa acredita que é interessante a minha ida ao evento para estar acompanhando as últimas novidades do mundo JBoss.</p>
<p>Pretendo postar aqui as coisas bacanas que eu ver, e estarei em real-time twittando o que eu ver de legal por lá, então, se alguém tiver interesse e quiser me seguir, o meu twitter é luiz_hespanha.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hespanha.com.br/blog/2009/08/rumo-ao-jboss-world-2009-chicago-usa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Monitorando arquiteturas JMS</title>
		<link>http://www.hespanha.com.br/blog/2009/06/monitorando-arquiteturas-jms/</link>
		<comments>http://www.hespanha.com.br/blog/2009/06/monitorando-arquiteturas-jms/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 20:42:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[jboss]]></category>

		<guid isPermaLink="false">http://www.hespanha.com.br/blog/?p=39</guid>
		<description><![CDATA[Qualquer sistema sério precisa de monitoração, isso é um fato. Existem vários pontos para serem monitorados dentro de um sistema, o pessoal da Globo.com fez uma excelente apresentação sobre isso no FISL. Veja em: http://www.slideshare.net/denao/fisl-monitoracao-inteligente No sistema que eu trabalho aqui na empresa, usamos muito JMS, então para nós, é imprecindível uma monitoração em cima [...]]]></description>
			<content:encoded><![CDATA[<p>Qualquer sistema sério precisa de monitoração, isso é um fato. Existem vários pontos para serem monitorados dentro de um sistema, o pessoal da Globo.com fez uma excelente apresentação sobre isso no FISL. Veja em: <a href="http://www.slideshare.net/denao/fisl-monitoracao-inteligente">http://www.slideshare.net/denao/fisl-monitoracao-inteligente</a></p>
<p>No sistema que eu trabalho aqui na empresa, usamos muito JMS, então para nós, é imprecindível uma monitoração em cima dessa tecnologia.</p>
<p>Para quem não sabe, uma aplicação tenta enviar uma mensagem JMS um número configurado de vezes, caso a aplicação que recebe essa mensagem tenha problemas para receber a mensagem. Após o número X de vezes, a mensagem é enviada para uma DLQ, que traduzindo para o português é &#8220;fila-morta&#8221;. É este o ponto que estamos monitorando na nossa aplicação.</p>
<p>Criamos um método JMX que é chamado pelo Nagios de tempos em tempos, e que retorna OK se não existe nenhuma mensagem na DLQ, e NOK cc.</p>
<p>Caso retorne NOK, a minha equipe é avisada para que entre em ação e investigar o porquê da mensagem ter ido para a DLQ, e após isso, resgatar a mensagem da DLQ caso necessário.</p>
<p>O código para fazer isso é o seguinte:</p>
<pre name="code" class="java">
public String validateMessagesSentToDLQ() {
   logger.info("+++++ Validando se ha ou nao mensagens na DLQ +++++");
   ObjectName name = null;
   List&lt;SpyMessage&gt; listMessages = null;
   String ret = RETURN_NOK;

   try {
      name = new ObjectName("jboss.mq.destination:service=Queue,name=DLQ");
      listMessages = (List&lt;SpyMessage&gt;) getRmiAdaptor().invoke(name, "listMessages", null, null);
      logger.info("Quantidade de mensages na DLQ: " + listMessages.size());
      if (listMessages.size() == 0) {
         ret = RETURN_OK;
      }
   } catch (Exception e) {
      logger.error("Problemas ao verificar se há mensagens na DLQ!", e);
   }
   return ret;
}
</pre>
<p>Este código funciona no JBoss 4.0.4. Não sei dizer se funciona em outros servidores ou versões do JBoss, mas se não funcionar, não deve ser difícil adaptar ele.</p>
<p>Bom, tá aí a dica! Recomendo essa monitoração. Já nos ajudou bastante aqui no UOL!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hespanha.com.br/blog/2009/06/monitorando-arquiteturas-jms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scheduler do JBoss rodando uma hora depois do configurado</title>
		<link>http://www.hespanha.com.br/blog/2009/06/scheduler-do-jboss-rodando-uma-hora-depois-do-configurado/</link>
		<comments>http://www.hespanha.com.br/blog/2009/06/scheduler-do-jboss-rodando-uma-hora-depois-do-configurado/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 20:48:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[jboss]]></category>

		<guid isPermaLink="false">http://www.hespanha.com.br/blog/?p=21</guid>
		<description><![CDATA[Nós passamos por um problema curioso no projeto que eu estou trabalhando aqui no UOL. Nós tinhamos um processo batch que estava configurado para rodar todos os dias as 3:00 da manhã. Esse processo batch era iniciado via scheduler do Jboss. O problema é que surpreendentemente o processo ao invez de rodar as 3:00 da [...]]]></description>
			<content:encoded><![CDATA[<p>Nós passamos por um problema curioso no projeto que eu estou trabalhando aqui no UOL. Nós tinhamos<br />
um processo batch que estava configurado para rodar todos os dias as 3:00 da manhã. Esse processo<br />
batch era iniciado via scheduler do Jboss. O problema é que surpreendentemente o processo ao invez<br />
de rodar as 3:00 da manhã, começpi a rodar as 4:00 da manhã sem nenhum motivo aparente.</p>
<p>A configuração estava feita da seguinte forma:</p>
<pre name="code" class="xml">
&lt;mbean code="org.jboss.varia.scheduler.Scheduler"
name="jboss.docs:service=MyScheduler"&gt;
&lt;attribute name="TimerName"&gt;jboss:service=MyTimer&lt;/attribute&gt;
&lt;attribute name="SchedulableClass"&gt;br.com.uol.MyScheduler&lt;/attribute&gt;
&lt;attribute name="StartAtStartup"&gt;true&lt;/attribute&gt;
&lt;attribute name="DateFormat"&gt;dd/MM/yyyy HH:mm&lt;/attribute&gt;
&lt;attribute name="InitialStartDate"&gt;01/01/2006 03:00&lt;/attribute&gt;
&lt;attribute name="SchedulePeriod"&gt;86400000&lt;/attribute&gt;&lt;!-- Roda uma vez por dia --&gt;
&lt;attribute name="InitialRepetitions"&gt;-1&lt;/attribute&gt;
&lt;depends&gt;administration:custom=MyJMX&lt;/depends&gt;
&lt;depends&gt;
&lt;mbean code="javax.management.timer.Timer"
name="jboss:service=MyTimer"/&gt;
&lt;/depends&gt;

&lt;/mbean&gt;
</pre>
<p>Foram levantadas hipóteses que o horário da máquina estava configurado errado, que o timezone estava errado, que<br />
o horário de verão estava configurado errado etc. A gente investigou uma por uma e tudo estava OK.</p>
<p>Até que começou a fase do desespero, de começar a etapa de tentar resolver o problema por tentativa e erro, e dessa<br />
forma, descobrimos o problema.</p>
<p>Por uma razão desconhecida, se o campo &#8220;InitialStartDate&#8221; é configurado para alguma data dentro do horário de verão,<br />
ele só inicia no horário correto quando estamos no horário de verão. Para resolver esse problema, nós apelamos<br />
e mudamos este campo para 01/09/2006, e finalmente o scheduler começou a rodar conforme esperado, as 3:00 da manhã.</p>
<p>Fica aí a dica para caso alguém também passe por este problema. A versão do JBoss usada é 4.0.4_GA.</p>
<p>É impressionante como horário de verão sempre traz problemas, mesmo a cada ano a gente cercando cada vez mais, sempre<br />
tem algum efeito colateral!</p>
<p>[]&#8216;s e até a próxima.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hespanha.com.br/blog/2009/06/scheduler-do-jboss-rodando-uma-hora-depois-do-configurado/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mensagens JMS agendadas Just-In-Time</title>
		<link>http://www.hespanha.com.br/blog/2008/08/mensagens-jms-agendadas-just-in-time/</link>
		<comments>http://www.hespanha.com.br/blog/2008/08/mensagens-jms-agendadas-just-in-time/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 15:17:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[jms]]></category>

		<guid isPermaLink="false">http://www.hespanha.com.br/blog/?p=15</guid>
		<description><![CDATA[Uma feature muito legal de mensagens JMS é a possibilidade de poder agendar quando uma mensagem deverá ser recebida pelo MDB. Eu não sei se isso faz parte da especificação, ou se apenas o JBoss possui isso. O exemplo que eu vou demonstrar funciona apenas para o JBoss. Primeiro vamos a um cenário onde este [...]]]></description>
			<content:encoded><![CDATA[<p>Uma feature muito legal de mensagens JMS é a possibilidade de poder agendar quando uma mensagem deverá ser recebida pelo MDB. Eu não sei se isso faz parte da especificação, ou se apenas o JBoss possui isso. O exemplo que eu vou demonstrar funciona apenas para o JBoss.</p>
<p>Primeiro vamos a um cenário onde este agendamento é útil.</p>
<p>Vamos supor que a seguinte regra é solicitada: Ao tentarmos cobrar o cartão do cliente, se a operadora retornar transação negada, o sistema deve re-tentar cobrar este cartão por mais 2 dias, sendo que cada tentativa deve ser feita após 24hs.</p>
<p>É possível resolver este requisito usando banco de dados e as famosas flags, mas essa definitivamente não é uma solução elegante. Imagina que você precisaria ficar fazendo pooling no banco para ver quais cobranças já passaram de 24 horas para processa-las novamente. Ou seja, horrível.</p>
<p>Com JMS dá pra fazer algo muito melhor. Se quando a compra é feita, retornar negado, basta enviar uma mensagem JMS pra fila, agendando essa mensagem para ser processada apenas após 24 horas. Quando der essas 24hhs, o MDB lê a mensagem e chama novamente o módulo de cobrança.</p>
<p>Muito simples e elegante. Sem pooling, sem ficar controlando status manualmente, nem nada desse tipo.</p>
<p>O código para fazer isso é extremamente simples:</p>
<p><code>[sourcecode language='java']<br />
ObjectMessage message = session.createObjectMessage();</code></code></code></p>
<p>message.setLongProperty("JMS_JBOSS_SCHEDULED_DELIVERY", (new Date().getTime() + (1000 * 60 * 60 * 24)));[/sourcecode]</p>
<p>Pronto, você acabou de agendar a entrega da sua mensagem para daqui a 24 horas. Essa conta maluca aí é porque a data precisa ser passada em milisegundos. <img src='http://www.hespanha.com.br/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Eu sou um grande fã de JMS, e essa é mais uma das caracteristicas que me fazem gostar dessa tecnologia.</p>
<p>[]'s</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hespanha.com.br/blog/2008/08/mensagens-jms-agendadas-just-in-time/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

