service.bat installs service as "local service" instead of "local system" causing file permissions issues

service.bat installs service as "local service" instead of "local system" causing file permissions issues

book

Article ID: KB0076746

calendar_today

Updated On:

Products Versions
Spotfire Server 7.11.7, 10.3.4, 10.6.0

Description

When following instructions in the server manual for how to change JVM virtual memory or just whenever the user want to use service.bat to install the service, the service should not have file system permissions problems. In the affected versions service.bat installs service as "local service" instead of "local system" causing file permissions issues:

1. Run <installation dir>/tomcat/bin/service.bat remove (in an elevated/admin command prompt)
2. Run <installation dir>/tomcat/bin/service.bat install (in an elevated/admin command prompt)
3. Go to "windows services" and start the Spotfire server service

Result

  • The service user is now "Local Service" instead of "Local System".
  • The server can have problems writing to server.log
  • The server sometimes shows this in the log:
 WARN 2019-10-17T16:40:27,647+0200 [*Initialization*] server.nodemanager.ServiceConfigurationManager: Could not persist configuration!  java.io.FileNotFoundException: C:\tibco\tss\10.7.0\tomcat\..\nm\config\config.json (Access is denied)     at java.io.FileOutputStream.open0(Native Method) ~[?:1.8.0_221]     at java.io.FileOutputStream.open(FileOutputStream.java:270) ~[?:1.8.0_221]     at java.io.FileOutputStream.<init>(FileOutputStream.java:213) ~[?:1.8.0_221]     at java.io.FileOutputStream.<init>(FileOutputStream.java:162) ~[?:1.8.0_221]     at com.fasterxml.jackson.core.JsonFactory.createGenerator(JsonFactory.java:1195) ~[jackson-core.jar:2.9.9]     at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:933) ~[jackson-databind.jar:2.9.9.3]     at com.spotfire.server.nodemanager.ServiceConfigurationManager.update(ServiceConfigurationManager.java:298) ~[spotfire-node-manager.jar:?]     at com.spotfire.server.nodemanager.ServiceConfigurationManager.update(ServiceConfigurationManager.java:261) ~[spotfire-node-manager.jar:?]     at com.spotfire.server.nodemanager.NodeManager.afterPropertiesSet(NodeManager.java:298) ~[spotfire-node-manager.jar:?]     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1837) ~[spring-beans.jar:5.1.9.RELEASE]     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1774) ~[spring-beans.jar:5.1.9.RELEASE]     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) ~[spring-beans.jar:5.1.9.RELEASE]     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) ~[spring-beans.jar:5.1.9.RELEASE]


 

Issue/Introduction

service.bat installs service as "local service" instead of "local system" causing file permissions issues

Resolution

In the environment where fix for this behaviour has not been applied the solution is to manually change to Log On as to Local System account in Windows Services Property for that service. See GIF for reference:
User-added image