In a typical relational database, tables are joined together via foreign key relationships. It is also common for macros and procedures to reference tables, forming dependent relationships. When making administrative decisions about database objects, it is important to know about its object relationships. For example, copying or migrating a table or stored procedure from one database to another requires knowing what other tables the object is dependent on. These other tables must also be copied to maintain its integrity. It is also important when deleting an object from the database that you know what other objects (tables, macros, stored procedures) are referencing that object. The latest version of Teradata Plug-in for Eclipse provides a Dependency Browser that can discover object relationships

Prior to Teradata Plug-in for Eclipse 13.0, the user could only view database objects as they appear in the Data Source Explorer tree or Teradata View. The Data Source Explore simply displays the hierarchical relationships, such as schemas contain tables and tables have columns, or schemas contain views and views have columns. But it does not show that views reference tables that are joined by columns. Or the Teradata View displays the detailed data about the object, such as its list of columns, indexes, or constraints. But you would have to decipher the SQL to determine which tables a view references.

With Teradata Plug-in for Eclipse 13.0, the user can select an object from the Data Source Explorer and display its object relationships. Such relationships include what objects a particular object is referenced by and what objects a particular object references. The Dependency Browser uses Teradata Meta Data Services to find the dependent objects for a given object in the database. Then, through the Interdependency Browser user interface, displays a graphical representation of the object relationships. Refer to the section below, “What is Teradata Meta Data Services”, for more details on setting up Teradata Meta Data Services.

Show Interdependencies

To invoke the Interdependency Browser, open the Data Source Explorer, right click on the object you wish to browse, and select the Show Interdependencies menu option.

Below is a screen capture of the Interdependency Browser for the schema, “productA”. The diagram shows the schema object for “productA” highlighted, with its related tables, views, macros, and stored procedures.

The diagram also shows the following relationships:

  • Table 'Shipment' and its foreign key relationship to table 'Customer'
  • Macro 'ListCustomersRegion' and its dependent table 'Customer'
  • Stored procedure 'CostOverValue' and its dependent view 'CustomerShipments'
  • View 'CustomerShipments' and its join relationship to table 'Customer' and table 'Shipment'

 The Interdependency Browser further lets you customize the display by selecting the type of objects to show.

NOTE: You must have Teradata Meta Data Services configured for your database schema or you will get the following message when you select the “Show Interdependencies” option. Refer to the section below, “What is Teradata Meta Data Services”, for more details on setting up Teradata Meta Data Services.

Find Objects

The Teradata Plug-in for Eclipse also provides an interface to search for database objects given a matching text value. This feature uses the Dependency Browser to locate objects based on name searches. This feature is extremely useful in locating objects by name or finding unnamed objects, such as anonymous table constraints. Through the Find Objects Dialog, the user can enter the text value, a search pattern (such as starts with, ends with, or contains), and select what object types to search for. The results are displayed, grouping the objects by object type.

To invoke the Find Objects Dialog, right click on a database, schema,  or object folder in the Data Source Explorer and select the Find Objects option from the Teradata menu.

Below is a screen capture of the Find Objects Dialog, selecting the schemas, ‘ide’, ‘productA’, and ‘autoide’, to search and a search value that starts with the text ‘cust' across all object types.

Below is a screen capture of the results from the above search.

The results are arranged by object type. The user can double click on an object to see a more detailed display of the object in the Teradata View or compare two objects of the same type by selecting the objects from the Find Results window and clicking the ‘Compare Objects’ button .

Compare Objects

The following screen capture shows the object comparison dialog for the Customer tables from schemas ‘ide’ and ‘productA’.

What is Teradata Meta Data Services?

Teradata Meta Data Services (MDS) provides an infrastructure for managing Teradata Warehouse metadata. MDS includes a repository database where metadata is stored in Teradata tables, as well as two predefined Application Information Metamodels (AIMs) and administrative and support tools for managing metadata. Application Information Metamodel defines how the metadata is stored in the repository. It consists of classes, properties, and relationships that refer to metadata objects. The MDS metadata contains information on the database objects, such as properties and relationships or associations between objects. MDS is part of the Teradata Tools and Utilities product group. Refer to the Teradata Meta Data Services Installation and Administration Guide for more information on installing and administering Teradata MDS.

