<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Coffee|Code : Dan Scott, Caffeinated Librarian Geek - DB2</title>
    <link>http://coffeecode.net/</link>
    <description>Many ideas crammed into bits...</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.3.1 - http://www.s9y.org/</generator>
    <pubDate>Mon, 17 Sep 2007 01:19:43 GMT</pubDate>

    <image>
        <url>http://coffeecode.net/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Coffee|Code : Dan Scott, Caffeinated Librarian Geek - DB2 - Many ideas crammed into bits...</title>
        <link>http://coffeecode.net/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>The Linux Documentation Project, DB2, XML, and nostalgia</title>
    <link>http://coffeecode.net/archives/139-The-Linux-Documentation-Project,-DB2,-XML,-and-nostalgia.html</link>
            <category>DB2</category>
    
    <comments>http://coffeecode.net/archives/139-The-Linux-Documentation-Project,-DB2,-XML,-and-nostalgia.html#comments</comments>
    <wfw:comment>http://coffeecode.net/wfwcomment.php?cid=139</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://coffeecode.net/rss.php?version=2.0&amp;type=comments&amp;cid=139</wfw:commentRss>
    

    <author>dan@coffeecode.net (Dan Scott)</author>
    <content:encoded>
    &lt;p&gt;I took a walk down memory lane this evening. I thought I might as well bore you with the details.&lt;/p&gt;
