viernes, 25 de septiembre de 2009

TEP desktop login hangs with message "KFWITM006I Validating user credentials"

TEP desktop login hangs with message "KFWITM006I Validating user credentials"

Problem(Abstract)
Correct user authentication parameters (login name and password) are given in the TEP Desktop Client, but the login hangs at the message "KFWITM006I Validating user credentials."

Cause
One possibility is that there has been some change in the java installation affecting it's ability to retrieve various java classes.

Diagnosing the problem
1) Check whether the installed java version satisfies the minimum requirement for the TEP version you are at.

2)If installed java version is correct, then when the TEP login hangs with the message "KFWITM006I", click "Cancel" and look for the following entries in TEP desktop client logs.
Location of TEP desktop client logs is : %candlehome%\cnp\logs

Look for error kcjras1.log: Error loading User Permission Cross-Reference tables:candle.fw.model.RequestNotSupportedException:KFWITM219E Request failed during creation.

If this error is present, then look at KCJ.log. The KCJ.log file is appended each time, therefore open this file and look for errors/exceptions at the end of the file. Some of the examples or errors/exceptions seen are as below:

i) JVMJ9VM019E Fatal error: Unable to find and initialize required class java/lang/Object

ii) Exception in thread "Thread-6" java.lang.ExceptionInInitializerError

Check if any one or more similar errors are present at the bottom of KCJ.log

Note: "Thread-6" is dynamic value and it can change between invocations.

Resolving the problem
Reinstall java version as per following steps:

If any ITM components other than TEP desktop client are also present on the same machine then stop those components.

1)Go to "Add/Remove programs" in control panel and uninstall Java.

2)after uninstall is complete it will ask to reboot the machine.

3)click "yes" and reboot the machine.

4)Default IBM java installation directory is : C:\Program Files\IBM\Java50

Default sun Java installation directory is : C:\Program files\Java.

5)Go to java installation directory , rename and back up installation directory to some other place and then completely remove it completely from installation location.

6)Reinstall Java. Reboot machine if asked.

Start ITM components other than TEP desktop client (if present).

Login to TEP desktop client.

martes, 8 de septiembre de 2009

Using ITCAM for SOA to monitor BPM Systems: Part 2: How ITCAM for SOA monitors service-oriented architectures

Using ITCAM for SOA to monitor BPM Systems: Part 2: How ITCAM for SOA monitors service-oriented architectures: "The metrics collected by ITCAM for SOA are gathered from SCA messages, in this
article, we will analyze the metrics, compare and map metrics to the WebSphere
Dynamic Process Edition (WDPE) and
runtime behaviors. We also explain how to read, understand and analysis the metrics, and how to aware the WDPE applications from the metrics."

Using ITCAM for SOA to monitor BPM Systems: Part 1: Setup the environment with ITCAM for SOA and WDPE

Using ITCAM for SOA to monitor BPM Systems: Part 1: Setup the environment with ITCAM for SOA and WDPE: "WDPE (WebSphere Dynamic Process Edition) is a key IBM BPM Suite element, with
built-in support for adapting, responding dynamically to change. This offering provides the BPM enabled by SOA foundational capabilities for modeling, simulating, deploying, monitoring end-to-end dynamic business processes. ITCAM (IBM Tivoli Composite Application Manager) for SOA is the proper product to monitor the BPM system for the service state, performance, health information, etc."

Tivoli Monitoring 6.1 Notes

http://www.softpanorama.org/Admin/Tivoli/ITM/index.shtml

Comprehensive List of IBM Tivoli Monitoring: ITM 6.X Product Codes

Problem(Abstract)
IBM Tivoli Monitoring: ITM 6.X Product Codes. This technote provides the location to a file that contains a list of all the product codes, as well as a list of the codes themselves.

