<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: DB2 code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sun, 07 Sep 2008 08:09:42 GMT</pubDate>
    <description>DZone Snippets: DB2 code</description>
    <item>
      <title>Configure MSSQL Linked Server to DB2 (via ODBC System DSN)</title>
      <link>http://snippets.dzone.com/posts/show/3731</link>
      <description>1. Install DB2 on MSSQL machine&lt;br /&gt;2. Start Configuration Assistant. Add a new database mapping to the desired target DB2 database. Select option to create a System DSN along the way.&lt;br /&gt;3. Start Microsoft&#8217;s ODBC Data Source Administrator. There should be a System DSN created from the previous step. Configure it with the userid/password for the target DB2 database.&lt;br /&gt;4. Create linked server in MSSQL: EXEC sp_addlinkedserver @server = 'TMON', @srvproduct = '', @provider = 'MSDASQL', @datasrc = 'TMON'&lt;br /&gt;5. Map access to linked server: EXEC sp_addlinkedsrvlogin 'TMON', 'false', NULL, 'db2admin', 'db2admin'&lt;br /&gt;6. 2 ways to test the link: SELECT * FROM TMON..DB2ADMIN.USERS -- use uppercase for server, schema, table names SELECT * from OPENQUERY (TMON,'select * from users')&lt;br /&gt;&lt;br /&gt;Notes:&lt;br /&gt;    * TMON is the remote DB2 database, also used as the DSN name.&lt;br /&gt;    * Remote DB2 server uses access id: db2admin and password: db2admin&lt;br /&gt;    * USERS is a table in the remote DB2 database </description>
      <pubDate>Mon, 26 Mar 2007 08:49:53 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3731</guid>
      <author>wjchay (Chay Weei Jye)</author>
    </item>
    <item>
      <title>DB2 Manual Installation on Linux</title>
      <link>http://snippets.dzone.com/posts/show/3682</link>
      <description>Install&lt;br /&gt;&lt;br /&gt;    * Login as root.&lt;br /&gt;    * Create groups:&lt;br /&gt;          o groupadd -g 999 db2iadm1&lt;br /&gt;          o groupadd -g 998 db2fadm1&lt;br /&gt;          o groupadd -g 997 dasadm1 &lt;br /&gt;&lt;br /&gt;    * Create users for each group:&lt;br /&gt;          o useradd -u 1004 -g db2iadm1 -m -d /home/db2inst1 db2inst1&lt;br /&gt;          o useradd -u 1003 -g db2fadm1 -m -d /home/db2fenc1 db2fenc1&lt;br /&gt;          o useradd -u 1002 -g dasadm1 -m -d /home/dasusr1 dasusr1 &lt;br /&gt;&lt;br /&gt;    * Set password for each users created:&lt;br /&gt;          o passwd db2inst1&lt;br /&gt;          o passwd db2fenc1&lt;br /&gt;          o passwd dasusr1 &lt;br /&gt;&lt;br /&gt;    * cd to installation file directory:&lt;br /&gt;          o Example: /tmp/db2/exp/disk1 &lt;br /&gt;&lt;br /&gt;    * Run installation script:&lt;br /&gt;          o ./db2_install.sh &lt;br /&gt;&lt;br /&gt;Post Install&lt;br /&gt;&lt;br /&gt;    * Login as root.&lt;br /&gt;    * Install license (example):&lt;br /&gt;          o /opt/ibm/db2/V9.1/adm/db2licm &#8211;a /tmp/db2/exp/disk1/db2/license/db2exp_uw.lic &lt;br /&gt;&lt;br /&gt;Create the DB2 Administration Server (DAS)&lt;br /&gt;&lt;br /&gt;    * Login as root.&lt;br /&gt;    * Create DAS with dasusr1&lt;br /&gt;          o /opt/ibm/db2/V9.1/instance/dascrt -u dasusr1 &lt;br /&gt;&lt;br /&gt;    * Login as dasuser1&lt;br /&gt;          o Start the DAS: db2admin start &lt;br /&gt;&lt;br /&gt;    * Optional: to enable autostarting of the DAS upon reboot&lt;br /&gt;          o /opt/ibm/db2/V9.1/instance/dascrt/dasauto &#8211;on &lt;br /&gt;&lt;br /&gt;Create DB2 instance&lt;br /&gt;&lt;br /&gt;    * Login as root.&lt;br /&gt;    * Create instance with users db2fenc1 and db2inst1:&lt;br /&gt;          o /opt/ibm/db2/V9.1/instance/db2icrt -a server -u db2fenc1 db2inst1 &lt;br /&gt;    * Optional: enable autostarting of the db2inst1 instance&lt;br /&gt;          o /opt/ibm/db2/V9.1/instance/db2iauto &#8211;on db2inst1 &lt;br /&gt;&lt;br /&gt;Update environment variables&lt;br /&gt;&lt;br /&gt;    * Example:&lt;br /&gt;    * Login as db2inst1&lt;br /&gt;    * edit .bash_profile&lt;br /&gt;          o vi /home/db2inst1/.bash_profile&lt;br /&gt;          o insert the following line at the end of the file &#8211; &#8220;. /home/db2inst1/sqllib/db2profile&#8221; &lt;br /&gt;&lt;br /&gt;    * Do the same for dasusr1, using its corresponding directory. &lt;br /&gt;&lt;br /&gt;Database service&lt;br /&gt;&lt;br /&gt;    * Login as root:&lt;br /&gt;    * Add new service entry:&lt;br /&gt;          o vi etc/services&lt;br /&gt;          o insert this line &#8220;DB2_TMINST 50000/tcp&#8221; at the end of the file &lt;br /&gt;&lt;br /&gt;Verification&lt;br /&gt;&lt;br /&gt;    * Login as db2inst1&lt;br /&gt;    * List installed DB2 products and features: db2ls&lt;br /&gt;    * Display the default instance: db2 get instance&lt;br /&gt;          o Result: The current database manager instance is: db2inst1 &lt;br /&gt;    * Start the database instance: db2start&lt;br /&gt;          o Result: SQL1063N DB2START processing was successful. &lt;br /&gt;    * Stop the database instance: db2stop&lt;br /&gt;          o Result: SQL1064N DB2STOP processing was successful. &lt;br /&gt;</description>
      <pubDate>Fri, 16 Mar 2007 11:50:43 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3682</guid>
      <author>wjchay (Chay Weei Jye)</author>
    </item>
    <item>
      <title>DB2 Federation</title>
      <link>http://snippets.dzone.com/posts/show/3681</link>
      <description>Server A configuration:&lt;br /&gt;OS: WinXP&lt;br /&gt;Instance name: TMINST&lt;br /&gt;Instance user and password: db2admin/db2admin&lt;br /&gt;Required nickname for remote table: DB2ADMIN.R_CUSTOMERS&lt;br /&gt;&lt;br /&gt;Server B configuration:&lt;br /&gt;OS: Linux&lt;br /&gt;IP: 10.60.100.21&lt;br /&gt;DB2 service port: 50000&lt;br /&gt;Instance user and password: db2inst1/db2inst1&lt;br /&gt;Database name: TM_ON&lt;br /&gt;Table name to be linked: CUSTOMERS&lt;br /&gt;&lt;br /&gt;CLP Commands @Server A:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;db2set DB2INSTDEF=TMINST&lt;br /&gt;SET DB2INSTANCE=TMINST&lt;br /&gt;db2 UPDATE DATABASE MANAGER CONFIGURATION USING FEDERATED YES IMMEDIATE&lt;br /&gt;db2 CATALOG TCPIP NODE RTMINST REMOTE 10.60.100.21 SERVER 50000 REMOTE_INSTANCE db2inst1 OSTYPE Linux&lt;br /&gt;db2 CATALOG DATABASE TM_ON AS RTM_ON AT NODE RTMINST &lt;br /&gt;db2start&lt;br /&gt;db2 CONNECT TO TM_ON USER db2admin USING db2admin&lt;br /&gt;db2 CREATE WRAPPER DRDA&lt;br /&gt;db2 "CREATE SERVER RTM_ON TYPE DB2/UDB VERSION '9.1' WRAPPER DRDA AUTHORIZATION \"db2inst1\" PASSWORD \"db2inst1\" OPTIONS( ADD DBNAME 'RTM_ON')"&lt;br /&gt;db2 CREATE USER MAPPING FOR DB2ADMIN SERVER RTM_ON OPTIONS ( ADD REMOTE_AUTHID 'db2inst1', ADD  REMOTE_PASSWORD 'db2inst1') &lt;br /&gt;db2 CREATE NICKNAME DB2ADMIN.R_CUSTOMERS FOR RTM_ON.DB2INST1.CUSTOMERS&lt;br /&gt;db2 SELECT * FROM R_CUSTOMERS&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 16 Mar 2007 11:46:43 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3681</guid>
      <author>wjchay (Chay Weei Jye)</author>
    </item>
    <item>
      <title>DB2 enable/disable constraints</title>
      <link>http://snippets.dzone.com/posts/show/3680</link>
      <description>&lt;code&gt;&lt;br /&gt;-- All FKs will be enabled/disabled, PKs not affected&lt;br /&gt;-- usage: &lt;br /&gt;--        enforce -&gt; db2 call SET_CONSTRAINTS('YES')&lt;br /&gt;--        not enforced -&gt; db2 call SET_CONSTRAINTS('NO')&lt;br /&gt;&lt;br /&gt;-- To check if referential integrity check is enforced:&lt;br /&gt;-- select * from syscat.tabconst where tabschema='DB2ADMIN' and TYPE='F'&lt;br /&gt;&lt;br /&gt;drop procedure SET_CONSTRAINTS!&lt;br /&gt;create procedure SET_CONSTRAINTS (ENFORCE VARCHAR(3))&lt;br /&gt;LANGUAGE SQL&lt;br /&gt;BEGIN&lt;br /&gt;declare v_tabname varchar(128);&lt;br /&gt;declare v_constname varchar(128);&lt;br /&gt;declare v_rows integer;&lt;br /&gt;declare v_alter_table_sql varchar(256);&lt;br /&gt;declare tmp_cursor cursor for SELECT tabname, constname FROM syscat.references WHERE TABSCHEMA = CURRENT SCHEMA ORDER BY CONSTNAME,TABNAME, REFTABNAME;&lt;br /&gt;select count(*) into v_rows from syscat.references WHERE TABSCHEMA = CURRENT SCHEMA;&lt;br /&gt;open tmp_cursor;&lt;br /&gt;while (v_rows &gt; 0) DO&lt;br /&gt;FETCH tmp_cursor INTO v_tabname, v_constname;&lt;br /&gt;SET v_alter_table_sql = 'alter table ' || current SCHEMA || '.' || v_tabname ||  ' alter foreign key ' || v_constname;&lt;br /&gt;IF (ENFORCE = 'NO') THEN &lt;br /&gt;    SET v_alter_table_sql = v_alter_table_sql || ' NOT ENFORCED';&lt;br /&gt;ELSE&lt;br /&gt;    SET v_alter_table_sql = v_alter_table_sql || ' ENFORCED';&lt;br /&gt;END IF;&lt;br /&gt;execute immediate v_alter_table_sql;&lt;br /&gt;SET v_rows = v_rows - 1;&lt;br /&gt;end while;&lt;br /&gt;close tmp_cursor;&lt;br /&gt;END!&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 16 Mar 2007 11:44:32 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3680</guid>
      <author>wjchay (Chay Weei Jye)</author>
    </item>
  </channel>
</rss>