&lt;p&gt;One of my first forays into the open source world was to participate in the &lt;a href=&quot;http://tldp.org&quot;&gt;Linux Documentation Project&lt;/a&gt; (TLDP). At the time (circa 1999), I was working for IBM as a technical writer for &lt;a href=&quot;http://ibm.com/db2&quot;&gt;DB2 database&lt;/a&gt;. IBM was releasing DB2 on the Linux platform, I was part of the pre-release testing team, and I had turned to TLDP to provide me with an introduction to the world of Linux as a total n00b. It was a godsend of information.&lt;/p&gt;
&lt;p&gt;When DB2 was officially released on the Linux platform, it only officially supported a handful of distributions. Given the normal technical writing and release cycle, the officially supported versions of the distributions were woefully out of date in the official documentation. That, and much of the required installation and configuration information was either missing, or wrong. Don&#039;t lay any blame on the people involved; that was just the way that the release process (including translation into umpteen languages that were all available on release day) forced the end product to be. My focus was on application development, but I had to get test environments set up so I could ensure what I was writing actually worked (that&#039;s the way I roll as a tech writer). Of course, I chose an unsupported-by-DB2 but much more current distribution (Mandrake Linux 5.3 &quot;Venus&quot; I believe) simply because it would install on my hardware, when Red Hat 5.2 would not.&lt;/p&gt;
&lt;p&gt;It struck me that my install experiences would help other DB2 users as well. I realized it would also give IBM a way around the barrier imposed by the restriction that the official documentation for a given release was published once per release - no updates. By contributing a DB2 HOWTO to TLDP, I would not only be able to provide documentation on the distributions that people were actually using, I would also be able to update the HOWTO as circumstances warranted. My manager supported the project, and helped me stickhandle some obstacles. The result, I believe, was beneficial all around; I contributed some code to TLDP to help improve the PDF output and helped mentor some TLDP n00bs; DB2 got some usable documentation when it really needed it; and I had the opportunity to learn a technical writing DTD that made sense (&lt;a href=&quot;http://docbook.org/&quot;&gt;DocBook&lt;/a&gt;) and play with an impressive open-source publishing toolchain.&lt;/p&gt;
&lt;p&gt;Over time, my friend and co-worker Ian Hakes picked up the ball and drove the next iteration of the DB2 HOWTO with my help. It has been over a year and a half since I left IBM, so I haven&#039;t paid any attention to the DB2 HOWTO. Recently, however, as I was playing around with an updated version of the DocBook toolchain, I discovered that Ian has released a brand new version of the &lt;a href=&quot;http://tldp.org/HOWTO/DB2-HOWTO/index.html&quot;&gt;DB2 HOWTO&lt;/a&gt; to cover installation of DB2 Express-C on various distributions. He included a touching tip of the hat to me, as well. What a swell guy!&lt;/p&gt;
&lt;p&gt;On one hand, I&#039;m not sure that TLDP has nearly as much of a mandate as it did eight years ago. There are scads of books, a handful of good magazines, blogs, wikis, and web sites all publishing information about Linux these days. On the other hand, there&#039;s something to be said for a corpus of documentation maintained and edited by volunteers who just want to get information into the hands of people who need help -- without compensation, without publicity, and generally without thanks.&lt;/p&gt;
&lt;p&gt;So, given how much TLDP has helped me - thank you, &lt;a href=&quot;http://tldp.org/vlist.html&quot;&gt;TLDP volunteers&lt;/a&gt;. And thank you, Norm Walsh and the entire DocBook community, for providing an open-source publishing toolchain that starts with semantic XML and results in professional-looking documentation.&lt;/p&gt;
&lt;p&gt;P.S. I made another commit to the DB2 HOWTO tonight - just balancing out an XML element that was missing to return the document to valid XML state. And let me tell you, it felt good!&lt;/p&gt; 
    </content:encoded>

    <pubDate>Sun, 16 Sep 2007 20:34:25 -0400</pubDate>
    <guid isPermaLink="false">http://coffeecode.net/archives/139-guid.html</guid>
    
</item>
<item>
    <title>In-depth _and_ official DB2 and PHP documentation</title>
    <link>http://coffeecode.net/archives/68-In-depth-_and_-official-DB2-and-PHP-documentation.html</link>
            <category>DB2</category>
            <category>PHP</category>
    
    <comments>http://coffeecode.net/archives/68-In-depth-_and_-official-DB2-and-PHP-documentation.html#comments</comments>
    <wfw:comment>http://coffeecode.net/wfwcomment.php?cid=68</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://coffeecode.net/rss.php?version=2.0&amp;type=comments&amp;cid=68</wfw:commentRss>
    

    <author>dan@coffeecode.net (Dan Scott)</author>
    <content:encoded>
    &lt;p&gt;
I should have mentioned this before, but now that I noticed Chris Jones&#039; post on the &lt;a href=&quot;http://blogs.oracle.com/opal/2006/06/12#a39&quot;&gt;Underground PHP and Oracle Manual&lt;/a&gt;, I felt obliged to point out that one of the final fruits of my labours at IBM is now visible in the DB2 &quot;Viper&quot; Information Center -- a &lt;a href=&quot;http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.apdv.php.doc/doc/c0021523.htm&quot;&gt;set of task-oriented documentation&lt;/a&gt; that describes how to do all of the things that you really need to do with DB2 and PHP, using either the &lt;a href=&quot;http://php.net/ibm_db2&quot;&gt;ibm_db2&lt;/a&gt; or &lt;a href=&quot;http://php.net/pdo_odbc&quot;&gt;PDO_ODBC&lt;/a&gt; modules.
&lt;/p&gt;
&lt;p&gt;
By &quot;task-oriented&quot; I mean that, instead of documenting a set of objects and methods, the docs take the perspective of a developer and describe how to accomplish specific tasks (like &quot;Connecting to a DB2 database from PDO&quot; or &quot;Calling a stored procedure&quot; or &quot;Retrieving multiple result sets&quot;). I hope it works as both a good introduction to PHP development for DB2 users, and a good introduction to DB2 for PHP developers. And, of course, the same approach will work for Apache Derby databases as well.
&lt;/p&gt;
&lt;p&gt;
I find it interesting that Oracle has positioned their PHP documentation as &quot;underground&quot;, while IBM has chosen to incorporate their PHP documentation into their official set of DB2 documentation. Oracle gets the points for coolness, but IBM&#039;s approach will make the pointy-headed types a bit more comfortable.
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ok, one qualification: this is the DB2 Viper beta 1 documentation, so calling it &quot;official&quot; is a tad premature... but you get my drift. An example of the beta-ness of these docs is the table of contents entry for &lt;strong&gt;Executing XQuery expressions&lt;/strong&gt; that remains tantalizingly empty... hmm, might it have anything to do with &lt;a href=&quot;http://cvs.php.net/viewcvs.cgi/pecl/ibm_db2/ibm_db2.c?r1=1.48&amp;amp;r2=1.49&quot;&gt;this CVS commit&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Second qualification: I can&#039;t take full credit for the PHP docs in the DB2 manual, because they weren&#039;t frozen by the time I left IBM. And the DB2-related reference documentation from php.net has been incorporated into the DB2 manual, which represents the efforts of php.net doc writers as well. But I&#039;ll certainly take credit for any errors &lt;img src=&quot;http://coffeecode.net/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Corrected bad XHTML (unescaped ampersand in URL). Bad Dan. And corrupted an intermediate version with garbage from another posting. Even worse.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 13 Jun 2006 08:40:06 -0400</pubDate>
    <guid isPermaLink="false">http://coffeecode.net/archives/68-guid.html</guid>
    
</item>
<item>
    <title>ADOdb: getting good support for IBM DB2, Cloudscape, and Apache Derby</title>
    <link>http://coffeecode.net/archives/37-ADOdb-getting-good-support-for-IBM-DB2,-Cloudscape,-and-Apache-Derby.html</link>
            <category>DB2</category>
            <category>PHP</category>
    
    <comments>http://coffeecode.net/archives/37-ADOdb-getting-good-support-for-IBM-DB2,-Cloudscape,-and-Apache-Derby.html#comments</comments>
    <wfw:comment>http://coffeecode.net/wfwcomment.php?cid=37</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://coffeecode.net/rss.php?version=2.0&amp;type=comments&amp;cid=37</wfw:commentRss>
    

    <author>dan@coffeecode.net (Dan Scott)</author>
    <content:encoded>
    &lt;p&gt;
The stable release of the &lt;a href=&quot;http://php.net/ibm_db2&quot;&gt;ibm_db2&lt;/a&gt; PECL extension for IBM DB2, Cloudscape, and Apache Derby brought a high performing, highly functional database connectivity alternative to Unified ODBC for PHP 4 and 5 users. However, in and of itself a database extension does not enable you to use the many PHP applications that you might want to use. You either have to add a specific driver for each application that implements its own portability layer (such as &lt;a href=&quot;http://phpmyfaq.de&quot;&gt;phpMyFAQ&lt;/a&gt;), or if the application relies on one of the standard database abstraction layers (&lt;a href=&quot;http://pear.php.net/package/DB&quot;&gt;PEAR DB&lt;/a&gt;, &lt;a href=&quot;http://pear.php.net/package/MDB2&quot;&gt;MDB2&lt;/a&gt;, or &lt;a href=&quot;http://adodb.sourceforge.net/&quot;&gt;ADOdb&lt;/a&gt;), then a driver needs to be added to the corresponding database abstraction layer.
&lt;/p&gt;
&lt;p&gt;
To date, the standard database abstraction layers have offered support for DB2 only through the Unified ODBC extension (and despite substantial overlap in names, MDB2 does not offer support for DB2 at all). Due to some limitations of the Unified ODBC extension, access to DB2 would seem slow and buggy -- and access to Apache Derby or Cloudscape would be frought with minefields, as Unified ODBC does not provide a way of differentiating between the databases to which you are connected and their corresponding features. The ibm_db2 extension offers the &lt;a href=&quot;http://php.net/db2-server-info&quot;&gt;db2_server_info()&lt;/a&gt; function which can tell you whether you are connected to DB2 on Linux, DB2 on a zSeries machine, or an Apache Derby database, and let your application or database abstraction layer perform the appropriate workarounds.
&lt;/p&gt;
&lt;p&gt;
Now, however, as part of Larry Menard&#039;s efforts to enable &lt;a href=&quot;http://gallery.menalto.com&quot;&gt;Gallery 2&lt;/a&gt;, an &lt;a href=&quot;http://phplens.com/lens/lensforum/msgs.php?id=14602&quot;&gt;ADOdb driver built on top of the ibm_db2 extension&lt;/a&gt; will, in all probability, be made available as part of a future ADOdb release. Undoubtedly there will be further testing to do, and tweaks and performance optimizations in the future code--for example, differentiating between the capabilities of Apache Derby and DB2--but this is a huge first step! Thanks to Larry and the Gallery 2 team for making this contribution.
&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Fri, 10 Feb 2006 09:36:57 -0500</pubDate>
    <guid isPermaLink="false">http://coffeecode.net/archives/37-guid.html</guid>
    
</item>
<item>
    <title>(Un)common but potentially mind-twisting DB2 issues</title>
    <link>http://coffeecode.net/archives/33-Uncommon-but-potentially-mind-twisting-DB2-issues.html</link>
            <category>DB2</category>
    
    <comments>http://coffeecode.net/archives/33-Uncommon-but-potentially-mind-twisting-DB2-issues.html#comments</comments>
    <wfw:comment>http://coffeecode.net/wfwcomment.php?cid=33</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://coffeecode.net/rss.php?version=2.0&amp;type=comments&amp;cid=33</wfw:commentRss>
    

    <author>dan@coffeecode.net (Dan Scott)</author>
    <content:encoded>
    &lt;p&gt;
It is perhaps a sad reflection on my life that I&#039;m using a personal blog to offer technical information about a product that I work on, rather than telling you about what I ate last night (spinach and goat cheese salad with a raspberry vinaigrette dressing, quinoa, and a rather tomatoey coq au vin), how the weather is (freezing rain and snow last night), or the last time we got together with friends (Peter and Deb came over last night for a lovely visit over wine and dinner).
&lt;/p&gt;
&lt;p&gt;
Instead, here are a few gotchas for DB2 on Linux that might otherwise take you a few hours to figure out.
&lt;/p&gt;
&lt;h4 class=&quot;entrytitle&quot;&gt;Shiny new DB2 for Linux (2.6 kernel) requires compat RPMs?&lt;/h4&gt;
&lt;p&gt;
DB2 for Linux Version 8.2 (aka Version 8.1 FixPak 7) has been &lt;a href=&quot;http://ibm.com/db2/linux/validate&quot;&gt;validated&lt;/a&gt; on distributions running both 2.4 and 2.6 Linux kernels. However, starting with FixPak 9 (aka Version 8.2.2, which has replaced Version 8.2 if you order a brand new copy of DB2 with physical media today), you have to choose a 2.4 or 2.6 kernel-specific version of DB2 on the x86 and x86-64 architectures.
&lt;/p&gt;
&lt;p&gt;If you&#039;re unlucky, you might find that once you install this newer version of DB2 meant for a shiny new distribution running a 2.6 Linux kernel, DB2 suddenly stops running and complains that it can&#039;t find the libstdc++.so.5 library. The reason is because the new versions of DB2 are built for compatibility with the first enterprise Linux distribution that offered the 2.6 kernel -- SLES 9 -- and guess what level of libstdc++ SLES 9 comes with? Yeah, you guessed right. And the reason the older versions of DB2 don&#039;t need libstdc++ is because they shipped with their own copy of the Intel C++ libraries.
&lt;/p&gt;
&lt;p&gt;
Fun stuff eh? The moral of the story is: install your compat-libstdc++ libraries (or whatever they&#039;re called), and you won&#039;t get hurt when you upgrade DB2.
&lt;/p&gt;
&lt;h4 class=&quot;entrytitle&quot;&gt;DB2 for Linux on POWER aka PPC64 aka pSeries: searching for libibmc++&lt;/h4&gt;
&lt;p&gt;Here&#039;s another missing library problem for which Google turned up no help... After installing DB2 for Linux on POWER, the user tried to run any DB2 command and received the following error message:&lt;/p&gt;
&lt;pre&gt;db2: error while loading shared libraries: libibmc++.so.1: 
  cannot open shared object file: No such file or directory&lt;/pre&gt;
&lt;p&gt;
The problem occurs because DB2 for Linux on POWER is compiled against the IBM XL C++ libraries. This means that you have to install the IBM XL C/C++ Advanced Edition V7.0 for Linux Runtime Environment as described in a &lt;a href=&quot;http://www-1.ibm.com/support/docview.wss?uid=swg24007906&quot;&gt;DB2 technote&lt;/a&gt;.
&lt;/p&gt; 
    </content:encoded>

    <pubDate>Wed, 18 Jan 2006 09:03:14 -0500</pubDate>
    <guid isPermaLink="false">http://coffeecode.net/archives/33-guid.html</guid>
    
</item>
<item>
    <title>DB2 validated for use on Ubuntu</title>
    <link>http://coffeecode.net/archives/27-DB2-validated-for-use-on-Ubuntu.html</link>
            <category>DB2</category>
    
    <comments>http://coffeecode.net/archives/27-DB2-validated-for-use-on-Ubuntu.html#comments</comments>
    <wfw:comment>http://coffeecode.net/wfwcomment.php?cid=27</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://coffeecode.net/rss.php?version=2.0&amp;type=comments&amp;cid=27</wfw:commentRss>
    

    <author>dan@coffeecode.net (Dan Scott)</author>
    <content:encoded>
    Good news for all you DB2 for Linux people who love Ubuntu -- IBM just &lt;a href=&quot;http://ibm.com/db2/linux/validate&quot;&gt;validated&lt;/a&gt; Ubuntu as a Linux distribution on which IBM is willing to offer its enterprise level support. You can see that Ubuntu was excited in their &lt;a href=&quot;http://www.ubuntu.com/include/UbuntuReadyForDB2.pdf&quot;&gt;press release&lt;/a&gt; about the accomplishment. And rightully so: no other database server has announced production-level support for Ubuntu. Cool.
&lt;p&gt;
I&#039;ve issued some updates to the &lt;a href=&quot;http://tldp.org/HOWTO/DB2-HOWTO/index.html&quot;&gt;DB2 for Linux HOWTO&lt;/a&gt; that will hopefully be published soon; I had based the original Ubuntu install instructions on my Gentoo experiences and there were a few embarassing references to that that I hadn&#039;t cleaned up (and which were painfully evident now that I&#039;m running Ubuntu 5.10 &quot;Breezy Badger&quot; on the dual-boot side of my laptop).
&lt;/p&gt;&lt;p&gt;
In a future update to the HOWTO, I plan to offer a little more fine-grained installation advice; the current instructions install everything under the sun, including support for 29 different languages, warehouse agents, and assorted other features that probably aren&#039;t required for most developers or users. But at least you can get up and running relatively easily &lt;img src=&quot;http://coffeecode.net/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;
&lt;/p&gt;&lt;p&gt;
So if you want to try Ubuntu, go to &lt;a href=&quot;http://ubuntulinux.org&quot;&gt;http://ubuntulinux.org&lt;/a&gt;. It has replaced SuSE Workstation 9.2 on my laptop -- and I&#039;m even using Gnome again, which I had given up on a few years ago.
&lt;/p&gt;&lt;p&gt;
If you want to try DB2, you can download a &lt;a href=&quot;http://www14.software.ibm.com/webapp/download/search.jsp?go=y&amp;amp;rs=dm-db2express&quot;&gt;90-day trial&lt;/a&gt; of DB2 Express.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 08 Nov 2005 21:17:21 -0500</pubDate>
    <guid isPermaLink="false">http://coffeecode.net/archives/27-guid.html</guid>
    
</item>
<item>
    <title>SQLEUCCM error message for DB2</title>
    <link>http://coffeecode.net/archives/25-SQLEUCCM-error-message-for-DB2.html</link>
            <category>DB2</category>
    
    <comments>http://coffeecode.net/archives/25-SQLEUCCM-error-message-for-DB2.html#comments</comments>
    <wfw:comment>http://coffeecode.net/wfwcomment.php?cid=25</wfw:comment>

    <slash:comments>5</slash:comments>
    <wfw:commentRss>http://coffeecode.net/rss.php?version=2.0&amp;type=comments&amp;cid=25</wfw:commentRss>
    

    <author>dan@coffeecode.net (Dan Scott)</author>
    <content:encoded>
    &lt;p&gt;Hopefully this proves useful to someone else in the same position in the future... I have been working on a simple PHP application that connects to DB2 using the &lt;a href=&#039;http://php.net/ibm_db2&#039;&gt;ibm_db2&lt;/a&gt; extension. Recently I decided to try scaling it up to test the application with a more realistic (10GB) database. 
&lt;/p&gt;&lt;p&gt;
I created a new test database on a partition that had enough room, but then encountered a very strange error message just trying to connect to the database:
&lt;/p&gt;
&lt;blockquote&gt;[IBM][CLI Driver] SQL0969N There is no message text corresponding to SQL error &quot;-2079391743&quot; in the message file on this workstation. The error was returned from module &quot;SQLEUCCM&quot; with original tokens &quot;&quot;. SQLCODE=-2079391743&lt;/blockquote&gt;
&lt;p&gt;
Needless to say, this message really didn&#039;t help me much. Googling and Yahooing for the terms also gave me no useful results (there was a thread on the International DB2 User Group mailing list, but the site requires a user ID and login and I just wanted to get on with my day). The &lt;a href=&quot;http://ibm.com/db2/udb/support/&quot;&gt;DB2 support site&lt;/a&gt; didn&#039;t provide any hits, and neither did the &lt;a href=&quot;http://publib.boulder.ibm.com/infocenter/db2help&quot;&gt;DB2 Information Center&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
It took me a while to figure this out, but apparently the ownership and permissions on the directory that contains your tablespaces (if you&#039;re using filesystem-based, or &quot;system managed&quot; tablespaces) have to be &quot;just so&quot;. DB2, for the uninitiated, uses operating system accounts and groups for database authentication and privileges. My DB2 instance user was &quot;db2inst1&quot;, belonging to the &quot;db2iadm1&quot; group -- default values -- however, the directory in which I created the tablespaces belonged to user &quot;dan&quot; and group &quot;db2iadm1&quot;.
&lt;/p&gt;
&lt;pre&gt;localhost php4 # ls -l /opt/photos/db2base -d
drwxrwxrwx  3 dan db2iadm1 72 Oct 18 10:35 /opt/photos/db2base&lt;/pre&gt;
&lt;p&gt;
Okay, so even though the db2inst1 user is a member of the db2iadm1 group, DB2 apparently also wants it to own the directory in which the tablespaces live. By issuing a &quot;chown db2inst1 /opt/photos/db2base&quot; command, DB2 was satisfied and my PHP scripts started working again. And maybe, just maybe, the next user that runs into this problem will find this post in a search engine and save themselves an hour or two of befuddlement... &lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 18 Oct 2005 11:26:27 -0400</pubDate>
    <guid isPermaLink="false">http://coffeecode.net/archives/25-guid.html</guid>
    
</item>

</channel>
</rss>