Showing posts with label Tivoli. Show all posts
Showing posts with label Tivoli. Show all posts

Monday, February 14, 2011

A new fix pack for TADDM - 7.2.0.0-TIV-ITADDM-FP0004

A new fix pack is out for TADDM. This one doesn’t have anything really major, just lots of bugfixes.

http://www-01.ibm.com/support/docview.wss?uid=swg24028518

A lot of them seem to center around Out Of Memory and Storage Errors during discovery or just having the discovery engine or console hanging.

Unless you’ve got specific problems, there’s no reason to get excited over this one.

On the other hand, TADDM 7.2.1, which will lots and lots of NEW shiny features, should be coming out quite soon.

I wonder if anyone is (a) reading this and (b) as excited as I am about it :)

-- Robert

Sunday, January 16, 2011

Direct upgrade from OMEGAMON Platform 350/360 to the current IBM Tivoli Monitoring release is not supported

Recently I encountered this error while installing support files on the TEPS together with a colleague.

At first we thought that perhaps it was a problem with the files we had downloaded, but trying to reinstall something that had just succeeded failed with the same message.

The cause of the problem seems to be a corruption in the file
C:\IBM\ITM\INSTALLITM\ver\KINWIINSMSTR.ver

Replacing it with the .bck file (which resided in the same directory) solved the problem.

Well, I haven’t posted in quite a while… but I’m back!
-- Robert

Tuesday, July 13, 2010

Extended Attributes Sensor

When using TADDM, you will probably come across a case where you want to extract information which TADDM does not do out of the box.

For example, you want to record the date on which the antivirus was last updated on each server.

The extended attributes feature enables you to add a field to those TADDM recognizes. The Custom Server option enables you to run OS commands and scripts and populate them.

http://www.ibm.com/developerworks/wikis/display/tivoliaddm/Sensor+Examples

However, writing a script that extracts the data can be time consuming – this isn’t what we want to be doing. Populating the extended attributes is also a bit more complex than populating regular ones.

Fortunately, there are a number of shortcuts. The DeveloperWorks TADDM wiki has a sensor which will read a config file, create the extended attributes and populate them when TADDM discovers the relevant computer. All you need to do is enter the attribute name and the registry key (or WMI object, etc…) in the config file.

Extended Attributes Sensor and Tools

I used it today and when it runs, it’s a big timesaver.

However, I did have to tweak a few things for it to run on TADDM 7.2FP1 on Windows. In case this helps you, here is what I did:

  • in the file ea_cli.bat, I changed the line
    @../support/bin/jython_coll.bat ea_cli.jy %*
    to
    @../support/bin/jython_coll.bat ea_cli.jy %*
  • in the file sensorhelper.py, I changed the line
    from com.ibm.cdb.platform.ip import IpUtils
    to
    from com.ibm.cdb.platform.ip import IPv4Utils
  • in the file ext_attr_db.py, I changed the line
    from com.ibm.cdb.topomgr.util import JdbcConnectionFactory
    to
    from com.collation.topomgr.util import JdbcConnectionFactory

Without the first change, nothing works. The second and third changes are because I got the error “ImportError: no module named ” when I ran the script.

Another useful sensor is this generic sensor.

-- Robert

Thursday, May 6, 2010

Error 500: system#notboundexception

There are a number of reasons to encounter the Error 500: system#notboundexception message in your browser windows when you try to access a Maximo/TPAE/CCMDB/TSRM/EAM/etc system after a startup.

http://www-01.ibm.com/support/docview.wss?uid=swg21321771

http://www-01.ibm.com/support/docview.wss?uid=swg21320406

http://www-01.ibm.com/support/docview.wss?uid=swg21261539

http://www-01.ibm.com/support/docview.wss?uid=swg21305743

In general, the cause of the problem is that the application cannot connect to the database properly, for whatever reason.

I encountered the problem this week when I visited a customer’s test site. I could not login to the system, until I realized that I had been directed to an old server, which had it’s database tables truncated!

-- Robert

Thursday, April 22, 2010

ITM Situation limits

ITM situations are constructed out of a number of very flexible conditions and the mechanism is very powerful. It’s probably about as flexible that one can get without using regular expressions (spit!)

