Sunday, June 21, 2009

Astronomy Picture of the Day with Classical Content

Astronomy Picture of the Day is one of the most popular astronomical web sites on the 'net. Each day a different image or photograph of our fascinating universe is featured, along with a brief explanation written by a professional astronomer

Today's picture is that of the Parthenon, with a dramatic background of the rising Sun.

parthenon_ayiomamitis_big 
(picture created and copyrighted by Anthony Ayiomamitis)

I've put together a list of all the Classically themed pictures which I've found. Of course, many more of the pictures have some classical connection because so many of the night sky is named after Greek and Roman gods, heroes and miscellanies...

http://apod.nasa.gov/apod/ap090621.html - Sunrise over the Parthenon
http://apod.nasa.gov/apod/ap090320.html - Sunset at the Portara
http://apod.nasa.gov/apod/ap081221.html - Analemma Over the Porch of Maidens
http://apod.nasa.gov/apod/ap081216.html - Orion over  Nemrut Dagh
http://apod.nasa.gov/apod/ap080718.html - Jupiter over Ephesus
http://apod.nasa.gov/apod/ap070420.html - Pantheon Earth and Moon
http://apod.nasa.gov/apod/ap061223.html - The Analemma and the Temple of Olympian Zeus
http://apod.nasa.gov/apod/ap061205.html - The Antikythera Mechanism
http://apod.nasa.gov/apod/ap040621.html - Analemma over Ancient Nemea
http://apod.nasa.gov/apod/ap040229.html - Julius Caesar and Leap Days
http://apod.nasa.gov/apod/ap030320.html - Sunrise Analemma
http://apod.nasa.gov/apod/ap020113.html - Hypatia of Alexandria
http://apod.nasa.gov/apod/ap000229.html - Julius Caesar and Leap Days
http://apod.nasa.gov/apod/ap960229.html - Julius Caesar and Leap Days

I'll update this list whenever I think a new picture is classically themed. If you know of one I've missed, them please drop me a note.

Monday, June 1, 2009

Near and far... Here and there...

Sometimes the funniest things are the simplest...
My two favorite skits from Sesame Street are when you're being taught the difference between Near/Far and Here/There .

So, for your enjoyment:

Near and Far:

Here and There (in Hebrew).
I apologize to those of you who don't understand Hebrew. Trust me - It's hilarious.

 

Inspiration for this post came from here and here.

-- Robert

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

Why Study the Greeks : A Video

My latest Internet find is Academic Earth; an aggregation of video courses and lectures from various top universities and scholars.

Let's look at this lecture for example...

Donald Kagan, Introduction to Ancient Greek History (Yale University: Open Yale Courses), http://oyc.yale.edu (Accessed April 2, 2009). License: Open Yale Courses Terms of Use

Professor Donald Kagan explains why people should study the ancient Greeks. He argues that the Greeks are worthy of our study not only because of their vast achievements and contributions to Western civilization (such as in the fields of science, law, and politics) but also because they offer a unique perspective on humanity. To the Greeks, man was both simultaneously capable of the greatest achievements and the worst crimes; he was both great and important, but also mortal and fallible. He was a tragic figure, powerful but limited. Therefore, by studying the Greeks, one gains insight into a tension that has gripped and shaped the West and the rest of the world through its influence. In short, to study the Greeks is to study the nature of human experience.

But not only does this site have the video - let's face it, anyone can just video a lecture and pop it onto the net these days - it also has some very nice options, which tell me that some thought was put into this:

  1. You can watch the streaming video OR download the full movie.
  2. You can download just the audio - so you can listen while you jog, ride or drive.
  3. You also get whatever handouts were available for the lecture.
  4. You can get (this is what impressed me most) the transcript of the lecture.
  5. There are links to networks (facebook, del.icio.us, etc)
  6. For the academics among us - there's even an official way to cite the lecture!

I read much faster than I can listen or watch and I'd love to have transcripts of much of what I watch.

The various lectures are on a wide variety of topics, covering what any thinking person could want and more is being added all the time, of course.

In short, this site is very well done and a lot of thought has been put into how people can extract information from it. This is what the "Internet" is all about - easy access to high quality information.

Enjoy!

-- 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

Saturday, February 21, 2009

Atlantis... Found... or Not

Yesterday, British tabloids reported the discovery of the Lost Continent of Atlantis! The discovery was made, not by intrepid explorers, but by searching Google Earth's maps:

Can you see the highways on the bottom of the Ocean?


View Larger Map

Well, it seems that these highways are simply the paths of the oceanographic ships which mapped the area - Plato can rest easy, his hoax has not been discovered :)

Link to the tabloid "The Sun"

Link to better explanation.

 

-- 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

Monday, January 19, 2009

Asterix and the Great... Sellout?

It seems that the great Asterix is in for a big change : Albert Uderzo, illustrator and, since 1977, only begetter of the Asterix series of books, has retired and sold his rights to Hachette Livre.

His daughter Sylvie has accused him of selling out to "those who would negate all the values he taught me: independence, fraternity, conviviality and resistance". I must agree.

In a more optimistic mood - and with more information, I might consider this good news. Perhaps new blood could rejuvenate Asterix, whose last few adventures have not been very good. However, I must admit that few intellectual properties are improved by being managed by others rather than their creators.

Neither James Bond nor Sherlock Holmes have been returned to their original heights. I hope Asterix will prove me wrong.

