DronaBlog

Thursday, August 16, 2018

How to enable DEBUG mode in the Informatica MDM?


Are you looking for information about how to enable DEBUG mode in the Informatica MDM? Are you also looking for what configuration files need to be updated to see logs in the DEBUG mode? Would you be interested in knowing what the locations of configuration and log files are? If so, then you can read this article to get more interesting details about MDM logging.

Introduction

Intermatica MDM is a complex application. It involves many processes such as the stage, the load and the match and merge jobs etc. During execution of these jobs we might notice any issue. In order to analyze any issue, the log files play an important role. The log files in DEBUG mode provide more information compared to the log files in INFO mode.

What are the locations for log and configuration files?

The logs are stored at the location below:
a) MDM Cleanse log file: <Install directory>\hub\cleanse\logs\cmxserver.log
b) MDM Server log file: <Install directory>\hub\server\logs\cmxserver.log
c) To change MDM Cleanse log file configuration, update the file mentioned below
<Install directory>\hub\cleanse\conf\log4j.xml
d) To change MDM Server log file configuration, we can update the configuration file mentioned below
<Install directory>\hub\server\conf\log4j.xml

What are the configuration changes required to be made for enabling cleanse logs in DEBUG mode?

To enable the cleanse logs in the debug mode, perform the steps mentioned below:

  • Change the priority to "DEBUG" in all the following categories:

        <category name="com.delos">
        <priority value="DEBUG"/
</category> 
 <category name="com.siperian">
        <priority value="DEBUG"/>
 </category> 
 <category name="com.informatica">
        <priority value="DEBUG"/>
 </category>​
  • To log the database queries change the priority to "ON
         <category name="siperian.performance" additivity="false">
        <priority value="ON"/>
        <appender-ref ref="FILE"/>
</category>
  • Change the threshold parameter to DEBUG.
     <param name="Threshold" value="DEBUG"/> 
  • Increase the maximum file size to a higher value if required (Optional)
    <param name="MaxFileSize" value="10MB"/> 
  • Increase the number of files if required (Optional)
​​​              <param name="MaxBackupIndex" value="5"/>

Important points:

  • No server restart is required after making changes in the log4j file. The changes will automatically be reflected within a few minutes.
  • For a clustered environment, update the log4j file in all the nodes of the cluster individually.
  •  If the socket server is down, the log messages will be lost
  • There will be negligible performance impact as the socket server and MDM server are on the same machine so network latency does not have a big impact


Java Interview Questions and Answers - Part 2

This is the second article of the Java Interview Questions and Answers series. In the previous article we learned about basic questions related to classpath, Object Oriented Approach and the difference between C++ and Java languages. In this article we will learn more interesting questions which are asked during Java Interview Questions. If you are preparing for your Java interview then read this article to get more knowledge about Java technology.


Q1: What are the class loaders in Java? 

Answer: 

Do you know how the very first class gets loaded in JVM? The first class is loaded with the help of main() method in the Java class. Once first class is loaded, the subsequent classes are loaded by other classes. All JVMs include one class loader called the bootstrap class loader. The JVM also includes the user defined class loader which helps to load classes in a particular order.

  • Class loaders are hierarchical. 
  • These class loaders use a delegation model when loading a class in JVM. 
  • Child class loader requests its parent to load the class first before attempting to load it themselves. 
  • Once class is loaded in JVM, child class loader will not load it again. 
  • Classes loaded by the parent class loader will not have any visibility into classes loaded by its child. 
  • However, classes loaded by a child class loader have visibility in the parent class loader.

The types of class loader are mentioned below:
a) Bootstrap: Loads JDK internal classes, java.* packages. (rt.jar and i18n.jar)
b) Extensions: Loads jar files from JDK extensions directory (classes in the lib/ext directory of JRE)
c) System: Loads classes from system classpath (CLASSPATH environment variable or –classpath or –cp command line options)
  • Classes loaded by the Bootstrap class loader have no visibility into classes loaded by the Extensions and Systems class loaders or any other child class loader.
  • The classes loaded by System class loader have visibility into classes loaded by Extensions and Bootstrap class loaders, but they will not have visibility in classes loaded by Class loader 1 or Class loader 2.
  • If there are any sibling class loaders they cannot see classes loaded by each other. 

