Community Tip - Stay updated on what is happening on the PTC Community by subscribing to PTC Community Announcements. X
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?
Take a look:
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...
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.