However, it does have a big problem - a very frustrating limit to the number/size of the conditions.

ITM Situation Limits

-- Robert

Wednesday, March 24, 2010

TADDM 7.2 Fix Pack 1 – current list of APARs

It’s not due till the middle of April, but details have just been posted about the APARs fixed in TADDM 7.2FP1.

This fix pack is scheduled to release April 12, 2010. This is a target date and does not represent a formal commitment by IBM. This date is subject to change without notice.

I’ve listed a few of the APARs that seem interesting (to me) or that will solve my problems. The full list is in the link.

APAR IZ62734
When the TaddmTool has a newer version of TaddmWmi.dll an internal error occurred while copying the file from the gateway to the target. This was happening because the old TaddmWmi.dll is still loaded.

APAR IZ63361
When discovering a lot of targets, the building topology phase can hang or run extremely slow. The TopologyBuilder.log shows that ComputerSystemConsolidation agent is running for very long time. Topology garbage collector log shows that topology JVM memory is used up and garbage collector cannot release anything.

APAR IZ63682
When the Vmware sensor discovers Computer System with a different primary IpInterface, it does not merge with an already existing ComputerSystem in the database causing duplicates to occur. This is happening because the TopologyBuilder Agent uses only existing Computer systems without virtual flag set to true.

APAR IZ64198
In change history the date/time were displayed as UTC milliseconds from the epoch. The Date/time were fixed to be displayed in a more human readable way.

APAR IZ64526
Modules from IIS Web Server discovery were not included in business application (using both app descriptor and UI). IIS was not following a standard like other web servers IPlanet or Apache.

APAR IZ64682
Out of memory errors can occur on Windows platforms where an MS Exchange application is installed and contains many Public Folders. This was due to the large amount of data returned from the system.

APAR IZ68913
The component that sends change events to Omnibus or TEC -- changeevents.sh or changeevents.bat -- looks for the last change event indicator file in a different directory from where it was written after last discovery. Because it does not find the file, the change events program sends ALL the change event records, even those sent previously. This symptom negatively affects performance. The following entry appears in ChangeEvent.log: [main] INFO changeevent.OmpEventModule - Could not locate change events run time indicator at C:\ibm\cmdb\dist\var/services\change-events-runtime.log (This is ok in TADDM versions prior to 7.2).

APAR IZ69885
Populating the extended attribute for template extension using a jython script does not appear in UI. Additionally in the error.log the following message appears:
TopologyBuilder [TopologyBuilderEngineThread] ERROR agents.ExtendedAttributesAgent - [ExtendedAttributesAgent.E.2] An error occurred when setting extended attributes for ComputerSystem XXXXXXXXXXXXXXX

APAR IZ70822
Due to changes for Launch in Context following query http://<taddm_server_IP>:9430/cdm/queryHomePage.do?launchsource=itm&searchtext=<compsysIP> stopped working because it was filtered out by security mechanism. This behaviour will be enabled to handle correctly queries from other products.
APAR IZ71582
The following Launch in Context entries stopped working because it was filtered out by security mechanism. This behavior will be enabled to handle correctly queries from other products.
"http://$taddm_server$:$taddm_port$/cdm/changehistory.do?objectID=guidChanges$taddm_guid$&amp;domainIP=localhost&amp;pageID=domain&amp;hoursback=240"
"http://$taddm_server$:$taddm_port$/cdm/changehistory.do?objectID=guidChanges$taddm_guid$&amp;domainIP=localhost&amp;pageID=domain&amp;hoursback=240"

 

Robert

Monday, March 22, 2010

Unable to start request (350) with ITM SOAP

There are a number of ways of accessing the information in ITM.
The simplest is, of course, opening the portal.

Another way is to use the SOAP web services supplied by ITM.
One access the simple SOAP interface from http://localhost:1920///cms/soap/kshhsoap.htm

Two gotchas I recently encountered:
1. In some cases, I needed to enter the full fqdn of the TEMS server (server_name.domain_name).

