Hi Informatica Community:
The Java tranformation code in Mapping Designer requires dependency JAR file as it interfaces with remote server application via Java Client JAR files.
I wanted to understand how the Informatica server (tomcat instance) sets or looks up CLASSPATH by default.
What directories does it look up automatically without any changes to catalina script?
Q: Where do we place the dependent JAR files. Does the following directory automatically added to CLASSPATH. I am trying to search the file where this is set?
<Informatica Installation Dir>/server/bin/javalib
Please help in this regard. We can add CLASSPATH as part of the env setup of the administrator account. I guess it is picked up as well.
The easiest way is to put it in the session's properties tab. There is a entry for the java classpath to add external jar files at run time with having to change environment settings or the server bin directory.
Thanks for the information. I have seen the Session properties on how to add the Java classpath. I have the following questions
1. What is the default Java classpath? Is it <Informatica PWC install directory>/server/bin/javalib.
I understand the Informatica and other dependent JAR files are under different directories including
tomcat work directory. Would like to understand what is default CLASSPATH. I can add one, but
would like to know since new JAR file i am adding may not override the existing classes such
2. How do we specify addiitonal JVM options such as -Dlog4j.configuration=<classpathdir>/log4j.prorperties.in Power Center UI Workflow Manager or Java transform?
I would like to do configuration instead of hard coding the Log4J instance.
If you could provide the mechanism to do that in Informatica Server side, it would be fine.
Should we change catalina.sh or infaservice.sh to add additional Java options to the JV
My understanding is that the <INFA_HOME>/server/bin/javalib is the default classpath for the PowerCenter Integration service when execting workflows and sessions.
The Tomcat folder is for the the Admin Console and other services for the PowerCenter domain and I am fairly certain the integration service does not look at that folder when executing a workflow.
You can add your jar file to the <INFA_HOME>/server/bin/javalib folder and it will work the same as the session classpath.
As for the JVM options. The only way I know to do that is to set a custom property in the Integration Service and restart PowerCenter.
You mentioneed Integration Service in Power Center. I may not permissions for Admin Console.
Is there a way to add via Workflow Manager Session?
In any case, will try this option you mentioned. I wanted to make sure that it is used only for my workflow and NOT others.
Based on your comment, it appears that JVM option will be all for workflows.
The only thing you can do at the session level is add a jar file to the existing classpath which will only affect that session. The JVM options will need to be done at the admin console level and will affect all workflows.
Really appreciate your help in this regard. I will try the JVM option at the admin console level. I want to make sure that Informatica Log4J appenders are included so that the logging of rest of the application (i.e. informatica) is not affected as a result to redirecting to my application log4j.properties.
I would prefer Informatica to support -D option at the individual java transform level. I do not need to add the JAR file in classpath as it is already done (installed on server under <Informatica Install>/server/bin/javalib)
I have posted another one with regards to partitioning and have found answers in some of the documentation.
How is the perfomance of JNI for java transforms? I have done evaluation of C++ to java via JNI more than a decade back and found out it was a huge performance bottleneck.
I understand Informatica is written in C/C++ and use JNI for java transform and other java plugins.