Q2: What is static class loader in Java?
Answer: 
  • Creating objects and instance using new keyword is known as static class loading
  • The retrieval of class definition and instantiation of the object is done at the compile time.
  • Classes are statically loaded with “new” operator in Java as

        class MyTestClass {
             public static void main(String args[]) {
             Shape shape = new Shape();
        }

If a class is referenced with “new” operator  but the runtime system cannot find the referenced class then NoClassDefFoundException exception is thrown.

Q3: What is dynamic class loader in Java?
Answer: 
  • Loading classes use Class.forName () method. 
  • Dynamic class loading is done when the name of the class is not known at compile time.  e.g. 

    Class oclass = Class.forName (String className); //It is static   method which returns a Class

In the example below, the dynamic loading will decide whether to load the class Shape or
the class Triangle at runtime based on  runtime conditions. Once the class is dynamically loaded the following method returns an instance of the loaded class.

   oclass.newInstance (); //creates an instance of a class
   Triangle otriangle = null ;
   String myClassName = "com.abc.Triangle" ; // can be read at  runtime
   Class shapeClass = Class.forName(myClassName) ;
   otriangle = (Triangle) shapeClass.newInstance();
   otriangle.getArea();

If no definition for the class with the specified name could be found then ClassNotFoundException exception will be thrown for methods mentioned below:
  • forName(…)- Class.
  • findSystemClass(…)- ClassLoader.
  • loadClass(…)  - ClassLoader

Q4: What is constructor in Java?
Answer: A constructor in Java is a block of code similar to a method which is used to initialize the object of a class.

  • It is called when an instance of an object is created.
  • It cannot be static, final, abstract, final and synchronised. 
  • It does not have return type.
  • It must have the same name as the class name.
  • It is called only once per creation of an object.

e.g.
     Pet.class
     public Pet() {} // constructor

Q5: What will happen if you do not provide a constructor to Java class?
Answer:

  • Explicit constructor is not required in the Java class. 
  • The Java compiler will create a default constructor in .class file with an empty argument, if we do not provide the constructor. 
  • The definition of default constructor looks like as "Country(){}". 
  • Java compiler does not create default constructor, if a class includes one or more explicit constructors like "public Country(int id)" or "Country(){}" etc.


Tuesday, August 14, 2018

How batch jobs are created in Informatica MDM?

Do you know how batch jobs are created in Informatica MDM? Would you be interested in knowing how jobs are automatically created in the MDM hub? Are you also looking for information about batch jobs which are not present in the MDM hub batch viewer? If so, then this article provides a list those batch jobs with the information.


How are batch jobs created in Informatica MDM ?

Batch jobs are created in two ways:
1) Automatically when we configure tables in MDM Hub
2) When any change occurs in the MDM hub configuration
   e.g. Trust setting change

What are the MDM batch jobs automatically created?

The list of batch jobs mentioned below are automatically created when you configure tables in the MDM Hub:
  • Auto Match and Merge Jobs
  • Autolink Jobs
  • Automerge Jobs
  • BVT Snapshot Jobs
  • External Match Jobs
  • Generate Match Tokens Jobs
  • Initially Index Smart Search Data Jobs
  • Load Jobs
  • Manual Link Jobs
  • Manual Merge Jobs
  • Manual Unlink Jobs
  • Manual Unmerge Jobs
  • Match Jobs
  • Match Analyze Jobs
  • Promote Jobs
  • Stage Jobs

What are the MDM batch jobs created when the configuration changes in the MDM hub?

Here is a list of batch jobs which are created when we make configuration changes in the MDM hub.
The changes include: 
  1. The match and merge setup
  2. Set properties
  3. Enable trust settings after initial loads
Batch jobs:
  • Accept Non-Matched Records As Unique
  • Key Match Jobs
  • Reset Match Table Jobs
  • Revalidate Jobs (if you enable validation for a column)
  • Synchronize JobsInformation

What are the MDM batch jobs which are not present in the MDM hub Batch Viewer?

The list mentioned below consists of the MDM batch jobs which are not present in the MDM hub batch viewer.
  • Accept Non-Matched Records As Unique
  • BVT Snapshot Jobs
  • Batch Unmerge Jobs
  • Manual Link Jobs
  • Manual Merge Jobs
  • Manual Unlink Jobs
  • Manual Unmerge Jobs
  • Migrate Link Style To Merge Style Jobs
  • Multi Merge Jobs
  • Reset Match Table Jobs
  • Hub Delete Jobs

Informatica Master Data Management - MDM - Quiz - 5

Q1. Which statement is true regarding GBID Columns?

A. You can configure only one GBID column.
B. They support INT data type.
C. GBIDs do not replace the ROWID_OBJECT.
D. MDM Hub perfoms duplicate data verification on GBID columns.

Q2. Which statement best describes what the tokenize process is used to do?

A. It prepares a record for address standardization.
B. It links parent and child records.
C. It determines the trust scores.
D. It creates keys used in the matching process.

Q3. The hub provides a metadata manager to validate metadata in a given hub repository

A. True
B. False

Q4. As part of an MDM Hub implementation when may data cleansing be used?