2. The commands need to be all in UPPERCASE:
<CT_Get>
<userid>sysadmin</userid>
<password>password</password>
<table>O4SRV.UTCTIME</table>
<sql>SELECT GBLTMSTMP, SITNAME, DELTASTAT, NODE, ORIGINNODE FROM O4SRV.ISITSTSH</sql>
</CT_Get>

Otherwise, I get the dreaded <faultstring>Unable to start request(350)</faultstring> response…

Wednesday, February 17, 2010

TADDM 7.2 Interim Fix 1

Get the first fix of the year for TADDM here.

There are only two bugs/solutions in this interim fix, both concerning upgrades from a previous version of TADDM.

From the readme:

IZ67686 TADDM upgrade on a Windows platform failed during the database migration.
The error occurs when TADDM is installed in a different location than default C:\IBM\CMDB
The Customer may find this message in the taddm_7.2.0_install_msg.log:
INFO : com.ibm.cdb.install.ia.utils.Utils (from runCommand(content, envs, filetype)) - Stdout:
"Run command E:\ibm\cmdb\dist\bin\migration.bat -s -bv 7.1.2"
INFO : com.ibm.cdb.install.ia.utils.Utils (from runCommand(content, envs, filetype)) -
Stderr: 'migration.bat' is not recognized as an internal or external command, operable
program or batch file.

IZ68633 If the following files are missing: collation/linux.zip, collation/solaris.zip, collation/aix.zip,
collation/windows.zip, collation/linuxS390.zip the install/migration reports successful, but TADDM will
not start because the jdks needed to run TADDM and move the internal users from the 7.1.2 encryption
to 7.2 encryption are not available. The TADDM installation will be missing the
file: dist/etc/ TADDMSec.properties.


All I can say is that these are boring bugs! ;)



Robert

Saturday, February 6, 2010

Pinging the Unpingable

Despite it’s name, the TADDM PingSensor does not run the same ICMP ping that the command line utility ping does. What the PingSensor does is open a TCP socket on specific ports.
The list of ports used is in the Installation Guide:Planning Worksheet:

Port Target
CiscoWorks 1741
DNS 53
LDAP 389
SSH 22
WBEM 5988
WMI 135

Other ports used are 23 and 161.

This means that if a firewall is blocking these ports, then TADDM will not see any device there, even if another port, such as 80, is open. In that case, you’ll see an error message in the PingSensor log:

2010-02-06 14:13:11,875 DiscoverManager [DiscoverWorker-14] PingSensor-64.12.100.5 INFO session.Ping - Ping failed for IP address 64.12.100.5 on all ports [22, 23, 135, 161]

In this case, you’ll either need to <gasp> open the firewall between TADDM and that server or add another port to the list TADDM scans by adding a property to collation.properties.

From the sensor settings section of the Administration Guide: com.collation.pingagent.ports=xx,yy, ...

By default, this property is used by the PingSensor sensor. It is not defined in the collation.properties file and has to be manually defined if needed.
Valid values are non-negative, numerical.
To override the default set of ports that the Ping sensor attempts to use, add this property to the collation.properties file and specify the port numbers as a comma-separated list. The default set of ports the Ping sensor attempts to use are port 22 and then port 135, if it cannot first make a connection to port 22.
For example, to add the SNMP port 161 to the existing ports that the Ping sensor attempts to connect to, you would add 161 to the end of the list of default ports:
com.collation.pingagent.ports=22,135,161.
If you only wanted the Ping sensor to use port 161, set it to the following: com.collation.pingagent.ports=161.


Sunday, January 31, 2010

Bleeding edge isn’t what is should be

Looks like there’s a problem with TADDM using the new 1.7.1 version of Cygwin as it’s SSH server.

http://www-01.ibm.com/support/docview.wss?uid=swg21419038&myns=swgtiv&mynp=OCSSPLFC&mync=R

So if you’re downloading Cygwin for a TADDM installation, use the link to the older, 1.5 version of Cygwin - http://cygwin.com/setup-legacy.exe 

You could actually just rename the regular setup.exe to setup-legacy.exe and it will download the latest patch level of the older version of Cygwin.

Friday, January 29, 2010

Some minor Tivoli issues I’ve dealt with lately