Resolving the problem
There is a file located at $INSTALLDIR/registry/proddsc.tbl. It contains a comprehensive list of all the agent product codes. Please note that proddsc.tbl only exists in a Linux/Unix installation environment. It is not present in Windows or zOS. The output is below for reference:
3z Monitoring Agent for Active Directory
a2 AF/Remote Alert Adapter
a4 Monitoring Agent for i5/OS
ah System Automation for z/OS
am OMEGACENTER Gateway MVS Alert Adapter
au CA-Unicenter Alert Emitter
ax IBM Tivoli Monitoring Shared Libraries
bb RAS1 programming building blocks
bc ITCAM System Edition for WebSphere DataPower
bl CASP Directory Server Monitoring Agent
br CASP Exchange Connector Monitoring Agent
bs Basic Services
c3 IBM Tivoli Monitoring for CICS
c5 OMEGAMON XE for CICS on z/OS
cf TEMS Configurator
cg IBM Tivoli Monitoring for Cryptographic Coprocessors
ci IBM Tivoli Monitoring Product Installer
cicatrsq IBM Tivoli Monitoring SQL Files
cienv IBM Tivoli Monitoring Product Installer
cj Tivoli Enterprise Portal Desktop Client
co Command and Control
cp IBM Tivoli Monitoring for CICS
cq Tivoli Enterprise Portal Server
cu ICU globalization support
cw Tivoli Enterprise Portal Browser Client
cz IBM Tivoli Monitoring CommandPro
d3 IBM Tivoli Monitoring for DB2
d4 ITCAM for SOA
d5 OMEGAMON XE for PE and PM on z/OS
dc distributed communications
dd Distributed Database common code
de distributed communications transport protocol
df OMEGAMON II for SMS
dh Internet http server
do IBM Tivoli Decision Support for z/OS
dp OMEGAMON XE for DB2 PE and PM on z/OS
ds Tivoli Enterprise Management Server
dy remote deploy (os agent only)
e3 R/3 Clients (for ETEWatch) Monitoring Agent
e5 OSIsoft PI Agent
e6 Johnson Controls Metasys Agent
e7 APC InfraStruXure Agent
e8 Eaton Power Xpert Agent
e9 Active Energy Manager Agent
ea Internet Monitoring Agent
el Lotus Notes Clients (for ETEWatch) Monitoring Agent
em Event manager
en SNMP Gateway on Windows NT
er Management Agent for Tivoli Enterprise Console Gateway
es EIF to WS-Notification Converter
et End-to-End
eu Custom Clients (for ETEWatch) Monitoring Agent
ew Web Browsers (for ETEWatch) Monitoring Agent
ex Monitoring Agent for Microsoft Exchange Server
ez OMA for eBA Solutions
fn Monitoring Agent for Tivoli Management Framework
fw Windows NT Tivoli Enterprise Portal
ga SNMP Gateway on AIX
gb IBM Tivoli Monitoring for Domino
gl general library
gr Graphics and Sound Library for TEP
gs IBM GSKit Security Interface
gw OMEGAMON XE for CICS TG on z/OS
hc HMC Alert Adapter
hd Warehouse Proxy
hi HP OpenView IT/Operations Alert Adapter
hl OMEGAMON z/OS Management Console
ho HP OpenView NNM Alert Adapter
ht Monitoring Agent for Web Servers
i2 OMEGAMON II for IMS
i5 OMEGAMON XE for IMS on z/OS
ic WebSphere InterChange Server Monitoring Agent
ie WebSphere InterChange Server Data Source
ih OpenView ITO Alert Emitter
ip OMEGAMON XE for IMS on z/OS
is IBM Tivoli Composite Application Manager for Internet Service Monitoring
it TEC GUI Integration
iv IBM Tivoli Enterprise Portal Server Extensions Update
iw IBM Tivoli Enterprise Portal Server Extensions
jr Tivoli Enterprise-supplied JRE
ju Monitoring Agent for JMX JSR-77
ka Monitoring Agent for Tivoli Enterprise Console
kf IBM Eclipse Help Server
kt ITCAM for Response Time Enabler on z/OS
la IBM Tivoli LAP tool
ln Lotus Notes Monitoring Agent
lv ITMS:Engine
lx POSIX pthread mapping service (CT/Engine)
lz Monitoring Agent for Linux OS
m2 OMEGAMON II for MVS
m3 IBM Tivoli Monitoring for OS/390
m5 OMEGAMON XE on z/OS
ma Remedy ARS Alert Adapter
mc WebSphere MQ Configuration Agent
md PQEdit
mq WebSphere MQ Monitoring Agent
ms Tivoli Enterprise Monitoring Server
n3 OMEGAMON XE for Mainframe Networks
na IBM Tivoli NetView for z/OS Enterprise Management Agent
nd Monitoring Agent for Tivoli NetView Server
no Tivoli Omnibus ObjectServer Agent
np IBM Tivoli Network Manager
nt Monitoring Agent for Windows OS
nv NetView/AIX Alert Adapter
nw Novell NetWare Monitoring Agent
ob OMNIMON BASE
oe CCC for OS/390 Unix System Services
on OMEGAMON II for Mainframe Network
oq Monitoring Agent for Microsoft SQL Server
or Monitoring Agent for Oracle
os IBM Tivoli Monitoring for Sysplex
ox Informix Monitoring Agent
oy Monitoring Agent for Sybase Server
p5 Base Monitoring Agent for AIX
p8 ITCAM Agent for PeopleSoft Enterprise Application Domain
p9 ITCAM Agent for PeopleSoft Enterprise Process Scheduler
pa Performance Analytics for TEP
pc DEC Polycenter Alert Adapter
pe Monitoring Agent for Provisioning
ph Base Monitoring Agent for HMC
pk Base Monitoring Agent for CEC
pl CandleLight Workstation
ps PeopleSoft Monitoring Agent
pt Peregrine ServiceCenter Alert Adapter
pv Base Monitoring Agent for VIOS
px Premium Monitoring Agent for AIX
q5 Monitoring Agent for Microsoft Cluster Server
q7 Microsoft Internet Information Services (IIS) Agent
qa Monitoring for Microsoft Applications
qd IBM Tivoli Monitoring for IBM Director
qf Monitoring Agent for Microsoft .NET Framework
qi WebSphere Message Broker Monitoring Agent
qr Monitoring Agent for Microsoft Virtual Server
qv Monitoring Agent for VMware ESX
qx Monitoring Agent for Citrix Access Suite
r0 Agentless Monitoring for Dell OpenManage Hardware
r2 Agentless Monitoring for Windows Operating Systems
r3 Agentless Monitoring for AIX Operating Systems
r4 Agentless Monitoring for Linux Operating Systems
r5 Agentless Monitoring for HP-UX Operating Systems
r6 Agentless Monitoring for Solaris Operating Systems
r7 Agentless Monitoring for HP InsightManager Hardware
r8 Agentless Monitoring for Sun Management Center Hardware
r9 Business System Manager Common Agent
rc IBM Tivoli Monitoring for Rational Applications
rg IBM Tivoli Advanced Audit for DFSMShsm
rj IBM Tivoli Allocation Optimizer for z/OS
rk IBM Tivoli Automated Tape Allocation Manager
rn IBM Tivoli Advanced Catalog Management for z/OS
rv IBM Tivoli Advanced Backup and Recovery for z/OS
rw IBM Tivoli Tape Optimizer
s2 OS/2 Monitoring Agent
s3 IBM Tivoli OMEGAMON XE for Storage on z/OS
sa Monitoring Agent for mySAP
sb shared probes
sd Status Data Manager
sh Tivoli Enterprise Monitoring SOAP Server
sj Best Practices for WebSphere
sk Reporting Agent for Tivoli Storage Manager
sp SNMP Alert Adapter
sr IBM Tivoli Service Level Advisor
ss Windows NT SNA Server Monitoring Agent
sy Summarization and Pruning Agent
t1 ITCAM File Transfer Enablement
t2 ITCAM for Response Time Tracking TEMA
t3 ITCAM Application Management Console (AMC)
t4 ITCAM for Client Response Time (CRT) Agent
t5 ITCAM for Web Response Time (WRT) Agent
t6 ITCAM for Robotic Response Time (RRT) Agent
th ITCAM for MQ Tracking
tl Omegamon XE for Message Transaction Tracker
tm Monitoring Agent for IBM Tivoli Monitoring 5.x Endpoint
tn Unicenter TNG Alert Emitter
to ITCAM Transaction Reporter
tr NetView Alert Emitter
tu ITCAM Transaction Collector
tv Tivoli Enterprise Console Alert Adapter
tx Tuxedo Monitoring Agent
ua CA-Unicenter Alert Adapter
ub IBM Tivoli Monitoring for Applications: Siebel Agent
ud Monitoring Agent for DB2
ue Tivoli Enterprise Services User Interface Extensions
uf Universal Agent Framework
ui Tivoli Enterprise Services User Interface
uj Unison Maestro Alert Adapter
ul Monitoring Agent for UNIX Logs
um Universal Agent
ur Unison RoadRuner Alert Adapter
ut Unicenter TNG Alert Adapter
ux Monitoring Agent for UNIX OS
va Premium Monitoring Agent for VIOS
vi HP OpenView Alert Emitter
vl OMEGAMON XE on z/VM and Linux
vm IBM Tivoli Monitoring for Virtual Servers
vt Tivoli Enterprise Console Alert Emitter
vw NetView for z/OS Agent Support
we WebSphere Application Server Monitoring Agent
wj IBM Tivoli Composite Application Manager Common Components
wl BEA Weblogic Server Monitoring Agent
wo IBM Tivoli Monitoring for OMEGAVIEW II for the Enterprise
ww WebSphere Application Server on OS/390
yb IBM Tivoli Information Management for z/OS
yj Monitoring Agent for J2EE
yn Monitoring Agent for WebSphere

