TeamcenterKnowledge

Deployment

Dispatcher: Deployment Checklist

The code is rarely what costs you time. This is.

Deployment shape

Two supported topologies per the admin guide:

  • All local (same host) — Teamcenter, Dispatcher Client, Scheduler and Module together. Right for a first stand-up and for proving a custom translator.
  • Distributed — one Scheduler, many Modules across platforms. Necessary when a translator needs native tooling that only runs on a particular OS.

Install via TEM or Deployment Center. The guide covers installing all components, installing while creating a new configuration, and installing during maintenance on an existing one.

The CHANGE_ME inventory

Every one of these ships as a literal placeholder and will fail at runtime if left:

File Setting What it is
Module/Translators/*/*.bat TC_ROOT Teamcenter install dir. Present in most translator scripts
Module/Translators/*/*.bat PERL_DIR Perl bin dir, for the Perl-backed translators
Module/Translators/*/*.bat TCVIS_ROOT Teamcenter Visualization install, for JT-producing translators
DispatcherClient/conf/DispatcherClient.config DB_Host, DB_Port, User Not used by Teamcenter Engineering. These are Teamcenter Enterprise MUX settings. Leaving them is harmless for TC; the comments say so

Also empty-by-default and often required:

File Setting
DispatcherClient.config Staging.Dir
transmodule.properties Staging.Dir
transscheduler.properties / transmodule.properties MailHost, AdminEmail, CCEmail

Staging.Dir is the one that actually matters. With HTTP file transfer it can be empty (the Module defaults to <Module Home>/Trans). With RMI it must be set on both sides and must map to the same location, because the Module reads files the Client wrote. The comment gives the mapping example: if the client writes to d:/Client/staging/<user>/<guid>/<files>, the Module's Staging.Dir is d:/Client/staging/.

Port and binding agreement

Setting Where Default
Scheduler Port transscheduler.properties 2001
Module Scheduler.URL transmodule.properties rmi://localhost:2001
Client DispatcherServer.URL DispatcherClient.config rmi://localhost:2001
Module Port transmodule.properties 1999
Client Port DispatcherClient.config 2099
BindingName all three DispatcherScheduler

Change localhost to a real hostname or IP the moment anything is on a different machine. If localhost does not resolve to the right interface on the Module host, set Module.Host explicitly.

Post-installation tasks

From the guide's own list:

  1. Create a dispatcher client access rule.
  2. Set up the common staging directory for translator input and output.
  3. Start Dispatcher services.
  4. For Windows service operation, set the system and environment variables the Dispatcher Client needs.
  5. Verify the installation by translating a doc to a zip file (tozipfile, the one active OOTB service).

Optional configuration covered in the same chapter: enabling SSO, updating components for UTF-8, switching a 4-tier client to 2-tier, setting preferences for repeating tasks, and enabling log files for dispatcher requests.

Teamcenter-side preferences

Preference Purpose
DISPATCHER_CLIENT_INSTALLED Gates the Translate menu. Must be true
ETS.PROVIDERS Providers offered in the Translation Selection dialog
ETS.TRANSLATORS.<PROVIDER> Services per provider
ETS.DATASETTYPES.<PROVIDER>.<SERVICE> Which dataset types offer this service
ETS_trans_rqst_referenced_dataset_types Dataset types whose requests may be cancelled and primaries deleted mid-translation
TCM_DISPATCHER_CLIENT_TIMEOUT Client timeout
DISPATCHER_rqst_on_specific_dataset_revision Request targeting behavior
TC_tms_use_dispatcher_for_async_operation Multi-Site: route async ops through Dispatcher
QSEARCH_dispatcher_not_available Search behavior when Dispatcher is down

Import preference bundles with:

preferences_manager -u=<user> -p=<password> -g=dba -mode=import -scope=SITE -action=MERGE -context=Teamcenter -file=<file>.xml

Use -action=override when replacing rather than merging.

Reference bundles ship in DispatcherClient/install/: basic_env.xml, ets_env.xml, fms_env.xml, nx_env.xml, catia_env.xml, catiav4_env.xml, proe_env.xml, simpgen_env.xml, mmvindexgen_preference.xml.

DISPATCHER_CLIENT_INSTALLED=true does not mean Dispatcher is running. It is a Teamcenter-side preference that makes the UI offer translation. A Scheduler and Module still have to exist, be reachable, and advertise the service. Verify the preference and the processes separately.

Throttling, decided up front

Control Scope Default
MaximumTasks (transmodule.properties) One Module, all services 3
MaxLimit in TaskConfiguration.xml One provider+service, all Modules unset
setMaxLimit() on a translator One translator on one Module per translator
NumTasksToSubmitToModule (transscheduler.properties) Batch size before round-robining 3
CpuUsageSubmitFilter Admission by CPU load off; threshold 0.7

The watchdog, set before you run anything big

MaximumProgress=100
MonitorInterval=0.5

Product of these is the ceiling on a single translation: 50 minutes by default. Raise MaximumProgress if your jobs are legitimately longer. Leave it too high and a genuinely hung process blocks a slot until it is killed manually.

Smoke-test order

Test in this order and each failure is unambiguous:

  1. Run the translator script standalone from a command prompt on the Module host. Proves the executable, its licenses, and every CHANGE_ME.
  2. Submit via AdminClient batch XML (runBatch.bat). Proves Scheduler ↔ Module RMI, staging, and isactive. Teamcenter is not involved.
  3. Submit from the rich client Translate menu. Proves the ETS.* preferences and the Translation Selection dialog.
  4. Check the result object in Teamcenter. Proves TaskPrep, DatabaseOperation, and the extract/load preferences.

Skipping to step 3 is the standard mistake. When it fails you have four subsystems to bisect instead of one.

Source: Shipped SDK config files; admin guide chs. 2-5 · retrieved 2026-08-03