:(

Link to Asterix in Wikipedia.

-- Robert

What is TADDM stuck doing?

Yesterday I ran a discovery in an environment and after the sensors finished scanning the servers, the topology builder started it's work.

2%..4%..6%..9%..11%...75%.

It breezed through the first percentiles quickly and smoothly, but stuck on 75% for ages. Eventually we left and came back the next day.
The good news is that it completed successfully.

I don't like not knowing what and why computers are doing something. Why did it get stuck on 75% but nowhere else?
The percentiles that the topology builder show us are now percentiles such as displayed when copying a file. I.e. 9% doesn't mean that 9% of the work has been done, it means that 4 "steps" have been completed. So TADDM was stuck on the step represented by 75%.

per this Note, the various steps are represented in the file $COLLATION_HOME/dist/etc/TopologyBuilderConfigurationDefault.xml and there are nearly 40 steps.

Each step represents the topology builder generating the dependencies and links for a sensor. Part of creating a brand-new sensor is updating this file, so that after the discovery is done the topology builder will fold the items found by the new sensor into the list of links it holds.

Here are the sensors and the percentile they are represented by:

2 DatabaseServerCleanupAgent
4 ComputerSystemConsolidationAgent
6 ComputerSystemTypeAgent
9 RuntimeGcAgent
11 DeletedObjectGcAgent
13 SystempConsolidationAgent
16 VmwareVirtualCSConsolidationAgent
18 J2EEServerDeploymentAgent
20 AppServerClusterAgent
23 JDBCDependencyAgent
25 JBossClusterAgent
27 WeblogicClusterAgent
30 OracleAppClusterAgent
32 OracleDependencyAgent
34 WebConnectionDependencyAgent
37 WebSphereConnectionDependencyAgent
39 SAPDependencyAgent
41 SoftwareHostReferenceAgent
44 DNSServiceAgent
46 LDAPServiceAgent
48 DNSDependencyAgent
51 NFSDependencyAgent
53 HostDependencyAgent
55 ConnectionDependencyAgent
58 GenericAppAgent
60 AppDefinitionAgent
62 AppDescriptorAgent
65 ObjectDisplayNameAgent
67 DiscoveryLogCleanupAgent
69 DominoConnectionAgent
72 DominoClusterDomainAgent
74 PortableAgentWrapper
76 l2.L2Agent
79 l2.CDPAgent
81 CompositeCreationAgent
83 MQServerAgent
86 CitrixAgent
88 ExchangeDependencyAgent
90 VCSDependencyAgent

Seeing as I was stuck on 75% I see that the L2 (communications layer 2) sensor was very busy. In retrospect this makes prefect sense, since this discovery was the first time I found a new type of switch in the environment. It makes sense that the builder would take much longer for this step than when I'm only discovering servers.

What happens after step 90%?

I don't know. I'll try to find out and let you know!
If anyone does know, please drop a line

-- 2011 Update

In TADDM 7.2.x, the log file dist/log/TADDM.log details each step, so if your discovery is stuck on step x, just check the last line of the log and you'll see what class the Topology Builder is working on.

-- Robert

Wednesday, January 14, 2009

TADDM OMP Change Event Module on TADDM 7.1.2

The TADDM OMP Change Event Module (http://www-01.ibm.com/software/brandcatalog/portal/opal/details?catalog.label=1TW10CC1Q) is a module you install on TADDM servers so that you will get alerts on various monitoring systems when a change (any change or specific changes) are detected.

This module works very well on TADDM 7.1, but it fails on TADDM 7.1.2.


The error message is:
com.collation.proxy.api.client.ApiException: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: invalid method hash
at com.collation.proxy.api.client.DataApiImpl.findModel(DataApiImpl.java:954)

Apparently there were changes in the Java files between 7. 1 and 7.1.2.

The solution is to change following line in /bin/changeevents.sh:

omp_classpath=.:"$TADDM_PATH"/lib/platform-model.jar:"$TADDM_PATH"/lib/api-client.jar:"$TADDM_PATH"/lib/api-dep.jar:"$TADDM_PATH"/lib/edm-server.jar:"$TADDM_PATH"/lib/oal-api.jar:"$TADDM_PATH"/lib/oal-common.jar:"$TADDM_PATH"/lib/oal-topomgr.jar:"$JAR_DIR"/evd.jar:"$JAR_DIR"/log.jar:"$JAR_DIR"/taddmomp.jar

to

omp_classpath=.:$TADDM_PATH/sdk/clientlib/taddm-api-client.jar:"$JAR_DIR"/evd.jar:"$JAR_DIR"/log.jar:"$JAR_DIR"/taddmomp.jar

Hope this helps whoever encounters this problem.

 

-- Robert

Sunday, January 4, 2009

PDFs

I read a lot of things which are written in Portable Document Format, some relevant to my work and some to my studies.

In any case, I often find myself wanting to "do something" with the PDFs - copy specific pages, modify or add something.

The proper way of doing this used to be using Adobe's programs - but these are expensive.

Here's a link to a list of tips relevant to PDF manipulation.

 

-- Robert

Thursday, January 1, 2009

I've never really wondered how the did multiplication...

http://scienceblogs.com/goodmath/2008/12/roman_numerals_and_arithmetic_1.php

But now that I've read about it - it's fascinating...

It's amazing how some things that seem so obvious and second nature are actually really very dependent on the time and culture one comes from.

No wonder it's difficult for different ethnic groups to get along :(

-- Robert