As part of getting back on the saddle with my blog, I’m going to list a few of the problems I’ve encountered lately and, more importantly, how I solved them.

ITM 6.2.1 on Windows

I had a case where a universal agent simply would not start. Looking at the logs showed nothing wrong, it was just not registering with the TEMS. The Perl script was unchanged, the owner of the script had not touched it.

I googled “script Universal Agent restart” and one of the first hits I got was for an APAR (patch) called IY86181: UA RESTART MAY FAIL IF A SCRIPT LAUNCHED WITHIN UA IS RUNNING. Interesting.
Unfortunately, this patch is for Unix servers and came out back in 2006! It did get me thinking and I checked the Task Manager for running processes. There were lots and lots and lots of Perl.exe…. hmm. I killed all the Perl.exes and lo and behold – the UA connected to the TEMS!

Pity it still didn’t show any data :(

I then opened up a command window and ran the script. Wouldn’t you know? The script hung because it asked me to press ‘y’ or ‘n’ for some security setup.

Pressing ‘y’ a few times solved the problem and the Universal Agent ran properly from then on. Oh, and the script owner remembered that he had added a few more servers to the config file.

Lessons learned?

  1. NEVER believe whatever the client tells you. ESPECIALLY if they say “nothing changed, but now it doesn’t work”.
  2. If something external to the application stops working, first test it by itself.
  3. When researching a problem, look at similar-but-not-identical-problems and see if their solution can be fitted to suit you too.
  4. Not every problem will show up as an error in the log. In this case, the UA was functioning properly, it was simply waiting forever for someone to press ‘y’!
  5. Practice your skills. I haven’t been working on bugs in production environments lately, I’ve been busier installing new systems.
    This list of suggestions is written in the fastest way to solve the problem, but the exact opposite of the order I did them in!

6.2.2 on Redhat Linux

I was trying to configure the Warehouse Proxy on a new installation, but when I right-clicked configure then the Messages window shows 'Starting configuration ...' but the configuration screen never displayed.

I found a PMR which had my exact case and it even had the solution!
Removing the file $CANDLEHOME/<arch>/bin/ksz.jar and restarting the management console enabled me to configure the Proxy agent.

Lessons learned?

  1. One of the advantages of working for IBM (or having IBM support) is, of course, the common databank of lots and lots of people working on the same systems.
    It would have taken me ages to solved the problem on my own, or a week or so if I’d opened a PMR. Having had someone else, on the other side of the world perhaps, do that once – enabled me to solve my problem in about an hour and a half  (one hour to play around with the system, half an hour to search the PMR databank, find the solution and implement it)

-- Edit 01-Feb-2010
Of course, NOW I find a technote which presents the solution: http://www-01.ibm.com/support/docview.wss?uid=swg21409333. In my defense, I encountered the problem prior to the technote being published. I’ve been told that this bug will be fixed in an upcoming fix pack.

Sunday, May 24, 2009

Case-sensitive background images

Not every problem is a nail-biting, headache-inducing, going-to-loose-sleep-over-it mammoth. Some problem are just minor head scratchers...

Within ITM, you can create Graphical Views which will display the information in a visual fashion. I.e, you could have a floor map or draw a line of business or whatever, and add icons representing the various monitored objects. You could consider it BSM-lite or TBSM on the cheap.

One problem I just encountered was adding a background image. I did the various right-clicking necessary to bring up the list of images, but for some reason the one I wanted simply didn't show up!

Eventually, a bit of trial and error showed that the files was not showing up because it was called background.JPG instead of background.jpg. Can you see the difference?

Oh, Why can't computers overcome the minor errors and just do what we want?

-- Robert

Wednesday, May 6, 2009

A problem with the DBVER table in the TEPS database in ITM

I've encountered a few cases in which the TEPS service would not start. The error I found in the log was something like this:

KFW1005E The version of the product 'v620_kcj7310a.tms620' does not match the data in the KFWDBVER table.



Opening up the TEPS database and looking at the KFWDBVER table shows that it's just a list of upgrades from version to version of ITM.


Part of the TEPS startup routine is evidently checking that the latest version marked in the database matches the current version. 
I have no idea why or how an miss-match might creep in, but each time I've encountered an error like this was after a newbie was let loose on a test server and told to "play with it & try out upgrading"...


So, how do we solve this problem? I've solved it in three different ways, but take into account that these were all test servers, so I had nothing to loose.



  1. Editing the DBVER table with my DB tool of choice so that the latest version written matches what the log says ITM is looking for - This should return everything to normal.


  2. Opening the ITM manager, right click TEPS, right click Utilities, click Build TEPS database - This will reset the TEPS database and start you off will a fresh environment.


    Since the TEPS will immediately synchronize with the TEMS, all you'll loose are your personal configurations.


  3. Reinstalling TEPS - As I said, this is a bug I've only seen in test environments, so no harm in just reinstalling.



In short, this is an annoying problem with a short(though surgical) solution which brings you back to normal or a "hammer" solution. You've just got to choose which you prefer.



-- Robert

Thursday, April 30, 2009

I got a working system but tacmd login hangs...

I recently "inherited" a small ITM environment. It had been used as a Proof of Concept trial, passed with flying colours and now the client wanted to start using it. Obviously, the way to save time is to simply reuse the existing environment, because it already works.
And at first glance, it did. Everything seemed to function properly for the first day or two, till I wanted to export all the situations to a file before I did some heavier work.

That's when I discovered that the command tacmd login didn't work. It just hang there for a few minutes and exited with a KUIC00006E timeout error.

Eventually, I found the solution, which is also documented here*. The problem was that some change had been done to the network on the server which meant that just about everything worked.

So the lesson learned here is that when you come to an unknown environment, no matter how simple and small it appears - make sure everything works properly before signing off on it :)

 

