<?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>jPOS.org</title>
	<atom:link href="http://jpos.org/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://jpos.org/blog</link>
	<description>jPOS rants, propaganda and some useful stuff.</description>
	<lastBuildDate>Fri, 24 Feb 2012 18:04:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>TransactionManager Debug and Trace events</title>
		<link>http://jpos.org/blog/2012/02/transactionmanager-debug-and-trace-events/</link>
		<comments>http://jpos.org/blog/2012/02/transactionmanager-debug-and-trace-events/#comments</comments>
		<pubDate>Fri, 24 Feb 2012 18:04:49 +0000</pubDate>
		<dc:creator>apr</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://jpos.org/blog/?p=434</guid>
		<description><![CDATA[While working on a project, from time to time, we might request the TransactionManager &#8216;Debug&#8217; and &#8216;Trace&#8217; events. The Debug event is the one created by the org.jpos.transaction.Debug participant and looks like this: &#60;log realm=&#34;debug&#34; at=&#34;Sun Feb 12 22:47:39 UYST &#8230; <a href="http://jpos.org/blog/2012/02/transactionmanager-debug-and-trace-events/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>While working on a project, from time to time, we might request the TransactionManager &#8216;Debug&#8217; and &#8216;Trace&#8217; events.</p>
<p>The <b>Debug</b> event is the one created by the org.jpos.transaction.Debug participant and looks like this:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;log</span> <span style="color: #000066;">realm</span>=<span style="color: #ff0000;">&quot;debug&quot;</span> <span style="color: #000066;">at</span>=<span style="color: #ff0000;">&quot;Sun Feb 12 22:47:39 UYST 2012.717&quot;</span> <span style="color: #000066;">lifespan</span>=<span style="color: #ff0000;">&quot;2ms&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;commit<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>2<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;context<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;entry</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">'REQUEST'</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;isomsg</span> <span style="color: #000066;">direction</span>=<span style="color: #ff0000;">&quot;incoming&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
         <span style="color: #808080; font-style: italic;">&lt;!-- org.jpos.iso.packager.GenericPackager[cfg/jcard.xml] --&gt;</span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;2100&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;600933______0011&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;3&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;555555&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;4&quot;</span> <span style="color: #000066;">currency</span>=<span style="color: #ff0000;">&quot;858&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;amount&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0.00&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;7&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0212224739&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;11&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;000000000003&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;12&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;20120212224739&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;13&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;000212&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;14&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;1001&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;17&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0212&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;32&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;000001&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;37&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;12104759694 &quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;41&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;29110001        &quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;42&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;001001&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/isomsg<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;isomsg</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;43&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
           <span style="color: #808080; font-style: italic;">&lt;!-- org.jpos.iso.packager.GenericSubFieldPackager --&gt;</span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;jCard Selftest system&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;4&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;Montevideo&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;5&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;MV &quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;7&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;UY &quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/isomsg<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;isomsg</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;113&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
           <span style="color: #808080; font-style: italic;">&lt;!-- org.jpos.iso.packager.GenericSubFieldPackager --&gt;</span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;106&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/isomsg<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/entry<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;entry</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">'SS'</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>JCARD<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/entry<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;entry</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">'TXNNAME'</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>100.55<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/entry<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;entry</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">'SOURCE'</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>org.jpos.iso.channel.CSChannel@71e13a2c<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/entry<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;entry</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">'PROFILER'</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;profiler<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
         open [0.6/0.6]
         prepare-response [6.0/6.6]
         close [1.0/7.6]
         end [15.3/15.3]
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/profiler<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/entry<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;entry</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">'TIMESTAMP'</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Sun Feb 12 22:47:39 UYST 2012<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/entry<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;entry</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">'TXNMGR'</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>txnmgr<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/entry<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;entry</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">'DB'</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>org.jpos.ee.DB@7a315068<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/entry<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;entry</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">'SWITCH'</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>100.55 (notsupported prepareresponse close sendresponse)<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/entry<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;entry</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">'RC'</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>invalid.request<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/entry<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;entry</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">'EXTRC'</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Unsupported transaction<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/entry<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;entry</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">'IRC'</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>1015<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/entry<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;entry</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">'RESPONSE'</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;isomsg</span> <span style="color: #000066;">direction</span>=<span style="color: #ff0000;">&quot;outgoing&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
         <span style="color: #808080; font-style: italic;">&lt;!-- org.jpos.iso.packager.GenericPackager[cfg/jcard.xml] --&gt;</span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;2110&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;600933______0011&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;3&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;555555&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;4&quot;</span> <span style="color: #000066;">currency</span>=<span style="color: #ff0000;">&quot;858&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;amount&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0.00&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;7&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0212224739&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;11&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;000000000003&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;12&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;20120212224739&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;13&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;000212&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;14&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;1001&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;17&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0212&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;32&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;000001&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;37&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;12104759694 &quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;39&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0030&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;41&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;29110001        &quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;42&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;001001&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/isomsg<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;isomsg</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;43&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
           <span style="color: #808080; font-style: italic;">&lt;!-- org.jpos.iso.packager.GenericSubFieldPackager --&gt;</span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;jCard Selftest system&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;4&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;Montevideo&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;5&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;MV &quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;7&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;UY &quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/isomsg<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;63&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;FORMAT ERROR&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;isomsg</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;113&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
           <span style="color: #808080; font-style: italic;">&lt;!-- org.jpos.iso.packager.GenericSubFieldPackager --&gt;</span>
           <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;106&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/isomsg<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;123&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;Unsupported transaction&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/entry<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/context<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/commit<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/log<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>It basically dumps the Context. On the other hand, the <b>Trace</b> event usually comes after the Debug (provided the TransactionManager&#8217;s trace property is set to true) and looks like this:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;log</span> <span style="color: #000066;">realm</span>=<span style="color: #ff0000;">&quot;org.jpos.transaction.TransactionManager&quot;</span> <span style="color: #000066;">at</span>=<span style="color: #ff0000;">&quot;Sun Feb 12 22:47:39 UYST 2012.725&quot;</span> <span style="color: #000066;">lifespan</span>=<span style="color: #ff0000;">&quot;23ms&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;debug<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    txnmgr-1:2
            prepare: org.jpos.jcard.PrepareContext NO_JOIN
            prepare: org.jpos.jcard.CheckVersion READONLY NO_JOIN
            prepare: org.jpos.transaction.Open READONLY NO_JOIN
            prepare: org.jpos.jcard.Switch READONLY NO_JOIN
      groupSelector: notsupported prepareresponse close sendresponse
            prepare: org.jpos.jcard.NotSupported NO_JOIN
            prepare: org.jpos.jcard.PrepareResponse NO_JOIN
            prepare: org.jpos.transaction.Close READONLY
            prepare: org.jpos.jcard.SendResponse READONLY
            prepare: org.jpos.jcard.ProtectDebugInfo READONLY
            prepare: org.jpos.transaction.Debug READONLY
             commit: org.jpos.transaction.Close
             commit: org.jpos.jcard.SendResponse
             commit: org.jpos.jcard.ProtectDebugInfo
             commit: org.jpos.transaction.Debug
    head=3, tail=3, outstanding=0, active-sessions=2/2, tps=0, peak=0, avg=0.00, elapsed=22ms
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;profiler<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      prepare: org.jpos.jcard.PrepareContext [0.0/0.0]
      prepare: org.jpos.jcard.CheckVersion [0.0/0.0]
      prepare: org.jpos.transaction.Open [0.5/0.6]
      prepare: org.jpos.jcard.Switch [0.0/0.6]
      prepare: org.jpos.jcard.NotSupported [0.1/0.7]
      prepare: org.jpos.jcard.PrepareResponse [5.8/6.6]
      prepare: org.jpos.transaction.Close [0.0/6.6]
      prepare: org.jpos.jcard.SendResponse [0.0/6.6]
      prepare: org.jpos.jcard.ProtectDebugInfo [0.0/6.7]
      prepare: org.jpos.transaction.Debug [0.0/6.7]
       commit: org.jpos.transaction.Close [1.0/7.7]
       commit: org.jpos.jcard.SendResponse [4.3/12.0]
       commit: org.jpos.jcard.ProtectDebugInfo [0.2/12.3]
       commit: org.jpos.transaction.Debug [9.3/21.7]
      end [22.8/22.8]
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/profiler<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/debug<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/log<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://jpos.org/blog/2012/02/transactionmanager-debug-and-trace-events/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jPOS Maven Archetype</title>
		<link>http://jpos.org/blog/2011/04/jpos-maven-archetype/</link>
		<comments>http://jpos.org/blog/2011/04/jpos-maven-archetype/#comments</comments>
		<pubDate>Sun, 10 Apr 2011 02:56:57 +0000</pubDate>
		<dc:creator>apr</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://jpos.org/blog/?p=406</guid>
		<description><![CDATA[If you use Maven, there&#8217;s an extremely easy way to create a jPOS application now: mvn archetype:generate \ -DarchetypeGroupId=org.jpos \ -DarchetypeArtifactId=jpos-archetype \ -DarchetypeVersion=1.8.2 \ -DarchetypeRepository=http://jpos.org/maven If you don&#8217;t want to use the remote archetype, you can always &#8216;mvn install&#8217; jPOS &#8230; <a href="http://jpos.org/blog/2011/04/jpos-maven-archetype/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you use Maven, there&#8217;s an extremely easy way to create a jPOS application now:</p>
<pre>
mvn archetype:generate \
  -DarchetypeGroupId=org.jpos \
  -DarchetypeArtifactId=jpos-archetype \
  -DarchetypeVersion=1.8.2 \
  -DarchetypeRepository=http://jpos.org/maven
</pre>
<p>If you don&#8217;t want to use the remote archetype, you can always &#8216;mvn install&#8217; jPOS <a href="https://github.com/jpos/jPOS">source code</a> and then:</p>
<pre>
mvn archetype:generate -DarchetypeCatalog=local
</pre>
<p>UPDATED to use 1.8.2 instead of 1.8.1-SNAPSHOT<br />
UPDATED to use &#8216;archetypeRepository&#8217; instead of &#8216;DremoteRepositories&#8217;</p>
]]></content:encoded>
			<wfw:commentRss>http://jpos.org/blog/2011/04/jpos-maven-archetype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jPOS Performance</title>
		<link>http://jpos.org/blog/2010/12/performanc/</link>
		<comments>http://jpos.org/blog/2010/12/performanc/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 00:19:42 +0000</pubDate>
		<dc:creator>apr</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://jpos.org/blog/?p=381</guid>
		<description><![CDATA[When companies &#8212; specially start-ups &#8212; ask us regarding jPOS performance, they usually tell us they need to support a massive load in the 1000+ TPS range. In order to give some perspective to these requirements, we always exchange some &#8230; <a href="http://jpos.org/blog/2010/12/performanc/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://omaha.com/apps/pbcsi.dll/bilde?Site=OW&#038;Date=20101210&#038;Category=MONEY&#038;ArtNo=712109939&#038;Ref=AR&#038;maxw=490&#038;maxh=275" alt="First Data NOC" /></p>
<p>When companies &#8212; specially start-ups &#8212; ask us regarding jPOS performance, they usually tell us they need to support a massive load in the 1000+ TPS range. In order to give some perspective to these requirements, we always exchange some industry information with jPOS power developer <a href="http://www.andyorrock.com">Andy</a> whose <a href="http://www.olsdallas.com">company</a> manage some jPOS systems reaching 200M transactions per month, and today Andy sent me <a href="http://omaha.com/article/20101210/MONEY/712109939#holiday-a-rush-for-first-data">a very nice link</a> (via OLS&#8217; Ron Barker) about one of the largest acquirers in the world, during a really busy day, requiring 988 TPS, the important part:</p>
<p><i>&#8220;The record day on Nov. 26 translated to about 988 payment authorizations per second.&#8221;</i></p>
<p>So I thought it would be nice to start having some stable performance tests here and there in jPOS, so we can have something to measure where we are now, and even if it&#8217;s really fast for most applications, attempt to improve it.</p>
<p>Because many developers use jPOS just to pack and unpack ISO-8583 messages, I thought it would be nice to start by measuring where we are now in the pack/unpack department. I believe there&#8217;s plenty of room for optimization, but I hope you&#8217;ll agree that we are in pretty good shape.</p>
<p>I&#8217;ve just added a performance test to PackagerTestCase.java to try:</p>
<ul>
<li>100000 pack operations</li>
<li>100000 unpack operations</li>
<li>100000 pack/unpack operations</li>
<li>100000 update, pack, and unpack operations</li>
</ul>
<p>and here are the results:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;profiler<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  PACK tps=31531, peak=31531, avg=25156.00 [3779.2/3779.2]
  UNPACK tps=32371, peak=37026, avg=29081.00 [3047.9/6827.2]
  PACK/UNPACK tps=16605, peak=16634, avg=16144.25 [6254.2/13081.5]
  UPDATE/PACK/UNPACK tps=10862, peak=10862, avg=10815.16 [10430.9/23512.5]
  end [23512.6/23512.6]
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/profiler<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>We are operating with a pretty heavy message, way bigger than a real-life ISO-8583 message:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;isomsg<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0800&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;1234567890123456789&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;3&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;000000&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;4&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;000000000100&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;5&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;000000000200&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;6&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;000000000300&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;7&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0611191024&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;8&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;12345678&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;9&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;12345678&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;12345678&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;11&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;000001&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;12&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;010203&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;13&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0611&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;14&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;1001&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;15&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0112&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;16&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0112&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;17&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0611&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;18&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;1234&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;19&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;858&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;20&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;032&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;21&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;400&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;22&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;000&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;23&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;001&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;24&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;003&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;25&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;00&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;26&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;01&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;27&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;28&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;000000100&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;29&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;000000200&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;30&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;000000300&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;31&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;000000400&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;32&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;123456&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;33&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;654321&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;34&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ01&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;35&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;1234567890123456=12345678901234567890&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;36&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;37&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;123456789ABC&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;38&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;123456&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;39&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;00&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;40&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;ABC&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;41&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0001ABCD&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;42&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;123456789012345&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;43&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;JPOS CARD ACCEPTOR / WWW.JPOS.ORG       &quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;44&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;jPOSjPOSjPOSjPOSjPOSjPOS&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;45&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;JPOSJPOSJPOSJPOSJPOSJPOS&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;46&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;ADDITIONAL DATA - ISO&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;47&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;ADDITIONAL DATA - NATIONAL&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;48&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;ADDITIONAL DATA - PRIVATE&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;49&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;032&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;50&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;032&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;51&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;032&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;52&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0001020304050607&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;binary&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;53&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;1234567890123456&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;54&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;000000001000000000002000&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;55&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;ABCD&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;56&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;EFGH&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;57&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;IJKL&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;58&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;MNOP&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;59&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;QRST&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;60&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;UVWX&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;61&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;YZ01&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;62&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;A002&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;63&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;ABCDDCBA&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;64&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;CAFEBABECAFEBABE&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;binary&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;field</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;90&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;000000000000000000000000000000000000000000&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/isomsg<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>The last test is the more realistic one, because we tweak the message by changing some fields (i.e. 7,11,12,13), then pack and unpack.</p>
<p>In most jPOS applications, we receive a message, change a few fields, and send it back, for instance, a typical server will reply by just changing a few fields (i.e. 39, 38) and eventually resetting a few others. I think there&#8217;s tremendous room for optimization by caching the binary image of the packed message at the field level, avoiding a re-pack unless the field has changed.</p>
<p>Now that we know where we are, I hope to start testing some optimizations soon. You&#8217;re encourage to do so too.</p>
<p>BTW, these figures were taken on an MBP, it would be nice to have some feedback from runs on larger servers.</p>
]]></content:encoded>
			<wfw:commentRss>http://jpos.org/blog/2010/12/performanc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jPOS 1.8 series</title>
		<link>http://jpos.org/blog/2010/11/jpos-1-8-series/</link>
		<comments>http://jpos.org/blog/2010/11/jpos-1-8-series/#comments</comments>
		<pubDate>Sun, 28 Nov 2010 02:14:05 +0000</pubDate>
		<dc:creator>apr</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://jpos.org/blog/?p=372</guid>
		<description><![CDATA[Starting in jPOS 1.8, we are going to manage jPOS builds using Maven. There&#8217;s a mvn branch soon to be merged with master. It seems 1.7.2 will be the last version of the old series managed by &#8216;ant&#8217;, will jump &#8230; <a href="http://jpos.org/blog/2010/11/jpos-1-8-series/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Starting in jPOS 1.8, we are going to manage jPOS builds using Maven.</p>
<p>There&#8217;s a <a href="https://github.com/jpos/jPOS/commits/mvn">mvn branch</a> soon to be merged with <b>master</b>.</p>
<p>It seems <b>1.7.2</b> will be the last version of the old series managed by &#8216;ant&#8217;, will jump to <b>1.8.0</b> soon.</p>
<p>You can try <b>1.8.2</b> by adding to your pom.xml:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>jpos<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>jPOS Central Repository<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://jpos.org/maven<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;layout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>default<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/layout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>org.jpos<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>jpos<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1.8.2<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p><b>1.7.2</b> has already been committed to <a href="http://code.google.com/p/jposee/">jPOS EE</a>.</p>
<p>We&#8217;ll continue with the old module-based build system on jPOS-EE for a while.</p>
<p>UPDATE: changed 1.8-SNAPSHOT to 1.8.0<br />
UPDATE: changed 1.8-SNAPSHOT to 1.8.2</p>
]]></content:encoded>
			<wfw:commentRss>http://jpos.org/blog/2010/11/jpos-1-8-series/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jPOS in Github</title>
		<link>http://jpos.org/blog/2010/11/jpos-in-github/</link>
		<comments>http://jpos.org/blog/2010/11/jpos-in-github/#comments</comments>
		<pubDate>Sat, 06 Nov 2010 20:42:10 +0000</pubDate>
		<dc:creator>apr</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://jpos.org/blog/?p=348</guid>
		<description><![CDATA[Quick note to let you know that as of subversion r3019, new jPOS development will take place in github.com/jpos. The jPOS Project Guide has been updated.]]></description>
			<content:encoded><![CDATA[<p><img src="https://github.com/images/modules/header/logov3-hover.png" alt="Github" /></p>
<p>Quick note to let you know that as of subversion <b>r3019</b>, new jPOS development will take place in <a href="https://github.com/jpos">github.com/jpos</a>.</p>
<p>The <a href="http://jpos.org/doc/jPOS-Project-Guide.pdf">jPOS Project Guide</a> has been updated.</p>
]]></content:encoded>
			<wfw:commentRss>http://jpos.org/blog/2010/11/jpos-in-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JRuby support</title>
		<link>http://jpos.org/blog/2010/10/jruby-support/</link>
		<comments>http://jpos.org/blog/2010/10/jruby-support/#comments</comments>
		<pubDate>Sun, 31 Oct 2010 14:42:36 +0000</pubDate>
		<dc:creator>apr</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://jpos.org/blog/?p=339</guid>
		<description><![CDATA[/by apr/ I&#8217;ve spent a great time listening to great talks at RubyConf Uruguay organized by Cubox. Now I totally understand when they say &#8220;Old School Teamwork Fun People, Serious pros: The mix you’re looking for&#8221; in their website. It &#8230; <a href="http://jpos.org/blog/2010/10/jruby-support/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>/by apr/</em></p>
<p>I&#8217;ve spent a great time listening to great talks at <a href="http://www.rubyconfuruguay.org/en">RubyConf Uruguay</a> organized by <a href="http://cuboxsa.com/">Cubox</a>. Now I totally understand when they say <em>&#8220;Old School Teamwork Fun People, Serious pros: The mix you’re looking for&#8221;</em> in their website. It is exactly that.</p>
<p>I was delighted to listen to Charles Nutter (JRuby&#8217;s author) talk but was sad with <a href="http://twitter.com/#!/headius/status/29266819504">this tweet</a> from him a few hours ago:</p>
<p><img src="http://jpos.org/images/blog/headius_sad.png" alt="Headius Sad" /></p>
<p>So I tried latest JRuby on latest jPOS, it took just a few minutes. I&#8217;ve added an optional &#8216;jruby&#8217; module to jPOS-EE (just depends on the &#8216;commons&#8217; module) and you can now deploy a QBean that looks like this:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ruby</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">'org.jpos.jruby.Ruby'</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  puts &quot;Hello jRuby!&quot;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ruby<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>And that&#8217;s all there is to it <img src='http://jpos.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>If you want to try this in a new small project, you can follow the HOWTO in <a href="http://jpos.org/doc/jPOS-Project-Guide.pdf">jPOS Project Guide</a> around page 35, just add the &#8216;commons&#8217; and &#8216;jruby&#8217; module as svn:externals, and you&#8217;d be ready to go.</p>
<p>And the output, you guess it:</p>
<p><b>Hello jRuby!</b></p>
<p>Mr. Nutter, Welcome to this southern Montevideo and beware with the dogs here <img src='http://jpos.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://jpos.org/blog/2010/10/jruby-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jPOS-EE Things</title>
		<link>http://jpos.org/blog/2010/07/jpos-ee-things/</link>
		<comments>http://jpos.org/blog/2010/07/jpos-ee-things/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 17:23:03 +0000</pubDate>
		<dc:creator>apr</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://jpos.org/blog/?p=316</guid>
		<description><![CDATA[Inspired by this talk, I got reminded to play with EAVs in jPOS-EE. I&#8217;ve created a jPOS-EE modules called &#8220;things&#8221; that I believe it&#8217;s a good thing to have in most applications. I don&#8217;t think this is a one-size-fits-all solution, &#8230; <a href="http://jpos.org/blog/2010/07/jpos-ee-things/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Inspired by <a href="http://vimeo.com/10506751">this talk</a>, I got reminded to play with EAVs in jPOS-EE.</p>
<p>I&#8217;ve created a jPOS-EE modules called &#8220;things&#8221; that I believe it&#8217;s a good thing to have in most applications.</p>
<p>I don&#8217;t think this is a one-size-fits-all solution, you probably don&#8217;t want to store your core tables (such as the transaction log, miniGL stuff, whatever) using this open schema approach, but for everything else, having this open schema can save your day (in the same way a &#8216;flags&#8217; field in most tables can help at some point).</p>
<p>Using it is very simple, you create a &#8220;thing&#8221; using the ThingsManager:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">   DB db <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> DB<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   
   ThingsManager mgr <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ThingsManager<span style="color: #009900;">&#40;</span>db<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   Thing t <span style="color: #339933;">=</span> mgr.<span style="color: #006633;">create</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;MyThing&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Then you can put Strings, Longs, Dates, Timestamps, long Strings and BigDecimals to your thing, i.e:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">   t.<span style="color: #006633;">put</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;AString&quot;</span>,  <span style="color: #0000ff;">&quot;This is a string&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   t.<span style="color: #006633;">put</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ALong&quot;</span>, <span style="color: #003399;">Long</span>.<span style="color: #006633;">MAX_VALUE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   t.<span style="color: #006633;">put</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;MyInteger&quot;</span>, i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   t.<span style="color: #006633;">put</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Date&quot;</span>, d<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   t.<span style="color: #006633;">put</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Timestamp&quot;</span>, <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Timestamp</span><span style="color: #009900;">&#40;</span>now<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   t.<span style="color: #006633;">put</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;BigDecimal&quot;</span>, ONE_THOUSAND<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   t.<span style="color: #006633;">putText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Text&quot;</span>, <span style="color: #0000ff;">&quot;The quick brown fox is brown and the dog is lazy, and jumps.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>The ThingsManager has some handy methods already, and we&#8217;ll add more as the need arise.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">List</span> getAll <span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> type<span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> Thing getLast <span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> type<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">List</span> listByStringName <span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> type, <span style="color: #003399;">String</span> name<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">List</span> listByStringValue <span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> type, <span style="color: #003399;">String</span> value<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">List</span> listByStringNameValue <span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> type, <span style="color: #003399;">String</span> name,<span style="color: #003399;">String</span> value<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">List</span> listByTextName <span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> type, <span style="color: #003399;">String</span> name<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">List</span> listByTextValue <span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> type, <span style="color: #003399;">String</span> value<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
...
...</pre></div></div>

<p>Some immediate use comes to mind, we could use this to provide a more type-safe, versionable version of our existing SysConfig table (i.e. we could have a thing called &#8216;SysConfig&#8217; and keep previous versions as &#8216;SysConfig;1&#8242;, &#8216;SysConfig;2&#8242;, etc. (or another numbering scheme if you find this one too VMS-eske). It&#8217;s also good to handle extremely proprietary stuff such as fee configuration, currency exchange, etc. found in many jPOS applications.</p>
<p>The things module is available in jPOS-EE as of r307</p>
]]></content:encoded>
			<wfw:commentRss>http://jpos.org/blog/2010/07/jpos-ee-things/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Q2 transient services</title>
		<link>http://jpos.org/blog/2010/07/q2-transient-services/</link>
		<comments>http://jpos.org/blog/2010/07/q2-transient-services/#comments</comments>
		<pubDate>Sat, 24 Jul 2010 23:35:05 +0000</pubDate>
		<dc:creator>apr</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://jpos.org/blog/?p=300</guid>
		<description><![CDATA[In jCard and jPTS we use the concept of Stations, we have Source Stations (SS), Destination Stations (DS), Monitoring Stations (MS), Control Stations (CS) and Cryptographic Stations (HSMS), etc. Every station usually requires a handful Q2 services (QBeans), such as &#8230; <a href="http://jpos.org/blog/2010/07/q2-transient-services/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://jpos.org/blog/2008/06/jcard-and-jpts/">jCard and jPTS</a> we use the concept of <b>Stations</b>, we have Source Stations (SS), Destination Stations (DS), Monitoring Stations (MS), Control Stations (CS) and Cryptographic Stations (HSMS), etc.</p>
<p>Every station usually requires a handful Q2 services (QBeans), such as a MUX or MUXPool, one or more ChannelAdaptors with their filters, LogonManager, KeyExchangeManagers, eventually an independent logger, etc.</p>
<p>You can configure those manually for a small set of stations, you can also use some scripts, but in order to support a large number of stations, and to easily manage them from the UI, we use a database to keep their basic configuration (station type, host, port, timeouts, etc.) and then use these new <b>transient services</b> provided by Q2.</p>
<p>When Q2 starts, it&#8217;s create an unique transient UUID, that FYI is displayed by the SystemMonitor task:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;log</span> <span style="color: #000066;">realm</span>=<span style="color: #ff0000;">&quot;org.jpos.q2.qbean.SystemMonitor&quot;</span> <span style="color: #000066;">at</span>=<span style="color: #ff0000;">&quot;Sat Jul 24 20:14:14 UYT 2010.495&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;info<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;release<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>jPOS 1.6.9 r2950<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/release<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;instance<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>e424833b-c2c1-4f8b-b743-8a69271912a2<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/instance<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;uptime<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>00:00:00.170<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/uptime<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/info<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   ...
   ...
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/log<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>When you deploy a QBean using Q2&#8242;s deployElement method (which is now public), you can flag that qbean as &#8216;transient&#8217; (there&#8217;s a boolean parameter). In that case, Q2 will remove the file on exit, but just in case the system crashes, it also adds a &#8216;transient&#8217; attribute to the QBean, i.e:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;server</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;org.jpos.q2.iso.QServer&quot;</span> <span style="color: #000066;">logger</span>=<span style="color: #ff0000;">&quot;Q2&quot;</span>  <span style="color: #000066;">instance</span>=<span style="color: #ff0000;">&quot;e424833b-c2c1-4f8b-b743-8a69271912a2&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  ...
  ...
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/server<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>The next time it runs, Q2 will generate a new instance ID, so in the rare situation where an old deployment descriptor is present in the deploy directory, it will be ignored and deleted (as it should have been removed at the previous exit).</p>
<p>Q2.deployElement is a handy method that requires a JDom Element. If you are not a member of the JDom church, you can always create your QBean manually, you can get to know Q2&#8242;s instance ID by calling its getInstanceId() method that gives you an UUID,.</p>
<p>Note: when you deploy a bundle using Q2 &#8211;config=/path/to/your/bundle, Q2 now flags the exploded descriptors as transient.</p>
<p>This is available as of <b>jPOS 1.6.9 r2950</b></p>
]]></content:encoded>
			<wfw:commentRss>http://jpos.org/blog/2010/07/q2-transient-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jPOS 1.6.8 has been released</title>
		<link>http://jpos.org/blog/2010/07/jpos-1-6-8-has-been-released/</link>
		<comments>http://jpos.org/blog/2010/07/jpos-1-6-8-has-been-released/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 11:57:53 +0000</pubDate>
		<dc:creator>apr</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://jpos.org/blog/?p=282</guid>
		<description><![CDATA[Just a quick note to let you know that jPOS 1.6.8 has been released (ChangeLog). This is a maintenance release that fixes several bugs and adds some reasonable defaults that can avoid some problems (i.e.TransactionManager&#8217;s paused-timeout default issue). jPOS-EE users &#8230; <a href="http://jpos.org/blog/2010/07/jpos-1-6-8-has-been-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Just a quick note to let you know that jPOS 1.6.8 has been released (<a href="http://jpos.org/wiki/ChangeLog">ChangeLog</a>).</p>
<p>This is a maintenance release that fixes several bugs and adds some reasonable defaults that can avoid some problems (i.e.TransactionManager&#8217;s paused-timeout default issue).</p>
<p>jPOS-EE users just &#8216;svn update&#8217; and you&#8217;ll get it from modules/jpos/lib/jpos.jar (r290). </p>
]]></content:encoded>
			<wfw:commentRss>http://jpos.org/blog/2010/07/jpos-1-6-8-has-been-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Technology XYZ</title>
		<link>http://jpos.org/blog/2010/06/technology-xy/</link>
		<comments>http://jpos.org/blog/2010/06/technology-xy/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 16:35:31 +0000</pubDate>
		<dc:creator>apr</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://jpos.org/blog/?p=277</guid>
		<description><![CDATA[/by apr/ There are several recurring questions that jPOS new users keep asking: I want to build jPOS in Netbeans/Eclipse/IDEA I want to log to log4j I want to run it in Tomcat/Spring/Websphere/Weblogic/JBoss (note the mix of technologies here) Here &#8230; <a href="http://jpos.org/blog/2010/06/technology-xy/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>/by apr/</em></p>
<p>There are several recurring questions that jPOS new users keep asking:</p>
<ul>
<li>I want to build jPOS in Netbeans/Eclipse/IDEA</li>
<li>I want to log to log4j</li>
<li>I want to run it in Tomcat/Spring/Websphere/Weblogic/JBoss (note the mix of technologies here)</li>
</ul>
<p>Here is how I read them:</p>
<ul>
<li>I want to build jPOS in my IDE because I don&#8217;t have a clue about compiling a java program using ant and I&#8217;m lazy to learn something new. I don&#8217;t even know how to &#8216;cd&#8217; to the jPOS directory.</li>
<li>I know how to configure log4j and don&#8217;t want to learn how to configure other stuff. jPOS comes pre-configured to use a very nice PCI-compliant log, but I&#8217;m so lazy that I don&#8217;t know that, so I ask how to use it with log4j.</li>
<li>I don&#8217;t know how to start a Java application as a daemon/service, but my Tomcat/Spring/Websphere somehow is already running in my server (the previous admin left it running before quitting), so I want to run jPOS inside one of those.</li>
</ul>
<p>So people don&#8217;t care about the business logic, about why they need jPOS, they just want to have something running in their environment, even if the environment is not the best choice to run their jPOS applications.</p>
<p>jPOS is a first class application that will process transactions worth millions of dollars for you. You should consider asking us what&#8217;s the best environment, the best DB, the OS to run jPOS instead of forcing it to run in weird ways.</p>
<p>Amen.</p>
]]></content:encoded>
			<wfw:commentRss>http://jpos.org/blog/2010/06/technology-xy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