lunes, 7 de septiembre de 2009

Conexion automatica al AS400

Conexion automatica al AS400: "
¿Como realizar una conexión automática desde un servidor Windows, o un cliente de red, al AS400?

A veces necesitamos para lanzar un cmd, o bat, en un pc en que la conexión al AS400 ya este establecida; para hacerlo automáticamente debemos tener instalado el producto iSeries Access y entonces podremos utilizar el comando c:\Program Files\ibm\Client Access\cwblogon.exe.

Básicamente se trata de cargar en un buffer de windows el usuario y la contraseña que utilizamos para conectar a el AS400 y así cuando los requiera la conexión windows la suministrara sin ninguna intervención.
Sintaxis
Para iniciar la sesión en un servidor:
CWBLOGON sistema /u ID_usuario /p contraseña

Para borrar un ID de usuario específico:
CWBLOGON sistema /u ID_usuario /c

Para borrar todos los ID de usuario de un servidor:
CWBLOGON sistema /c

Para borrar todos los ID de usuario de la antememoria:
CWBLOGON /c

Parámetros
sistema designa el nombre del servidor para el que debe almacenarse la información de ID de usuario y contraseña
/u ID_usuario designa el ID de usuario del servidor que debe almacenarse en la antememoria de iSeries Access para Windows
/p contraseña designa la contraseña del servidor asociada al ID de usuario proporcionado
/c borra la información de ID de usuario y contraseña de la antememoria de iSeries Access para Windows