-- Robert

* This actually happened a few months ago, but the publication of this note reminded me.

Monday, April 13, 2009

Reusing computer names - TADDM discovery

When a server is virtualized, i.e. converted from a physical server into a virtual server, then TADDM had a problem.
Because these are different computers, that merely share the same name (fully qualified domain name - FQDN), they show up twice in the inventory list.

Worse, the old server exists in all the business applications, but the new one doesn't. I'd have to manually update all the applications with the new servers.

Fortunately, TADDM 7.1.2 Interim Fix 1 has just been released. Among it's improvements there is this:

IZ44531 Reusing fully qualified domain names causes operating systems to be shared among old and
new computer systems. In 712, one can now prevent OS FQDN from being set by using the following collation.properties setting:
com.collation.discover.agent.ComputerSystemAgent.ignoreFQDN
If property does not exist in collation.properties, the default value is taken.
Default value is false. If the customer set it to true, FQDN will not be set for the OS.


Property can be configurated through the OS or IP:
com.collation.discover.agent.ComputerSystemAgent.ignoreFQDN.Linux.1.2.3.4
or
com.collation.discover.agent.ComputerSystemAgent.ignoreFQDN.Linux
or
com.collation.discover.agent.ComputerSystemAgent.ignoreFQDN.1.2.3.4
Where Linux is the OS name and 1.2.3.4 is the IP.


Example for ignoring FQDN on VMWare operating systems:
com.collation.discover.agent.ComputerSystemAgent.ignoreFQDN.Vmnix=true

Note that the os.fqdn is not unset if it is already there. This change only applies to NEW operating systems.
To find operating systems that share computer systems, use this query;
./dbquery.sh "select GUID_X, PK__OSRUNNING_X, LASTMODIFIEDTIME_X,
CONTEXTIP_X, SIGNATURE_X from COMPSYS where PK__OSRUNNING_X IN (SELECT
comp.PK__OSRUNNING_X from COMPSYS comp, OPSYS op where
comp.PK__OSRUNNING_X = op.GUID_X || '-0' and
op.PK__PARENTOPERATINGSYSTEM_X != comp.GUID_X || '-0') order by
PK__OSRUNNING_X, LASTMODIFIEDTIME_X"


The api delete command can be used to remove the computer system which is no longer valid.