Teradata Meta Data Services also provides a web service interface, MetaJavaWS, for remote calls to MDS APIs. This web service interface is used by the Dependency Browser, mentioned above, to access MDS. Installation of MDS should also include setting up the MDS web service. This is described in the Teradata Plugin for Eclipse - Release Definition, Installation chapter, which is available on the Teradata Download Center’s Teradata Plug-in for Eclipse download page.

Once MDS and the MetaJavaWS web service are configured and your database has been loaded into the MDS repository, you will need to configure the Teradata Dependencies Preferences within the Eclipse environment. This allows the Dependency Browser to communicate with the MDS web service. Here are the steps for setting the Teradata Dependencies Preferences:

  • Go to the Eclipse toolbar and select Window>Preferences
  • Open the Teradata Datatools Preferences>Dependencies Preferences page
  • Enter the name of the Meta data Services Web Service system
  • Enter the port number for the web service
  • Enter the user credentials to access Meta Data Services
  • Click the 'Test User' button to verify that the information was entered correctly and the web service is running. If successful, a pop-up dialog appears displaying the list of Teradata Database systems managed by Meta Data Services.

If your system is not in the list, go to the Teradata Meta Data Services MetaManager application and use the Database Administration utility to load the system into the Meta Data repository.

Again, refer to the Teradata Plug-in for Eclipse - Release Definition, Installation - Teradata Meta Data Services Web Service Client Support section for more information.


For further information on installing the Teradata Plug-in for Eclipse, refer to the “Getting Started with Teradata Plug-in for Eclipse” article, also under the Tools category.


bmogilev 1 comment Joined 02/09
09 Sep 2009

Is Teradata MDS a new product which will become a part of TTU ?

Boris Mogilevsky

fgrimmer 660 comments Joined 04/09
09 Sep 2009

No. Teradata Meta Data Services has been around for quite some time. It is also part of TTU.

asamoal 6 comments Joined 08/09
11 Nov 2009

Hello there, I have been for the last month or two searching for the MDS Web Service package to test access to the MDS Repository from Eclipse with the MDSWSClient library included in the Teradata plugin.

I have not as yet been able to locate this MetaJavaWS/MetaAccessWSService?wsdl in MetaJavaWS.war package.

In the Eclipse plugin documentation it indicates this web service folder is installed here:

"Deploying the MDS Web Service
MetaJavaWS.war is located in the /ws/tc (Tomcat) or /ws/gf (GlassFish) directory.

To deploy the MDS web service on Tomcat, copy the MDS WAR to the /webapps directory or use the Tomcat Web Application Manager Deploy option.

Be sure to reference the /ws/tc directory for the location of the MDS web service WAR for Tomcat.

Restart the Tomcat web server using the Apache Tomcat Properties dialog by clicking on the START button.
To deploy the Teradata Meta Data Services web service on GlassFish, bring up the GlassFish Administrator Console and click Deploy on the Web Applications tab. This will bring up a screen that will allow you to browse for the location of the Teradata Meta Data Services web service WAR file. Be sure to reference the /ws/gf directory for the location of the Teradata Meta Data Services web service WAR for GlassFish. Click Save and restart the GlassFish web server."

I have just downloaded the TTU 13 and now looking to establish if this gem is really there.

If anyone has any idea where and how and what, please please please, do ..

asamoal 6 comments Joined 08/09
11 Nov 2009

ANd yes, we also have the MDS setup in our environment... All but the WS...

asamoal 6 comments Joined 08/09
11 Nov 2009

And the one who set it up is no longer in the picture...

fgrimmer 660 comments Joined 04/09
12 Nov 2009

The MDS Web Service is available with MDS 13.00.01. Please verify that you have the correct version installed.

fgrimmer 660 comments Joined 04/09
12 Nov 2009

The WSDL is not actually part of the War file. When the War gets deployed on the Web Server, the WSDL file is generated and will appear in the MDS directory.

asamoal 6 comments Joined 08/09
17 Jan 2013

Hello there, After almost 3 years I have a need to reply to this message and again ask for help; or let you know what I am going through...

Simply put, the WSDL does not generate!

Secondly, I have noted that the WS files need to be deployed with the metajava.jar else they are not deployed properly. I have tested this both on TC6.0.36 and GF3.12.2 build 5.

Finally, I used Eclipse to build the sample Search project and run into

