Tuesday, March 11, 2008

FATAL ERROR : Unexpected Condition in file [\ZeusbuilderProduction\view\powrmart\server\dmapper\widget\wjoiner.cpp]

"Unexpected Condition at at wjoiner.cpp: line 8772" when running a PowerCenter session with Joiner transformation
Problem Description

When running a PowerCenter session with the mapping that has a Joiner Transformation with sorted input using a Sorter transformation, the session fails with the following errors in the session log in different versions of PowerCenter:

FATAL ERROR : Unexpected Condition in file [\ZeusbuilderProduction\view\powrmart\server\dmapper\widget\wjoiner.cpp] line [8772].Contact Informatica Technical Support for assistance.Aborting this DTM process due to an unexpected condition.

PowerCenter 7.1.x:

FATAL ERROR : Unexpected Condition in file [/home1/build71/pm711n/server/dmapper/widget/wjoiner.cpp] line [8449].Contact Informatica Technical Support for assistance.Aborting this DTM process due to an unexpected condition.


Cause
This is due to insufficient buffer memory being allocated to run the session.
Solution

To resolve this set the DTM buffer block size to AUTO.
However, if you do not want to run the session with AUTO, then set the DTM buffer size and Buffer Block size to the value that is specified in the session when run in the AUTO mode.

PowerCenter 7.1.x

To resolve this in versions prior to 8.x increase the DTM buffer size.


Applies To
PowerCenter

More Information
Alternatively you can clear the Sorted Input option in the Joiner transformation to avoid this error.
Reference

"Allocating Buffer Memory" under "Optimizing Sessions" in the PowerCenter Performance Tuning Guide

"TM_6795 ERROR: Session or its instance is invalidated and the Integration Service is configured not to run impacted sessions."

"TM_6795 ERROR: Session or its instance is invalidated and the Integration Service is configured not to run impacted sessions."
Problem Description
A PowerCenter session fails to run and the following error is in the workflow log:
INFO : LM_36488 : (655482|7711) Session task instance [s_session] : [TM_6721 Started [Fetch Session from Repository].]
ERROR : LM_36488 : (655482|7711) Session task instance [s_session] : [TM_6795 ERROR: Session or its instance is invalidated and the Integration Service is configured not to run impacted sessions.]
ERROR : LM_36320 : (655482|7197) Session task instance [s_m_DP_All_Functions_sybs]: Execution failed.
INFO : LM_36318 : (655482|7197) Workflow [all_function_sybs]: Execution succeeded.

Cause
This error will occur when the session has been invalidated due to a dependent object being updated and the Run sessions impacted by dependency updates Integration Service property is set to 'No' (the default setting).
Solution
To run the session successfully do the following:
  1. Validate session in the Workflow Manager.

  2. Save the workflow.

  3. Run the workflow.


More Information
To run the session after updates without validating (not recommended) do the following:
  1. Login to the Informatica PowerCenter Administration Console.

  2. Select the Integration Service.

  3. Select the Properties tab.

  4. Expand the Advanced Properties

  5. Select Edit.

  6. Select Run sessions impacted by dependency updates.

  7. Click OK.

Monday, March 10, 2008

XML Reader error:Downcasting from UNICODE to ASCII'.

problem
sources are XML Files.When I run the
workflow some sessions are failing and the error mesg in log is
'XML Reader error:Downcasting from UNICODE to ASCII'.This happens
only with some XML files.

solved

Goto
Informatica PowerCenter Administration Console (8.1) >> change ascii to unicode

You can configure general properties for the Integration Service. You can override some of these properties at the session level or workflow level. To override these properties, configure the properties for the session or workflow.

To edit the general properties, select the Integration Service in the Navigator, and then click the Properties tab > General Properties > Edit.



Solved

others fix the xml file :


Please find the below link to get the XML parser tool.

www.architag.com/xray/

you can use this tool to parse your xml.

you have to update your source xml code page to UNICODE.





error importing xml with xsd: xsd too big (more than 500MB)

Problem :
When creating an xml source using an xsd, I am getting an error
saying that the xsd used is too big. It lets me complete the
import but the source is not valid. When trying to validate, I
get the following error message: "ThisXML definition is too
large. The total length of all columns must not exceed 500
MB""The XML definition is not valid"

Solve
In source analyzr open the source in edit xml mode (in xml editor) then
goto TOOLS.....>OPTIONS....>Override all infinite lengths with value(tik
this option and set the value to 200 or less)

Friday, March 7, 2008

