This is one of the best sites I've found in quite some time.
I'd like to be a in the Scientists & Mathematicians in that list, but for now I'll have to make do with being a procrastinator...
-- Robert
THE ANCIENT GREEK EXPRESSION FOR LIVING UP TO ONE'S FULL POTENTIAL
This is one of the best sites I've found in quite some time.
I'd like to be a in the Scientists & Mathematicians in that list, but for now I'll have to make do with being a procrastinator...
-- Robert
Google has added a new twist to its popular 3D map tool, Google Earth, offering millions of users the chance to visit a virtual ancient Rome.
Google has reconstructed the sprawling city - inhabited by more than one million people as long ago as 320 A.D..
Users can zoom around the map to visit the Forum of Julius Caesar, stand in the center of the Colosseum or swoop over the Basilica.
BBC link & Associated Press link
-- Robert
Since Copernicus showed that the Earth orbits the Sun, we've known that we're not the only planet in the universe. 20 years ago was the first discovery of an exo-planet - a planet which orbits a different star. Over 350 of them have been discovered over the years. BUT... until this week, all these discoveries were made with various techniques which detected the planet, but did not show it. This is similar to knowing that an airplane is flying near you because you can see it on radar or see it's contrail, but not ever seeing one.
Last week the Hubble Space Telescope took a picture of Fomalhaut and saw .. really saw a planet.
Picture courtesy Astronomy Picture of the Day
For a better articulated explanation - and information about another stunning exo-planetary discovery, click here.
-- Robert
Here is the link to the documentation for ITM 6.2.1
http://publib.boulder.ibm.com/infocenter/tivihelp/v15r1/index.jsp?topic=/com.ibm.itm.doc/welcome.htm, right where it belongs :)
-- Robert
Nothing technical in this post, it's more philosophical in nature.
The little piece of land I come from, Israel, has a chaotic history. We have numerous commemoration events for our many, many wars and our many. many fallen.
Despite this, I have always liked the symbolism of Armistice Day/Remembrance Day/Veteran's Day.
Both the symmetry of the time chosen, and the name of the War it commemorates - The War to End All Wars.
It seems like since then, every armistice is actually a temporary crease fire to reorganize for the next war.
The following poem, is probably the best known of World War I's poems:
In Flanders fields the poppies blow
Between the crosses, row on row,
That mark our place; and in the sky
The larks, still bravely singing, fly
Scarce heard amid the guns below.We are the dead. Short days ago
We lived, felt dawn, saw sunset glow,
Loved, and were loved, and now we lie
In Flanders fields.Take up our quarrel with the foe:
To you from failing hands we throw
The torch; be yours to hold it high.
If ye break faith with us who die
We shall not sleep, though poppies grow
In Flanders fields.— Lt.-Col. John McCrae
I do not hear it, or read it, without getting a lump in my throat.
While most of my examples will, necessarily, be local, I believe that most of what I will be writing is universal in nature. Bear with me, if you can get through the wall of text.
I have two commentaries on it I would like to share.
First, the third stanza can be read as war time propaganda. It may well have been, but since interpretation is on the part of the reader and not the writer, I prefer to interpret The torch not as the weapon used by the soldiers, but as the cause they fought for. This is a cry to the survivors - make sure that soldiers, sent to sacrifice their lives for their fellow men (and women), are fighting for a cause which is to be held up high. Do not break faith. Do not let this sacrifice be for selfish, ignoble, low reasons.
The soldiers, laying down their lives for the greater good, deserve this courtesy - they did not die so that war could continue - they died so war could be stopped.
Here in Israel, it is common wisdom that combat soldiers who finish their army service after doing their regular conscript's time (2-3 years) and have spent a lot of time doing "dredge work" - 19 year olds who man roadblocks, deciding whether a woman is in labor or is hiding dynamite under here clothes, picking and choosing who shall cross the roadblock to work and who shall return with empty pockets to their homes, often leave the army as hawks - thinking that the only language their adversaries understand is violence and shows of strength. How can they think otherwise when their mind has been dragged in the mud for years?
Contrariwise, senior officers, when they leave, often seem more dovish - thinking that there is only so much that can be done with shows of strength and understand that violence can only contain violence from the other side. It cannot "cure" it. Only diplomacy can do this.
To my mind, those who choose to continue the status-quo with violent means without seeking a proper, diplomatic solution simultaneously are guilty of breaking the faith with those who laying in their countries equivalent of Flanders' Field.
My second comment is an observation. Poppies grow well in Flanders' Field because the ground is rich in humanity. The grounds around Nazi Death Camps, where millions of people (especially Jews) were cruelly tortured, executed and cremated is likewise rich in beautiful flowers.
If there is a God, the transformation between the ugliness of death and the beauty of nature must be an omen of some kind.
--Robert
As you know, (or don't know,) Tivoli Monitoring has a quick-and-simple way of extracting data from databases on windows machines. By creating a Universal Agent of the type ODBC, you can simply write your select into the mdl file and go from there. On Unixes you need to use a script UA and do a little more work.
Two things which I've dealt with in the past week:
Anyway, hope this helps someone :)
--Robert
I guess it's just that time of the year again!
TBSM 4.2 came out recently, as did Impact 5.1.
Yesterday I saw both TADDM 7.1.2 and ITM 6.2.1 in passport advantage.
Here's a brief list of TADDM changes from the release notes:
TADDM 7.1.2 gives you the rich details of configuration items with automated, agentless discovery of the assets and their application dependencies, as well as a Discovery Library technology to help leverage data from other sources.
TADDM is a configuration management tool that helps IT operations personnel ensure and improve application availability in application environments. The operational staff gets a top-down view of applications so the staff can quickly understand the structure, status, configuration, and change history of their business-critical applications. This view immediately isolates issues in times of performance or availability problems and enables more effective planning for application change without disruption. An agent-free creation and maintenance of a Configuration Management Database (TADDM database) is delivered without requiring custom infrastructure modeling. TADDM also provides complete cross-tier dependency maps, topological views, change tracking, event propagation, and detailed reports and analytics.
The following list includes the functionality that was added for the TADDM 7.1.2:
- BIRT Report Infrastructure
- Limited IPV6 Capability
- Console Installation Capability
- Improved View Performance
- Improved Details Performance
- Improved ECMDB synchronization times
- Improved API query performance
- Improved post-discovery processing performance
- Improved TBSM Integration
- Drill Down Capability for Business Applications
- Comparison Report From Domain Manager
- Cross-Domain Comparison reports from ECMDB
- Additional MQ Cluster Information for zOS
- Reduced WAN traffic during anchor usage
- Upgraded first failure data capture tools
- Weblogic 9.x and 10.x sensor support
- Simplified migration from previous releases
- Windows 2008 Support
- AIX 6.1 Support
- Bug Fixes
Updated documentation is here.
ITM 6.2.1 doesn't seem to have updated the documentation yet, but here's a list I have of it's changes:
Of those, the Adaptive Monitoring and Event Slots seem extremely interesting and I really want to try them out!
-- Robert
Edit: forgot a few things in ITM...
An exhibition on ancient Greek technology titled "Greece and Technology: a perspective through time" will be soon be hosted at the premises of the "Teloglion Foundation of Art" in Thessaloniki, organized by the University of Thessaloniki (Faculty of Sciences).
The exhibition will open on November 12 and will run through January 11, 2009. The purpose of the exhibition is to highlight the recent scientific findings which show that ancient Greeks were technologically more advanced that it was previously thought.
Within the framework of the exhibition a series of lectures has been announced to take place within 2008.
Among the lectures delivered, one will focus on the famous Antikythera Mechanism , a device which could predict eclipses decades in advance and was also used to record the four-yearly cycle of the original Olympic Games.
Visit the co-organizing bodies: Thessaloniki Science Center and Technology Museum (in Greek)
and the Society for Ancient Greek Technology Studies; Ancient Greece OnLine
-- Robert
TADDM, which I've written before, is IBM's detective. It sniffs out and find everything that's connected to the network, interrogates them to find out what's inside and maps out the relationships (who's talking to whom and and who's ignoring whom).
Now, the first time I have to remove the dewy-eyed look from users is when I inform them that, yes, TADDM can discover their unique 3rd-party/in-house applications, BUT... we have to tell TADDM what these products look like so that it can "tag" them correctly. They want TADDM to be able to "guess" or even divine which of the thousands of processes and files scattered around the network are related to which business service they run. TADDM can do that, but it need at least a little help!
The other thing they don't like is when I have to feed TADDM the TCP/IP address scopes and user/passwords of their servers. They say "Why do I need to enter all these things if TADDM is supposed to discover everything by itself?". I must then reassure them that they do not want TADDM to be able to hack into their secure systems without the right credentials!
OK, so TADDM requires the users/passwords for the servers (it can also get the passwords from the organizations LDAP repository) but why does it need me to enter the IP addresses?
For two good reasons: (1) So that you can give each IP list (scope in TADDM jargon) it's own set of credentials, i.e. IP 200.100.10.1 through 200.100.10.255 uses a certain user/password and a another scope uses a different one. (2) So that you can schedule discoveries by scope, and that way you're not doing the whole net each time.
But... what happens when an organization doesn't know how to split up it's IP range into separate environments? Say there are 200 servers, split into development, test, production and DRP environments all overlapping in the same IP scope. If I tried running discovery, I'd get tons of errors for using wrong user/passwords and I'd get a lot of unneeded devices when all I want is the production environment, unless I matched up IP to environment first.
Of course, the whole point of TADDM is that you don't necessarily know your network ahead of time. So what do you do?
The solution is a bit iterative, but you're not running into errors on the way and you don't need to feed TADDM any knowledge about the way the network is mapped ahead of time. What happens is that TADDM creates something called Logical Connections between devices when it detects that one uses the other. Logical Connections can be between application servers and databases, web servers and storage area network devices, switches and ... you get the idea). Now, once TADDM has completed a discovery, it maps out the Logical Connections between items which lie within it's scope. LC which go beyond the scope are listed, but not displayed on the map.
To leverage this, what we do is get our nose under the tent - we discover a few servers we know are in the right environment, find out which servers they are connected to, add them to the scope and continue till we have discovered everything in the environment we are interested in.
There are two ways of listing Logical Connections outside of the TADDM GUI:
The first command will create an XML file with all the data, the second regular SQL. I used the second command (slightly modified to ignore 127.0.0.1 and output the data nicely) to create a script file which runs loadscope after the select and then I get an ever expanding scope which contains items which are talking to each other.
Don't forget that loadscope looks for a file formatted like this:
IP_Address/range/subnet, Exceptions, Description
IP_Address/range/subnet, Exceptions, Description
IP_Address/range/subnet, Exceptions, Description
Thanks to Byron for the help :)
Hmph.... This post seems a little too long for what I wanted to say... I hope I was clear in the end.
-- Robert
Many people's first exposure to the ancient world of Rome is through the books they read as children. I first encountered Julius Caesar in reading the legendary comic book series Asterix. Mixing the old world with new technologies means that web-comic interpretations of the classical world were just a matter of time:
From <http://newsok.com/hannibals-epic-campaign-comes-to-web-based-comic/article/3309191>:
=============================================================================
Hannibal's epic campaign comes to Web-based comic
WORD BALLOONS
BY MATTHEW PRICE
Published: October 10, 2008
Most have heard the story of the Carthaginian general Hannibal leading elephants across the Alps to face the Romans. Writer Brendan McGinley wants you to see it.
"There's already plenty of good prose about Hannibal, (but) no good visual medium for a story that crackles with so many unforgettable images, like elephants on the Alps or Mago Barca spilling dead Romans' rings on the Senate floor," he said. "Maybe Vin Diesel's long-stalled film will change that; Victor Mature's sure didn't."
McGinley and artist Mauro Vargas, along with colorist Andres Carranza, bring the Hannibal story to life — with some humorous asides — re-enacting the second Punic War on the Shadowline Web comics page, <http://www.shadowlinecomics.com/webcomics/#/hannibalgoestorome/>.
Vargas "really defines and expresses his characters; you need that where history meets comedy," McGinley said. McGinley said the trickiest part of creating "Hannibal Goes to Rome" is sorting which Carthaginian did what.
"There are so many Hannos, Hannibals, Hasdrubals and Giscos!" McGinley meshes historical accounts to create the tale, which he then passes on to Vargas to draw. "The historians and artist make it easy for me; all I have to do is throw a little observational humor into the mouths of the poor schlubs caught up in events," he said.
"Hannibal Goes to Rome" was first a candidate on DC Comics' Zuda site (www.zudacomics.com). Zuda is a site created to seek fresh talent.
After competing on Zuda, McGinley hooked up with Shadowline's Jim Valentino, who was looking to launch some Web comics.
It's all very well to have a display of what is going on in your system at the moment - but what's been happening during the course of last month? Can you compare last year to today? How can I prove that whatever-change-was-just-made has (or has not) made a difference?
Sure, you can hack together an SQL routine or Perl script to get the raw data out of the monitoring system, but then what about showing your conclusions to someone who doesn't speak your type of jargon? You need something which creates reports which have been made for human eyes - not man/machine hybrids.
In other words, you need reports so you can translate your technical knowledge into business knowledge and in that way share your IT information with the decision making sections of your company/organization.
One of the nicer ideas in Tivoli at the moment is the gradual merging of all the various reporting routines in the myriad Tivoli products.
IBM has taken the standard BIRT reporting system and wrapped it up as Tivoli Common Reporting (TCR) - all the cooler newer versions of the Tivoli family have their reports in this new standard. The site I linked to has a list of all the TCR offerings. More and more of them are published on OPAL all the time. ITM6.2 reports have just had an update, for example.
Using BIRT means that the reporting engine is (a) free and (b) easily customizable - for those who know what they're doing with it. Alas, I'm not yet quite good enough with BIRT to create my own extra-special reports.
The next version of TADDM will use these reports and I'm curious as how to go about creating a "mashup" of a report which merges CMDB data with monitoring events - for example, how about a report which shows Number of Failures as a function of Number of Configuration Changes across the organization?
-- Robert
A recent conversation in the Developerworks ITM 6.x forum dealt with an unusual problem with Universal Agents.
A few rows were showing up cropped - only the first part of the line was making it's way from the UA to the TEMS/TEPS database.
The root of the problem turned out to be the UA's "unflushed buffer". What is a buffer and why should it be flushed?
A computer program, be it a simple "hello world" application or a complex missile control system, can often be summarized like this:
Get Input -> Do Something -> Write Output and repeat.
Now, things get complicated when we try to be more efficient. Say we've got a script which is checking a series of files/disks/servers/anything. If it wrote the result of each check immediately then the hard disk writing heads would constantly be starting and stopping - which is not efficient. What happens (behind the scenes) is that the operating system creates a Buffer of information which holds the lines temporarily. Once enough lines have been written into the buffer, the buffer is written (flushed) to the disk. This translates as much less starting and stopping of the disk heads. If you run the script yourself then you'll see everything displayed on the screen because the operating system will flush the buffer at the end of the script - at the latest.
Now, I don't know what the exact reason for the UA losing parts of lines, but I assume that the way the script UA works is reading the buffer that the script writes. If the UA reads the buffer BEFORE the operating system flushes the buffer then the UA will only get part of the information. This will not affect all UAs, but it might come and bite a few.
There is a full solution in the works, but a good workaround (for Perl) in the meantime is to add the following line to the beginning of the script:
BEGIN { $| = 1; }
This will make sure that the operating system flushes the buffer at the end of every output operation and that guarantees that the script and the UA are synchronized. If you're using other script languages, you'll have to find the equivalent function.
This also happened to me way-back-when when I was writing DCL scripts for the OpenVMS operating system. Just goes to show that what comes around, goes around! It also demonstrates that we Tivoli types need a good background in general computer science knowledge to help us solve fiddly little problems.
-- Robert
A good TADDM technote has been published. It lists the various logs and their meanings.
The logs are located in $COLLATION_HOME\log. I've bolded the more useful ones.
control.log - contains messages from the start script
cdm.log - web portal logs are located here
discover.log - contains messages from the Discover jini service
discover-admin.log - contains messages from the DiscoverAdmin jini service
error.log - contains serious errors for any of the TADDM/CDT services
events-core.log - contains messages from the events core jini service
l2.log - contains messages for the layer2
local-anchor.<hostname>.log - logs messages from J2EE sensors
login.log - user login audit trail
proxy.log - contains messages from the Proxy jini service
tomcat.log - contains messages from the startup sequence
topology.log - contains messages from the topology jini service
services/ApiServer.log - XML, Java and EJB interfaces to CMDB are processed here
services/ChangeManager.log - ChangeManager works with StateManager to process change events after discovery completes
services/ClientProxy.log - start here for GUI issues. The GUI talks to client proxy exclusively
services/DiscoverManager.log - contains message for Sensor and Template Matcher messages (see comment further on)
services/DiscoverObserver.log - moves completed work items from DiscoverManager to TopologyManager
services/MonitorStateManager.log - processes discovery and change events
services/ProcessFlowManager.log - event processing engine for Discovery
services/ReportsServer.log - Handles some reports tasks
services/TopologyManager.log - interface between all other components and the datastore.
services/ViewManager.log - ViewManager builds the CI navigation trees
If the setting com.collation.discover.engine.SplitSensorLog is set to TRUE in the /etc/collation.properties then each sensor will have it's own log in the directory log/sensors/<runid>/sensorName-IP.log. this is VERY useful in debugging discovery errors. If the value is set to FALSE then the DiscoveryManager will contain all the messages running together. I always make sure the SplitSensor is set to TRUE.
Here are some more log file settings which are defined in the /etc/collation.properties file
-- Robert
OK, Here's the situation:
I've got an ITM/TBSM environment where the tech guys look at ITM screens and the helpdesk and managers look at TBSM screens.
I've got a custom canvas or two for eye-candy on the TBSM. The problem is that when the helpdesk or managers looks at the messages coming over from ITM - they get a heart attack! A simple "no room on disk" turns into : NT_Disk_Full [(Free_Megabytes < 1000000) ON "Primary:AlphaServer:NT" ON D: (Free_Megabytes = 114)]
What I want to do is just change the main text which is sent from ITM to TBSM. Sounds simple?
Now, there are three basic ways in which you can find how to do something in Tivoli:
I did all of this, came to the conclusion that it's complicated, and left it alone for a few months. Till last week when I HAD to do it :)
I did, however, get enough out of all sources (which are excellent sources - especially the last one, which talks about adding important information to the situation data en-route to TBSM) to do it myself and discover that the beast wasn't as bad as I had feared. I could even create this simple how-to which I will share with you.
The secret lies in what are called "mapping files". These mysterious configuration files lie in the directory C:\IBM\ITM\CMS\TECLIB (replace C:\IBM\ITM with whatever's relevant to you) and defines what changes, if any, ITM makes to the various parameters it passes to TEC or Omnibus through the EIF adapter.
Open one up and you'll see a thick wall of XML code.
The good thing is that you can ignore ALL the *.map files which already exist - they're used for integration with ITM5 and DM3.7 (as far as I can tell)
I created a new file called qnt.map
The first lines I just copied/pasted from an existing map file and then then I changed the <id> from the original file
Then I added my first original material - the situation I'm interested in. The mapAllAttributes tell ITM to send all the attributes, including those I haven't changed.
The information between dollars comes from the attributes which are relevant to the situation. Edit your situation and click the "add conditions" buttons to see the what items you can use.
Note the use of $hostname$ for the server which triggered the situation.
<itmEventMapping:agent
xmlns:itmEventMapping="http://www.ibm.com/tivoli/itm/agentEventMapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.ibm.com/tivoli/itm/agentEventMapping agentEventMap.xsd">
<id>99</id>
<version>6.2.0</version>
<event_mapping>
<situation name="NT_Logical_Disk_Space_Critical" mapAllAttributes="Y">
<class name="NT"/>
<slot slotName="msg">
<literalString value="There is only $NT_Logical_Disk.%_Free$ percent / $NT_Logical_Disk.Free_Megabytes$ Megabytes free on server $hostname$ $NT_Logical_Disk.Timestamp.TIMESTAMP$"/>
</slot>
</situation>
<situation name="NT_Services_Automatic_Start" mapAllAttributes="Y">
<class name="NT"/>
<slot slotName="msg">
<literalString value="The Service $NT_Services.Service_Name$ is down on server $hostname$ $NT_Logical_Disk.Timestamp.TIMESTAMP$"/>
</slot>
</situation>
</event_mapping>
</itmEventMapping:agent>
After you have your file, run the command tacmd -t all so that ITM will load the new mapping file.
THAT'S IT!
Triggering those situations will lead to Omnibus messages which look like this:
instead of the cryptic formula which we had before.
Just goes to show - sometimes things are simpler than I think!
-- Robert
I'll write a longer post tomorrow of the next day, but I've got to put something up now. 39 years ago, at 02:56 GMT 21st of July, 1969 a man, Neil Armstrong, stepped on the Moon.
"That's one small step for [a] man, one giant leap for mankind"
If thinking about that doesn't make you pause, then think about it again.
Read more about the mission here on Kennedy Space Center's site and Wikipedia.
During the last few days there have been some amazing results from some newer missions:
The EPOXI mission has video showing the Moon orbiting the Earth. I know that we all know this logically, but here you can actually SEE the moon moving!
For more details, see the Bad Astronomy Blog - which is actually very good.
Another space probe, called SELENE, has taken pictures of the moon which show debris from a later moon landing, Apollo 15.
Last link for now - VERY high resolution images of Tycho, one the largest craters on the Moon taken by SELENE,
Think about it again when you look up at the moon. 39 years ago there was someone there!
-- Robert
Due to a few bureaucratic problems. I found myself installing TADDM and TBSM about 6 times over the last few days!
The first good news is that everything works.
The second good news is that I've got a list of problems and solution which I can share.
Most of these have solutions in the documentation, but it's not always clear.
All my installations were on Windows 2003, but I assume the problems are pretty platform agnostic.
Unfortunately, what I saw was this : |
The garbled entries make it impossible to import data into TBSM, because the tree does not contain the proper entries.
SOLUTION: My solution was uninstalling/reinstalling. On the THIRD attempt, the TBSM installed correctly. Since then, Doug McClure has given me the following undocumented procedure to reset the SCR without needing to reinstall:
UNIX :
run "setdbschema -U <dbuserid> -f a". This will drop and recreate all of the tables associated with the SCR. After you have done this, you should invalidate the "Imported Business Service" and the "Component Registry". That should delete everything.Windows:
run (using psql) the following files (found in .../XMLtoolkit/sql):
scc_staging_schema_deletes.sql
scc_schema_deletes.sql
scc_schema_setup.sql
scc_staging_schema_index_setup.sql
scc_staging_schema_setup.sql
Then you should invalidate the "Imported Business Service" and the "Component Registry"
I hope I've saved some of you some time...
-- Robert
There have recently been a few studies of the ancient world which have been aided by astronomy:
Dating Julius Caesar's invasion of Britain through tides (effects of the moon)
http://www.txstate.edu/news/news_releases/news_archive/2008/06/Caesar062308.html
Dating Odysseus's Return from the Trojan War through a (suspected) Solar Eclipse
http://www.breitbart.com/article.php?id=2008-06-23_D91G27MO0&show_article=1&cat=breaking
http://www.sciam.com/article.cfm?id=homers-odyssey-may-document-eclipse
And Thale's eclipse which I blogged about before.
A lot of this stuff I get from Rogueclassicism.
-- Robert
As I've mentioned before, TADDM is the heart of IBM's CMDB solution.
Now, each Configuration Item (CI) in the CMDB has a very long list of attributes; For a computer it's the computer's name, IP address, amount of memory and so on. For a database it's the list of schemas, physical files and so on.
Now, TADDM is smart and can extract just about everything possible about a system. However, there's no way in the world it can know about outside information - such as the name of the person in charge of the specific server. That's why there are a number of attributes which are not discovered automatically, but are entered manually. These are called administration attributes are mainly names, phone-numbers and so on.
Now, you may have a use for information of this sort that does not appear as one of the administration attributes. The classic example is the physical location of the server. To solve this problem, TADDM has Extended Attributes which you can create and add to any type of CI. You could add a PhysicalLocation field to every ComputerSystem and a NeedsToBeBackedUp field to every database.
The only problem is that the default reports will not show you your Extended Attributes.
There are two solutions at the moment (I understand that the default reporting options should improve by the end of this year).
The smart solution is to download the TADDM connector for TDI which will enable you to manipulate your TADDM database easily. (After you've gone through the learning curve, of course)
The simple(r) solution is to write a short Java program which will extract the information for you.
I recommend you do both - and see what works best for you. You'll certainly learn more about TADDM this way.
Here is a short Java program which will demonstrate how to use the Java API to get data out of TADDM
----- Begin ShowAttributes.java
// I don't think you need ALL these includes for this specific program to run, but they never hurt...
import com.collation.platform.model.Guid;
import com.collation.platform.model.AttributeNotSetException;
import com.collation.platform.model.ModelObject;
import com.collation.platform.model.topology.extattrib.UserData;
import com.collation.platform.model.topology.meta.UserDataAttributeMeta;
import com.collation.platform.model.topology.meta.UserDataMeta;
import com.collation.platform.model.topology.sys.ComputerSystem;
import com.collation.platform.model.topology.sys.OperatingSystem;
import com.collation.platform.model.topology.sys.windows.WindowsOperatingSystem;
import com.collation.platform.util.ModelFactory;
import com.collation.proxy.api.client.ApiConnection;
import com.collation.proxy.api.client.ApiException;
import com.collation.proxy.api.client.ApiSession;
import com.collation.proxy.api.client.CMDBApi;
import com.collation.proxy.api.common.AttrNameValue;
import com.ibm.cdb.api.ApiFactory;
import java.io.*;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Vector;public class ShowAttributes{
String usage = "Usage: ShowAttributes <hostname> <port> <username> <password> <condition>";
if (args.length < 6) {
System.out.println(usage);
System.exit(1);
}
String hostname = args[0];
int port = Integer.parseInt(args[1]);
String username = args[2];
String password = args[3];
String condition = args[4];
String extendedAttribute = args[5];//We've got our initial arguments. Lets access the TADDM database!
CMDBApi Api= null;
ApiSession Session = null;
ApiConnection Conn = ApiFactory.getInstance().getApiConnection(hostname, port, null, false);
Session = ApiFactory.getInstance().getSession(Conn, username, password, ApiSession.DEFAULT_VERSION);
Api = Session.createCMDBApi();//We'll extract a list of ComputerSystems
Query = "SELECT * FROM ComputerSystem where fqdn contains '" + condition + "'";
ModelObject mo[] = Api.find(Query, -1, null, null);
System.out.println("Found " + String.valueOf(mo.length) + " items.");
//Loop over the list of computers
for (int j=0; j<mo.length; j++) {//Print out the computer's name
ComputerSystem computer = (ComputerSystem) mo[j];
System.out.println(computer.getDisplayName());
//Extract the list of Extended Attributes for our specific computer
Guid guid = mo[j].getGuid();
AttrNameValue[] attrNameValGet = api.getExtendedAttributes(guid);
//Loop over the list of Extended Attributes
for (int jj=0; jj<attrNameValGet.length; jj++) {
System.out.println(">" + attrNameValGet[jj].name + "," + attrNameValGet[jj].value + ",");
}
}
}
---- End ShowAttributes.java
(This has been cut & pasted without re-double-triple-checking, so please tell me if there are problems)
Now, the problems don't end just with writing the program. How do you compile and run it?
Java being Java, you need a ton of parameters so that the right jar files will be found.
Here's a batch file which compiles our program and runs it.
---- Begin ShowAttributes.bat
@echo off
rem You must set these two to suit your environment.
set COLLATION_HOME=D:\IBM\cmdb\dist
set JAVA_HOME=%COLLATION_HOME%\external\jdk-1.5.0-Windows-i386
rem We will now set TADDM's environment so we can compile java
set path=%path%;%JAVA_HOME%\bin
set TADDM_SDK_HOME=%COLLATION_HOME%\sdk
call %TADDM_SDK_HOME%\bin\setTaddmEnv.bat
echo Compiling ShowAttributes.java
javac -Xlint:deprecation -cp %TADDM_CLASSPATH% -d . ShowAttributes.java
if %errorlevel% neq 0 exit /b
Rem Continue if there were no compiler errorsjava -Dcom.collation.home=%COLLATION_HOME% -cp %COLLATION_HOME%\lib\api-client.jar;%COLLATION_HOME%\lib\api-dep.jar;%COLLATION_HOME%\lib\platform-model.jar;. ShowAttributes %1 %2 %3 %4 %5 %6 %7 %8
pause
---- End ShowAttributes.bat
Read more about the TADDM API and other TADDM tricks and tips with the new Redbooks which have just been published.
Deployment Guide Series: IBM Tivoli Application Dependency Discovery Manager V7.1
Have fun!
This week was the 37th annual conference of The Israel Society for the Promotion of Classical Studies (ISPCS)
My bosses had other ideas about my being there, however.
I only managed to sign up as a member of the ISPCS and purchase a few books to help me with my Greek.
I bought the Joint Association of Classical Teacher's (JAST) series of Reading Greek textbooks.
(There are so many complicated acronyms in the last paragraph that you'd think it was about something in hightech...)
I bought the Grammar, the Reader and the Independent Study guide. I linked to Amazon because the official JACT site is strangely silent about the books. (at least, I haven't found anything)
Anyway, it's now official - I'm spending too much time BUYING Greek books instead of LEARNING Greek!
I've got an exam next Friday - it's a good thing that it's a long weekend here in Israel.
Here are two more excellent ITM tools
GBSCMD is a command line tool which was developed in house by Gulfsoft which provides functionality which does not exist in ITM. ITM 6.2 and 6.2FP1 have added more options to tacmd, but GBSCMD is a high bar to reach.
ITMSUPER is a new OPAL offering which allows the user to view managed system data, debug situations, and correct environment configurations.
It basically collects and improves on the existing ITM tools in OPAL which I mentioned here.
You may be able to do your work without these tools, but you're certainly handicapping yourself if you don't take the time to download them and give them a spin!
Here's a cute summary of some superstitions held by those who seem like the most rational people possible - Astronauts and Cosmonauts.
Of course, now I must send you to a site which debunks and refutes every space related superstition.
Robert
If you're like me then you've got customers who want to know "Exactly what is being monitored".
They don't want to go to the portal and check for themselves, nor will they use any of the Tools and Scripts which are available.
They just want the list! And they want it now!
What to do, what to do?
ITM has a very nifty feature in which you can extract data from the system using SOAP web services.
I found the exact commands I needed in the Gulfbreeze Blog and in the OrbData site (All the heavy lifting was done by them).
However, the type of person who needs to display this information is probably rather new to ITM and, lets face it, you've got more important things to do right now than learn a few new out-of-the-way features of ITM.
Gulfbreeze and Orbdata assume you know what you're doing. They also give you the data unformatted - i.e. nothing than can be shown to anyone without a lot of massaging of the information.
I'm going to show the simple, cut & paste way of doing it.
(Appendix A of the ITM Administrator's guide goes into all the gory details.)
<CT_Export>
<filename>data.xml</filename>
<request>
<attach>header-data.xml</attach>
</request>
<request>
<CT_Get>
<userid>sysadmin</userid><password>mypassword</password>
<table>O4SRV.LOCALTIME</table>
<sql>
SELECT TOBJACCL.OBJNAME,TNODELST.NODE
FROM O4SRV.TNODELST,O4SRV.TOBJACCL
WHERE TNODELST.NODELIST=TOBJACCL.NODEL AND TNODELST.NODETYPE="V"
</sql>
</CT_Get>
</request>
</CT_Export>
So what did we do?
We used a CT_Get call to extract the information we wanted. (See the documentation and the other blogs for more details as to what exactly the SELECT does).
We wrapped it in a CT_Export so that we would get an XML file.
We added an attachment to the beginning of the XML file so that we could use the formatting file (which comes with ITM) to present the information as a proper table and not as an odd looking string.
As I said, the hard part is knowing what SELECT to use, but I hope this little entry will help people.
More than 2,500 years ago, Thales, one of the first Greek philosopher-scientists, predicted an solar eclipse.
Without the Internet, with no computers, not even decent pen and paper for a scratch pad he managed to use science to predict what, till then, was deemed to be the work of a god.
The eclipse duly took place as he predicted - probably on the 28th of May 585 BC
Here are some links about Thales and his eclipse.
Well, another reason I'm writing this blog is my studies of Greek. I want to learn Ancient Greek because it interests me and I think as as long as I'm studying the Classics, I may as well be able to read the language. Unfortunately, I seem to have some mental blocks...
So, As I review the stuff I should already know, I'll post it here.
I'll start with the Greek Alphabet.
Upper Case | Lower case | Letter Name | English equivalent |
Α | α | Alpha | a |
Β | β | Beta | b |
Γ | γ | Gamma | g |
Δ | δ | Delta | d |
Ε | ε | Epsilon | e |
Ζ | ζ | Zeta | z |
Η | η | Eta | e |
Θ | θ | Theta | th |
Ι | ι | Iota | i |
Κ | κ | Kappa | k |
Λ | λ | Lambda | l |
Μ | μ | Mu | m |
Ν | ν | Nu | n |
Ξ | ξ | Xi | x / ks |
Ο | ο | Omicron | o |
Π | π | Pi | p |
Ρ | ρ | Rho | r |
Σ | σ or ς | Sigma | s |
Τ | τ | Taf | t |
Υ | υ | Upsilon | u / y |
Φ | φ | Phi | ph |
Χ | χ | Chi | ch |
Ψ | ψ | Psi | ps |
Ω | ω | Omega | o |
Note : Sigma is written σ in the middle of a word and ς at the end.
SOS would be σος
Obviously, Wikipedia has a big page about this.
It there is some problem and the Greek letters don't appear properly, please send me a note...
PULSE, for those who don't know, was a giant Tivoli conference which took place last week in Orlando, Florida.
Lets start with the crunch : The presentations.
Here's the PULSE Blog.
Here's a new IBM initiative : A Web 2.0 Tivoli Community
The new community space looks interesting. It's still very much a work in progress, but go there and look around.
Yesterday I installed a small ITM PoC (Proof of Concept) at a customer.
I arrived at their office at about 8:45... and waited at the entrance till 9:30 before the guy I was supposed to meet was located. I should have taken this as an omen.
How long should it take to copy a 4 Giga DVD to the customer's server? About 20-25 minutes I guess.
40 minutes after the copying started, I got a corruption-error on the DVD.
Signing dramatically, I sat down to burn a new DVD as the in-house DBAs started installing the database I had requested to be installed the day before. They couldn't even start the installation because the drive was hardened. Aha! Could that explain my copying misery?
They started a conference call with the system guys to remove the hardening.
It was now about 11:30.
I gave the customer my (newly burned) DVD told him to copy it to the server, unzip it and call me.
I fully expected to wait till next week for that call...
However...
At 13:30 I get a call - the DB is installed and the files have been copied.
I go back and what do you know?
Everything went swimmingly from there on...
By 15:30 I have installed the Tivoli Monitoring server and 5 agents are being monitored.
The biggest problem I had with the installation was the lack of an Adobe Acrobat reader so I could show the customer the documentation.
Just goes to show, what starts out as a bad day just might turn out ok :)
Robert
The Phoenix space probe has landed on Mars!
Here are a few links:
The next few weeks will be very interesting...
ITM 6.x is a pretty simple system and day-to-day, I don't feel that it needs too much hand holding.
Of course, we never leave the poor thing alone and we're constantly upgrading the system, adding agents and changing situations :)
So, every now and then a problem appears.
There is an excellent presentation which summarizes basic troubleshooting and where to look for problems.
(Logs, trace levels, debugging, process flow and much much more)
ITM 6.1 Problem Determination Tools and Best Practices
It also has links to a series of scripts in OPAL which will enable you to see what's going on in your ITM environment in a simpler way.
Simpler for tech people of course, don't let managers see these scripts :)
for the scripts, go to the OPAL catalog
Enjoy :)
This application from IBM is really a mouthful!
Pity, because it's (in my opinion) one of the new additions to Tivoli over the last few years.
TADDM is an application which maps out your network, getting full information about each and every element (Application Discovery) and finds out the relationships between each (Application Dependency).
So, for example, TADDM will find out that application A runs on Server B is accessed by Web Servers C and D while application A accesses Database E which is on server F. It also keeps a full history of the parameters and information of each element so you can see what changes have occurred.
TADDM works centrally, no need to install anything on any other server (unless you need to cross firewalls and then you need an SSH server for each section). It works by scanning the network and running Sensors on each device it finds. If it find a computer, it will use a generic sensor to find out what kind it is. It will then use the relevant Windows, UNIX,etc sensor. Once it knows what applications, Databases, etc are on the server, it will use the relevant sensors too.
Those of you familiar with ITIL will realize that TADDM is IBM's system for building the organization's CMDB.
TADDM Links:
Documentation
IBM Support
TADDM Redbook (For a slightly earlier version, but 90%+ is still relevant)
Developerworks Wiki
My TADDM Tips:
Robert
I’m very fond of metaphors and idiomatic expressions and I try to use them when ever I can.
The reason I called this blog Ἀρετή (an ancient Greek word pronounced Arete) - Excellence is slightly complicated.
I wanted something that would merge both my professional life (Software Engineering) and my non-professional life (Studies of the Classics, Astronomy, History and Science).
At the cost of being pretentious, I have found that this wonderful word - Ἀρετή - encompasses a lot of my personal philosophy of life.
The word means excellence as a value - living up to your potential, “Being all you can and should be”.
Other expressions I like are:
I have found that in the long term, co-operation and mutual aid has helped me advance my goals faster and more efficiently than had I just blundered forward without any regard towards my co-workers.
I don’t pretend that I live a blameless life or that I am a perfect role-model, however, I do make an effort to go through life realizing that it’s a team sport…
I would be happy if this site helps others solve problems they have encountered, broadens their horizons and teaches them something new or even if it just lets a few slow minutes pass enjoyably.
Robert
Well, ITM6.2 FP1 has been released.
ftp://ftp.software.ibm.com/software/tivoli_support/patches/patches_6.2.0/6.2.0-TIV-ITM-FP0001
You can read the release notes here:
ftp://ftp.software.ibm.com/software/tivoli_support/patches/patches_6.2.0/6.2.0-TIV-ITM-FP0001/6.2.0-TIV-ITM-FP0001.README
There are a couple of pretty nifty things about this Fixpack which should come in handy.
Here are some of the items which I know I'm going to be using...
Not all of these are found in the README, go through the documentation too...
http://publib.boulder.ibm.com/infocenter/tivihelp/v15r1/index.jsp?topic=/com.ibm.itm.doc/welcome.htm
Read the "new in this version" that's at the top of every book.
I'll update the Blog with my experiences with this FixPack.
Enjoy :)
Well, I think I'll be sticking with Blogspot after all.
I like Wordpress and it is certainly friendlier to start things with.
Also, I really do like the static pages which Wordpress has and Blogspot lacks. However, the fact is that Wordpress is more limited from the point of view of template design and I prefer the Blogspot widgets.
So, at least for now... I'm back on Blogspot.
I'll have to make up my mind before I start telling people about my Blog ;)
Well, if all went according to plan, this message should arrive in my new blog on Wordpress...
I've done some research and perhaps I should change my blog to Wordpress?
Well, the whole point of this exercise is to try out new things, so I've created a Wordpress blog and I'll try transferring this blog from Blogger to Wordpress.
We'll see if it works...
Oh, I'm also using Windows Live Writer to write this instead of doing it in the browser.
Wish me luck!