Mantis - Resin
Viewing Issue Advanced Details
5294 minor always 11-29-12 20:15 01-18-13 11:49
chinaliwee  
ferg  
normal  
closed 3.1.0  
fixed  
none    
none 4.0.34  
0005294: system-property tag works fine in the foreground while fail in the background
i need run two instances (processes) on one host (machine) for the same one web application.
noly just do it like this:
${RESIN_HOME}/bin/httpd.sh -conf ${APP_ROOT_DIR}/resin-active.conf
${RESIN_HOME}/bin/httpd.sh -conf ${APP_ROOT_DIR}/resin-standby.conf

the different configuration items between resin-active.conf and resin-standby.conf are as follows:
(1) watchdog listenning port: 6800 in resin-active.conf while 6801 in resin-standby.conf
(2) http listenning port: 8080 in resin-active.conf while 8081 in resin-standby.conf
(3) stdout and stderr log file
(4) others ...

i don't want these differences hidden in everywhere of the resin.conf file, so i put them together
(take them as user-defined variables using system-property tag) on head lines of the resin.conf.

take resin-active.conf for example, define variables first:

<resin xmlns="http://caucho.com/ns/resin" [^]
       xmlns:resin="http://caucho.com/ns/resin/core"> [^]
       
<!--node sensitive configuration items in user applications -->
<system-property mynode.watchdog.port="6801"/>
<system-property mynode.http.port="8081"/>
<system-property mynode.jmx.host="10.10.79.144"/>
<system-property mynode.jmx.port="10087"/>
<system-property mynode.gc.logfile="/opt/adlog/resin-gc-standby.log"/>

<system-property mynode.app.webroot="/root/forecast/WebRoot"/>
<system-property mynode.app.stdout="/opt/adlog/resin-stdout-standby.log"/>
<system-property mynode.app.stderr="/opt/adlog/resin-stder-standby.log"/>

<system-property mynode.app.node="node-standby"/>
<system-property mynode.app.logback="logback-standby.xml"/>

...

then reference the variable where you need

<server-default>
      <!-- The http port 8080 -->
      <http address="*" port="${mynode.http.port}"/>
...

it works fine when resin runs in the foreground while fail in the background (no error prompts, watch-dog starts successfully but web-app unloaded)
in other words:
execute the command ${RESIN_HOME}/bin/httpd.sh -conf ${APP_ROOT_DIR}/resin-active.conf OK
while ${RESIN_HOME}/bin/httpd.sh -conf ${APP_ROOT_DIR}/resin-active.conf start FAIL

i wander when and where the out-of-the-box variable ${resin.professional} or ${resin.root} of the following snippet is initialized ?

<management path="${resin.root}/admin">
    <user name="admin" password="password" disable="true"/>
                                                           
    <resin:if test="${resin.professional}">
      <deploy-service/>
      <jmx-service/>
      <log-service/>
      <xa-log-service/>
    </resin:if>
  </management>
  
thanks

Notes
(0006166)
ferg   
01-18-13 11:49   
server/6e51