Some other interesting tidbits in the new fix:

  • REST Api
    New API to allow TADDM data and functionality to be used over
    HTTP with JSON and XML. See "Developing applications using the REST API" in
    the SDK Developer's Guide for more information. Very interesting
  • Add copy capability to details panel in the TADDM GUI console. Needed this from day 1!
  • IZ39662 The installer should fail and cause a FATAL error if the files required for
    installation are not there. This was my bug!
  • IZ41245 The TADDM installer should remove obsolete files that can cause errors in the logs. This is something all applications should always do - how many times have we seen old and unneeded files, configuration items and miscellaneous objects in older software?

Good luck with the new version :)

-- Robert

Wednesday, March 25, 2009

Troubleshooting guides for TBSM, ITM and TADDM

A few links that are useful, collected together:

ITM:

ITM 6.2.1

ITM 6.2 Fixpack 1

ITM 6.2

ITM 6.1 (Revised)

TADDM:

TADDM 7.1.2

TADDM 7.1

TBSM:

TBSM 4.2

TBSM 4.1.1

TBSM 4.1

-- Robert

Tuesday, March 3, 2009

Resetting wasadmin password

I recently inherited a TADDM environment where I needed to work with WebSphere in order to integrate TADDM with Active Directory.

Unfortunately, no one knew the password for wasadmin, so I couldn't access the Websphere Admin's console. Time was pressing, the other guy was not available and my knowledge of WebSphere administration is limited to what's written in the TADDM and TBSM documentation (hint: very little!)

I followed the following routine. It worked for me.

  1. I needed to configure WebSphere not to use security:
    1. I found the file security.xml under /cell directory.
    2. I edited it, so that under the security:Security tag I changed enabled="true" to enabled="false"
  2. Now, I needed to restart the WebSphere so it would reset it's security.
  3. The following is the "proper" routine to stop WebSphere:
    1. <WAS_HOME>/profiles/ctgAppSrv01/bin/stopServer.sh MXServer -username wasadmin -password wasadmin
    2. <WAS_HOME>/profiles/ctgAppSrv01/bin/stopNode.sh -username wasadmin -password wasadmin
    3. <WAS_HOME>/profiles/ctgDmgr01/bin/stopManager.sh -username wasadmin -password wasadmin
  4. Of course, not having the password meant I couldn't stop the processes. Well, that's what kill -9 is for...
  5. Starting WebSphere is easier:
    1. <WAS_HOME>/profiles/ctgDmgr01/bin/startManager.sh
    2. <WAS_HOME>/profiles/ctgAppSrv01/bin/startNode.sh
    3. <WAS_HOME>/profiles/ctgAppSrv01/bin/startServer.sh MXServer
  6. Now, when I access the Integrated Solutions Console (http://server:9060/ibm/console/login.do) then I'm no longer asked for a password
  7. I login as wasadmin and recreate all the security I need...

I think (hope) this is more-or-less what a WebSphere expert would do too!

-- Robert

Wednesday, February 18, 2009

Finding unassociated Situations

In ITM, after you have created a new situation, you must do two things to it:

  1. You must distribute it to one or more agents. This will determine where a situation runs. i.e you can limit it to specific servers or run it on all of them.
  2. Associate it with some node in a tree in the TEP Portal. This is so that when the situation activates (fires, become true) you will see it in the portal console.

The problem then starts when you want to be sure that all your situations have been distributed and associated properly. The first problem is simpler - you can use a SOAP call on the TEMS to fish out the list of situations and their distributions. The second problem is slightly more complex. The TEPS database hold the list of all situations and associations - but a list of unassociated situations - which are the ones which will not show up even if they become true.

Recently I was at a customer and needed to verify that all situations were indeed associated. I remember seeing something that showed this, but my searching skills betrayed me and I wrote this out quickly. If anyone does have a link- feel free to send it.

Being a quick-and-dirty job (and being rusty with my Perl), this script will only work on the environment it was written for - Windows/SQLServer, but it should be easy to convert
Also, I committed the crime of using system calls in Perl, instead of SOAP and SQL calls embedded in the code - so sue me :)

#!/user/local/bin/perl
# This script will list situations which exist but are not associated with any portal navigator item.
# It is limited to Windows systems running SQLServer, but can easily be modified for any OS/DB combination. :)
# Part 1 - list all situations from TEMS
# Part 2 - list all situation associations from TEPS
# Part 3 - Find which situations exist in part 1 but not part 2
#
# Robert Barron Feb-2009

