cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Stay updated on what is happening on the PTC Community by subscribing to PTC Community Announcements. X

Two Version of Windchill on Same Machine

KG_11714884
6-Contributor

Two Version of Windchill on Same Machine

Version: Windchill 12.1

 

Use Case: I have two version of WC installed on my machine. but only one instance is running.


Description:

when i want to run previously installed instance of WC, i run respective http server and WC shell to start that instance. but it will start running latest one only.

is there any way to run both version of WC on same machine?

4 REPLIES 4

Take a look:

avillanueva
22-Sapphire II
(To:KG_11714884)

What OS? Sounds like there is an issue with environment variables.

I agree with @avillanueva.  It sounds like maybe wt_home is set in the OS environment variables.  This response is Windows centric, but the same concepts apply to Linux.

The two installations need to be fully independent.  So...

  • Choose a DB release that is supported by both Windchill versions.
  • Don't install Java with the operating system because multiple releases have multiple unique Java requirements.  Extract the zipped Java bundle to the Windchill load point and give it a generic name: D:\PTC\Windchill_12.1\Java.
  • Ensure the Windchill variables are not set in the OS.  Set your environment variables in the properties and batch files that launch and run Windchill.

 

The Windchill shell shortcut created by PTC doesn't use any variables.

Target: D:\PTC\Windchill_12.1\Windchill\bin\windchill.exe -w "D:\PTC\Windchill_12.1\Windchill" --java="D:\PTC\Windchill_12.1\Java\bin\java.exe" shell
Source: D:\PTC\Windchill_12.1\Windchill

 

If you are running a CMD shell and launching the shell environment, ensure you are in the correct load point.

pushd D:\PTC\Windchill_12.1\Windchill\bin

windchill shell

 

Other thoughts....

folder mappings

The old PTC demo images used drive substitution/folder mappings to replace content associated to a common software load point.  For instance, we want the Windchill load point to consistently be D:\PTC\Windchill_12.1, but we have two installs: E:\12.1.1.2\PTC\Windchill_12.1 and E:\12.1.2.4\PTC\Windchill_12.1.

:: Remove mapping

subst d: /D

:: Create mapping

subst d: E:\12.1.1.2

This technique really isn't necessary unless you want a common load point (D:\PTC\Windchill_12.1) and both installs are different builds of the same major.minor version (12.1.x.x).  I mention this only in case you are using drive substitution/folder mappings and maybe forgot to switch the mapping before attempting to launch the second version.

 

Windows Services

On Windows, even in development images, I register Windchill and Apache as Windows services and set them to manual launch.  Then I use a batch file to start the appropriate services for the version I want to launch.

net start 12.1HTTPServer

net start 12.1Windchill

On Linux, many companies use a bash script registered through .bashrc to do the same start/stop commands via command line.

 

Named Java Processes

Naming the Windchill processes helps to quickly identify which version is running, what process is doing something, or what process(es) crashed.

xcopy /y %java_home%\bin\java.exe %java_home%\bin\java_sm_121.exe 

xcopy /y %java_home%\bin\java.exe %java_home%\bin\java_ms_121.exe 

xcopy /y %java_home%\bin\java.exe %java_home%\bin\java_bgms_121.exe 

and in Site.xconf...
<!-- Named Processes -->
<Property name="wt.manager.cmd.BackgroundMethodServer.java.cmd.quoted" overridable="true"
targetFile="codebase/wt.properties"
value="$(wt.jdk)\bin\java_121_bgms.exe"/>
<Property name="wt.manager.cmd.MethodServer.java.cmd.quoted" overridable="true"
targetFile="codebase/wt.properties"
value="$(wt.jdk)\bin\java_121_ms.exe"/>
<Property name="wt.manager.cmd.ServerManager.java.cmd.quoted" overridable="true"
targetFile="codebase/wt.properties"
value="$(wt.jdk)\bin\java_121_sm.exe"/>

 

Just some ideas.

Adding to what @mmeadows-3 has to say.

You will need multiple ip addresses configured for apache. Then set the LIsten directive appropriately for each apache instance. Apache by default tries to glom onto all ip addresses.

You might be able to get by with just different ports however probably easier to have an ip address for each instance.

Announcements


Top Tags