Para más información:
http://www.redbooks.ibm.com/pubs/html/as400/v4r5/ic2924/info/rzaiimst.pdf
"

jueves, 3 de septiembre de 2009

Is it possible to assign a specific customized navigator tree as the default for a single user?

Is it possible to assign a specific customized navigator tree as the default for a single user?

Answer

1.
Log in to the TEPS as the administrator (sysadmin)


2.
Above the navigator tree there is a button named "Edit Navigator View"
click this.


3.
Click on "create new navigator view"

- Name the view and click OK, Then drag all the managed systems you want to be available in your navigator tree from the "Source view" on the right, to your navigator tree (target View) on the left. Then close the window.

4.
Open the "administer users" from the tool bar in the TEPS Dashboard.



9.
Now select the user that you wish to only see this newly created navigator tree.

There are three tabs in the window select the "Navigator View" tab


Under the Available views section, select the workspace you created and
click the arrow to add it to the Assigned views.

Once you have done that, select the Physical and Logical view under the
Assigned Views section and remove them.

This will then only leave the navigator tree you designed available to the user.

ITM 6.X - Ports to open across a firewall

ITM 6.X - Ports to open across a firewall: "Multiple ITM components on the same server will assign ports based on the startup sequence and a well known algorithm."

Resolving the problem
Any TEMSs or TEMAs that are communicating across a firewall will require that you know which ports need to be open on the firewall. Administrators will only want to open the minimum number of ports
First, when dealing with firewall issues, make sure that you pick IP.PIPE as the communication protocol.