my $sSitListFile = "SitList.txt";
my $sSitAssocFile = "SitAssocList.txt";
my $sTEMSHOST = "x.x.x.x";
my $sTEMSUser = "xxxxxx"
my $sTEMSPassword = "xxxxxx";
my $sTEPSHOST = "x.x.x.x";
my $sTEPSUser = "xxxxxx"
my $sTEPSPassword = "xxxxxx";

# Part 1
#  login to TEMS and pull out a list of situations

system ("tacmd login -s " . $sTEMSHOST . " -u " . $sTEMSUser . " -p " . $sTEMSPassword);
if (-e $sSitListFile) {
    unlink ($sSitListFile);
}

#Run tacmd listsit and extract the first  string from each line.
# NOTE: This line must be modified if you are using situation names with spaces in the middle (ITM 6.2.1+)
system ("for /f %i in ('tacmd listsit') do \@echo %i >> " . $sSitListFile);
open (File, $sSitListFile ) || die "Could not open " . $sSitListFile ."\n";

while (<File>) { #Strip any \n or spaces from the situation string
    chop;
    $tmp = $_;
    $tmp =~ s/^\s+//;
    $tmp =~ s/\s+$//;
    push(@arrAllSits, $tmp );
}
close (File);

# Part 2
# login to TEPS database and pull out the situation associations.
if (-e $sSitAssocFile) {
    unlink ($sSitAssocFile);
}
system ("sqlcmd -S " . $sTEPSHOST . " -U " . $sTEPSUser . " -P " . $sTEPSPassword . " -d teps -Q\"select distinct(name) from teps.KFWTMPLSIT\" > " . $sSitAssocFile );
open (File, $sSitAssocFile) || die "Could not open " . $sSitAssocFile . "\n";
while (<File>) { #Strip any \n or spaces from the situation string
    chop;
    $tmp = $_;    
    $tmp =~ s/^\s+//;
    $tmp =~ s/\s+$//;
    push(@arrAssocedSits, $tmp);
}
close (File);

#Part3
%found=();
@arrNotAssoced =();

#build lookup table
foreach $item (@arrAssocedSits) {$found {$item} = 1}

# find elements which are in @arrAllSits and not in @arrAssocedSits
foreach $item (@arrAllSits) {
    unless ($found{$item}) {
        #it's not in %found, so print
        print ($item ."\n");
    }
}

This script will print out the list of situations which exist but are not associated with any navigator item.

-- Robert

Wednesday, February 11, 2009

Search before you post!

If you spend some time on the TEM10 mailing list, you'll find out two things:

  1. These guys know a lot about Tivoli.
  2. These guys don't like answering simple questions which have already been answered before!

Unlike the Developerworks forum, where you can simply enter a search term at the top of the screen, there's no obvious way to search TME10.

Try at the official site or at the not-so-official-but-simpler-site.

Anyway, before asking a question, try giving these sites a peek - if it's been answered before, you'll save yourself time.

-- Robert

Thursday, January 22, 2009

Too Many Nodes

Recently I came to a customer I hadn't visited in some time.

On the main screen of the ITM system, when we chose Windows Systems we got KFWITM455E Request to 732 nodes exceeds the limit of 200. The workspace most mostly empty. The problem is pretty obvious and so is the solution - de-install Tivoli agents!

Seriously though, the recommended practice in this case is probably to split your servers into smaller groups (MSLs) and create a workspace for each one.

If you, like me, are lazy and simply want to see all the servers in one place, you can change the KFW_REPORT_NODE_LIMIT parameter.

On Unixes, go to cq.ini. On Windows open the the Tivoli Services Manager, right-click the TEPS -> Advanced -> Edit ENV file.

Find the KFW_REPORT_NODE_LIMIT parameter and change it to something suitable.

CAREFUL! The parameter is commented out and you must uncomment it. recycle the TEPS and Voilà!

The workspaces may take much longer to load though now. That's the advantage of smaller MSLs.

-- Robert