java.lang.UnsatisfiedLinkError: C:\Program Files\Teradata\Teradata Meta Data Services\bin\metajni.dll: Can't find dependent libraries
at com.teradata.mds.MetaRepository.initialize(
at mds.samples.SampleSearch.main(

asamoal 6 comments Joined 08/09
17 Jan 2013

I just found something that could be a defining reason for this very very long standing error!

http://esp50ws19070:28080/MetaJavaWS/MetaAccessWSService?wsdl (This is the request made by TD Studio)

http://esp50ws19070:28080/MetaJavaWS/MetaAccessWS?wsdl (This is what has been deployed!)

fgrimmer 660 comments Joined 04/09
22 Jan 2013

@asamoal, It looks like GlassFish 3.x now uses the service name with the word "Service" appended to the name. To workaround this issue, use the tomcat version of the Teradata MetaData WAR, in the /tc directory, instead of the GlassFish WAR (in /gf).

ak93 3 comments Joined 05/12
22 Feb 2013

I can see the system loaded as that defined in mds when we use the Test user button. but upon checking for interdependence on object we get the following error
com.teradata.datatools.dependencies.TeradataInterdependenciesException: Could not log on user
at com.teradata.datatools.dependencies.mdsimpl.TeradataInterdependencies.(
at com.teradata.datatools.dependencies.TeradataInterdependencies.getTeradataInterdependencies(
at com.teradata.datatools.dependencies.ui.ShowInterdependencies.showInInterdepencencyBrowser(
at org.eclipse.ui.internal.PluginAction.runWithEvent(
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(
at org.eclipse.jface.action.ActionContributionItem.access$2(
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(
at org.eclipse.swt.widgets.EventTable.sendEvent(
at org.eclipse.swt.widgets.Widget.sendEvent(
at org.eclipse.swt.widgets.Display.runDeferredEvents(
at org.eclipse.swt.widgets.Display.readAndDispatch(
at org.eclipse.ui.internal.Workbench.runEventLoop(
at org.eclipse.ui.internal.Workbench.runUI(
at org.eclipse.ui.internal.Workbench.access$4(
at org.eclipse.ui.internal.Workbench$
at org.eclipse.core.databinding.observable.Realm.runWithDefault(
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(
at org.eclipse.ui.internal.ide.application.IDEApplication.start(
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(
at org.eclipse.equinox.launcher.Main.basicRun(
Caused by: com.teradata.datatools.mdswsclient.TeradataMdsWsClientException: Could not get object keys for objectType DatabaseSystem
at com.teradata.datatools.mdswsclient.impl.TeradataMdsWsClient.getObjectKeys(
at com.teradata.datatools.mdswsclient.impl.TeradataMdsWsClient.getObjectKeys(
at com.teradata.datatools.mdswsclient.impl.TeradataMdsWsClient.(
at com.teradata.datatools.mdswsclient.TeradataMdsWsClient.getTeradataMdsWsClient(
at com.teradata.datatools.dependencies.mdsimpl.TeradataInterdependencies.(
... 31 more
Caused by: com.teradata.mdsws.access.MetaException_Exception: META_E_UNKNOWN_USER
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at Source)
at Source)
at Source)
at Source)
at $Proxy32.getClassObjectKeys(Unknown Source)
at com.teradata.datatools.mdswsclient.impl.TeradataMdsWsClient.getObjectKeys(
... 35 more

fgrimmer 660 comments Joined 04/09
25 Feb 2013

@ak93, Have you set the MDS log on information in the Dependencies Preferences page?

ak93 3 comments Joined 05/12
26 Feb 2013

yes i have set the MDS login to metasu and that is working when we test the user in the preferences pane (it display the systme name correctly) . however when checking the interdependencies it fails with the error message posted in my previous comment

fgrimmer 660 comments Joined 04/09
27 Feb 2013

@ak93, That is odd since the exception indicates an UNKNOWN_USER. Can you turn MDS logging on and retrieve the MDS Log and send (please open a new topic on the Teradata Studio forum to attach your log file).

To get the MDS Log: Set logging to “All” from the MetaMgr “Logon” dialog, click the “Configure” button, and from the MDS Configuration dialog that comes up, select the “Logging” tab. In the left panel (“Logging level”) select the “All” radio button and hit Apply. From the Teradata Studio Dependencies Preference Page, click the Test User button. Also recreate the problem and then send the log file to us (the file name is in the box on this dialog).

ak93 3 comments Joined 05/12
09 Mar 2013
You must sign in to leave a comment.