DronaBlog

Saturday, August 18, 2018

Informatica Master Data Management - MDM - Quiz - 7

Q1. Which statement describes ORS best?

A. It stores the rules for processing and managing the master data.
B. It comes pre-configured with the MDM hub.
C. It stores user login info for the MDM hub.
D. All the choices are correct.

Q2. Which choice best describes what influences tokenization?

A. Key width.
B. STRIP_ CTAS_DELETE_ RATIO.
C. Fuzzy match column.
D. All the choices influence tokenization.

Q3. Part of child relationship refers to a child record on a many-many relationship that really belongs to one record in primary object

A. True
B. False

Q4. Which statements are correct regarding IDD

A. All interaction between an IDD application and an ORS is through SIF API calls
B. Searching for data in an subject area can be based only on searchMatch SIF API.
C. IDD uses clenasePUT API
D. By default, IDD authenticates users with a SIF call to the hub server.

Q5. Which statements are true regarding trust configuration?

A. All columns in a base object must have trust enabled
B. You can configure trust with no decay
C. You can change trust setting after records have been loaded into base object.
D. Validation rules can downgrade the trust below the minimum trust value

Previous Quiz             Next Quiz

Friday, August 17, 2018

Variables in the Unix system

Are you looking for information about what variables are available in the Unix Operating system? Would you be interested in knowing how to work with variables in the Unix environment? This article provides details about variables used in Unix programming with sample examples.

Introduction

A variable in the Unix environment is used to store values temporarily and use it during program execution. 

A variable can contain only letters (a to z or A to Z), numbers ( 0 to 9) or the underscore character ( _). The standard practice is to use the variable name in UPPERCASE but it is not mandatory. We can write it in lowercase too.
For example: testVar, test1, var1 , 2var, _var 

What are types of variables?

  • Local Variables: These variables present within the current instance of the shell. These are not available to programs that are started by the shell.  They are set at the command prompt.
  • Environment Variables: These variables are available to any child process of the shell. 
  • Shell Variables : A shell variable is a special variable that is set by the shell and is required by the shell in order to function correctly.  These can include environment variables and local variables.

Defining and Initiating Variables 

The syntax for creating a variable is as below
variable_name = variable_value

Here variable 'country' is a scalar variable. A scalar variable can hold only one value at a time.
e.g. country=“India”

Unix shell enables us to store any value - like storing the integer value in the country_cd field
e.g. country_cd=100

How to access value from a variable?

To access value from a variable, we need to use the $ character before the variable name. 
For example,
#!/bin/sh
NAME="Techno Guru"
echo $NAME

How to create the read only variable?

To mark variables as read only by using the readonly command.
The value of  the readonly variable cannot be changed.
e.g.
#!/bin/sh
VAR="Techno Guru"
readonly VAR
VAR="Training"

How to unset variables?

  • Unsetting or deleting a variable directs the shell to remove the variable from the list of variables that it tracks. 
  • Once we unset a variable, we cannot access the stored value in the variable.
  • We cannot use the unset command to unset variables that are marked readonly
e.g.
#!/bin/sh
VAR="Techno Guru"
unset VAR
echo $VAR

The video below provides in-depth knowledge about how to use variables in the Unix environment with the demo.


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.


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...