CIF -Debug Diagnostic Tools

advertisement
Informatica
Create a crash dump using “Debug Diag”
HOW-TO | CIF CONSULT | Redouane BELBAHRI
Agenda
1
Terminology
Terminology

ISP – Informatica Services Platform
– 9.x - The ISP is the administrative framework for Informatica services. It allows monitoring, start/stop,
and failover of services

Model Repository Service (MRS)
– Model Reposiory Service (MRS) manages the model Repository which contains the metadata for Data
Services.

Data Integration Service (DIS)
– The Data Integration Service (DIS) is a container for all data integration functionalities. Plug-ins for the
DIS provide different data integration functionalities.
Terminology

Data Transformation Manager (DTM)
– DTM Interprets and executes mappings.
– It is re-engineered to be lightweight and embeddable. It allows repository-less execution: In previous
versions of PowerCenter, DTM connects to the repository to fetch the plan. However, now the
mapping can be run without reading from the repository, like mapping stored to disk.
– DTM enables concurrent execution semantics: multiple DTM instances can coexist in the same
process.
– It allows different execution modes: single threaded and pipelined execution modes.

Profiling Service
– The Profiling Service is a component integrated into Informatica Data Services. It includes the Profiling
Plug-in and Profiling Warehouse.
Terminology

Mapping Service Module
– The Mapping Service Module is the component service in the Data Integration Service that manages
requests to preview target data and run mappings.

SQL Service Module
– The SQL Service Module is the component service in the Data Integration Service that manages SQL
queries sent to an SQL data service from a third party client tool.
– When the Data Integration Service receives an SQL request from a third party client tool, the SQL
Service Module starts a DTM instance to run the SQL query against the virtual tables in the SQL data
service.
Terminology – Nodes and Domains
When you install and run the Informatica services, the installation is known as a node. The node becomes
part of an Informatica domain. A domain is a grouping of one or more nodes.

Domain Basics
– The most basic description of an Informatica domain is this: There is a node, and there is a domain
database. The node is where stuff runs. The database is where the node keeps stuff.

The Node
– The node is a logical representation of the Informatica installation on a server. It is run by Apache
Tomcat.
– Two Kinds of Nodes:

Worker Nodes: A worker node runs a Service Manager process, and it can run application services.

Gateway Nodes: A gateway node can run application services, and it runs its own Service Manager
Process. When you start the master gateway node, the management services log their startup progress to
node.log and catalina.out. You can find both of these log files in INFA_HOME/tomcat/logs.
 Master Gateway Node: Any gateway node can also be a master gateway node.
Terminology – Nodes and Domains

Node Communication
– The master gateway node is the one node in the domain that communicates with the domain
database, and it does so through JDBC. It periodically performs a heartbeat check against the domain
database.
Following is the architectural diagram of Informatica 9.1

Green components are
added in Informatica 9.x

Blue components are from
existing PowerCenter.
Informatica 9.X Service-Oriented Architecture
Agenda
2
Log management
Catalina.out & ispLogs.log

Catalina.out contains
– Core services initial startup events
– Tomcat’s ERROR + event until 9.1HF3
– ISP process’s stdout & stderr

ispLogs.log (introduced in 9.1HF3)
– Tomcat’s ERROR + events in 9.1HF3
– Tomcat’s INFO + event until 9.1HF4+
– Not generated on windows

Logging level modified through isplogging.properties in ./tomcat/bin location
Node.log

Contains
– Master Election & Re-election
– Some errors during inter-node communication

Error severity Level controlled in AdminConsole from Node’s properties
– WARNING by default. Change it to INFO for information of master re-election
Exceptions.log

Logs exceptions faced in the ISP process
– Any exception message seen in Node.log is typically logged with stack trace to exceptions.log
ServiceFramework.log (until 9.1.x)

Tomcat/bin
– JSF logs to this file.
– All Mercury service processes, ISP process, Admin Console process write to the same
– Critical for domain/node issues as it contains most critical errors

Isp/bin
– Infacmd commands write to this file (infacmd generate this file in whichever directory you execute the
command)
– Contains errors related to infacmd to node/service communication.
Domain Logs (exported from Adminconsole)

Contains some more log files by each node and domain
– On missing heartbeat from node
– When a service process terminated unexpectedly
– When a service process wrote to stdout/stderr before crashing (stack trace)
AdminConsole’s log files


