Cannot start app server in 19.1

I'm upgrading appian from 18.3 to 19.1 and have made all required changes however when i try to start the appserver it creates a new folder in the default appian log directory called "tomcat" but there are no logs in that folder.  Previous release did have tomcat-stdout.log file that contained logs for the tomcat server has any one else run into this issue?

  Discussion posts and replies are publicly visible

Parents
  • So i was able to resolve this with some help from appian. The issue currently is on Windows installation i have not tested this on Linux. As per Appian documentation jdk is now built into appian which is great but with that a few more environment variables needs to be defined.

    1. JAVA_HOME this need to be <APPIAN_HOME>\java
    2. JRE_HOME this need to be <APPIAN_HOME>\java\jre
    3. CATALINA_HOME this needs to be <APPIAN_HOME>\tomcat\apache-tomcat
    4. In the path variables add %CATALINA_HOME%\lib

    If step 2 -4 are not carried out appian installation will run without any errors but appserver wont start and neither will tomcat as startup.bat is looking for Catalina_home environment variable. Starting 19.1 is different. After executing <APPIAN_HOME>\tomcat\apache-tomcat\bin\start-appserver.bat you also need to execute
    <APPIAN_HOME>\tomcat\apache-tomcat\bin\startup.bat ( thanks appian for pointing this) this will execute the tomcat and catalina process.
    While tomcat is running look for error " SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDescriptor Error deploying configuration descriptor [C:\appian191\appian\tomcat\apache-tomcat\conf\Catalina\localhost\suite.xml]java.io.FileNotFoundException: ..\..\..\conf\tomcatResources.xml (The system cannot find the path specified)" or "Failed to start component [/suite]" this is due to suite.xml having incomplete information. Suite.XML can be found in <APPIAN_HOME>\tomcat\apache-tomcat\conf\Catalina\localhost\ . Here's what my initial suite.xml looked like

    <!DOCTYPE config-xml [
    <!ENTITY datasource-config SYSTEM "file:../../../conf/tomcatResources.xml">
    ]>
    <Context docBase="${ae.home}/deployment/web.war" mapperDirectoryRedirectEnabled="true" swallowOutput="true">
    <Loader
    loaderClass="com.appiancorp.tomcat.loader.AppianWebappClassLoader"/>
    <JarScanner>
    <JarScanFilter
    pluggabilitySkip="*"
    tldSkip="*"
    tldScan="${tomcat.util.scan.StandardJarScanFilter.jarsToScan},
    string-*.jar,
    kcServlet-*.jar,
    taglibs-standard-impl-*.jar,
    regexp-*.jar,
    taglibs-standard-jstlel-*.jar,
    sitemesh-*.jar,
    jersey-server-*.jar,
    pluto-taglib-*.jar,
    i18n-*.jar,
    datetime-*.jar,
    struts-el-*.jar,
    struts-taglib-*.jar,
    struts-tiles-*.jar"
    />
    </JarScanner>

    <!-- Imported datasources from AE_HOME/conf/tomcatResources.xml -->
    &datasource-config;

    <!-- In order to start a local broker the property conf.jms.embeddedBrokerEnabled must be set to true in custom.properties -->
    <Resource name="jms/AppianProcessIntegrationConnectionFactory"
    type="org.apache.activemq.ActiveMQConnectionFactory"
    auth="Container"
    description="Appian Process Integration JMS Connection Factory"
    factory="org.apache.activemq.jndi.JNDIReferenceFactory"
    brokerURL="tcp://localhost:61616"
    useEmbeddedBroker="true"
    brokerName="AppianActiveMQBroker"/>

    <Resource name="jms/AppianProcessIntegrationQueue"
    type="org.apache.activemq.command.ActiveMQQueue"
    factory="org.apache.activemq.jndi.JNDIReferenceFactory"
    physicalName="APPIAN.PROCESS.INTEGRATION.QUEUE"
    auth="Container"/>

    <Resources cachingAllowed="false">
    <PostResources base="${ae.home}/deployment/web.war/WEB-INF/resources" className="org.apache.catalina.webresources.DirResourceSet" webAppMount="/WEB-INF/classes" />
    <PostResources base="${ae.home}/conf" className="org.apache.catalina.webresources.DirResourceSet" webAppMount="/WEB-INF/classes" />
    </Resources>

    <Manager pathname="" />

    <!-- BEGIN ACCESSLOG -->
    <Valve className="org.apache.catalina.valves.ExtendedAccessLogValve" directory="${ae.home}/logs"
    prefix="tomcat-access.log"
    pattern="date time cs-uri x-P($bgUrl) sc-status time-taken"
    conditionUnless="no-access-log" />
    <!-- END ACCESSLOG -->

    </Context>

    My Modified suite.xml has datasource values:


    <Context docBase="${ae.home}/deployment/web.war" mapperDirectoryRedirectEnabled="true" swallowOutput="true">
    <Loader
    loaderClass="com.appiancorp.tomcat.loader.AppianWebappClassLoader"/>
    <JarScanner>
    <JarScanFilter
    pluggabilitySkip="*"
    tldSkip="*"
    tldScan="${tomcat.util.scan.StandardJarScanFilter.jarsToScan},
    string-*.jar,
    kcServlet-*.jar,
    taglibs-standard-impl-*.jar,
    regexp-*.jar,
    taglibs-standard-jstlel-*.jar,
    sitemesh-*.jar,
    jersey-server-*.jar,
    pluto-taglib-*.jar,
    i18n-*.jar,
    datetime-*.jar,
    struts-el-*.jar,
    struts-taglib-*.jar,
    struts-tiles-*.jar"
    />
    </JarScanner>

    <!-- BEGIN DATASOURCES -->
    <Resource name="jdbc/AppianDS"
    factory="com.appiancorp.tomcat.datasource.EncodedPasswordDataSourceFactory"
    type="javax.sql.DataSource"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/appian_schema?useOldAliasMetadataBehavior=true&amp;useUnicode=true&amp;characterEncoding=utf8"
    username="xxxx"
    password="xxxxxx"
    initialSize="5"
    maxTotal="100"
    defaultTransactionIsolation="READ_COMMITTED"
    maxWaitMillis="30000"
    minIdle="5"
    minEvictableIdleTimeMillis="90000"
    timeBetweenEvictionRunsMillis="450000"
    numTestsPerEvictionRun="100"
    accessToUnderlyingConnectionAllowed="true"
    validationQuery="SELECT 1"
    testOnBorrow="true"
    />

    <!-- END DATASOURCES -->

    <!-- In order to start a local broker the property conf.jms.embeddedBrokerEnabled must be set to true in custom.properties -->
    <Resource name="jms/AppianProcessIntegrationConnectionFactory"
    type="org.apache.activemq.ActiveMQConnectionFactory"
    auth="Container"
    description="Appian Process Integration JMS Connection Factory"
    factory="org.apache.activemq.jndi.JNDIReferenceFactory"
    brokerURL="tcp://localhost:61616"
    useEmbeddedBroker="true"
    brokerName="AppianActiveMQBroker"/>

    <Resource name="jms/AppianProcessIntegrationQueue"
    type="org.apache.activemq.command.ActiveMQQueue"
    factory="org.apache.activemq.jndi.JNDIReferenceFactory"
    physicalName="APPIAN.PROCESS.INTEGRATION.QUEUE"
    auth="Container"/>

    <Resources cachingAllowed="false">
    <PostResources base="${ae.home}/deployment/web.war/WEB-INF/resources" className="org.apache.catalina.webresources.DirResourceSet" webAppMount="/WEB-INF/classes" />
    <PostResources base="${ae.home}/conf" className="org.apache.catalina.webresources.DirResourceSet" webAppMount="/WEB-INF/classes" />
    </Resources>

    <Manager pathname="" />

    <!-- BEGIN ACCESSLOG -->
    <Valve className="org.apache.catalina.valves.ExtendedAccessLogValve" directory="${ae.home}/logs"
    prefix="tomcat-access.log"
    pattern="date time cs-uri x-P($bgUrl) sc-status time-taken" />
    <!-- END ACCESSLOG -->

    </Context>



    Restarted the appian start process and it worked. This has only been seen on Appian Windows installation havent tested it on Linux yet.

  • 0
    Certified Lead Developer
    in reply to Ankur V
    This helped me!

    and i have noticed that there is no auto generated tomcat log file "tomcat-stdOut.log". Do you have any idea on how to generate the same?

    Thanks in advance!

    Regards,
    Nishanth
  • Appian has confirmed it's a issue in 19.1 and will be addressed in the upcoming hotfix

Reply Children
No Data