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

Community Tip - If community subscription notifications are filling up your inbox you can set up a daily digest and get all your notifications in a single email. X

[Thingworx 8.4] Localhost tomcat error

Clement_D
9-Granite

[Thingworx 8.4] Localhost tomcat error

Hello,
I have a local server since 2 two months and today it stopped working.
My tomcat is not able to start again the server. I try with to launch it with windows service but i have an error and when I look to the log, i have this :

 

[2019-07-23 17:56:24] [info]  [12912] Commons Daemon procrun (1.0.15.0 64-bit) started
[2019-07-23 17:56:24] [info]  [12912] Running 'ThingWorx-Foundation' Service...
[2019-07-23 17:56:24] [info]  [15036] Starting service...
[2019-07-23 17:56:25] [error] [15036] Failed creating java C:\PROGRA~1\Java\JRE18~1.0_2\bin\server\jvm.dll
[2019-07-23 17:56:25] [error] [15036] Le chemin d’accès spécifié est introuvable. //chemin = path in french
[2019-07-23 17:56:25] [error] [15036] ServiceStart returned 1
[2019-07-23 17:56:25] [error] [15036] Le chemin d’accès spécifié est introuvable.
[2019-07-23 17:56:25] [info]  [12912] Run service finished.
[2019-07-23 17:56:25] [info]  [12912] Commons Daemon procrun finished

Is there a way to uninstall my trial thingworx without losing all my server content ? In order to reinstall it later ?
Or is there a way to to change the path. I am new to thingworx server so I don't know what is the right way to troubleshoot this.

Thanks in advance !

1 ACCEPTED SOLUTION

Accepted Solutions

Thanks you all for helping me :)

Finally I have uninstalled thingworx and re-install, so it is now working.

 

However I was wondering where was save the thing and mashup created ?

View solution in original post

26 REPLIES 26
PaiChung
22-Sapphire I
(To:Clement_D)

Did Java perhaps get upgraded recently?

See if that path is still existing or not, else go into your environment variables and define the new path.

(or define the new Java home in Linux)

 

As far as 'not losing things on the server' do you mean  your Thingworx development?

if you have no backups, you could back up the actual database content and restore that.

 

photo_environ_scan.JPGYes, you are right. It was upgrade yesterday but I didn't make the link between the two event due to the delay.

I add the path like you said but I still have the error did I miss something. I add the path on the environnement system. Path highlight on the capture.

Thanks for your help

I made some research and I found that on the setenv.bat the path are write.
So I check if something was wrong but it seems okay, the jre_home is link to my latest java version.
Does someone know why there are ~ are the path name ? Is this some kind of abreviation ?
Is there an another files that I should check for tomcat ?
I used to have two tomcat but i uninstalled the second which wasn't link to thingwork and was more recent.

setenv_files.JPG

Hello,

 

Those "~" are artifacts of FAT16 filesystem, which only supported 8.3 filenames. Apparently Windows still maintains backward compatibility with MS DOS 6.22, which was deprecated 20 years ago. Pretty weird to see it in 2019, but...

 

I'd tried two things if I were you:

 

  1. Put full correct paths in that BAT file, like that:
    SET JRE_HOME=C:\Program Files\Java\jre1.8.0_221
    (do the same for CATALINA_HOME and THINGWORX_HOME as well)
  2. If that doesn't solve it -- why don't you just copy your JRE to something like "c:\jre8", replace the path in your BAT file and try again?

Also keep in mind that your PATH entry is incorrect, you need to remove "\server" from it.

 

For the future, installing all software in some simple directories like "c:\jre8" or "c:\twx" may save few nerve cells (use short lowercase alphanumeric names).

 

/ Constantine

Thanks you for all the useful information and for the best practice. It is good to know that when you begin :)
I will try your solution.

I try the first solution but I doesn't change anything.
Moreover when I try launch manually the server I can see on the log that he goes to the old path:

