Monday, November 18, 2013

Q: How to Print data from a Multifile? in ABinitio

Q: How to Print Data of a multifile in Abinitio?

Answer: To Print Data from a Multifile:

m_dump {Location of the DML file} {Location of the Data file};

Ex: m_dump Loader.dml mfile:mfs8/tempfile.dat


Q: CHARACTER SET in AB-initio Effects output?

Q: How a Character Set Effects the Output?

Answer: Th Actual Value Output That DML(M_EVAL) utility prints deepends on the character set it uses.

Ex:

 Lt Suppose i want to Print String DEL in Character st UTF-16 then the output will be 007F.
 if Same String DEL in Character set ISO-8859-1 will Output as 7F.

The same Character set differencee we can see in Unix OS as well.

Ex: $ m_eval ''abc\x7f"'  -------> output: "abc\x7f"
      $ m_eval ' "abc\x7f\u1000" " ---> output: "abc\u007f\u1000"

Thanks,
Anilkumar.

    

Thursday, November 14, 2013

Q: Wht is Abinitiorc File?

Q:What is Abinitorc File?

Answer: The Name itself indicates Abinitio Remote Connection.

Example: if we have two servers ABC and XYZ. we have installed co->operating systems on both the servers. if we want to connect to one server from another server abinitiorc should be there in both the servers.

so that we can communicate to other server from another server.

if we want to conncet to XYZ server from ABC server. we can login iin the below Way:

SSH XYZ

the above command will take you to XYZ server from ABC server.

Sunday, November 10, 2013

Realtime Scenario 9: ORA-12505: TNS:listener could not resolve SID given in connect descriptor

Realtime Scenario 9:

ORA-12505: TNS:listener could not resolve SID given in connect descriptor.

Solution:

This is an Complete Database error. So Please check with database (DBA Administration).

Please wait if is there any issue from DBA Side. if there is no Issue, then Please try login to that database(Just for Confirmation),if you are successfully able to login, Please restart the failed job.

Thanks,
Anilkumar.

RealTime Scenario 8: ORA-01722: INVALID NUMBER

Realtime Scenario 8:

ORA-01722: INVALID NUMBER
Database driver error...
Solutions:

This is little Difficult to find, but please follow the below steps, you can find data which is causing issue.

Below are the steps:

*********************

1-> let suppose i have  a table EXAMPLE which is having below fields.

          1. USER_NAME VARCHAR2(10);
          2. USER_ID NUMBER(3);
          3. PLACE VARCHAR2(20);
          4. PINCODE NUMBER(6); 
          5. DATE_OF_ENTRY  DATE;
          6. COMMENTS VARCHAR2(100);

         now when i execute the below query i got the below error.

         Select * from EXAMPLE:
        error:
        ORA-01722: INVALID NUMBER

2->  The error it is saying that INVALID NUMBER, so we have to check all the FIELDS which are defined as NUMBER Data Type. we should not bother about VARCHAR/VARCHAR2/DATE datatypes.

3-> View the Data for Below 2 Columns from the table EXAMPLE.

              select USER_ID,PINCODE from EXAMPLE;

 Note: Please select the ata for each column independently fromo Table data.(Press f4 on the table, you will get table description an then select data tab)

4->Once the Data is Fetched, please select USER_ID filed in Desending order/Ascending Order(to view Data). So that it will gives you a wrong record which is Different from the Defined Datatype.

5-> Same repeat for the second column PINCODE.

6->From the above 2 steps(Step 4 and Step 5) ,u will know which field is causing the issue.

7-> Please Correct the Bad Record which is Identified. definitly that Record should come from the Source. So please modify the Record in Source end.

8-> Once the Data is Corrected. Please Restart the failed job.

Thanks,
Anilkumar.



Real time Scenario 7: MAX-CORE Value issue in Hash-Joins(Abinitio)

Real Scenario 7: (Abinitio)

Unable to subdivide hash-join input into partitions smaller than
max-core = 157286400 bytes.   This can be caused by a very large number
of records having the same key value.  Either increase max-core to
at least 157483759 or sort and use the merge-join component.


Solution:

This kind of errors we usually face in Sorter/Joiner components in Abinitio. when we use hash -Join Component we should declare Some max core value. lets say (150M) in this scenario.

if we recieve more numbe rof Records, then hash-Join component will not handle those many records with  a MAX-CORE value of 150M. so we have to Increase our Max-CORE value based on the number of records we are Processing.

so once we increased the MAX_CORE value then we are good to start the Abinitio Graph. it should be completed without any issues.

Thanks,
Anilkumar.

Real Scenario 6: ORA-00001: unique constraint (XYZ.EXAMPLE) violated

Real Scenario 6: ORA-00001: unique constraint (XYZ.EXAMPLE) violated
Solutions:
We can solve this issue in the below ways:
****Temporary fix***************
we can allow the number of rejects by using STOP ON ERRORS Property in Session properties to recject the records.
so that all the records whcih are rejecting will be skipped and job will be completed succesfully.
******Permenant fix*************
1->we have to identify the Duplicate record.
   How to find the Duplicate Records in a table:
       ** we need to check the Primary key Constarint which is created on this table.
Example:
lets Say EXAMPLE table is having a Primary key Constraint EXAMPLE_PK which is defined on two columns USER_NAME and USER_ID.
so if my job is failed due to unique constraint violated issue then i need to do the below to check the duplicate records in the table.
   Query to find Duplicates:
      
       select count(*),A.USER_NAME,A.USER_ID from XYZ.EXAMPLE A GROUP BY A.USER_NAME,A.USER_ID having count(*)>1;
this query will fetch the duplicate record in the table EXAMPLE.
2-> if we found any Duplicate in EXAMPLE Table then please keep the valid records and delete the Duplicate Data in the table.
3-> if the indexes are Disabled on the Table, please recreate the indexes.
4-> Please restart the job, it should be completed.
5-> for a permenant fix, please Check the Source side why we got Duplicate records.

if we did not get Any Duplicate Records in Step1(permenant fix), still our job failed due to Unique Constraint error, then we need to check the below:
6-> if there are no Duplicate records in table EXAMPLE, then we need to check the Source of EXAMPLE Table.
Example:
lets say if EXAMPLE table is Sourcoing from SOURCE_EXAMPLE table then do the below.
     to find the Duplicates in the Source table:
select count(*),B.USER_NAME,B.USER_ID from XYZ.SOURCE_EXAMPLE B GROUP BY B.USER_NAME,B.USER_ID having count(*)>1;
*******
Note: if the Primary key is defined on Different Columns, please arrange the Query According to the same.
7->in Source if the records are not valid,then please delete the invalid records. if they are valid then please Sync the Source and tager table Constraint keys.( define Primary keys on Proper fields in match with Source and target tables).
8-> after u done with Deletion of Duplicates, please restrart the job.(make Sure Indexes are Enabled).

Thanks,
Anilkumar.