Invalid lookup override

Problem :
LOOKUP transformation : SQL Override
SELECT DISTINCT TIM_DT_ID FROM L_TIM_DT
WHERE TIM_DT_ID >= '2006-01-01'

Error :
Severity Timestamp Node Thread Message Code Message
WARNING 3/6/2008 18:12:23 node01_quadjt MAPPING DBG_21263 Invalid lookup override

Solved :
while overriding the lookup you must have to give the
alias name as exisiting port name,

SELECT DISTINCT L_TIM_DT.TIM_DT_ID as TIM_DT_ID FROM L_TIM_DT
WHERE L_TIM_DT.TIM_DT_ID >= '2006-01-01'

Monday, February 11, 2008

"PCSF_46007 No gateway connectivity is provided for domain. ERROR: Cannot connect to Integration Service" when running the PowerCenter 8.1

"PCSF_46007 No gateway connectivity is provided for domain. ERROR: Cannot connect to Integration Service" when running the PowerCenter 8.1 pmcmd connect command
Problem Description

When running pmcmd connect command to connect to a domain, the following error is displayed:

PCSF_46007 No gateway connectivity is provided for domain[xxx].
ERROR: Cannot connect to Integration Service [xxx]

The issue is not resolve even when the following command is used to update the Gateway node in the domains.infa file:

Infacmd(.sh) updateGatewayInfo <-domainname|-dn> name_of_domain <-gatewayaddress|-dg> domain_gateway_host:port


Cause
This issue is caused when the domains.infa already contains the entry for the domain and its details but the pmcmd command is not able to find the domains.infa file to read the information.
Solution

To resolve the issue, add the environment variable INFA_DOMAINS_FILE.

To add the environment variable, do the following:

Windows:

  1. Right click My Computer.

  2. Click Properties.

  3. Select the Advanced Tab

  4. Click Environmental Variables...

  5. Click New... under System variables.

  6. Enter the following:

    • Variable Name: INFA_DOMAINS_FILE
    • Value Name: C:\Informatica\PowerCenter8.1.0\domains.infa.
    Note

    The domain.infa filename must be included in the path as show above.

  7. Click OK three times.

UNIX:

In a UNIX C shell environment, type the following:

setenv INFA_DOMAINS_FILE /domains.infa

In a UNIX Bourne shell environment, type the following:

INFA_DOMAINS_FILE=/domains.infa
export INFA_DOMAINS_FILE

Applies To
PowerCenter 8.1

Friday, September 14, 2007

[Informatica][Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket

Problem : Install informatica 8.1 on SQL Server 2000
Cause : SQL Server 2000 need service pack 4 and firewall need to switch off

SQL Server JDBC Connection Errors: Error establishing socket, connection refused...

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)


SQL server 2005 JDBC Driver:
com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host has failed.
java.net.ConnectionException: Connection refused: connect
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerException.connect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)


For this kind of database connection problem, there are always two distinct issues:
  1. The SQL server itself is not running or TCP/IP is disabled. That can be confirmed by run

    netstat

    and see it is listed there. And then run

    telnet localhost 1433

    and see it can connect (or whatever port number).

  2. Even if the server is running, a client program such like jdbc may still fail to connect to it because of a

    firewall

    For testing, you can turn off the XP firewall. And if you have other firewall running, check the firewall log and see any activities that might be related.

You can also verify whether or not your server is running from the

    SQL Server Network Utility

    on the server, or from another client utility such as

    SQL Query Analyzer

    or a command line utility such as

    osql

To check the enabled protocols for a server, follow these steps:
  1. In SQL Server 2000, start the SQL Server Network Utility (svrnetcn.exe).
  2. On the General tab, select the instance of Microsoft SQL Server on which to load an installed server network library.
  3. Make sure that TCP/IP appears in the Enabled Protocols list.
  4. To find the port number, in the Enabled Protocols list, click TCP/IP, and then click Properties. The Properties dialog box displays the port number.
There is an known bug: SQL Server May Not Listen on TCP/IP Sockets When TCP/IP is the Only Protocol

In a SQL Server 2000 custom installation, if TCP/IP is the only selected protocol and all other protocols are disabled, SQL Server may not initialize and listen on TCP/IP sockets. The Server Network Utility shows that it is listening only on TCP/IP port 1433 even though it is not. To identify if SQL Server is not listening on TCP/IP, check to see if the value for TcpPort in the following registry key is incorrectly set to blank or empty:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\ [Instance Name]\MSSQLServer\SuperSocketNetLib\Tcp\REG_SZ TcpPort=