A. Before data enters the HUB.
B. During the stage process.
C. When using IDD.
D. All are correct

Q5. Which statements are correct regarding the subject areas ?

A. A subject area represents a collection of data that should be treated, from a business prespective as a Unit.
B. A subject area group has one or more su bject areas that share the same primary base object.
C. Relationships with subject areas, are based on the relationships that are configured between base objects in Informatica Data Director (IDD).
D. A sibling reference is a relationship from one child record in a subject area to another child record within that subject area.

Previous Quiz             Next Quiz

Java Interview Questions and Answers - Part I

 Are you looking for which questions are asked during a Java interview? If so, then refer to this question and answer article on Java and supporting technologies. This article explains all Java related concepts in detail. This is the first article of the Java Interview Questions and Answers series.


Q1: What are the differences between Java and C++?
Answer:

Sr. No.
Java
C++
1
Java does not support pointers. Pointers are inherently tricky to use and troublesome.
C++ supports pointers.
2
Java does not support multiple inheritances because it causes more problems than it solves.
C++ supports multiple inheritances.
3
Java does not support destructors but adds a finalize() method. Finalize methods are called by the garbage collector prior to reclaiming the memory occupied by the object.
C++ supports destructors which are automatically invoked when the object is destroyed.
4
Java does not include structures or unions because the traditional data structures are implemented as an object oriented framework.
C++ includes structures.
5
Java includes automatic garbage collection.
C++ requires explicit memory management.
6
Java has built in support for threads. In Java, there is a Thread class that you inherit to create a new thread and override the run() method.
C++ has no built in support for threads. C++ relies on non-standard third-party libraries for thread support.
7
Pointers, references, and pass-by-value are supported for all types (primitive or user-defined).
All types (primitive types and reference types) are always passed by value.


Q2: Explain the Java Platform.
Answer:
  • It is a software-only platform and it runs on top of other hardware-based platforms like UNIX, NT etc.
  • Java has a set of classes written in the Java language. Such classes are called the Java Application Programming Interface (Java API). It runs on the Java Virtual Machine.
  • Java Virtual Machine (JVM) is a software that is installed on the hardware platforms. JVM uses Byte codes as the machine language.

Q3 : What are the uses of Java packages? 
Answer:
Java package is a namespace. It helps to group a set of related classes and interfaces together. e.g. java.lang package is used to  group classes to the design of the Java programming language. Packages play a significant role in resolving conflicts in class names. 

For example, in the real time world we keep documents in one folder, images are kept in a separate folder and scripts or code are kept in a different folder. Packages keep classes in different packages for better organization of source code and also to resolve conflicts if class names are the same.

In order to create a package for your class use the statement below as the first statement - 
package com.abc.pqr;

Here, package is the keyword in Java and com.abc.pqr is the package name.

If you are going to import any other class then import the package in your class as,
import java.io.*;


Q4: What is Classpath in Java?
Answer: Classpath is a parameter in the Java Virtual Machine. It specifies the location of user-defined classes and packages. It can be set either on the command-line or through an environment variable.

Have you noticed the error below while running the  Java program?
Exception in thread "main" java.lang.NoClassDefFoundError: com/abc/pqr/MyWorld

If so, then you have not set the classpath in your system. To resolve this issue you can use one of the approaches below -

1. Set your project in the CLASSPATH environment variable of your system. e.g. "c:/TestProject"
2. Set the jar file of your project in the CLASSPATH environment variable of your system. This jar file should contain your .class file.to have a jar file e.g. we need to set the "c:/TestProject/HelloWorld.jar"" jar file in CLASSPATH and this .jar file has the MyWorld.class file in it. 
3. Run it with –cp or –classpath commands as shown below:
c:\>java –cp c:/TestProject com.abc.pqr.MyWorld
OR
c:\>java -classpath c:/TestProject/HelloWorld.jar com.abc.pqr.MyWorld


Q5: What are the advantages of the Object Oriented Approach?
Answer: Java is the Object Oriented Language and it comes with the benefits mentioned below due to its Object Oriented approach:
  1. We can achieve code re-usability with help of implementation inheritance and object composition.
  2. Everything in Java is an object and it maps to the real world. E.g vehicles, customers
  3. It helps to create modular architecture with the help of objects, systems, frameworks etc which are the building blocks of the big application.
  4. An Object Oriented Program forces designers to go through an extensive planning phase, which makes for better designs with less flaws.
  5. An Object Oriented Program is much easier to modify and maintain than a non-Object Oriented Program. 



Thursday, August 9, 2018

Important File and Directory permissions in Unix


Are you looking for how permissions works in the Unix Operating system? Would you be interested in knowing what types of permissions are available in the Unix environment? The details about permissions in the Unix are explained in this article. This article also provides highlights on various characteristics about File and Directory permissions.