TEMS uses 1918 as the main communication port. (1918 is the default but you can specify something else).

It also uses 1920 for access to the service console - for dynamically starting/stopping traces (not an issue for your agents outside the firewall)

IBM Tivoli Monitoring 6.1 or 6.2 component startup on a single server (host system) example follows this sequence:
1. The Warehousing Proxy starts first: port 6014 (1918 + 1*4096)
2. The remote TEMS starts second: port 1918 (always reserved for TEMS)
3. The Windows OS Agent starts third: port 10110 (1918 + 2*4096)
4. The Universal Agent starts fourth: port 14206 (1918 + 3*4096)

So your agents if warehousing data from outside the firewall would need to have port 6014 open, however it is possible in some circumstances for the WPA to take a different port, so to prevent this you can fix the port with the COUNT and SKIP parameters if this is an issue.
The commonly used convention is to get the Data Warehouse Agent to use port 6014 and to ensure that no other ITM agents on the box where the Data Warehouse Agent are running use port 6014

Ensuring that the Data Warehouse Agent only uses port 6014 is done by coding the configuration parameter KDC_FAMILIES=IP.PIPE COUNT:1 for the Data Warehouse Agent. Ensuring that port 6014 is not used by other components is done by coding the configuration parameter KDC_FAMILIES=IP.PIPE SKIP:2 for any TEMAs that are running on the same box as the Data Warehouse Agent. If you perform these configuration tasks then you can be assured that port 6014 will be used by your Data Warehouse Agent and that will be the only port that will need to be opened.

I am assuming we are not talking about TEP clients but Port 15001 is the default port that the TEPS uses for CORBA traffic to its TEP clients. TEP clients use HTTP to set up the Java application, which then uses CORBA IOR between client and server over port 15001.

Finally, each component binds a random TCP port on the loopback address. Since the loopback address is not accessible outside the server there are no firewall considerations for these ports. The components issue a select on their respective loopback ports to monitor for shutdown requests.

The ports 1918 and 6014 will normally need to be open across the firewall. If all your agents are on the public side of the firewall and all these agents report to a single TEMS, then only one port needs to be permitted: 1918. You would open 6014 for warehousing.

The firewall KDE Gateway function is for more complex firewall environments that use NAT,
and were agents traverse multiple firewalls.

Here is the list of key 6.1 component's port assignments

IBM Tivoli Monitoring 6.1 Component Listening Port
Tivoli Enterprise Monitoring Server (IP.PIPE) 1918/TCP
Tivoli Enterprise Monitoring Server (IP.SPIPE) 3660/TCP
Tivoli Enterprise Monitoring Server (IP) 1918/udp
Tivoli Enterprise Portal Server 1920/TCP - 15001/TCP
Tivoli Enterprise Console 5529/TCP
Tivoli Warehouse Proxy agent 6014/tcp1