> [2019-07-24 14:35:13] [error] [ 1536] Failed creating java C:\PROGRA~1\Java\JRE18~1.0_2\bin\server\jvm.dll
Is there other file that I need to change ?

I am changing the path of the jre in order to make it simplier :)

I check thingworx foundation stderr log and I have discover this before my server was down.

WARNING: The web application [Thingworx] appears to have started a thread named [Task-Thread-for-com.mchange.v2.async.ThreadPerTaskAsynchronousRunner@7fa6f1da] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
 org.h2.engine.Engine.openSession(Engine.java:169)
 org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
 org.h2.engine.Engine.createSession(Engine.java:137)
 org.h2.engine.Engine.createSession(Engine.java:27)
 org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:354)
 org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:116)
 org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:100)
 org.h2.Driver.connect(Driver.java:69)
 com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:175)
 com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220)
 com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:206)
 com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:200)
 com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1127)
 com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1114)
 com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:44)
 com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1855)
 com.mchange.v2.async.ThreadPerTaskAsynchronousRunner$TaskThread.run(ThreadPerTaskAsynchronousRunner.java:267)
juil. 23, 2019 1:05:40 PM org.apache.catalina.loader.WebappClassLoaderBase checkThreadLocalMapForLeaks
GRAVE: The web application [Thingworx] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@2707b3e1]) and a value of type [io.netty.util.internal.InternalThreadLocalMap] (value [io.netty.util.internal.InternalThreadLocalMap@38d8a544]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
juil. 23, 2019 1:05:40 PM org.apache.coyote.AbstractProtocol stop
INFOS: Stopping ProtocolHandler ["http-nio-8080"]
juil. 23, 2019 1:05:40 PM org.apache.coyote.AbstractProtocol stop
INFOS: Stopping ProtocolHandler ["http-nio-8443"]
juil. 23, 2019 1:05:40 PM org.apache.catalina.util.LifecycleBase stop
INFOS: The stop() method was called on component [StandardServer[7005]] after stop() had already been called. The second call will be ignored.

This line seems not good :/ (GRAVE = SERIOUS in french)

> GRAVE: The web application [Thingworx] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@2707b3e1]) and a value of type [io.netty.util.internal.InternalThreadLocalMap] (value [io.netty.util.internal.InternalThreadLocalMap@38d8a544]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.

slangley
23-Emerald II
(To:Clement_D)

Hi @Clement_D.

 

When you installed the java upgrade did you install only the JRE?  You need both the JDK and JRE.

 

Regards.

 

--Sharon

I didn't touch jre or jdk because I used java update which is automatic.

Do I need to download manually a new jdk ?

I made research and I understand that jdk include jre and I only need jre for tomcat becuase is for debug purpose.

 

My java configuration says that I am already up to date.

 

 

java_jdk_jre.JPG

 

slangley
23-Emerald II
(To:Clement_D)

Hi @Clement_D.

 

Are you trying to use jdk 12.0.1 with ThingWorx?  That version is not currently supported.

 

Try this:

 

  1. Navigate to <tomcat_home>\bin
  2. Look for a file with a name similar to Tomcat8w.exe.  The filename for your installation may vary somewhat.  Make sure to look for a Tomcat executable with "w" in the name.
  3. Double-click to run it.
  4. If it runs successfully, select the Java tab:

 

Is "Use Default" selected?

If not, what path exists for Java Virtual Machine?

Is the path accurate?

 

Regards.

 

--Sharon

I have already try this solution after finding it on stackoverflow.
However it said that :

> The specified service does not exist as an installed service

 

I try execute it with admin right but it is the same. I think it is due to the fact that it is installed with thingworx.

 

java_w_tomcat.JPG

Just as a quick try -- execute startup.bat instead. If it doesn't work, I'm afraid you'll need to check your paths with Tech Support.

I try to execute it with admin mode and the results is a bit weird. It says that a file is missing but he is there. Did I miss something ?

 

error_file_missing.JPG

It looks like somehow you managed to move something between "Program Files" and "Program Files (x86)".

I just correct that, you are right I forget the (x86) in the path name.

 

I can't explain this error log line : Failed creating java C:\PROGRA~1\Java\JRE18~1.0_2\bin\server\jvm.dll
I check my file and I don't find why it is looking at this path because I have update all the path I found and I never find this path.


Do i need to restart my computer to update the path or is this automatic ?

Because I restart everytime and I don't know if it is useful.


slangley
23-Emerald II
(To:Clement_D)

Hi @Clement_D.

 

If you open a command prompt, and run the following, it will display your environment variables:

 

set {enter}

 

What is shown in the path for JRE_HOME?

 

Also, it would be a good idea to open the environment variables and validate where the JRE_HOME variable exists.  Is it under User Variables or System Variables?  It needs to be under System Variables.

 

Regards.

 

--Sharon

Thanks you all for helping me :)