What are the types of file permissions?

The file permissions categories are as follows:
  • Owner permissions − It determines what actions the owner of the file can perform on the file.
  • Group permissions − It determines what actions a user, who is a member of the group to which a file belongs, can perform on the file.
  • Other (world) permissions − It indicates what action all other users can perform on the file. 

How to display Permissions?

  •  To display permissions on screen use ‘ls –l’ command -> read (r), write (w), execute (x)          e.g.
          ls –l /usr/tmp
    -rwxr-xr-- 1 testuser users 1017 Jan 2 00:10 myfile
    drwxr-xr-- 1 testuer users 1017 Jan 2 00:10 mydir
  • Here, the first column represents different access modes, i.e., the permission associated with a file or a directory. The first character ‘-‘ stands for the file and the character ‘d’ stands for the directory.
  • The first three characters (2-4) represent the permissions for the file's owner. For example, -rwxr-xr-- represents that the owner has read (r), write (w) and execute (x) permission.
  • The second group of three characters (5-7) consists of the permissions for the group to which the file belongs. For example, -rwxr-xr-- represents that the group has read (r) and execute (x) permission, but no write permission.
  • The last group of three characters (8-10) represents the permissions for everyone else. For example, -rwxr-xr-- represents that there is read (r) only permission. 

Understanding File access modes

There are three types of file access modes: Read, Write and Execute. Mentioned below are the details about each mode:
  • Read : Grants the capability to read, i.e., view the contents of the file.
  • Write: Grants the capability to modify or remove the content of the file.
  • Execute: User with execute permissions can run a file as a program. 

Understanding Directory access mode

There are three types of directory access modes: Read, Write and Execute. Mentioned below are the details about each mode:
  • Read: Access to a directory means that the user can read the contents. The user can look at the filenames inside the directory.
  • Write: Access means that the user can add or delete files from the directory.
  • Execute: Executing a directory doesn't really make sense, so think of this as a traverse permission. A user must have execute access to the bin directory in order to execute the ls or the cd command. 

How to change permissions?

Use the chmod (change mode) command to change permissions.
There are two ways to use chmod:
  1. The symbolic mode
  2. The absolute mode 

Symbolic mode

With symbolic permissions we can add, delete, or specify the permission set we want by using the operators
 + : Adds the designated permission(s) to a file or directory
  - : Removes the designated permission(s) from a file or directory
  = : Sets the designated permission(s)
a) Change permission for other users
                  chmod o+wx test1file
b) Change permission for owner user
                  chmod u-x testfile
c) Change permission for group
                 chmod g=rx testfile
d) Change permission for users and groups
                 chmod o+wx,u-x,g=rx testfile

Absolute Mode

Use a number to specify each set of permissions for the file

Number
Description
Detail
0
No permission
---
1
Execute permission
--x
2
Write permission
-w-
3
Execute and write permission: 1 (execute) + 2 (write) = 3
-wx
4
Read permission
r--
5
Read and execute permission: 4 (read) + 1 (execute) = 5
r-x
6
Read and write permission: 4 (read) + 2 (write) = 6
rw-
7
All permissions: 4 (read) + 2 (write) + 1 (execute) = 7
rwx

Examples

a) chmod 755 testfile (all, read-write, read-write)
b) chmod 743 testfile (all, read,write-execute)
c) chmod 043 testfile (no permission, read, write-execute)


More details about the file and directory are explained with examples in the video below:



Wednesday, August 8, 2018

Informatica Master Data Management - MDM - Quiz - 4

Q1. Which is not Correct regarding Landing tables?

A. A Single landing table could receive data from different source systems.
B. A Staging table is mapped to only one Landing table.
C. Landing tables do not have system columns.
D. Delta Detection is not a Landing table property.

Q2. Which feature is supported by Informatica Data Director?

A. Task oriented workflow capability.
B. A mechanism for hiding(masking) information based on security roles.
C. Localization of the Lookup display values.
D. All choices are correct.

Q3. When you select view rejects from the batch job log, you can see the reason why each record was rejected

A. True
B. False

Q4. Which meta data table is used to track the changes to a base object?

A. C_baseObjectName_HXRF
B. C_baseObjectName_HCTL
C. C_baseObjectName_HIST
D. All are correct

Q5. When performing data analysis which one of the following would you look for?

A. The availability of primary keys.
B. Which fields can come from each source.
C. Data Cardinality.
D. All the choices are correct.

Previous Quiz             Next Quiz

Revolutionizing Healthcare Management: IDX Systems

In the dynamic landscape of healthcare, where precision and efficiency are paramount, IDX Systems stands out as a beacon of innovation. Spec...