APAR status
Closed as program error.
Error description
Environment: Operating System: Linux . Other relevant information Product: ITM 6.1 FP04 TEMS, TEPS, OS Agent and Universal Agent are all installed in the same GNU/Linux machine. . OS: cat /etc/redhat-release Red Hat Enterprise Linux ES release 4 (Nahant Update 4) . uname -a Linux flower 2.6.9-42.0.3.ELsmp #1 SMP Mon Sep 25 17:28:02 EDT 2006 i686 i686 i386 GNU/Linux Problem Description: The script specified in my metafile is called every 60 seconds even when I indicated in the situation an interval of 30 minutes (there is no INTERVAL in the metafile). Then when I stop and delete the situation the script is still being called every 60 seconds. I have one SNMP metafile and one script metafile in the system, "cinfo -r" gives: Host Prod PID Owner Start ID ..Status flower ms 30166 root Feb05 flower ..running flower cq 30483 root Feb05 None ..running flower lz 30888 root Feb05 None ..running flower um 2980 root Feb05 None ..running flower um 3074 root Feb05 kumsnetd_None ..running flower um 3104 root Feb05 kumstrap_None ..running . I have defined a situation with an interval of 30 minutes, but my script is being run every minute or 60 seconds. Detailed Recreation Procedure: To duplicate problem again I did the following: - Install TEMS, TEPS, OS Linux Agent and UA in same machine. - Create perl script that logs the time in a file. (I will append the one I used to duplicate this). - Define metafile, validate and import (I will append mine) - Create a situation, I made the interval for the situation 5 minutes or 10 minutes or something like that. - tail the file the script is appending to, I used: tail -f /opt/IBM/ITM/li6243/um/scripts/itm_tst_interval.log - After you see that the script run once, wait a little bit and then click in the TEP to see the data the script is sending to the TEP, then you will see two calls to the script. . I did append the logs I got. You can see the situation run the script at time 21:41:59, so I wait a little bit, then at the time 21:42:25 I click in the sub node M01_TST_INTERVAL_N in the TEP to see the data in the TEP and I got two entries at 21:42:25, and from there on I got a call every minute: Script called at 2007/02/06 21:37:19 Script called at 2007/02/06 21:41:59 Script called at 2007/02/06 21:42:25 Script called at 2007/02/06 21:42:25 Script called at 2007/02/06 21:43:25 Script called at 2007/02/06 21:44:25 Script called at 2007/02/06 21:45:25 Script called at 2007/02/06 21:46:25 .... Here is the metafile: . *-------------------------------------- //APPL M01_TST_INTERVAL_A //NAME M01_TST_INTERVAL_N S 900 AddTimeStamp //SOURCE SCRIPT /usr/bin/perl itm_tst_interval.pl *-------------------------------------- //ATTRIBUTES '^' system_name D 64 itm_tst_interval Z 512 *-------------------------------------- . Here is the script itm_tst_interval.pl . #!/usr/bin/perl # &my_main; exit 0; # sub itm_getLogTime { $iTime = time(); my ($sec,$min,$hour,$mday,$mon,$year,$d1,$d2,$d3) = localtime( $iTime ); $year = $year+1900; $mon++; $mon = "0$mon" if ($mon < 10); $mday = "0$mday" if ($mday < 10); $min = "0$min" if ($min < 10); $sec = "0$sec" if ($sec < 10); return "$year/$mon/$mday $hour:$min:$sec"; } sub my_main { $lt = &itm_getLogTime; chomp( $SysName = `hostname` ); print "$SysName^ script called at $lt \n"; $logF = "/opt/IBM/ITM/li6243/um/scripts/itm_tst_interval.log"; system( "echo \"Script called at $lt\" >> $logF" ); } Reviewing the logs shows that it is switching to interval-driven data collection with 60 second sampling interval!! (45C93B0F.0000-2E:kumpscrp.c,398,"KUMP_ScriptServer") Script source </opt/IBM/ITM/li6243/um/work/../scripts/itm_tst_interval.pl> table <M01_TST_INTERVAL_N> is now online to the data provider (45C93B0F.0001-B:kumdchsv.cpp,4660,"DCHserver::dp_setDemandRepor tOption" ) Enabling DemandReporting for <M01/M01_TST_INTERVAL_N/flower> (45C93C91.0000-2E:kumpscrp.c,609,"KUMP_ScriptServer") Note: Converting table <M01_TST_INTERVAL_N> source </opt/IBM/ITM/li6243/um/work/../scripts/itm_tst_interval.pl> to interval-driven data collection with 60 second sampling interval (45C93C91.0001-B:kumdchsv.cpp,4672,"DCHserver::dp_setDemandRepor tOption" ) Disabling DemandReporting for <M01/M01_TST_INTERVAL_N/flower> (45C9425F.0000-4:kumpccmd.c,559,"KUMP_ConsoleService") >>>>> DP console REFRESH for itm_tst_interval.mdl (45C9425F.0001-D:kumamain.cpp,3001,"main::processOffline") Subnode <flower:M01_TST_INTERVAL_A00> deregistered. (45C9425F.0002-4:kumpcadm.c,1678,"KUMP_ConstructApplDataModel") *INFO: APPL names starting with letters A-M are designated for Best Practices and Business Partner UA solutions. Application <M01_TST_INTERVAL_A> Metafile </opt/IBM/ITM/li6243/um/metafiles/itm_tst_interval.mdl> Sample 2: I have other metafiles that do not have INTERVAL in the name I created the one with INTERVAL in the name just for testing and to open the PMR. For example I have the following metafile: *-------------------------------------- //APPL NV9_ping //NAME PING S 300 AddTimeStamp //SOURCE SCRIPT /usr/bin/perl itm_ping.pl //ATTRIBUTES ':' Agent_Name D 64 Minimum C 999999 Average C 999999 Maximum C 999999 *-------------------------------------- and it has the same problem, the log shows: . (45F177C3.0001-E:kumdchsv.cpp,4660,"DCHserver:: dp_setDemandReportOption") Enabling DemandReporting for <NV9/PING/ateo_rh4> (45F178DB.0000-54:kumpscrp.c,609,"KUMP_ScriptServer") Note: Converting table <PING> source </opt/IBM/ITM/li6243/um/work/../scripts/itm_ping.pl> to interval-driven data collection with 60 second sampling interval . We do not want to run my script itm_ping.pl every 60 seconds. Aditional test results: Tracing set to, KUMP_SCRIPT_DEBUG=Y I have changed the um.ini file as requested and I run with a very small change in the metafile (I prefixed with T01): . //APPL T01_TST_INTERVAL_A //NAME T01_TST_INTERVAL_N S 900 AddTimeStamp //SOURCE SCRIPT /usr/bin/perl T01_tst_interval.pl . This does not affect the outcome of the test becuase I have the problem with any metafile that uses the Script DP. . I run it with two variations. . 1) I created a situation and I set it to run every 5 minutes, I also was looking at the data (click in the node in the TEP) so I made my script run on demand and with the situation. After the 4th entry in my log (my perl script logs an entry) ITM changes and runs my script every minute. See files in 34805_w_sit.zip . 2) I stoped the um, deleted the situation and then start um again. This time I did not create a situation, I just look at the data (I clicked in TEP to run my script on demand) and after the 4th time ITM changed and started to run my script every minute. See files in 34805_no_sit.zip . I conclude that we can forget about the situations. Something makes ITM change after running the script several times on demand, just click on the TEP. Approver:BEH
Local fix
Problem summary
This problem was reported against ITM 6.1 FP4 maintenance level for Universal Agent. When using UA's SCRIPT or ODBC data provider in demand-driven mode, the UA's data provider would switch to interval-driven mode using a 60 second interval; this typically occurred after the third demand-drivem Report or Situation request. The problem is agnostic to platform UA was running on.
Problem conclusion
When using UA's SCRIPT or ODBC data provider in the demand-driven mode, the ReportRequestExpiration timer could be incorrectly set to value zero. This zero value caused UA's data provider to exercise a 'fail safe' that UA has to switch to interval-driven mode if after 3 times the execution time for a script or SQL query exceeded or was equal to the ReportRequestExipration timer. So with zero value for ReportRequestExpiration, UA was exercising unwarranted switching from demand-driven to interval driven mode. This APAR fix eliminates these unwarranted mode switches. The fail safe still exists and will be exercised, if need be, but only for cases that truly justify the mode switch. The fix for this APAR is included in the following maintenance vehicle: | fix pack | 6.1.0-TIV-ITM-FP0005
Temporary fix
Comments
APAR Information
APAR number
IY98311
Reported component name
UNIVERSAL AGENT
Reported component ID
5724K1000
Reported release
610
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2007-05-09
Closed date
2008-04-18
Last modified date
2008-04-18
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
UNIVERSAL AGENT
Fixed component ID
5724K1000
Applicable component levels
R610 PSY
UP
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSSHL9","label":"Tivoli Universal Agent"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"610","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
18 April 2008