<?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>Blue Medora Blog</title>
	<atom:link href="http://bluemedora.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://bluemedora.com/blog</link>
	<description></description>
	<lastBuildDate>Fri, 30 Dec 2011 17:41:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Installing TBSM 6.1 on Linux</title>
		<link>http://bluemedora.com/blog/2011/12/tbsm-6-1/</link>
		<comments>http://bluemedora.com/blog/2011/12/tbsm-6-1/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 17:12:55 +0000</pubDate>
		<dc:creator>Joshua Burkhart</dc:creator>
				<category><![CDATA[TBSM]]></category>
		<category><![CDATA[bsm]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[discovery]]></category>
		<category><![CDATA[eif]]></category>
		<category><![CDATA[eif probe]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[installing]]></category>
		<category><![CDATA[library adapter]]></category>
		<category><![CDATA[manager]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[netcool]]></category>
		<category><![CDATA[omnibus]]></category>
		<category><![CDATA[Prerequisite]]></category>
		<category><![CDATA[prereq_checker]]></category>
		<category><![CDATA[probe]]></category>
		<category><![CDATA[Scanner]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[tbsm]]></category>
		<category><![CDATA[Tivoli]]></category>

		<guid isPermaLink="false">http://bluemedora.com/blog/?p=1400</guid>
		<description><![CDATA[Added by Joshua Burkhart Tivoli Business Service Manager (TBSM) delivers the real-time information that you need in order to respond to alerts effectively and in line with business requirements, and optionally to meet service-level agreements (SLAs). The TBSM tools enable you to build a service model that you integrate with IBM Tivoli Netcool/OMNIbus alerts or [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>Added by <a href="mailto:joshua.burkhart@bluemedora.com">Joshua Burkhart</a></li>
</ul>
<p><a href="http://www-01.ibm.com/software/tivoli/products/bus-srv-mgr/">Tivoli Business Service Manager</a> (TBSM) delivers the real-time information that you need in order to respond to alerts effectively and in line with business requirements, and optionally to meet service-level agreements (SLAs).</p>
<p>The TBSM tools enable you to build a service model that you integrate with IBM Tivoli Netcool/OMNIbus alerts or optionally with data from an SQL data source. TBSM includes optional components that let you access data from other IBM Tivoli applications such as IBM Tivoli Monitoring, and IBM Tivoli Application Dependency Discovery Manager. TBSM processes the external data based on the service model data you created in the TBSM database and returns a new or updated TBSM service event to Netcool/OMNIbus.</p>
<p>The TBSM console provides a graphical user interface (GUI) that allows you to logically link services and business requirements within the service model. The service model provides an operator with a view of how, second by second, an enterprise is performing at any given moment in time or how the enterprise has performed over a given time period.</p>
<p>TBSM Version 6.1 contains many improvements over past versions of TBSM including updates to the below features. Reference the <a href="http://www-01.ibm.com/support/docview.wss?uid=pub1sc23604007">Administrator&#8217;s Guide</a> for additional detail.</p>
<ul>
<li>Visualization</li>
<li>Service Tree Navigation</li>
<li>Instance-Based Status Propagation</li>
<li>Custom Discovery Books</li>
<li>Discovery Library Toolkit API and Resource Enrichment</li>
<li>Resource Reconciliation</li>
<li>Discovery Library Toolkit Installation</li>
<li>Netcool/Impact integration</li>
<li>Import/Export commands</li>
<li>DB2 database (replacing PostgreSQL)</li>
<li>Netcool/OMNIbus</li>
<li>Tivoli Common Reporting</li>
<li>IBM Tivoli Monitoring for Energy Management Dashboard</li>
</ul>
<h3>Installing TBSM 6.1 Linux</h3>
<h4>Minimum Requirements</h4>
<p><span style="color: #ff0000;">*The below requirements MUST be met or exceeded otherwise TBSM will not install successfully.*</span></p>
<ul>
<li>Requirements for Data server
<ul>
<li>2-CPU system with 3.0 GHz (or greater) CPUs</li>
<li>6GBRAM</li>
<li>8GB disk space</li>
</ul>
</li>
<li>Requirements for Dashboard server
<ul>
<li>2-CPU system with 3.0 GHz (or greater) CPUs</li>
<li>6GBRAM</li>
<li>6 GB disk space</li>
</ul>
</li>
<li>Requirements for TBSM Console
<ul>
<li>Intel® CoreTM2 Duo Processor at 2.40 GHz (or greater</li>
<li>1 GB RAM</li>
<li>150 MB (JRE plug-in and cache) disk space</li>
</ul>
</li>
<li>Requirements for simple installation
<ul>
<li>4-CPU system with 3.0 GHz (or greater) CPUs</li>
<li>8GBRAM</li>
<li>12 GB disk space</li>
</ul>
</li>
<li>Supported operating system
<ul>
<li>Red Hat Enterprise Linux 5.0 (AS), Intel x86, 32-bit and 64-bit</li>
<li>Red Hat Enterprise Linux 6.0 (AS), and 6.1 Intel x86, 32-bit and 64-bit</li>
<li>SLES 10 Intel x86, 32-bit and 64-bit</li>
<li>SLES 11 Intel x86, 32-bit and 64-bit (requires pre-installation steps described below)</li>
<li>On all 64-bit operating systems, 64-bit runs on 32-bit emulation mode.</li>
</ul>
</li>
<li>Mozilla Firefox 3.6 (32-bit only) The IBM Java SDK/JRE 6.0.9/1.6 (Internet Explorer only) or Oracle Java SDK/JRE/JDK 6.0/1.6 are required to view the TBSM console.
<ul>
<li>TBSM requires that JavaScript be enabled in the browser.</li>
<li>You need to set your browser to allow pop-up windows. If you block pop-up windows, you will disable features of TBSM that require pop-up windows.</li>
<li>If you have slow connectivity, you should install an additional Dashboard server closer to the location where the browsers are being used.</li>
</ul>
</li>
</ul>
<h4>Prerequisites</h4>
<ul>
<li>TBSM requires IBM DB2 version 9.5 Fix Pack 3 or higher or version 9.7 Fix Pack 3 or higher.</li>
<li>To enable and use all the active event list (AEL) tools, you must have a Perl interpreter installed on the TBSM server.</li>
<li>IBM Tivoli Monitoring Version 6.2 or later is required.</li>
<li>On  Unix and Linux platforms, prior to installing TBSM or Netcool/Impact,  ensure that there is no tmp subdirectory under the /tmp directory.  Otherwise, the installation will fail.</li>
<li>Kernel and C runtime library</li>
<li>Current<sup>®</sup> and all compatibility versions of the C++ runtime library</li>
<li>X Windows<sup>®</sup> libraries and runtime</li>
<li>GTK runtime libraries</li>
<li>Review the paging requirement for the specific operating system. Serious errors can result if the paging file size is too small.
<ul>
<li><a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.installation.base.doc/info/aes/ae/tins_linuxsetup_rhel6.html">Red Hat Enterprise Linux 6</a></li>
<li><a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.installation.base.doc/info/aes/ae/tins_linuxsetup_rhel5.html">Red Hat Enterprise Linux 5</a></li>
<li><a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.installation.base.doc/info/aes/ae/tins_linuxsetup_rhel4.html">Red Hat Enterprise Linux 4</a></li>
<li><a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.installation.base.doc/info/aes/ae/tins_linuxsetup_sles9.html">SUSE Linux Enterprise Server 9</a></li>
<li><a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.installation.base.doc/info/aes/ae/tins_linuxsetup_sles10.html">SUSE Linux Enterprise Server 10</a></li>
<li><a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.installation.base.doc/info/aes/ae/tins_linuxsetup_sles11.html">SUSE Linux Enterprise Server 11</a></li>
</ul>
</li>
</ul>
<h4>Using the Prerequisite Scanner</h4>
<ul>
<li> IBM Prerequisite Scanner is a stand-alone prerequisite checking tool that analyzes system environments before the installation or upgrade of a Tivoli product or IBM solution. The scanner includes configuration files for TBSM.</li>
<li>Download the scanner version for your operating system <a href="http://www-933.ibm.com/support/fixcentral/swg/ selectFixes?parent=ibm~Tivoli&amp;product=ibm/Tivoli/Prerequisite+Scanner &amp;release=All&amp;platform=All&amp;function=all">here</a>.</li>
<li>Extract the scanner files to a location on your TBSM host. This location is called the ips_root directory.</li>
<li>Change the ips_root directory.</li>
<li>Set the value for the one of the following environmental variables to True:</li>
<table>
<tbody>
<tr>
<th>Option</th>
<th>Description</th>
</tr>
<tr>
<td>Data server installation only</td>
<td>TBSM_PREREQ_DATA</td>
</tr>
<tr>
<td>Dashboard server installation only</td>
<td>TBSM_PREREQ_DASH</td>
</tr>
<tr>
<td>Combined Dashboard and Data server installation</td>
<td>TBSM_PREREQ_BOTH</td>
</tr>
</tbody>
</table>
<p>For example, to set the environmental variable on a Windows system and instruct Prerequisite Scanner to scan for the prerequisites required for a Dashboard server installation, enter the following command:</p>
<p><code>set TBSM_PREREQ_DASH=True</code></p>
<li>Run the command as shown below:</li>
<p><code>root@pt850c-ora-rh5:~# ./prereq_checker.sh "BSM 06100000" detail<br />
IBM Prerequisite Scanner<br />
Version: 1.1.1.9<br />
Build  : 20111202<br />
OS Name: Linux<br />
Machine Info<br />
Machine Name : pt850c-ora-rh5<br />
Serial Number:  VMware-42 14 d3 7c 9e b2 2d 97-a9 7e df fd dc e2 16 88<br />
BSM - Tivoli Business Service Manager [06100000]:<br />
Evaluation                                   PASS/FAIL     Result                                                               Expected Result<br />
OS Version       FAIL                    "CentOS release 5.4 (Final)"                     "RedHat Enterprise Linux Server 5.*"<br />
RedHat Enterprise Linux Server 6.*<br />
SUSE Linux Enterprise Server 10 (*)<br />
SUSE Linux Enterprise Server 11 (*)<br />
AIX V6.1<br />
AIX V7.1<br />
Solaris V10 (SPARC)<br />
Temp                                                PASS                     6.8GB                                                                  500MB<br />
TOTAL ALL SPECIFIED COMPONENTS:<br />
Evaluation                                    PASS/FAIL           Result                            Expected Result<br />
/                PASS                     6.80GB                                                                0MB<br />
Prereq Check  Overall Result:   FAIL</code></p>
<li>Possible results are as follows:
<ul>
<li>FAIL
<ul>
<li>If the target server does not meet the prerequisites specified in the cfg files, the scanner returns FAIL for the Tivoli Business Service Manager check. The failed prerequisites are displayed in the screen output. To resolve the failure, take the appropriate actions, for example, install the missing operating system packages, increase disk space and so on.</li>
</ul>
</li>
<li>PASS
<ul>
<li>If the target server has all the prerequisite specified in the cfg files, the scanner returns PASS for the Tivoli Business Service Manager check. If the scanner returns PASS for the Tivoli Business Service Manager check you can install, configure and start the product on the target server.</li>
</ul>
</li>
</ul>
</li>
</ul>
<h4>Installation Process</h4>
<ul>
<li>Install DB2 9.7 Fix Pack 3 or higher
<ul>
<li>Run the DB2 installation as root user only.</li>
<p><code>[root@tbsm61rh5 aese]# ./db2setup</code></p>
<li>Follow the graphical wizard, entering appropriate information for desired configuration. (default values were used in this example)</li>
<p><a rel="attachment wp-att-1433" href="http://bluemedora.com/blog/2011/12/tbsm-6-1/screen-shot-2011-12-27-at-2-59-06-pm/"><img class="alignnone size-full wp-image-1433" src="http://bluemedora.com/blog/wp-content/uploads/2011/12/Screen-shot-2011-12-27-at-2.59.06-PM.png" alt="" width="525" height="356" /></a></p>
<li>Ensure that three non-root users have been created before you run the DB2 configuration utility.</li>
<p><code>[root@tbsm61rh5 ~]# cat /etc/passwd</code></p>
<p>Using default values will produce entries similar to the following:</p>
<p><code>dasusr1:x:501:103::/home/dasusr1:/bin/bash<br />
db2inst1:x:502:104::/home/db2inst1:/bin/bash<br />
db2fenc1:x:503:105::/home/db2fenc1:/bin/bash</code></p>
<li>Validate DB2</li>
<p><code>[root@tbsm61rh5 ese]# cd /opt/ibm/db2/V9.7/bin/<br />
[root@tbsm61rh5 bin]# ./db2val<br />
DBI1379I  The db2val command is running. This can take several minutes.<br />
DBI1335I  Installation file validation for the DB2 copy installed at<br />
/opt/ibm/db2/V9.7 was successful.<br />
DBI1343I  The db2val command completed successfully. For details, see<br />
the log file /tmp/db2val-12_28_05:55:29.log.</code></ul>
</li>
<li>Configure DB2
<ul>
<li>After DB2 is installed, run the TBSM DB configuration utility (included with the TBSM media). Log on to the server and run the configuration utility as the database user.</li>
<p><code>[root@tbsm61rh5 tbsm_media]# su - db2inst1<br />
[db2inst1@tbsm61rh5 ~]$ sh /opt/tbsm_media/CI3B5ML/linux/DbConfig/setup-dbconfig-linux.bin</code></p>
<li>Follow the steps in the graphic installation wizard. Ensure that the database name and database user match the existing database instance. (created during db2 install process)</li>
<p><a rel="attachment wp-att-1438" href="http://bluemedora.com/blog/2011/12/tbsm-6-1/screen-shot-2011-12-28-at-4-23-00-pm/"><img class="alignnone size-full wp-image-1438" src="http://bluemedora.com/blog/wp-content/uploads/2011/12/Screen-shot-2011-12-28-at-4.23.00-PM.png" alt="" width="525" height="469" /></a></ul>
</li>
<li>Install TBSM
<ul>
<li>Run the TBSM installer as a non-root user that is not the database user.</li>
<p><code>[root@tbsm61rh5 ~]# useradd medora<br />
[root@tbsm61rh5 ~]# passwd medora<br />
Changing password for user medora.<br />
New UNIX password:<br />
Retype new UNIX password:<br />
passwd: all authentication tokens updated successfully.<br />
[root@tbsm61rh5 ~]# su - medora<br />
</code></p>
<li>The setup file for console installation is in /TBSM directory or the installation package or DVD. At the command prompt, type the following command to install TBSM in console mode:</li>
<p><code>[medora@tbsm61rh5 ~]$ /home/medora/CI3B5ML/TBSM/setup-linux.bin</code></p>
<li>If your machine does not have the double-byte code pages installed, the double-byte languages (Simplified Chinese, Traditional Chinese, Korean, Japanese) are corrupted in the language selection list. This issue is a display problem on the selection list and the TBSM launchpad functions normally otherwise.</li>
<li>Aside from DB2, quit other running applications and proceed through the graphical wizard as shown below. <span style="color: #ff0000;">*Do not quit DB2 or this procedure will not complete.*</span></li>
<p><a rel="attachment wp-att-1439" href="http://bluemedora.com/blog/2011/12/tbsm-6-1/quit_before_proceeding/"><img class="alignnone size-full wp-image-1439" src="http://bluemedora.com/blog/wp-content/uploads/2011/12/quit_before_proceeding.png" alt="" width="525" height="408" /></a></p>
<li>Specify desired install directory.</li>
<p><a rel="attachment wp-att-1440" href="http://bluemedora.com/blog/2011/12/tbsm-6-1/install_dir/"><img class="alignnone size-full wp-image-1440" src="http://bluemedora.com/blog/wp-content/uploads/2011/12/install_dir.png" alt="" width="525" height="406" /></a></p>
<li>Aside from correct database information, assure a fully qualified domain name is specified for <em>Database Hostname</em>. <span style="color: #ff0000;">*This process will fail if an unqualified domain name is specified.*</span></li>
<p><a rel="attachment wp-att-1441" href="http://bluemedora.com/blog/2011/12/tbsm-6-1/fqdn/"><img class="alignnone size-full wp-image-1441" src="http://bluemedora.com/blog/wp-content/uploads/2011/12/fqdn.png" alt="" width="525" height="409" /></a></p>
<li>Specify a username and password for TIP administration.</li>
<p><a rel="attachment wp-att-1442" href="http://bluemedora.com/blog/2011/12/tbsm-6-1/tip_admin/"><img class="alignnone size-full wp-image-1442" src="http://bluemedora.com/blog/wp-content/uploads/2011/12/tip_admin.png" alt="" width="525" height="408" /></a></p>
<li>Wait patiently as TBSM installs. This process can take in excess of two hours.</li>
<p><a rel="attachment wp-att-1443" href="http://bluemedora.com/blog/2011/12/tbsm-6-1/install/"><img class="alignnone size-full wp-image-1443" src="http://bluemedora.com/blog/wp-content/uploads/2011/12/install.png" alt="" width="525" height="409" /></a></ul>
</li>
<li>Validate TBSM Installation
<ul>
<li>Configure automatic startup for TBSM. <span style="color: #ff0000;">*Perform this action as root.*</span></li>
<p><code>[root@tbsm61rh5 bin]# ./opt/IBM/tivoli/tbsm/bin/autostartup_enable.sh</code></p>
<li>Start DB2. <span style="color: #ff0000;">*Perform this action as the database instance owner (db2inst1).*</span></li>
<p><code>[db2inst1@tbsm61rh5 ~]$ db2start</code></p>
<li>Start the TBSM suite. <span style="color: #ff0000;">*Perform this action as the TBSM owner (medora).*</span></li>
<p><code>[medora@tbsm61rh5 ~]$ ./opt/IBM/tivoli/tbsm/bin/tbsm_suite.sh</code></p>
<li>Login to web console. <span style="color: #ff0000;">*Perform this action as the TIP administrator (tipadmin).*</span></li>
<p><a rel="attachment wp-att-1460" href="http://bluemedora.com/blog/2011/12/tbsm-6-1/tipadmin-2/"><img class="alignnone size-full wp-image-1460" src="http://bluemedora.com/blog/wp-content/uploads/2011/12/tipadmin1.png" alt="" width="525" height="319" /></a></p>
<li>Following a successful login, the dashboard should appear as below.</li>
<p><a rel="attachment wp-att-1459" href="http://bluemedora.com/blog/2011/12/tbsm-6-1/login_success-2/"><img class="alignnone size-full wp-image-1459" src="http://bluemedora.com/blog/wp-content/uploads/2011/12/login_success1.png" alt="" width="525" height="320" /></a></ul>
</li>
</ul>
<p>references:</p>
<p><a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=%2Fcom.ibm.db2.udb.uprun.doc%2Fdoc%2Fr0011957.htm"></a><a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=%2Fcom.ibm.db2.udb.uprun.doc%2Fdoc%2Ft0008875.htm">http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=%2Fcom.ibm.db2.udb.uprun.doc%2Fdoc%2Ft0008875.htm</a></p>
<p><a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.installation.base.doc/info/aes/ae/tins_linuxsetup.html">http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.installation.base.doc/info/aes/ae/tins_linuxsetup.html</a></p>
<p><a href="https://www-304.ibm.com/support/docview.wss?rs=3120&amp;uid=swg21472859&amp;wv=1">https://www-304.ibm.com/support/docview.wss?rs=3120&amp;uid=swg21472859&amp;wv=1</a></p>
<p><a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/index.jsp?topic=%2Fcom.ibm.ips.doc_1.1.1.7%2Fips_ic-homepage.html">http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/index.jsp?topic=%2Fcom.ibm.ips.doc_1.1.1.7%2Fips_ic-homepage.html</a></p>
<p><a href="https://www.ibm.com/developerworks/wikis/display/tivolibsm/Home">https://www.ibm.com/developerworks/wikis/display/tivolibsm/Home</a></p>
<p><a href="http://www-947.ibm.com/support/entry/portal/All_documentation_links/Software/Tivoli/Tivoli_Business_Service_Manager">http://www-947.ibm.com/support/entry/portal/All_documentation_links/Software/Tivoli/Tivoli_Business_Service_Manager</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bluemedora.com/blog/2011/12/tbsm-6-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C++ -&gt; vs . Operator</title>
		<link>http://bluemedora.com/blog/2011/12/c-vs-operator/</link>
		<comments>http://bluemedora.com/blog/2011/12/c-vs-operator/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 16:01:50 +0000</pubDate>
		<dc:creator>Joshua Burkhart</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[->]]></category>
		<category><![CDATA[.]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[dot]]></category>
		<category><![CDATA[operator]]></category>
		<category><![CDATA[structure]]></category>
		<category><![CDATA[vs]]></category>

		<guid isPermaLink="false">http://bluemedora.com/blog/?p=1377</guid>
		<description><![CDATA[Added by Joshua Burkhart One can access C++ data members and functions using the dot (.) operator for locally created objects. To access objects on the free store, one must dereference the pointer and call the dot operator on the object pointed to by the pointer. One could access the doSomething member function as follows: [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>Added by <a href="mailto:joshua.burkhart@bluemedora.com">Joshua Burkhart</a></li>
</ul>
<p>One can access C++ data members and functions using the dot (<tt>.</tt>) operator for locally created objects. To access objects on the free store, one must dereference the pointer and call the dot operator on the object pointed to by the pointer. One could access the <tt>doSomething</tt> member function as follows:</p>
<p><code> (*pObject).doSomething();</code></p>
<p>Parentheses are used to assure that <tt>pObject</tt> is deferenced before <tt>doSomething</tt> is accessed.</p>
<p>Because this is cumbersome, C++ provides a shorthand operator for indirect access: the <tt>points-to</tt> operator (<tt>-&gt;</tt>), which is created by typing the dash (<tt>-</tt>) immediately followed by the greater-than symbol (<tt>&gt;</tt>). C++ treats this as a single symbol. Using the <tt>points-to</tt> notation, one could access the <tt>doSomething</tt> member function as follows:</p>
<p><code> pObject-&gt;doSomething();</code></p>
<p>reference:</p>
<p><a href="http://www.cplusplus.com/doc/tutorial/structures/">http://www.cplusplus.com/doc/tutorial/structures/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bluemedora.com/blog/2011/12/c-vs-operator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ITM for Virtual Environments Agent for Citrix XenServer &#8211; Importing Logical Navigator</title>
		<link>http://bluemedora.com/blog/2011/12/itm-for-virtual-environments-agent-for-citrix-xenserver-importing-logical-navigator/</link>
		<comments>http://bluemedora.com/blog/2011/12/itm-for-virtual-environments-agent-for-citrix-xenserver-importing-logical-navigator/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 23:40:36 +0000</pubDate>
		<dc:creator>Joshua Burkhart</dc:creator>
				<category><![CDATA[IBM ITM & ITCAM Agents]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agent]]></category>
		<category><![CDATA[citrix]]></category>
		<category><![CDATA[environment]]></category>
		<category><![CDATA[environments]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[importing]]></category>
		<category><![CDATA[ITM]]></category>
		<category><![CDATA[kxi]]></category>
		<category><![CDATA[logical]]></category>
		<category><![CDATA[monitor]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[navigator]]></category>
		<category><![CDATA[Tivoli]]></category>
		<category><![CDATA[virtual]]></category>
		<category><![CDATA[xenserver]]></category>

		<guid isPermaLink="false">http://bluemedora.com/blog/?p=1347</guid>
		<description><![CDATA[Added by Joshua Burkhart The IBM Tivoli Monitoring for Virtual Environments Agent for Citrix XenServer v71, released in November 2011, includes a new optional Tivoli Enterprise Portal (TEP) based logical navigator that can be used to provide an enhanced view of multiple monitored XenServer Pool Instances. The logical navigator provides a consolidated/aggregated view of the [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>Added by <a href="mailto:joshua.burkhart@bluemedora.com">Joshua Burkhart</a></li>
</ul>
<p>The <a href="http://www-01.ibm.com/software/tivoli/products/monitor-virtual-servers/">IBM Tivoli Monitoring for Virtual Environments</a> Agent for Citrix XenServer v71, released in November 2011, includes a new optional Tivoli Enterprise Portal (TEP) based logical navigator that can be used to provide an enhanced view of multiple monitored XenServer Pool Instances. The logical navigator provides a consolidated/aggregated view of the health and availability of all monitored XenServer Pools and hypervisors within the environment.</p>
<p>As seen below, the default Navigator View (Physical) represents the physical hierarchy  of the managed systems being monitored in the ITM environment.   A close examination reveals that each monitored Pool, represented by ITM Managed Sytem Names H1:XI and H2:XI are distinct entries in the Physical navigator.  The Physical navigator (essentially the &lt;default&gt; view within the TEP), out-of-the-box, does not provide any views (in TEP-speak &#8220;Workspaces&#8221; of all monitored XenServer hosts.</p>
<p><strong>Before the Logical Navigator -&gt; 16 Hosts (2 Pools) spread across two distinct ITM instances</strong></p>
<p><a rel="attachment wp-att-1392" href="http://bluemedora.com/blog/2011/12/itm-for-virtual-environments-agent-for-citrix-xenserver-importing-logical-navigator/screen-shot-2011-12-22-at-3-00-05-pm/"><img class="alignnone size-full wp-image-1392" src="http://bluemedora.com/blog/wp-content/uploads/2011/12/Screen-shot-2011-12-22-at-3.00.05-PM.png" alt="" width="466" height="514" /></a></p>
<p>Importing the new Logical Navigator view allows managed system data to aggregated into a single &#8220;dashboard&#8221; view that allows you to view the status of all of the monitored XenServer Pools and hosts across the enterprise.</p>
<p><strong>After the Logical Navigator -&gt; 16 Hosts (two Pools) in one consolidated TEP Workspace/view<br />
</strong></p>
<p><a rel="attachment wp-att-1390" href="http://bluemedora.com/blog/2011/12/itm-for-virtual-environments-agent-for-citrix-xenserver-importing-logical-navigator/screen-shot-2011-12-22-at-2-57-32-pm-2/"><img class="alignnone size-full wp-image-1390" src="http://bluemedora.com/blog/wp-content/uploads/2011/12/Screen-shot-2011-12-22-at-2.57.32-PM1.png" alt="" width="466" height="299" /></a></p>
<h3>Importing the logical navigator</h3>
<ul>
<li>Assure the TEPS user has Custom Navigator Views &#8216;Modify&#8217; permissions (Administer Users-&gt;Permissions Tab-&gt;Tivoli Enterprise Portal Authorities-&gt;Custom Navigator Views-&gt;Modify)</li>
<li>Login with tacmd</li>
</ul>
<p><code>C:\Users\Administrator&gt;tacmd login -s localhost -u sysadmin -p password<br />
Validating user...<br />
KUIC00007I: User sysadmin logged into server on https://localhost:3661.</code></p>
<ul>
<li>Navigate to the Logical_Navigator directory (in the root of the agent installation media)</li>
</ul>
<p><code>T:\agents\kxiagent\kxiagent_710\ga_refresh\CRG3WML\ITMfVE_XenServer_Application_Support\Logical_Navigator&gt;</code></p>
<ul>
<li>Install the logical navigator:</li>
</ul>
<p><code>T:\agents\kxiagent\kxiagent_710\ga_refresh\</code><code>CRG3WML\</code><code>ITMfVE_XenServer_Application_Support\Logical_Navigator&gt;tacmd importnavigator -x kxi_logicalnav.xml -s localhost -u sysadmin -p password<br />
KUICIN001I Validating user credentials...<br />
KUICIN003I Reading XML and converting to custom navigator view...<br />
KUICIN012I The custom navigator view "XenServer_Details" already exists on the server. Do you want to delete the existing child nodes for the custom navigator view, and import the custom navigator view "XenServer_Details" to the Tivoli Enterprise Portal Server on http://localhost:1920? Existing user assignments for the custom navigator view will be maintained.<br />
Enter Y for yes or N for no: Y<br />
KUICIN013I Deleting child nodes for navigator "XenServer_Details"...<br />
KUICIN004I Writing custom navigator view to the server...<br />
KUICIN005I Writing queries to the server...<br />
KUICIN021I The queries for the custom navigator view were successfully imported.<br />
KUICIN006I Writing workspaces to the server...<br />
KUICIN022I The workspaces for the custom navigator view were successfully imported.<br />
KUICIN020I The custom navigator view "XenServer_Details" was successfully imported from the file T:\agents\kxiagent\kxiagent_710\ga_refresh\</code><code>CRG3WML\</code><code>ITMfVE_XenServer_Application_Support\Logical_Navigator\kxi_logicalnav.xml to the Tivoli Enterprise Portal Server on http://localhost:1920. The navigator view import operation did not assign the imported navigator view to any users. If the navigator view already existed, the existing user assignments were preserved. The tacmd editUser command or the Administer Users dialog can be used to assign the navigator view to a user.</code></p>
<ul>
<li>Modify the permissions of the TEPS user:</li>
</ul>
<p><code>tacmd edituser -u sysadmin -w password -i sysadmin -p NavigatorViews=physical,logical,XenServer_Details</code></p>
<div>
<div>
<h3>Results</h3>
</div>
<p>After running these commands, refresh the TEPD or TEPW to view XenServer host (hypervisor) details in the logical navigator window.</p>
<p><a rel="attachment wp-att-1389" href="http://bluemedora.com/blog/2011/12/itm-for-virtual-environments-agent-for-citrix-xenserver-importing-logical-navigator/screen-shot-2011-12-22-at-3-01-24-pm/"><img class="alignnone size-full wp-image-1389" src="http://bluemedora.com/blog/wp-content/uploads/2011/12/Screen-shot-2011-12-22-at-3.01.24-PM.png" alt="" width="589" height="331" /></a></p>
</div>
<p>references:</p>
<p><a href="http://www-03.ibm.com/certify/tests/obj034.shtml">http://www-03.ibm.com/certify/tests/obj034.shtml</a></p>
<p><a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v15r1/index.jsp?topic=%2Fcom.ibm.tivoli.itmvs.doc_7.1%2Fimport_logical_nav.html"></a><a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v15r1/index.jsp?topic=%2Fcom.ibm.tivoli.itmvs.doc_7.1%2Fxenserver%2Fimport_logical_nav.html">http://publib.boulder.ibm.com/infocenter/tivihelp/v15r1/index.jsp?topic=%2Fcom.ibm.tivoli.itmvs.doc_7.1%2Fxenserver%2Fimport_logical_nav.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bluemedora.com/blog/2011/12/itm-for-virtual-environments-agent-for-citrix-xenserver-importing-logical-navigator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ITM for Virtual Environments Agent for Citrix XenApp &#8211; Importing Logical Navigator</title>
		<link>http://bluemedora.com/blog/2011/12/itm-agent-for-citrix-xenapp-logical-navigator/</link>
		<comments>http://bluemedora.com/blog/2011/12/itm-agent-for-citrix-xenapp-logical-navigator/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 21:35:56 +0000</pubDate>
		<dc:creator>Joshua Burkhart</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agent]]></category>
		<category><![CDATA[citrix]]></category>
		<category><![CDATA[environment]]></category>
		<category><![CDATA[environments]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[importing]]></category>
		<category><![CDATA[ITM]]></category>
		<category><![CDATA[kxa]]></category>
		<category><![CDATA[logical]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[navigator]]></category>
		<category><![CDATA[Tivoli]]></category>
		<category><![CDATA[virtual]]></category>
		<category><![CDATA[window]]></category>
		<category><![CDATA[xenapp]]></category>

		<guid isPermaLink="false">http://bluemedora.com/blog/?p=1324</guid>
		<description><![CDATA[Added by Joshua Burkhart The new IBM Tivoli Monitoring for Virtual Environments Agent for Citrix XenApp includes a optional TEP-based logical navigator that can installed to provide greater visibility of metrics across multiple XenApp servers. As seen below, the default Navigator View (Physical) represents the physical hierarchy of the managed systems being monitored in the [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>Added by <a href="mailto:joshua.burkhart@bluemedora.com">Joshua Burkhart</a></li>
</ul>
<p>The new <a href="http://www-01.ibm.com/software/tivoli/products/monitor-virtual-servers/">IBM Tivoli Monitoring for Virtual Environments</a> Agent for Citrix XenApp includes a optional TEP-based logical navigator that can installed to provide greater visibility of metrics across multiple XenApp servers.</p>
<p>As seen below, the default Navigator View (Physical) represents the physical hierarchy  of the managed systems being monitored in the ITM environment.  Since the new Citrix XenApp agent is installed locally on a per XenApp Server basis, monitoring many XenApp servers can provide some challenges:</p>
<p><a rel="attachment wp-att-1353" href="http://bluemedora.com/blog/2011/12/itm-agent-for-citrix-xenapp-logical-navigator/physical_navigator_view/"><img class="alignnone size-full wp-image-1353" src="http://bluemedora.com/blog/wp-content/uploads/2011/12/physical_navigator_view.png" alt="" width="450" height="367" /></a></p>
<p>&nbsp;</p>
<p>Importing the new optional Logical Navigator views allow managed system data to be displayed and aggregated  together in other, more business-relevant ways.</p>
<p><a rel="attachment wp-att-1354" href="http://bluemedora.com/blog/2011/12/itm-agent-for-citrix-xenapp-logical-navigator/logical_navigator_view/"><img class="alignnone size-full wp-image-1354" src="http://bluemedora.com/blog/wp-content/uploads/2011/12/logical_navigator_view.png" alt="" width="705" height="157" /></a></p>
<p>&nbsp;</p>
<h3>Importing the logical navigator</h3>
<ul>
<li>Assure the TEPS user has Custom Navigator Views &#8216;Modify&#8217; permissions (Administer Users-&gt;Permissions Tab-&gt;Tivoli Enterprise Portal Authorities-&gt;Custom Navigator Views-&gt;Modify)</li>
<li>Login with tacmd</li>
</ul>
<p><code>C:\Users\Administrator&gt;tacmd login -s localhost -u sysadmin -p password<br />
Validating user...<br />
KUIC00007I: User sysadmin logged into server on https://localhost:3661.</code></p>
<ul>
<li>Navigate to the Logical_Navigator directory (in the root of the agent installation media)</li>
</ul>
<p><code>T:\agents\kxaagent\kxaagent_710\ga_refresh\ITMfVE_XenApp_Application_Support\Logical_Navigator&gt;</code></p>
<ul>
<li>Install the logical navigator:</li>
</ul>
<p><code>T:\agents\kxaagent\kxaagent_710\ga_refresh\ITMfVE_XenApp_Application_Support\Logical_Navigator&gt;tacmd importnavigator -x kxa_logicalnav.xml -s localhost -u sysadmin -p password<br />
KUICIN001I Validating user credentials...<br />
KUICIN003I Reading XML and converting to custom navigator view...<br />
KUICIN012I The custom navigator view "XenApp_Details" already exists on the server. Do you want to delete the existing child nodes for the custom navigator view, and import the custom navigator view "XenApp_Details" to the Tivoli Enterprise Portal Server on http://localhost:1920? Existing user assignments for the custom navigator view will be maintained.<br />
Enter Y for yes or N for no: Y<br />
KUICIN013I Deleting child nodes for navigator "XenApp_Details"...<br />
KUICIN004I Writing custom navigator view to the server...<br />
KUICIN005I Writing queries to the server...<br />
KUICIN021I The queries for the custom navigator view were successfully imported.<br />
KUICIN006I Writing workspaces to the server...<br />
KUICIN022I The workspaces for the custom navigator view were successfully imported.<br />
KUICIN020I The custom navigator view "XenApp_Details" was successfully imported from the file T:\agents\kxaagent\kxaagent_710\ga_refresh\ITMfVE_XenApp_Application_Support\Logical_Navigator\kxa_logicalnav.xml to the Tivoli Enterprise Portal Server on http://localhost:1920. The navigator view import operation did not assign the imported navigator view to any users. If the navigator view already existed, the existing user assignments were preserved. The tacmd editUser command or the Administer Users dialog can be used to assign the navigator view to a user.</code></p>
<ul>
<li>Modify the permissions of the TEPS user:</li>
</ul>
<p><code>tacmd edituser -u sysadmin -w password -i sysadmin -p NavigatorViews=physical,logical,XenApp_Details</code></p>
<div>
<div>
<h3>Results</h3>
</div>
<p>After running these commands, refresh the TEPD or TEPW to view XenApp details in the logical navigator window.</p>
<p><a rel="attachment wp-att-1355" href="http://bluemedora.com/blog/2011/12/itm-agent-for-citrix-xenapp-logical-navigator/xenapp_rollup/"><img class="alignnone size-full wp-image-1355" src="http://bluemedora.com/blog/wp-content/uploads/2011/12/xenapp_rollup.png" alt="" width="881" height="288" /></a></p>
</div>
<p>references:</p>
<p><a href="http://www-03.ibm.com/certify/tests/obj034.shtml">http://www-03.ibm.com/certify/tests/obj034.shtml</a></p>
<p><a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v15r1/index.jsp?topic=%2Fcom.ibm.tivoli.itmvs.doc_7.1%2Fimport_logical_nav.html">http://publib.boulder.ibm.com/infocenter/tivihelp/v15r1/index.jsp?topic=%2Fcom.ibm.tivoli.itmvs.doc_7.1%2Fimport_logical_nav.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bluemedora.com/blog/2011/12/itm-agent-for-citrix-xenapp-logical-navigator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing Windows Low Disk Space Warnings</title>
		<link>http://bluemedora.com/blog/2011/10/removing-windows-low-disk/</link>
		<comments>http://bluemedora.com/blog/2011/10/removing-windows-low-disk/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 13:40:37 +0000</pubDate>
		<dc:creator>Joshua Burkhart</dc:creator>
				<category><![CDATA[Blue Medora Development]]></category>
		<category><![CDATA[are]]></category>
		<category><![CDATA[disk]]></category>
		<category><![CDATA[low]]></category>
		<category><![CDATA[of]]></category>
		<category><![CDATA[on]]></category>
		<category><![CDATA[out]]></category>
		<category><![CDATA[remove]]></category>
		<category><![CDATA[removing]]></category>
		<category><![CDATA[running]]></category>
		<category><![CDATA[space]]></category>
		<category><![CDATA[warning]]></category>
		<category><![CDATA[warnings]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[you]]></category>

		<guid isPermaLink="false">http://bluemedora.com/blog/?p=1314</guid>
		<description><![CDATA[Added by Joshua Burkhart Follow the below instructions to remove Windows Low Disk Space Warnings from the Task Bar. This is advantageous in situations where a recovery or maintenance partition is attached to the system and recognized as a drive. Execute the Registry Editor C:\Users\Administrator&#62;regedit.exe Navigate to HKEY_CURRENT_USER-&#62;SOFTWARE-&#62;Microsoft-&#62;Windows-&#62;CurrentVersion-&#62;Policies-&#62;Explorer If an entry named &#8216;NoLowDiskSpaceChecks&#8217; does not [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>Added by <a href="mailto:joshua.burkhart@bluemedora.com">Joshua Burkhart</a></li>
</ul>
<p>Follow the below instructions to remove Windows Low Disk Space Warnings from the Task Bar. This is advantageous in situations where a recovery or maintenance partition is attached to the system and recognized as a drive.</p>
<p>Execute the Registry Editor</p>
<p><code>C:\Users\Administrator&gt;regedit.exe</code></p>
<p>Navigate to HKEY_CURRENT_USER-&gt;SOFTWARE-&gt;Microsoft-&gt;Windows-&gt;CurrentVersion-&gt;Policies-&gt;Explorer</p>
<p>If an entry named &#8216;NoLowDiskSpaceChecks&#8217; does not exist, create it.</p>
<p>Set the type of the entry to DWORD</p>
<p>Set the value of the entry to 1</p>
<p>Save your work</p>
<p>Reboot the system</p>
]]></content:encoded>
			<wfw:commentRss>http://bluemedora.com/blog/2011/10/removing-windows-low-disk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Possible TBSM ITCAM for Applications Event Mapping Issues</title>
		<link>http://bluemedora.com/blog/2011/06/tbsm-itcam-for-applications-event-mapping-issue/</link>
		<comments>http://bluemedora.com/blog/2011/06/tbsm-itcam-for-applications-event-mapping-issue/#comments</comments>
		<pubDate>Mon, 27 Jun 2011 15:09:47 +0000</pubDate>
		<dc:creator>Joshua Burkhart</dc:creator>
				<category><![CDATA[Blue Medora Development]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[bsm_identity]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[field]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[issue]]></category>
		<category><![CDATA[itcam]]></category>
		<category><![CDATA[manager]]></category>
		<category><![CDATA[mapping]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[tbsm]]></category>
		<category><![CDATA[Tivoli]]></category>
		<category><![CDATA[xmltoolkit]]></category>

		<guid isPermaLink="false">http://bluemedora.com/blog/?p=1222</guid>
		<description><![CDATA[Added by Joshua Burkhart Probable issues with TBSM Event Mapping may include one or more of the following deficiencies. EIF Event Transmission is not Descriptive The EIF Event Transmission sent from the EIF Emitter on the TEMS does not contain enough information for the event to be correctly mapped to a TBSM Service Component. This [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li> Added by <a href="mailto:joshua.burkhart@bluemedora.com">Joshua Burkhart</a></li>
</ul>
<p>Probable issues with TBSM Event Mapping may include one or more of the following deficiencies.<span id="more-1222"></span></p>
<ul>
<li><strong>EIF Event Transmission is not Descriptive</strong>
<ul>
<li>The EIF Event Transmission sent from the EIF Emitter on the TEMS  does not contain enough information for the event to be correctly mapped  to a TBSM Service Component.</li>
<li>This indicates a deficiency in the Custom Situation</li>
<li>The most probable solution to this issue is to modify each Custom  Situation after better understanding the &#8220;BSM_Identity&#8221; value of the  TBSM Service Component to which the event correlates.</li>
</ul>
</li>
<li><strong>Incorrect EIF Probe Rules</strong>
<ul>
<li>The rules defined in the EIF Probe incorrectly set the value of the &#8220;BSM_Identity&#8221; field.</li>
<li>This indicates a deficiency in the kub.rules file (generated by the omnibusUpdater.sh script from the kub.baroc file).</li>
<li>The most probable solution to this issue is to include a revised  copy of the kub.rules file with the ITCAM for Applications Agent.</li>
<li>Other possible solutions include modifying the kub.baroc file  included with the ITCAM for Applications Agent or including a revised  copy of the omnibusUpdater.sh script included with the ITCAM for  Applications Agent.</li>
</ul>
</li>
<li><strong>IdML Book is not Descriptive</strong>
<ul>
<li>The IdML Book does not contain enough information for XMLToolkit  to create a unique &#8220;BSM_Identity&#8221; value for each TBSM Service Component.</li>
<li>This indicates a deficiency in the TMSDLA.</li>
<li>The most probable solution to this issue is modification the TMSDLA included with the ITCAM for Applications Agent.</li>
</ul>
</li>
<li><strong>Incorrect XMLToolkit Rules</strong>
<ul>
<li>The XMLToolkit incorrectly sets the value of the &#8220;BSM_Identity&#8221; field.</li>
<li>This indicates a deficiency in the EventIdentifierRules.xml file.</li>
<li>The most probable solution to this issue is to discuss  modification of the EventIdentifierRules.xml file with IBM&#8217;s XMLToolkit  team.</li>
</ul>
</li>
</ul>
<p><a href="http://bluemedora.com/blog/?attachment_id=1284"><img class="alignnone size-full wp-image-1284" src="http://bluemedora.com/blog/wp-content/uploads/2011/06/TBSMITCAMforApplicationsIssues.jpg" alt="" width="624" height="407" /></a></p>
<p>references:</p>
<p><a href="http://www.ibm.com/developerworks/wikis/display/tivolibsm/Enriching+IBM+Tivoli+Monitoring+%28ITM%29+Events+For+IBM+Tivoli+Business+Service+Manager+%28TBSM%29">http://www.ibm.com/developerworks/wikis/display/tivolibsm/Enriching+IBM+Tivoli+Monitoring+%28ITM%29+Events+For+IBM+Tivoli+Business+Service+Manager+%28TBSM%29</a></p>
<p><a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/index.jsp?topic=/com.ibm.tivoli.itbsm.doc/common/tbsm_c_product_architecture.html">http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/index.jsp?topic=/com.ibm.tivoli.itbsm.doc/common/tbsm_c_product_architecture.html</a></p>
<p><a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v24r1/index.jsp?topic=/com.ibm.itcamt.doc_7.2/rt/User%20Guide/TBSM/tbsm_ref_omnibus.html">http://publib.boulder.ibm.com/infocenter/tivihelp/v24r1/index.jsp?topic=/com.ibm.itcamt.doc_7.2/rt/User%20Guide/TBSM/tbsm_ref_omnibus.html</a></p>
<p><a href="http://www.redbooks.ibm.com/abstracts/sg247878.html?Open">http://www.redbooks.ibm.com/abstracts/sg247878.html?Open</a></p>
<p><a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/index.jsp?topic=/com.ibm.tivoli.itbsm.doc_4.1/bsma_evtc_tivolieifprobe.htm">http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/index.jsp?topic=/com.ibm.tivoli.itbsm.doc_4.1/bsma_evtc_tivolieifprobe.htm</a></p>
<p><a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/index.jsp?topic=/com.ibm.tivoli.itbsm.doc_4.1/bsma_evtc_itm.htm">http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/index.jsp?topic=/com.ibm.tivoli.itbsm.doc_4.1/bsma_evtc_itm.htm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bluemedora.com/blog/2011/06/tbsm-itcam-for-applications-event-mapping-issue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The GIT Experience</title>
		<link>http://bluemedora.com/blog/2011/06/the-git-experience/</link>
		<comments>http://bluemedora.com/blog/2011/06/the-git-experience/#comments</comments>
		<pubDate>Mon, 27 Jun 2011 13:48:00 +0000</pubDate>
		<dc:creator>kkumar</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://bluemedora.com/blog/?p=1206</guid>
		<description><![CDATA[It was not until a few months back that I was given the opportunity to work with GIT. GIT is a distributed version control system. Simply put, it is a piece of software that manages source code. Having worked with SVN previously, switching to GIT was a pleasant change. The most noticeable difference between SVN [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: small;color: #ffffff">It was not until a few months back that I was given the opportunity to work with GIT.  GIT is a distributed version control system. Simply put, it is a piece of software that manages source code.</span></p>
<p><span style="color: #ffffff"><span style="font-size: small">Having worked with SVN previously, switching to GIT was a pleasant change. The most noticeable difference between SVN and GIT lies in the fact that GIT is distributed whereas SVN is not. This means that </span><span style="font-size: small">Git does not depend on a centralized server, but does have the ability to synchronize with other Git repositories.</span><span style="font-size: small"> O</span><span style="font-size: small">nce a repository is cloned using GIT, all the commits, diffs, merges and more can be done entirely offline. I also noticed that it takes longer to type in GIT commands than it does to execute, whereas in SVN commands take longer to execute. In short, GIT makes for a much better work experience.</span></span></p>
<p><span style="font-size: small;color: #ffffff">I found that GIT was a bit complicated to use, especially in the beginning. Even after a few months into working with it, I still find that there is a lot more to learn about GIT (evidently proven by some of the blunders I have committed), than I already know. A few important lessons I learnt while working with GIT were:</span></p>
<ul>
<li><span style="color: #ffffff"><span style="font-size: small"> It is always good 	practice to work with the latest most updated version of code, and 	to do so, a </span><span style="font-size: small"><strong>git pull</strong></span><span style="font-size: small"> before starting work on any branch is a must.</span></span></li>
<li><span style="font-size: small;color: #ffffff"> Double checking the 	branch I was working on really helped because discovering that I was 	working on a wrong branch was not fun.</span></li>
<li><span style="font-size: small;color: #ffffff"> Using the remove 	command with caution, because once files are deleted from a  	particular branch there is no way of getting them back, EVER, unless 	of course I reverted to previous commit level and re-did all my 	changes. </span></li>
<li><span style="font-size: small;color: #ffffff"> Merging one branch 	into another can be very tricky. The most important thing in 	resolving conflicts between files during merging is knowing what 	caused the conflict, not to mention the patience to resolve them.</span></li>
<li><span style="font-size: small;color: #ffffff"> Checking in the 	wrong files can cause problems, and therefore making sure that the 	right files are being checked in is the right way to go.</span></li>
<li><span style="font-size: small;color: #ffffff"> Tagging in GIT can 	be very useful especially when referring to a particular commit is 	necessary.</span></li>
<li><span style="font-size: small;color: #ffffff">The git status 	command is really helpful in pointing out what files have been 	changed or updated.</span></li>
</ul>
<p><span style="color: #ffffff"><span style="font-size: small">An interesting thing I noticed about GIT is that it is an intelligent software, in the sense that it prompts for the right commands in cases where commands were misspelt. It is also interactive and helps in describing what each command does. Using GIT commands in the wrong way is common, in such cases the </span><span style="font-size: small"><strong>git help</strong></span><span style="font-size: small"> command is really useful.</span></span></p>
<p><span style="font-size: small;color: #ffffff">Below is a list of some of the GIT commands I regularly use.</span></p>
<p><span style="font-size: small;color: #ffffff">1) git clone : Creates a local git repository copy from a remote source.</span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span><span style="font-size: small;color: #ff0000"><strong>git clone git@github.com:user/test.git</strong></span></span></p>
<p><span style="font-size: small;color: #ffffff">2) git pull : Pulls in the latest changes from the origin</span></p>
<p><span style="font-size: small;color: #000000"> </span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span><span style="font-size: small;color: #ff0000"><strong>git pull</strong></span></span></p>
<p><span style="font-size: small;color: #ffffff"> OR</span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span><span style="font-size: small;color: #ff0000"><strong>git pull origin &lt;branchName&gt;</strong></span></span></p>
<p><span style="font-size: small;color: #000000"> </span></p>
<p><span style="font-size: small;color: #ffffff">3) git add : Adds new or updates files to the current branch</span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span><span style="font-size: small;color: #ff0000"><strong>git add &lt;fileName&gt;</strong></span></span></p>
<p><span style="font-size: small;color: #ffffff">4) git commit : Commits all local changes</span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span><span style="font-size: small;color: #ff0000"><strong>git commit -a</strong></span></span></p>
<p><span style="font-size: small;color: #ffffff">5) git status : Checks for files that are changed in the local directory.</span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span><span style="font-size: small;color: #ff0000"><strong>git status</strong></span></span></p>
<p><span style="font-size: small;color: #ffffff">6) git push : Pushes local changes to the origin</span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span><span style="font-size: small;color: #ff0000"><strong>git push origin &lt;currentBranchName&gt;</strong></span></span></p>
<p><span style="font-size: small;color: #ffffff">7) git branch : Gives the current working branch.</span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span><span style="font-size: small;color: #ff0000"><strong>git branch</strong></span></span></p>
<p><span style="color: #ffffff"><span style="font-size: small"> master</span></span></p>
<p><span style="color: #ffffff"><span style="font-size: small"> * new</span></span></p>
<p><span style="font-size: small;color: #ffffff">The * here denotes the current working branch.</span></p>
<p><span style="color: #000000"><span style="font-size: small"><span style="color: #ffffff"> &#8212; To create a new branch off an old branch :</span></span></span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span><span style="font-size: small"><strong><span style="color: #ff0000">git checkout -b &lt;newbranch&gt; &lt;oldbranch</span>&gt;</strong></span></span></p>
<p><span style="color: #ffffff"><span style="font-size: small"> &#8212; To Switch to a different branch from the current working branch :</span></span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span><span style="font-size: small;color: #ff0000"><strong>git checkout &lt;differentBranch&gt;</strong></span></span></p>
<p><span style="color: #ffffff"><span style="font-size: small"> &#8212; To get a list of all branches:</span></span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span><span style="font-size: small;color: #ff0000"><strong>git branch -a</strong></span></span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span></span></p>
<p><span style="color: #ffffff"><span style="font-size: small"> &#8212; To delete a branch locally :</span></span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span><span style="font-size: small;color: #ff0000"><strong>git branch -d &lt;branchName&gt;</strong></span></span></p>
<p><span style="color: #000000"><span style="font-size: small"><strong> </strong></span><span style="font-size: small;color: #ffffff">&#8211; To delete a branch remotely</span></span></p>
<p><span style="color: #ff0000"><span style="font-size: small"><strong> git push origin :&lt;branchName&gt;</strong></span></span></p>
<p><span style="font-size: small;color: #ffffff">8) git tag : To create a tag that refers to a particular commit</span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span><span style="font-size: small;color: #ff0000"><strong>git tag &lt;tagName&gt;</strong></span></span></p>
<p><span style="color: #000000"><span style="font-size: small"><strong> </strong></span><span style="font-size: small;color: #ffffff">&#8211; To push tags to the origin</span></span></p>
<p><span style="font-size: small;color: #000000"><strong> </strong></span></p>
<p><span style="font-size: small;color: #ff0000"><strong> git push &#8211;tags</strong></span></p>
<p><span style="color: #000000"><span style="font-size: small"><strong> </strong></span><span style="font-size: small;color: #ffffff">&#8211; To delete a tag locally</span></span></p>
<p><span style="font-size: small;color: #ff0000"><strong> git tag -d &lt;tagName&gt;</strong></span></p>
<p><span style="color: #000000"><span style="font-size: small"><strong> </strong></span><span style="font-size: small;color: #ffffff">&#8211; To delete a tag remotely</span></span></p>
<p><span style="font-size: small;color: #ff0000"><strong> git push origin :&lt;tagName&gt;</strong></span></p>
<p><span style="font-size: small;color: #000000"> </span></p>
<p><span style="font-size: small;color: #ffffff">9) git revert : To revert to a specific commit</span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span><span style="font-size: small;color: #ff0000"><strong>git revert &lt;specificCommit&gt;</strong></span></span></p>
<p><span style="font-size: small;color: #ffffff">10) git diff : Displays differences between two commits</span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span><span style="font-size: small;color: #ff0000"><strong>git diff &lt;oldCommit&gt; &lt;newCommit&gt;</strong></span></span></p>
<p><span style="font-size: small;color: #ffffff">11) git log : To get a history of changes</span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span><span style="font-size: small;color: #ff0000"><strong>git log</strong></span></span></p>
<p><span style="font-size: small;color: #ffffff">12 ) git rm : Removes files from the current working directory and branch</span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span><span style="font-size: small;color: #ff0000"><strong>git rm &lt;fileName&gt;</strong></span></span></p>
<p><span style="font-size: small;color: #ffffff">13) git merge : Merges a branch into another.</span></p>
<p><span style="color: #ffffff"><span style="font-size: small"> Make sure to do a </span><span style="font-size: small"><strong>git pull</strong></span><span style="font-size: small"> on the branch that is being merged into and then run the </span><span style="font-size: small"><strong>git merge</strong></span><span style="font-size: small"> command.</span></span></p>
<p><span style="color: #000000"><span style="font-size: small"> </span><span style="font-size: small;color: #ff0000"><strong>git merge &lt;newBranch&gt;</strong></span></span></p>
<p><span style="font-size: small;color: #000000"><strong><br />
</strong></span></p>
<p><span style="font-size: small;color: #ffffff">In conclusion, as a developer, GIT has definitely made life easier. I hope to write soon about other softwares and tools I use.</span></p>
<p><span style="font-size: small;color: #ffffff">Kruthika M  Kumar</span></p>
]]></content:encoded>
			<wfw:commentRss>http://bluemedora.com/blog/2011/06/the-git-experience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TBSM Event Mapping</title>
		<link>http://bluemedora.com/blog/2011/06/tbsm-event-mapping/</link>
		<comments>http://bluemedora.com/blog/2011/06/tbsm-event-mapping/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 20:46:44 +0000</pubDate>
		<dc:creator>Joshua Burkhart</dc:creator>
				<category><![CDATA[Blue Medora Development]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[eif]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[flow]]></category>
		<category><![CDATA[manager]]></category>
		<category><![CDATA[mapping]]></category>
		<category><![CDATA[netcool]]></category>
		<category><![CDATA[omnibus]]></category>
		<category><![CDATA[probe]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[tbsm]]></category>
		<category><![CDATA[Tivoli]]></category>

		<guid isPermaLink="false">http://bluemedora.com/blog/?p=1156</guid>
		<description><![CDATA[Added by Joshua Burkhart Event mapping All the event mapping necessary to map Tivoli Enterprise Console, Tivoli NETVIEW, and Tivoli Monitoring event fields to ObjectServer fields is pre-configured in the tivoli_eif.rules file, the default rule file used by the EIF probe. The events forwarded from these sources contain the following special fields: The BSM_Identity field [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li> Added by <a href="mailto:joshua.burkhart@bluemedora.com">Joshua Burkhart</a></li>
</ul>
<h2>Event mapping</h2>
<p>All the event mapping necessary to map Tivoli Enterprise Console,  Tivoli NETVIEW, and Tivoli Monitoring event fields to ObjectServer  fields is pre-configured in the tivoli_eif.rules file, the default  rule file used by the EIF probe. The events forwarded from these  sources contain the following special fields:</p>
<ul>
<li>The BSM_Identity field maps to a value that identifies which service the event affects. The below table shows the default mappings for the supported event  sources. One can use this field&#8217;s value to help identify  service-affecting events in one&#8217;s TBSM incoming status rules.</li>
<li>The BSM_ClassName field is reserved for future use. For TBSM 4.1, the BSM_ClassName field is set to null.</li>
</ul>
<p>Event Source Default Mappings:</p>
<div>
<table>
<tbody>
<tr>
<td>Tivoli Enterprise Console</td>
<td>@BSM_Identity = $origin</td>
</tr>
<tr>
<td>Tivoli Monitoring</td>
<td>@BSM_Identity = $situation_origin</td>
</tr>
<tr>
<td>Tivoli NETVIEW</td>
<td>@BSM_Identity = $origin</td>
</tr>
</tbody>
</table>
</div>
<h2>Event correlation</h2>
<p>Each TBSM Service Component in one&#8217;s service model can have one of more  unique service identifiers. These service identifier values are assigned  the BSM_Identity attribute of a Service Component. In TBSM incoming  status rules, one can use the event&#8217;s BSM_Identity field value to match a  Service Component&#8217;s BSM_Identity value to determine the events that  affect a service. For more information on incoming status rules, see the <a rel="nofollow" href="http://www.google.com/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CBkQFjAA&amp;url=http%3A%2F%2Fpublib.boulder.ibm.com%2Finfocenter%2Ftivihelp%2Fv3r1%2Ftopic%2Fcom.ibm.tivoli.itbsm.doc%2FServiceConfigurationGuide.pdf&amp;rct=j&amp;q=IBM%20Tivoli%20Business%20Service%20Manager%20Service%20Configuration%20Guide&amp;ei=MLkITqzYKY6q0AHG183aCw&amp;usg=AFQjCNFbH4MCylfUUxWgiHzSnh6UFz6oVA&amp;sig2=NPQyIN4gLIGHGUWvonFVfw&amp;cad=rja">IBM Tivoli Business Service Manager Service Configuration Guide</a> and <a rel="nofollow" href="http://www.google.com/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CBoQFjAA&amp;url=http%3A%2F%2Fpublib.boulder.ibm.com%2Finfocenter%2Ftivihelp%2Fv3r1%2Ftopic%2Fcom.ibm.tivoli.itbsm.doc%2Ftbsm_scenarios.pdf&amp;rct=j&amp;q=IBM%20Tivoli%20Business%20Service%20Manager%20Scenarios%20Guide.&amp;ei=XbkITpfkC9Gu0AGYn_DOCw&amp;usg=AFQjCNEPKhg84COYN6UhRoWZ62Enzyg6zw&amp;sig2=Sz9EqujIR6PUS2iPAQTevQ&amp;cad=rja">IBM Tivoli Business Service Manager Scenarios Guide</a>.</p>
<p>The mechanism by which events are mapped to TBSM Service Components is represented in the below image.<span id="more-1156"></span></p>
<p><a rel="attachment wp-att-1194" href="http://bluemedora.com/blog/2011/06/tbsm-event-mapping/tbsmeventmapping/"><img class="alignnone size-full wp-image-1194" src="http://bluemedora.com/blog/wp-content/uploads/2011/06/TBSMEventMapping.jpg" alt="" width="639" height="418" /></a></p>
<p>Element details are as follows:</p>
<ul>
<li><strong>TEMS </strong>- The Tivoli Enterprise Monitoring Server identifies situations from criteria predefined by the ITCAM for Applications Agent.</li>
<li><strong>EIF Emitter</strong> &#8211; The EIF Emitter sends a message in the &#8220;Event Integration Facility&#8221; protocol to the EIF Probe.</li>
<li><strong>EIF Event Transmission</strong> &#8211; The EIF Event Transmission sent by the EIF Emitter carries information in a set of standard fields.</li>
<li><strong>EIF Probe </strong>- The EIF Probe receives EIF Event Transmissions with standard fields and, with the help of &#8220;.rules&#8221; files, sends an Enanced EIF Event Transmission to the OMNIBUS / Netcool Object Server.</li>
<li><strong>tivoli_eif.rules </strong>- The tivoli_eif.rules file is referenced by the EIF Probe when enhancing EIF Event Transmissions. One common task of the file is to remove single quotes from strings. The file also makes reference to the kub.rules file.</li>
<li><strong>kub.rules</strong> &#8211; The kub.rules file is generated from the kub.baroc file with the help of omnibusUpdater.sh. The kub.rules file defines mappings from the EIF Event Transmission fields to the Enhanced EIF Event Transmission fields.</li>
<li><strong>omnibusUpdater.sh</strong> &#8211; The omnibusUpdater.sh script takes the kub.baroc file as a parameter and produces the kub.rules file. It also edits the tivoli_eif.rules file to include the kub.rules file.</li>
<li><strong>Enhanced EIF Event Transmission </strong>- The Enanced EIF Event Transmission sent by the EIF Probe to the OMNIBUS / Netcool Object Server carries information in a set of custom fields defined by &#8220;.rules&#8221; files.</li>
<li><strong>OMNIBUS / Netcool Object Server </strong>- The OMNIBUS / Netcool Object Server receives the Enhanced EIF Event Transmission and adds it to the Object Server database. This information is represented by a BSM Field List which can be read by TBSM.<strong><br />
</strong></li>
<li><strong>BSM Field List </strong>- The BSM Field List is created by the OMNIBUS / Netcool Object Server and read by TBSM. It includes a &#8220;BSM_Identity&#8221; field.<strong><br />
</strong></li>
<li><strong>TBSM </strong>- The TBSM reads the BSM Field List provided by the OMNIBUS / Netcool Object Server and the BSM_Identity provided by XMLToolkit. The value of the &#8220;BSM_Identity&#8221; field in the BSM Field List must match that of an existing  TBSM &#8220;Service Component&#8221; (provided by XMLToolkit) in order for the situation it represents to be  mapped correctly.<strong><br />
</strong><strong></strong></li>
<li><strong>BSM_Identity</strong> &#8211; The BSM_Identity of each TBSM Service Component is provided by the XMLToolkit. Its value must be referenced by each situation that applies to it in order for correct mapping to occur.<strong><br />
</strong></li>
<li><strong>XMLToolkit </strong>- The XMLToolkit parses the IdML Book with the help of the EventIdentifierRules.xml file and provides a description of each Service Component to TBSM.<strong><br />
</strong></li>
<li><strong>LabelingRules.xml </strong>- The LabelingRules.xml is an XMLToolkit configuration file used by TBSM to give each Service Component a label.<strong><br />
</strong></li>
<li><strong>EventIdentifierRules.xml </strong>- The EventIdentifierRules.xml file defines a BSM_Identity mapping for each TBSM Service Component described by the IdML Book.<strong><br />
</strong></li>
<li><strong>IdML Book </strong>- The IdML Book describes the TBSM Service Components monitored by the ITCAM for Applications Agent. It is created from the TMSDLA with the help of the tmsdla.sh script and is read by the XMLToolkit.<strong><br />
</strong></li>
<li><strong>tmsdla.sh</strong> &#8211; The tmsdla.sh script uses the TMSDLA to create the IdML Book which describes the TBSM Service Components monitored by the ITCAM for Applications Agent.</li>
<li><strong>ITCAM for Applications Agent </strong>- The ITCAM for Applications Agent includes the TMSDLA, the kub.baroc file, defines the Custom Situation, and monitors TBSM Service Components.<strong><br />
</strong></li>
<li><strong>TMSDLA </strong>- The TMSDLA contains standards regarding how the TBSM Service Components monitored by the ITCAM for Applications Agent should be represented in the IdML Book.<strong><br />
</strong></li>
<li><strong>Custom Situation </strong>- The Custom Situation is described by the ITCAM for Applications Agent and defines the values of the fields sent by the EIF Emitter.<strong><br />
</strong></li>
<li><strong>kub.baroc </strong>- The kub.baroc file is included in the ITCAM for Applications Agent. It is used by the omnibusUpdater.sh script to generate the kub.rules file.<strong><br />
</strong></li>
</ul>
<p>references:</p>
<p><a href="http://www.ibm.com/developerworks/wikis/display/tivolibsm/Enriching+IBM+Tivoli+Monitoring+%28ITM%29+Events+For+IBM+Tivoli+Business+Service+Manager+%28TBSM%29">http://www.ibm.com/developerworks/wikis/display/tivolibsm/Enriching+IBM+Tivoli+Monitoring+%28ITM%29+Events+For+IBM+Tivoli+Business+Service+Manager+%28TBSM%29</a></p>
<p><a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/index.jsp?topic=/com.ibm.tivoli.itbsm.doc/common/tbsm_c_product_architecture.html">http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/index.jsp?topic=/com.ibm.tivoli.itbsm.doc/common/tbsm_c_product_architecture.html</a></p>
<p><a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v24r1/index.jsp?topic=/com.ibm.itcamt.doc_7.2/rt/User%20Guide/TBSM/tbsm_ref_omnibus.html">http://publib.boulder.ibm.com/infocenter/tivihelp/v24r1/index.jsp?topic=/com.ibm.itcamt.doc_7.2/rt/User%20Guide/TBSM/tbsm_ref_omnibus.html</a></p>
<p><a href="http://www.redbooks.ibm.com/abstracts/sg247878.html?Open">http://www.redbooks.ibm.com/abstracts/sg247878.html?Open</a></p>
<p><a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/index.jsp?topic=/com.ibm.tivoli.itbsm.doc_4.1/bsma_evtc_itm.htm">http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/index.jsp?topic=/com.ibm.tivoli.itbsm.doc_4.1/bsma_evtc_itm.htm</a></p>
<p><a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/index.jsp?topic=/com.ibm.tivoli.itbsm.doc_4.1/bsma_evtc_tivolieifprobe.htm">http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/index.jsp?topic=/com.ibm.tivoli.itbsm.doc_4.1/bsma_evtc_tivolieifprobe.htm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bluemedora.com/blog/2011/06/tbsm-event-mapping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chicken or Egg? (Unit Testing)</title>
		<link>http://bluemedora.com/blog/2011/06/chicken-or-egg-unit-testing/</link>
		<comments>http://bluemedora.com/blog/2011/06/chicken-or-egg-unit-testing/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 03:40:32 +0000</pubDate>
		<dc:creator>Blue Medora</dc:creator>
				<category><![CDATA[Blue Medora Development]]></category>
		<category><![CDATA[TDD Testing Agile]]></category>

		<guid isPermaLink="false">http://bluemedora.com/blog/?p=1160</guid>
		<description><![CDATA[While doing test driven development this is an extremely interesting question, well at least for some programming languages. What I am referring to here is the idea of a failing tested with no source written, followed by a bit of source to make the test pass.  When I say no source, what I mean is no source, although we all know that this isn’t possible in a programming language such as Java, C#, etc.]]></description>
			<content:encoded><![CDATA[<p>While doing test driven development this is an extremely interesting question, well at least for some programming languages. What I am referring to here is the idea of a failing tested with no source written, followed by a bit of source to make the test pass.  When I say no source, what I mean is no source, although we all know that this isn’t possible in a programming language such as Java, C#, etc.  In these languages we all know that it is impossible to reference something that does not exist and that is why I am talking about this.  I will provide examples in java just for convenience sake, (Since I have my IDE up and going as we speak.) with JUnit as my testing framework.</p>
<p>There are several rules that I tend to follow while writing tests.  Hopefully they will help.</p>
<ul>
<li>Write the test<br />
</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">@Test
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> realRealWinner<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Throwable</span> <span style="color: #009900;">&#123;</span>
  Winner target <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Winner<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  AssertTrue<span style="color: #009900;">&#40;</span>“Winner did not win”, target.<span style="color: #006633;">isWinner</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>
UT-OH! This does not compile, because java requires that the reference to the class you are testing exists :(  Let’s Fix it!
</li>
<p></p>
<hr />
</p>
<li>Fix the broken compilation by creating the class and the current method we are testing.<br />
</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: #000000; font-weight: bold;">Class</span> Winner <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">Boolean</span> isWinner<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">//  The  body of the function is step 3</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

</li>
<p></p>
<hr />
</p>
<li>Hold on there… You might be thinking to yourself “why is this it’s own step, it’s just a method body right?” Well, you are exactly correct, but the thing I want to portray here is that if you were to put any type of return in the function to make the test pass (initially) could potentially poison expected results.  For instance if you were to return false, and then were to step away for a moment, or better yet hand the keyboard off to your pair, and context is lost, there could be a resulting failure point in your implementation.  I strongly urge that you do the following:<br />
</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: #000000; font-weight: bold;">Class</span> Winner <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">Boolean</span> isWinner<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> NotImplementedException<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// golden nugget</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>The reason I do this is so that if this were to slip into production, or if I were to walk away, there is a clear statement that this method/section of code is indeed “NOT IMPLEMENTED YET”
</li>
<p></p>
<hr />
</p>
<li>Make the test pass.</li>
<li>Repeat steps one through four until you are finished with the current class / unit.</li>
</ul>
<p>Hope this helped,<br />
Jeremy Rowe</p>
]]></content:encoded>
			<wfw:commentRss>http://bluemedora.com/blog/2011/06/chicken-or-egg-unit-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Citrix XenServer Agent v6.2.3 TCR Reports</title>
		<link>http://bluemedora.com/blog/2011/06/citrix-xenserver-agent-v6-2-3-tcr-reports/</link>
		<comments>http://bluemedora.com/blog/2011/06/citrix-xenserver-agent-v6-2-3-tcr-reports/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 19:25:31 +0000</pubDate>
		<dc:creator>Ryan Abel</dc:creator>
				<category><![CDATA[Tivoli Common Reporting]]></category>
		<category><![CDATA[Citrix XenServer]]></category>
		<category><![CDATA[TCR]]></category>
		<category><![CDATA[tivoli common reporting]]></category>
		<category><![CDATA[XenServer TCR]]></category>

		<guid isPermaLink="false">http://bluemedora.com/blog/?p=1134</guid>
		<description><![CDATA[My name is Ryan Abel and I am a Tivoli Common Reporting (TCR) developer at Blue Medora. What is TCR? Tivoli Common Reporting is a business tool utilized by Tivoli products to show key metrics such as CPU, memory, disk usage, and network I/O for a product. For more information on what TCR is visit: [...]]]></description>
			<content:encoded><![CDATA[<p>My name is Ryan Abel and I am a Tivoli Common Reporting (TCR) developer at Blue Medora.</p>
<p><strong>What is TCR?</strong></p>
<p>Tivoli Common Reporting is a business tool utilized by Tivoli products to show key metrics such as CPU, memory, disk usage, and network I/O for a product. For more information on what TCR is visit: <a href="https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=9caf63c9-15a1-4a03-96b3-8fc700f3a364">https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=9caf63c9-15a1-4a03-96b3-8fc700f3a364</a></p>
<p>This blog will highlight the TCR reports just released to compliment the Agent for Citrix XenServer v6.2.3. These reports can be downloaded here:</p>
<p><a href="http://www-304.ibm.com/software/brandcatalog/ismlibrary/details?catalog.label=1TW10TM9U">http://www-304.ibm.com/software/brandcatalog/ismlibrary/details?catalog.label=1TW10TM9U</a></p>
<p><strong>Why Use TCR?</strong></p>
<p>Although Tivoli Monitoring Agents do a great job of representing data, they can be more powerful with a compliment like TCR. The XenServer Agent collects data and represents it in the Tivoli Enterprise Portal Desktop (TEPD) in a number of ways (i.e graphs, tables) but creating custom workspaces can become advanced. Tivoli Common Reporting is a tool a customer can use to create reports that have the same or even more capabilities than a TEPD workspace. The reports for the Agent for Citrix XenServer v6.2.3 aim to increase the power of an agent by extending its capabilities.</p>
<p><strong>XenServer 6.2.3 TCR Highlights</strong></p>
<p>One of the reports included in the TCR package is named &#8220;XenServer Hypervisor Heat Chart&#8221;. This report shows percentages of memory and CPU utilization in a cross-tab.The cross-tab contains colors that correspond to a number the user inputs in the prompt page. If the metric inside the cross-tab is below the threshold it will appear in that color. As the threshold statuses increase to &#8216;critical&#8217;, the color inside the cross-tab becomes red. In an actual environment, this report will alert a user to hypervisors that may be running critically high on memory or hypervisors that are being under-used. See Figure 1 For an example report.</p>
<p>Another report bundled with the TCR package is named &#8220;XenServer Top Or Bottom Workload Consumers&#8221;. This report shows the top or bottom hypervisors in terms of key metrics such as CPU utilization, memory utilization, and network I/O. One feature of this report is the top/bottom option. This allows a user to choose if they want to view the key metrics by most utilized or least utilized. Additionally, a user can choose if they want to display percentages or real numbers. For example, they can view memory used as a number (MB) or as a percentage. Another feature of this report is it allows a user to filter the number of results that are displayed. For example, they can see the top five hypervisors by cpu utilization or the bottom ten hypervisors by percentage of memory used. All the features of this report make it flexible. It is essentially over ten reports packaged into one. See figure 2 for an example report.</p>
<p>Reports can also be run against virtual machines. One of the reports packaged with the 6.2.3 reports is &#8220;XenServer Top N VM CPU Utilization Report&#8221;. A user may select one, many, or all of the available hypervisors. Then, a list is generated of all the virtual machines on those hypervisors. Once again, a user may select any number of those virtual machines. Next, the user must enter a number (n) of virtual machines to display. The report will run and display the number of  virtual machines that use the most CPU. The unique feature of this report is that it contains a &#8220;drill-through&#8221;. A drill-through is a relationship between two reports. It runs another report based off of information passed from the current report. The drill-through for this report occurs when a user clicks on a virtual machine name. Another packaged report &#8220;XenServer Virtual Machine Daily CPU Trend&#8221; will then be run for the virtual machine that was clicked. This allows a customer to really scope in on a virtual machine&#8217;s CPU utilization. This dynamic allows a user the option to view more general trends of a virtual machine or focus on one week or even one day.</p>
<p>All of these reports contain prompt pages where a user can specify parameters to run the report. All of the reports contain some of the same parameters. One is date range, a user can run the report for a number of date ranges including today, yesterday, last week, last month, or even a specified date range, down to the hour.</p>
<p><strong>The Future</strong></p>
<p>Currently, reports are being developed for the Citrix XenServer 7.1 agent. Some features added to these reports:</p>
<ul>
<li>Pool centered reports</li>
<li>Running reports for only peak hours</li>
<li>More advanced filtering</li>
<li>What-If Analysis reporting</li>
<li>Workload Forecasting</li>
</ul>
<p><strong>Figure 1:</strong></p>
<p><strong>﻿<a rel="attachment wp-att-1135" href="http://bluemedora.com/blog/2011/06/citrix-xenserver-agent-v6-2-3-tcr-reports/heatchart/"><img class="aligncenter size-full wp-image-1135" title="heatchart" src="http://bluemedora.com/blog/wp-content/uploads/2011/06/heatchart.png" alt="" width="498" height="492" /></a>Figure 2:</strong></p>
<p style="text-align: center;"><a style="font-weight: bold;" rel="attachment wp-att-1136" href="http://bluemedora.com/blog/2011/06/citrix-xenserver-agent-v6-2-3-tcr-reports/screen-shot-2011-05-03-at-11-16-33-am/"><img class="aligncenter size-full wp-image-1136" title="Screen shot 2011-05-03 at 11.16.33 AM" src="http://bluemedora.com/blog/wp-content/uploads/2011/06/Screen-shot-2011-05-03-at-11.16.33-AM.png" alt="" width="678" height="328" /></a></p>
<p style="text-align: left;">If you have any questions/comments, please e-mail me at: ryan.abel@bluemedora.com</p>
]]></content:encoded>
			<wfw:commentRss>http://bluemedora.com/blog/2011/06/citrix-xenserver-agent-v6-2-3-tcr-reports/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