Finally I have uninstalled thingworx and re-install, so it is now working.

 

However I was wondering where was save the thing and mashup created ?

slangley
23-Emerald II
(To:Clement_D)

Hi @Clement_D.

 

If I'm understanding your question, the entities you created would exist in the database.  If you reinstalled ThingWorx, however, I'm assuming the database was recreated and these artifacts are gone, short of an export or backup.

 

Please let me know if I'm missing something.

 

Regards.

 

--Sharon

Yes, you are right.
However before the re-installation I have copied the repository with all the files from thingworx on a usb drive in case I could recover something.

slangley
23-Emerald II
(To:slangley)

Hi @Clement_D.

 

Since you have a different post regarding the ability to restore from an H2 backup, please mark the Accepted Solution for the original question in this post.  This will help others in the community with the same issue/question.

 

Regards.

 

--Sharon

Okay, I didn't know if I should accept a solution because I didn't find a real solution or the cause of the crash even if it should be the upgrade.

Thanks you for giving me some useful tip @slangley @Constantine @PaiChung

Hello Clement,

 

It's a pity that we couldn't find a solution for this. The problems with pathes are usually quite simple (because there are only that many places where they can be specified), but unfortunately it requires some kind of trial-and-error approach, when you try something, then test whether it helped, then retry, etc. Doing it via screenshots is highly inefficient, takes a lot of time and I imagine also frustrating for you as well, and it didn't work at the end of the day.

 

If there's anything I could suggest -- this issue looks like a perfect candidate for Tech Support. Next time consider opening a TS case, then somebody will call you, you'll share your screen and go through this trial-and-error together with a PTC engineer, and I bet that he'll be able to solve your problem in an hour or two.

 

Regards,
Constantine

slangley
23-Emerald II
(To:Clement_D)

Hi @Clement_D.

 

It's perfectly fine to mark your response as the Accepted Solution.  In this case, you resolved it by reinstalling the product.  If you agree and you're unable to change the Accepted Solution, please let me know and I'll be happy to update it for you.

 

Regards.

 

--Sharon

Can you modify the solution to the message where I say I re-install thingworx. Thanks you

I am not able to do it.

slangley
23-Emerald II
(To:Clement_D)

Hi @Clement_D.

 

All done!

 

Regards.

 

--Sharon

slangley
23-Emerald II
(To:Constantine)

Hi @Clement_D.

 

I went back and looked at the image you provided of setenv.bat with the updated path.  This variable does not have the correct path:

 

SET JRE_HOME=C:\PROGRA~1\Java\JRE18-1.0_2

 

The error log confirms this:  [2019-07-24 14:35:13] [error] [ 1536] Failed creating java C:\PROGRA~1\Java\JRE18~1.0_2\bin\server\jvm.dll

 

From one of your later screenshots, the folder containing the java upgrade appears to be ....\jre1.8.0_122.  You'll have to validate the full path when making your change as I'm not able to see that information.

 

Regards.

 

--Sharon

 

 

I have already change this but I still have the same error on the log which is strange.

Is this possible that i have some memory issue on my server ?

 

 

path_change_setenv.JPG

Top Tags