Tip: Do not deviate from the default listening ports without a valid reason, even though this is supported. Listening port modification was not tested by IBM Tivoli Software Group. .

miércoles, 2 de septiembre de 2009

Why do my events not show up in the Situation Events Console (SEC) when the situation fires?

Question
Why do my events not show up in the Situation Events Console (SEC) when the situation fires?

Answer

Have you associated the situation with a managed system in the
navigator tree?



HOW TO ASSOCIATE A SITUATION WITH A MANAGED SYSTEM


Can you please check that you have associated the situation with the
agent/managed system in the navigator tree.

You can do this by expanding the tree to the agent the situation is
running against. The expand the agent to see the attributes (disk,
Memory, etc )

If you situation is running against the disc attribute for instance,
click on Disk, then right click on Disc to open a menu.

Select the situations option

This will open a new window.

By default the window displays situations Associated with this
attribute (in this case Disc)

If your situation is not listed then you need to associate it with the
attribute to do this follow the below:-


Click on the icon in the top left of the window named "Set Situation
Filter Criteria"

Another smaller box will appear, check the option "Eligible for
Association"

then click OK.

Now find you situation in the list of situations on screen.

Click once to highlight the situation, then right click on the
situation. This will again bring up a menu. Select the "Associate"
option to associate the situation.

The situation must be associated to the attribute level of an agent for
the notification symbols to propagate up the tree and for an event to
appear in the console when an event is raised.

Tomado de IBM.com

martes, 1 de septiembre de 2009

Step by step how-to on integrating your application with IBM Tivoli Monitoring 6.1

In this article, we provide you a “how to” guide on integrating your application with IBM Tivoli Monitoring 6.1, IBM's health and performance monitoring tool. Within this article, we'll give you business pain points that IBM Tivoli Monitoring addresses, provide you sample integration scenarios, and explain how to get the maximum benefit from your integration with Tivoli through IBM's Ready for Tivoli program, all from a Retail Industry point of view.

http://www.ibm.com/developerworks/tivoli/library/t-inttivmon/index.html

(Es un poco viejo pero igual ayuda a entender)

New to Tivoli Monitoring?

I'll assume you're a new recruit to your IT company and you now must start working with a product called IBM Tivoli Monitoring (ITM).

Where to start? What to do?

In a (very brief) nutshell, ITM is one of a series of Tivoli products. The entire Tivoli suite is designed to help companies manage and understand the various pieces of computer technology they use. ITM manages the servers and applications that the company uses. Remember Mission control in the movie Apollo 13? Well, they were using NASA specific systems, but the analogy holds - they were using a product which monitors and controls the spacecraft, just like ITM does to the servers.

First day on the job, someone has given you a welcome speech, shown you your chair and you've scribbled your user/password on a note.
What now? How to find information about ITM?

There are three types of websites which will help you
1. IBM documentation
2. Forums
3. Personal / Company websites

The first places you should go are

* http://publib.boulder.ibm.com/infocenter/tivihelp/v15r1/index.jsp?toc=/com.ibm.itm.doc/toc.xml
Here you'll find the basic documentation. Especially click on Understanding -> Exploring IBM Tivoli Monitoring
* ITM "homepage" in IBM's website
http://www-306.ibm.com/software/tivoli/products/monitor/
* As well as documentation, IBM also publishes Redbooks - which are in depth "how-to" books.
For example : End-to-End Planning for Availability and Performance Monitoring or
Implementation and Performance Optimization for Large Scale Environments
The main website for the redbooks is at http://www.redbooks.ibm.com/

There are two main public forums for ITM

* IBM's Developerworks site
http://www-128.ibm.com/developerworks/forums/forum.jspa?forumID=796
* TME10 Mailing list (This is also on developerworks)
http://www-306.ibm.com/software/sysmgmt/products/support/TME10.html

Finding unassociated Situations

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

"