<?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>Alex&#039;s Adventures in CodeSpace &#187; store</title>
	<atom:link href="http://www.blogalex.com/archives/tag/store/feed" rel="self" type="application/rss+xml" />
	<link>http://www.blogalex.com</link>
	<description>Alex Guerrieri&#039;s Blog</description>
	<lastBuildDate>Wed, 22 Jun 2011 15:56:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Retrying the dlrs from the store</title>
		<link>http://www.blogalex.com/archives/132</link>
		<comments>http://www.blogalex.com/archives/132#comments</comments>
		<pubDate>Thu, 07 May 2009 13:46:06 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Kannel]]></category>
		<category><![CDATA[dlr]]></category>
		<category><![CDATA[patches]]></category>
		<category><![CDATA[retry]]></category>
		<category><![CDATA[store]]></category>

		<guid isPermaLink="false">http://www.blogalex.com/?p=132</guid>
		<description><![CDATA[This patch implements an sleep and retry mechanism when calling dlr_get(). This aims to solve the problem we were having with dlr's arriving before the row is inserted.]]></description>
			<content:encoded><![CDATA[<div style="margin:5px 0px 5px 0px" id="linksalpha_tag_958204072" class="linksalpha-email-button" data-url="http://www.blogalex.com/archives/132" data-text="Retrying the dlrs from the store" data-desc="If you're using an external DB for dlr storage, there's a slight chance that the carrier's response to your MT (with the dlr information) would arrive after the dlr itself. If this happens, Kannel won't be able to find the dlr (because it's not there yet).

This patch implements an sleep and retry mechanism when calling dlr_get(). This aims to solve that problem.

2 new core parameters are defined:
dlr-retry-count -&gt; How many times do we attempt to fetch the dlr? Default: 1
dlr-retry-" data-site="Alex&#039;s Adventures in CodeSpace"></div><script type="text/javascript" src="http://www.linksalpha.com/social/loader?script_type=buttons_counters&tag_id=linksalpha_tag_958204072&link=http%3A%2F%2Fwww.blogalex.com%2Farchives%2F132&gplus=1&twitter=1&fblike=1&linkedin=1&gbuzz=0&tumblr=0&reddit=0&pinterest=0&digg=0&stumbleupon=0&gpluslang=en-US&twitterlang=en&fblikelang=en_US&gbuzzlang=en&fblikeverb=like&fblikefont=arial&fblikeref=linksalpha&gplusctr=1&twitterctr=1&linkedinctr=1&gbuzzctr=1&redditctr=1&pinterestctr=1&diggctr=1&stumbleuponctr=1&twittermention=&twitterrelated1=&twitterrelated2=&halign=center"></script><p>If you&#8217;re using an external DB for dlr storage, there&#8217;s a slight chance that the carrier&#8217;s response to your MT (with the dlr information) would arrive <em>after</em> the dlr itself. If this happens, <strong>Kannel</strong> won&#8217;t be able to find the dlr (because it&#8217;s not there yet).</p>
<p>This patch implements an <em>sleep and retry</em> mechanism when calling <em>dlr_get()</em>. This aims to solve that problem.</p>
<p>2 new core parameters are defined:</p>
<blockquote><p>dlr-retry-count -&gt; How many times do we attempt to fetch the dlr? Default: 1<br />
dlr-retry-delay -&gt; How many milliseconds do we sleep before retrying? Default: 0</p></blockquote>
<p>So, if you don&#8217;t set these parameters the behaviour remains as it was before patching. However, if you, for instance, set:</p>
<blockquote><p>dlr-retry-count = 3<br />
dlr-retry-delay = 200</p></blockquote>
<p><strong>Kannel</strong> will try 3 times in total (the original plus 2 more), pausing 200ms (0.2 seconds) before each attempt. If after the third attempt the DLR&#8217;s still missing, <strong>Kannel</strong> will display a warning as usual.</p>
<p>Download the patch from here: <a href="http://www.blogalex.com/wp-content/uploads/2009/05/kannel-dlr-retry.patch">kannel-dlr-retry</a></p>
<p>Please try it and let me know what you think.</p>
<p>Regards,</p>
<p>Alex</p>
<div style="margin:0px 0px 0px 0px" id="linksalpha_tag_1213390606" class="linksalpha-email-button" data-url="http://www.blogalex.com/archives/132" data-text="Retrying the dlrs from the store" data-desc="If you're using an external DB for dlr storage, there's a slight chance that the carrier's response to your MT (with the dlr information) would arrive after the dlr itself. If this happens, Kannel won't be able to find the dlr (because it's not there yet).

This patch implements an sleep and retry mechanism when calling dlr_get(). This aims to solve that problem.

2 new core parameters are defined:
dlr-retry-count -&gt; How many times do we attempt to fetch the dlr? Default: 1
dlr-retry-" data-site="Alex&#039;s Adventures in CodeSpace"></div><script type="text/javascript" src="http://www.linksalpha.com/social/loader?script_type=buttons_counters&tag_id=linksalpha_tag_1213390606&link=http%3A%2F%2Fwww.blogalex.com%2Farchives%2F132&gplus=1&twitter=1&fbsend=1&linkedin=1&gbuzz=0&tumblr=0&reddit=0&pinterest=1&digg=0&stumbleupon=1&gpluslang=en-US&twitterlang=en&fbsendlang=en_US&gbuzzlang=en&twittermention=&twitterrelated1=&twitterrelated2=&halign=center"></script>]]></content:encoded>
			<wfw:commentRss>http://www.blogalex.com/archives/132/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>DB-Based Store for Kannel</title>
		<link>http://www.blogalex.com/archives/88</link>
		<comments>http://www.blogalex.com/archives/88#comments</comments>
		<pubDate>Thu, 29 Jan 2009 22:20:26 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Kannel]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[patches]]></category>
		<category><![CDATA[store]]></category>

		<guid isPermaLink="false">http://www.blogalex.com/?p=88</guid>
		<description><![CDATA[This is a new version from my previous patch to add support for a DB based store. Fundamental differences with the previous version: 1. The DB table is now created automatically at startup (if it didn&#8217;t exist). 2. Cleaned up code aiming at supporting other DB engines apart from MySQL. 3. Added documentation. Please download [...]]]></description>
			<content:encoded><![CDATA[<div style="margin:5px 0px 5px 0px" id="linksalpha_tag_617340545" class="linksalpha-email-button" data-url="http://www.blogalex.com/archives/88" data-text="DB-Based Store for Kannel" data-desc="This is a new version from my previous patch to add support for a DB based store.

Fundamental differences with the previous version:

1. The DB table is now created automatically at startup (if it didn't exist).

2. Cleaned up code aiming at supporting other DB engines apart from MySQL.

3. Added documentation.

Please download the patches here:

kannel-store-db

kannel-store-db-docs

Again, this is far from stable. It needs further testing and confirmation before rolling up int" data-site="Alex&#039;s Adventures in CodeSpace"></div><script type="text/javascript" src="http://www.linksalpha.com/social/loader?script_type=buttons_counters&tag_id=linksalpha_tag_617340545&link=http%3A%2F%2Fwww.blogalex.com%2Farchives%2F88&gplus=1&twitter=1&fblike=1&linkedin=1&gbuzz=0&tumblr=0&reddit=0&pinterest=0&digg=0&stumbleupon=0&gpluslang=en-US&twitterlang=en&fblikelang=en_US&gbuzzlang=en&fblikeverb=like&fblikefont=arial&fblikeref=linksalpha&gplusctr=1&twitterctr=1&linkedinctr=1&gbuzzctr=1&redditctr=1&pinterestctr=1&diggctr=1&stumbleuponctr=1&twittermention=&twitterrelated1=&twitterrelated2=&halign=center"></script><p>This is a new version from my <a title="previous" href="http://www.blogalex.com/archives/20" target="_self">previous</a> patch to add support for a DB based store.</p>
<p>Fundamental differences with the previous version:</p>
<p>1. The DB table is now created automatically at startup (if it didn&#8217;t exist).</p>
<p>2. Cleaned up code aiming at supporting other DB engines apart from MySQL.</p>
<p>3. Added documentation.</p>
<p>Please download the patches here:</p>
<p><a href="http://www.blogalex.com/wp-content/uploads/2009/01/kannel-store-db.patch">kannel-store-db</a></p>
<p><a href="http://www.blogalex.com/wp-content/uploads/2009/01/kannel-store-db-docs.patch">kannel-store-db-docs</a></p>
<p>Again, this is far from stable. It needs further testing and confirmation before rolling up into production.</p>
<p>Regards,</p>
<p>Alex</p>
<div style="margin:0px 0px 0px 0px" id="linksalpha_tag_1812346972" class="linksalpha-email-button" data-url="http://www.blogalex.com/archives/88" data-text="DB-Based Store for Kannel" data-desc="This is a new version from my previous patch to add support for a DB based store.

Fundamental differences with the previous version:

1. The DB table is now created automatically at startup (if it didn't exist).

2. Cleaned up code aiming at supporting other DB engines apart from MySQL.

3. Added documentation.

Please download the patches here:

kannel-store-db

kannel-store-db-docs

Again, this is far from stable. It needs further testing and confirmation before rolling up int" data-site="Alex&#039;s Adventures in CodeSpace"></div><script type="text/javascript" src="http://www.linksalpha.com/social/loader?script_type=buttons_counters&tag_id=linksalpha_tag_1812346972&link=http%3A%2F%2Fwww.blogalex.com%2Farchives%2F88&gplus=1&twitter=1&fbsend=1&linkedin=1&gbuzz=0&tumblr=0&reddit=0&pinterest=1&digg=0&stumbleupon=1&gpluslang=en-US&twitterlang=en&fbsendlang=en_US&gbuzzlang=en&twittermention=&twitterrelated1=&twitterrelated2=&halign=center"></script>]]></content:encoded>
			<wfw:commentRss>http://www.blogalex.com/archives/88/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Store Tools for Kannel</title>
		<link>http://www.blogalex.com/archives/72</link>
		<comments>http://www.blogalex.com/archives/72#comments</comments>
		<pubDate>Mon, 26 Jan 2009 12:01:44 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Kannel]]></category>
		<category><![CDATA[patches]]></category>
		<category><![CDATA[store]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.blogalex.com/?p=72</guid>
		<description><![CDATA[One of the problems with Kannel&#8217;s store formats is that they&#8217;re binary packed and it&#8217;s not easy to manipulate them. Specially with the store-file format, getting rid of a single message requires editing the binary file and it&#8217;s not a trivial task. Converting between file and spool formats it&#8217;s not easy, and if you want [...]]]></description>
			<content:encoded><![CDATA[<div style="margin:5px 0px 5px 0px" id="linksalpha_tag_283261213" class="linksalpha-email-button" data-url="http://www.blogalex.com/archives/72" data-text="Store Tools for Kannel" data-desc="One of the problems with Kannel's store formats is that they're binary packed and it's not easy to manipulate them. Specially with the store-file format, getting rid of a single message requires editing the binary file and it's not a trivial task. Converting between file and spool formats it's not easy, and if you want to export the content to some other format you need to rely on the web interface.

That's why I've created these simple store-manipulation program: store_tools.

What store_to" data-site="Alex&#039;s Adventures in CodeSpace"></div><script type="text/javascript" src="http://www.linksalpha.com/social/loader?script_type=buttons_counters&tag_id=linksalpha_tag_283261213&link=http%3A%2F%2Fwww.blogalex.com%2Farchives%2F72&gplus=1&twitter=1&fblike=1&linkedin=1&gbuzz=0&tumblr=0&reddit=0&pinterest=0&digg=0&stumbleupon=0&gpluslang=en-US&twitterlang=en&fblikelang=en_US&gbuzzlang=en&fblikeverb=like&fblikefont=arial&fblikeref=linksalpha&gplusctr=1&twitterctr=1&linkedinctr=1&gbuzzctr=1&redditctr=1&pinterestctr=1&diggctr=1&stumbleuponctr=1&twittermention=&twitterrelated1=&twitterrelated2=&halign=center"></script><p>One of the problems with Kannel&#8217;s store formats is that they&#8217;re binary packed and it&#8217;s not easy to manipulate them. Specially with the store-file format, getting rid of a single message requires editing the binary file and it&#8217;s not a trivial task. Converting between file and spool formats it&#8217;s not easy, and if you want to export the content to some other format you need to rely on the web interface.</p>
<p>That&#8217;s why I&#8217;ve created these simple store-manipulation program: <em>store_tools</em>.</p>
<p>What <em>store_tools</em> do is to read the store location and format from your<em> kannel.conf</em> file and allows you to perform a series of commands with it. The available commands are:</p>
<table border="0" cellpadding="2" cellspacing="0" style="border-collapse:collapse;">
<tbody>
<tr>
<td width="200" style="border:1px solid gray;padding:2px"><strong>list [limit/start] [limit]</strong></td>
<td style="border:1px solid gray;padding:2px">Allows you to list the content of the store. Optional parameters allows you to list limit records, or start at a given record and also limit the amount returned.</td>
</tr>
<tr>
<td style="border:1px solid gray;padding:2px"><strong><em>delete &lt;uid&gt;</em></strong></td>
<td style="border:1px solid gray;padding:2px">Allows you to delete a message. You can retrieve the uid by using the list command.</td>
</tr>
<tr>
<td style="border:1px solid gray;padding:2px"><strong><em>export &lt;format&gt; &lt;location&gt;</em></strong></td>
<td style="border:1px solid gray;padding:2px">Allows you to export the store into another format. Possible formats are: text, xml, html, spool and file. &lt;location&gt; specifies the path where you want the exported data to be written.</td>
</tr>
</tbody>
</table>
<p><br/><br />
NOTE: Since the <em>delete</em> command modifies the store, you should do it with kannel stopped.</p>
<p>Please download the patch here: <a href="http://www.blogalex.com/wp-content/uploads/2009/01/kannel_store_tools.patch">kannel_store_tools</a></p>
<p>Please try it and let me know if it works for you.</p>
<p>-Alex-</p>
<div style="margin:0px 0px 0px 0px" id="linksalpha_tag_1198380928" class="linksalpha-email-button" data-url="http://www.blogalex.com/archives/72" data-text="Store Tools for Kannel" data-desc="One of the problems with Kannel's store formats is that they're binary packed and it's not easy to manipulate them. Specially with the store-file format, getting rid of a single message requires editing the binary file and it's not a trivial task. Converting between file and spool formats it's not easy, and if you want to export the content to some other format you need to rely on the web interface.

That's why I've created these simple store-manipulation program: store_tools.

What store_to" data-site="Alex&#039;s Adventures in CodeSpace"></div><script type="text/javascript" src="http://www.linksalpha.com/social/loader?script_type=buttons_counters&tag_id=linksalpha_tag_1198380928&link=http%3A%2F%2Fwww.blogalex.com%2Farchives%2F72&gplus=1&twitter=1&fbsend=1&linkedin=1&gbuzz=0&tumblr=0&reddit=0&pinterest=1&digg=0&stumbleupon=1&gpluslang=en-US&twitterlang=en&fbsendlang=en_US&gbuzzlang=en&twittermention=&twitterrelated1=&twitterrelated2=&halign=center"></script>]]></content:encoded>
			<wfw:commentRss>http://www.blogalex.com/archives/72/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