Tomcat/temp/_AdminConsole/logs/*
Services/AdministratorConsole/Administrator.log
Application Service Logs



./tomcat/logs/MRS/<MRS_NAME>.log
./tomcat/logs/as/analyst.log
./tomcat/bin/disLogs/<DIS_NAME>.log
Agenda
3
Windows diagnostic tools
Debug Diagnostic Tool

The Debug Diagnostic Tool (DebugDiag) is designed to assist in troubleshooting issues
such as hangs, slow performance, memory leaks or fragmentation, and crashes in any
user-mode process. The tool includes additional debugging scripts focused on
Internet Information Services (IIS) applications, web data access components, COM+
and related Microsoft technologies.

Supported Operating System
– Windows 7
– Windows 2003-Windows XP • Windows 2008-Windows Vista • Windows 2008 R2- Windows7
Installation steps

The Installation is strait forwards.
Create a stack trace from a hanging session or server
process

1.
2.
When session or a server process hangs on Windows, use one of the following methods
to obtain a stack trace and send it to Informatica technical support:
Determine the process ID (PID) of the hanging process
Dump the process stack
Agenda
4
Determine the process ID (PID) of the hanging process
Introduction to Process Explorer



Process Explorer is a lot like Task Manager, which is the program you access via the
following keys on your keyboard: "CTRL+ALT+DELETE". Task Manager is used to
display process information such as the process name, memory usage and other
application information. However, the information that Task Manager displays is
rather limited compared to what Process Explorer can show you. With Process
Explorer one can see the entire process tree for a particular applications, which
consists of all other processes that were started by the original process, or parent, in
the tree.
Process Explorer has many different uses such as examining what process are active
and what processes are making connections to outside computers. In this guide I will
demonstrate the kinds of information one can gleam from using Process Explorer as
opposed to using task manager.
The tool can be downloaded for free from: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Determine the process ID (PID)

Open Process Explorer
– The top window always shows a list of the currently active processes
– Highlight the process. The Services tab of the process properties dialog shows the list of services
running within a process.
Names of the PowerCenter, Data Quality and Data
Explorer processes on Windows

When PowerCenter node is started up, you should see the below Tomcat Processes:
– infasvcs.exe
– Java.exe
– If you start Informatica service from command line, then you may not see infasvcs.exe in the list.

pmserver.exe
– This is the process for Integration Service

pmrepagent.exe
– This is the process for Repository Agent, will show when Repository Service has started up.

pmdtm.exe
– This is the session process started by the Integration Service.
Names of the PowerCenter, Data Quality and Data
Explorer processes on Windows

Data Explorer
If you are using Data Explorer you will see the following processes:
– Idelistener.exe
– Ide_server.exe

Data Quality
When Data Quality Server is running, you should see the following process from Task Manager:
– ImplRepo_Service
– Naming_Service
– ImR_Activator
Agenda
5
Dump the process stack
Using Debug Diag


Open Debug Diag and add a crash rule.
Select Crash
Select the process ID


Select Target Type as A specific process
Select the process ID (Where PID is the process id obtained in the first step) and
check This process instance only

Configure the following next parameters:
Create a Rule



Add an event for Child Process Exit and set the Action Type to Full Userdump
9.Save and close.
Click Next > Finish
Achievements

Following is achieved after performing the steps above:
– The Child process in this context is the process being debugged (pmserver), not its children.
– When the debugged process exits, debug diag collects the full user dump.
– Run crash analysis on the dump and collect the stack of the process during the time of its exit.
– Core dump analysis can also be performed on the full user dump if required (space consuming)
Crash/Hang Analyzers

If a crash occurs, open the Debug Diag and do as follows:
– Click on Advanced Analysis
– Click on Add Data Files
– Browse to the location for the datafiles, and click Open

Once you have selected the datafile for the dump, click Start Analysis and send the
report to Global Customer Support (GCS).
Crash/Hang Analyzers


You can also right click the dump created dump file
Start Analysis and send the report to Global Customer Support (GCS).
Using dump file generated by Dr Watson

Dr. Watson ( drwtsn32.exe ) is a default component of the Windows operating system.
Crash/Hang Analyzers (from Dr Watson)

Once you have selected the datafile for th dump, click Start Analysis and send the
report to Global Customer Support (GCS).
java.lang.OutOfMemoryError: Java heap space

When a Java program starts, the Java Virtual Machine (JVM) gets some memory from the operating
system. The JVM uses this memory for all its needs and part of this memory is called Java heap
memory. When a Java application needs memory, the Java application gets it from Java Heap Space
and when the object ceases to exist (garbage collected), the memory returns to Java Heap Space.

When JVM starts, JVM heap space is the initial size of Heap specified by the -Xms parameter. As the
application progresses, objects are created and JVM expands Heap space in Java to accommodate new
objects. JVM also runs garbage collector to reclaim memory back from objects that cease to exist. JVM
expands Heap in Java close to the Maximum Heap Size specified by -Xmx and if there is no memory left
for creating new objects in Java heap, JVM results in "java.lang.outofmemoryerror" and the application
ends.

The default Heap size in Java is 128 MB. You can increase the size of Java Heap space based on what
the Java application needs. To increase the Java heap space, use the parameters Xms (denotes starting
size of Heap) and Xmx (denotes maximum size of Heap in Java).
ANNEX
Many Thanks for you time today!
Download