This directory has the Tivoli Widget Engine, these "widgets" are very similar to the widgets you would use with the Google Desktop or Mac OS X. The widgets are little graphical JAD programs that execute a SOAP call to your hub tems via the Tivoli Widget Engine. You can set transparency and opacity so you can see thru the widgets. Each one of these widgets must be configured and you need to understand the formatting of the SOAP requests to get them properly configured. Each widget engine must be installed locally on each workstation, configuration must be performed locally too.
So, my final comment is this - I would have rather have seen improvements in security and a lightweight web interface to the my agents than this workstation based solution. Maybe this is the direction of the"web mash" - but until the basics solid (INCLUDING SCALE) - I think more effort should be put into the core product.
Friday, March 14, 2008
ITM 6.1 FP05 - NEW - What's a widget?
TTUC Presentation
Here is the URL to download it in PDF format:
TTUC Presentation
ITM Fixpack 05 is available now!
Stay tuned for more updates about Fixpack 05 in our future articles.
Introduction to ITM 6.1 Policies
Policies - A quick look
ITM 6.1 policies provide a simple if-then-else automation and they can be used to take actions based on situations. For example, if most of your event handling involves running a script to take some actions such as sending an email, running a recovery script, etc, you could easily implement it in ITM policies.
When to use them?
Here are some scenarios where you will need to rely on policies.
1) If you don't have framework or planning on moving away from it, then ITM policies might be the way to go.
2) For small environments where the volume of events happening is very low.
3) You could write your scripts to provide necessary logging but policies don't provide explicit event tracking mechanism as such.
4) You have only a small number of situations to manage.
5) All your response actions are very simple and doesn't involve complex event correlations.
Example 1: Sending emails for alerts
To send an email alert for a situation, use the "Wait Until a situation becomes true" activity and "Take Action" activity and connect them using "Situation is true" connector. In the take action, choose "Run a system command" and specify the script that will send email alerts. Make sure that you execute this action at the TEMS or at a specific node where the script will be available by clicking "More options" button.
Example 2: Restarting Windows Services when they go down.
To restart a Windows Service when it goes down, setup a situation to monitor the service and when it goes down and use a similar mechanism like the above except that in the "Take Action" field, use "net start &NT_Services.Service_Name". You can enter the service name by using Attribute substitution button.
Policy Distribution
Once the policy has been created, it need to be distributed to manage systems or managed system lists on whose situations it will have effect on. Click on the distribute check box against the policy name and it will bring up Policy distribution window. This process is similar to situation distribution selection.
Start Policy
The policy will not be effective unless you start the policy. On the other hand, if you would like to disable a policy for a while, you could stop the policy. Make sure that AutoStart attribute is set appropriately so that your policy will take effect during server startups.
There are few more interesting combinations possible with policies, start playing with them and you will never know when they will become handy. Good luck.
Windows XP and Vmware Tips
Slow Hard disk in Windows XP
You don't think your brand new computer could be running much more inefficiently than a 20 year old PC, do you? Mine did for some time, I didn't even realize it. My computer was taking lot of CPU even for mundane tasks such as copying files and the performance was getting worse. ProcExplorer showed hardware interrupts taking 70-80% of CPU.
The reason? The hard disk was running in Programmed IO mode (PIO mode) in which CPU was responsible for data transfer instead of DMA (Direct Memory Access) Controller. Right click My Computer -> properties -> Hardware -> Device Manager. Expand IDE ATA/ATAPI controllers and right click Primary IDE Channel and choose properties. Goto advanced settings and see the Current Transfer Mode. It should be Ultra DMA or NOT PIO.
If it is PIO, just goto Driver tab and click "Uninstall Driver" and reboot twice. If you would like to learn this in depth here are two good sources.
http://support.microsoft.com/kb/817472
http://winhlp.com/WxDMA.htm
Slow Boot time in Windows XP
Does your system stays long time in Windows XP Logo screen? It could be due to a corrupt program in Windows Prefetch directory, where Windows stores frequently used programs for faster fetching. Delete C:\windows\prefetch\*.pf files and reboot your computer.
Virtual machine fails to boot
I have some of my vms running on a NTFS filesystem mounted on a linux box using a ntfs-3g driver. The net effect is that the disk performance is relatively slow. Same could be said of USB 1.1 hard drives and network mounted drives. If you are running your VMs from any of these and your virtual machine fails to boot, try adding the following line to your *.vmx configuration file.
mainMem.useNamedFile = "False"
Hope you find these tips useful.
Perl Module for Tivoli Access Manager (TAM) is available
Thursday, March 13, 2008
Script to read any Windows Event/Application Log
So here is a simple PERL script that will read all messages from all Windows event/application logs. With a little tweaking, it can be used to feed a Universal Agent that will report to ITM based on Event number or LogFile name.
use strict;
use Win32::OLE('in');
use constant wbemFlagReturnImmediately => 0x10;
use constant wbemFlagForwardOnly => 0x20;
my @computers = ("localhost");
foreach my $computer (@computers) {
print "";
print "==========================================";
print "Computer: $computer";
print "==========================================";
my $objWMIService = Win32::OLE->GetObject("winmgmts:\\\\$computer\\root\\CIMV2") or die "WMI connection failed.";
my $colItems = $objWMIService->ExecQuery("SELECT * FROM Win32_NTLogEventLog", "WQL",
wbemFlagReturnImmediately | wbemFlagForwardOnly);
foreach my $objItem (in $colItems) {
print "Log: $objItem->{Log}";
print "Record: $objItem->{Record}";
print "";
}
}