DronaBlog

Friday, August 17, 2018

Java Interview Questions and Answers - Part 3


Are you preparing for Java interview and looking for material for preparation? Are you also interested in knowing what kinds of questions are normally asked during Java interview? If so, then this article provides detailed questions and answers about Java. Good luck for your interview.

Q1: What is marker interface in Java?
Answer:  The interface with no defined methods is called marker interface. Such interface acts as a marker which tells the compiler that the objects of the classes implementing the interfaces with no defined methods need to be treated differently.

For example, java.io.Serializable, java.lang.Cloneable etc. are marker interfaces 
  • Marker interface also called as ‘tag’ interface as they tag the derived classes into a specific category based on usage.
  • We can write custom marker interface. 

Q2: What is method in Java?
Answer:
  • A Java method in java is a set of statements that are grouped together to perform an operation
  • It can be called at any point in the program using the method's name.
  • The method is a subprogram which works on the data.
  • Method has return type, so it either return some value or it may return void. 

     For example, in the sample code below area() is method. 
    class Triangle 
        public int area(int param1, int param2) {
        return (1/2*param1*param2);
     }

Q3: What is method overloading and method overriding?
Answer:

  1. Method overloading means multiple methods in the same class with the same name but different method signatures. We can define the same operation in different ways for different data.

          For example -
       class Shape {
            public void calculateArea(int param) {…}
            public void calculateArea(int length, int width){}
        }
     
      2. Method overriding means two methods with same name and signatures, one in the parent class and the other one in the child class. We can define the same operation in different ways for different object types.

             For example - In the example below, method name 'area(int length)' is same. The signature of method in parent and child class is also same. Here, the child class Square overrides 'area' method from parent class - Shape.
       class Shape{
             public void area(int length) {…}
        }

       class Square extends Shape {
             public void area(int length) { …}
        }

Q4: Is Java 100% Object Oriented?
Answer: The Java technology is based on Object Oriented concepts. However, it does not follow 100% Object Oriented. Java uses eight primitive data types such as int, float, double , boolean, byte, char, long, short which are not objects.  Hence it is not fully Object Oriented.

Q5: What is an Object in Java?
Answer: Object is an entity which has state and behavior. State is presented through fields and behavior is presented through methods.  Person, Table, TV, Home etc . are examples of an object.

For example, assume person as an object.
It has state - weight, height, gender, eye color, hair color etc.
It has behavior - walk, speak, listen etc.


                                   



Thursday, August 16, 2018

Informatica Master Data Management - MDM - Quiz - 6

Q1. Before you can configure Informatica Data Director(IDD) what must be done?

A. A valid operational reference store(ORS) has been created
B. A complete data model has been set up.
C. Master data has been loaded
D. The stage batch jobs have been completed

Q2. Enable Search by rules - match rules set property is used how ?

A. With fuzzy- match base objects only.
B. Applied to the SIF search Match request.
C. Only when the searchMatch request has a matchType parameter of 'BOTH'.
D. Cannot use any exact match columns in the rule.

Q3. Build Match Groups to remove redundant matches before consolidation.

A. True
B. False

Q4. Which of these are valid child realtionship types in IDD

A. 1:many
B. Lohgical 1:many
C. Part of
D. Part of Primary object

Q5. Which of the valid customization supported by the hub?

A. Custom sequence
B. Custom index
C. Custom Match engine
D. Custom logging procedure

Previous Quiz             Next Quiz

How to enable DEBUG mode match process in Informatica MDM?

Are you facing any issues while running the match process in Informatica MDM? Are you looking for information about how to analyze the issue in the match process? Would you also be interested in knowing how to enable DEBUG mode for match process such as searchMatch API, Match jobs, IDD Extended Search? If so, then this article provides detailed information about it.

Introduction

The match process is one of the critical processes in the MDM hub. Any issue in this process, will impact the business. So to analyze the issue, we need logs in DEBUG mode for the match process. Configure your log4j.xml file to generate a separate match log file. This log file can be used to analyze match issues in the Master Data Management (MDM) Hub and Informatica Data Director (IDD). Match can occur during execution of the searchMatch API, the Match jobs and the IDD Extended Search. 

After making the changes mentioned below in log4j.xml file, it will generate match.log file. It will have details about the matches comparing with each of the match rules separately. It will be helpful to understand the behavior of the match rule configuration. Based on the log file analysis we can fine tune the match rules.  

How to make log4j.xml changes for the match process?

We need to make the configuration changes below in log4j.xml file. This file presents at <Install directory>/hub/cleanse/conf directory.

Add the entry below in the log4j.xml file to generate the  'matchprocess.log' file:

<appender name="MATCH" class="org.apache.log4j.RollingFileAppender">
   <errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler"/>
   <param name="File" value="/data/user/infamdm/hub/cleanse/logs/matchprocess.log"/>
   <param name="Append" value="true"/>
    <param name="MaxFileSize" value="10MB"/>
    <param name="MaxBackupIndex" value="10"/>
    <param name="Threshold" value="DEBUG"/>
    <layout class="org.apache.log4j.PatternLayout">
    <!-- The default pattern: Date Priority [Category] Thread Message -->
     <param name="ConversionPattern" value="[%d{ISO8601}] [%t] [%-5p] %c: %m%n"/>
  </layout>
 </appender>
 <category name="com.siperian.mrm.util" additivity="false">
        <priority value="ON"/>
        <appender-ref ref="MATCH"/>
  </category>
 <category name="com.siperian.mrm.match" additivity="false">
        <priority value="ON"/>
        <appender-ref ref="MATCH"/>
  </category>


The video below provides information about how the match process works in the MDM hub.


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

Understanding Survivorship in Informatica IDMC - Customer 360 SaaS

  In Informatica IDMC - Customer 360 SaaS, survivorship is a critical concept that determines which data from multiple sources should be ret...