To work around this problem, follow these steps:

  1. Start Registry Editor (Regedt32.exe).
  2. Locate the TcpPort value in the following key in the registry:

    Named instance:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\[InstanceName]\MSSQLServer\SuperSocketNetLib\Tcp\TcpPort

    Default instance:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer
    \MSSQLServer\SuperSocketNetLib\TCP\TcpPort

  3. . On the Edit menu, click String. Enter either of the following values:
    a. Type the port number you want. -or-
    b. Enter a value of 0 to have SQL Server dynamically detect and assign a port the next time SQL Server starts.

  4. Click OK.
  5. Quit Registry Editor.

SQL Server 2000 Service Pack 4 (SP4):

You are running a version of Microsoft SQL Server 2000 or Microsoft SQL Server 2000 Desktop Engine (also called MSDE) that has known security vulnerabilities when used in conjunction with the Microsoft Windows Server 2003 family. To reduce your computer's vulnerability to certain virus attacks, the TCP/IP and UDP network ports of Microsoft SQL Server 2000, MSDE, or both have been disabled. To enable these ports, you must install SQL Server 2000 Service Pack 3a, or the most recent service pack for Microsoft SQL Server 2000 or MSDE from http://www.microsoft.com/sql/downloads/2000/sp4.mspx.

Monday, August 13, 2007

Oracle : Truncate Table in Procedure

DDL and commands like TRUNCATE are not allowed in Oracle PL/SQL blocks. However, there is a workaround. Native dynamic SQL with the EXECUTE IMMEDIATE command will do the trick. Here is an example:

create procedure MyProc
as
begin
execute immediate 'truncate table MyTable';
end;
The SQL is executed as if from a host application. Pretty much anything you can run from a SQL prompt can be run from inside a PL/SQL block this way. Because running dynamic native SQL executes a string containing SQL, PL/SQL suddenly becomes very flexible. Dynamic native SQL in Oracle allows you to combine the benefits of a host language with the benefits of stored procedures. Here's an example of the previous procedure changed to include a parameter for the name of the table name to be truncated:
create procedure MyProc (pTable in varchar2)
as
begin
execute immediate 'truncate table ' || pTable;
end;

Wednesday, August 8, 2007

Connected v/s Unconnected Transformation

Tips :

want to know the use of unconnected transformation.

Why shd we use unconnected transformation, if we can achieve same with connected one?

Which gives better performance, connected or unconnected and why?

Answers 1 :
Depending upon the scenario we use the conn and unconn tr..

for e.g
In u r mapping u require same lkp multiple times,creating lkp multiple times put it in flow is not a good idea..which occupies more cache ...
Instead of that create one unconnectes lkp use multiple times where ever u want ..which very fast..

Answers 2:
u can use conn lookup but if u need 1 row so go for unconn lookup coz u can
use it multiple time in same mapping from multiple expression trn.
i hope it will help to u

Benefit :
The benefit of an unconnected lookup is that you can do conditional lookups (using IIF,DECODE, etc.). In other words, you can control when the lookup is used with in unconnected lookup.

unconnected lookup gives better performance because it's not connectd to mapping pipeline.
so when data transform is very fast compare to connected transformation.

unconnected look up can be used when you need only one port to be
returned from the look up table or if the same is to be used
many times in the mapping. and moreover unconnected lookup gives
better performance as it just acts as a function call. but if
more ports has to be returned from look up table we must use a
connected look up


Distinct & duplicate records to 2 different targets

Problem :
source is flat file which contains duplicates,we have 2 targets in the mapping,we need to pass unique records to one target & records which is repeating(duplicates) to another target.
can anyone please tell how we can achieve this.

Solutions 1:
Sort the data. Create a field in an Expression that counts the duplicate rows by comparing it to the previous row. Use a Router with two groups: where count=1 and where count >1.

Solution 2 :
put an aggregator transformation and do group by all ports and add a count(*) function in another output port and based on count(*)>1 or =1 you can use router to divert the distinct and duplicate records.

Solutions 3:
u can also pass all duplicate records.
by following these steps:

1. take sql qualifier with sorted input checked on.
2.pass all rows to aggregator , n do group by all
ports, and take on port (count(*))
3. take another sql qualifier ,
4. use joiner with full outer join n join 2 & 3. with
condition (port matching)
5. take 2 filters to separate duplicate row & distinct
rows.. based on condn: count(*)>1 n count(*)=1 and
pass it to respective targets.