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.

  • Hi Ankur, Thanks for sharing this helpful information.
    I am facing another error while starting the app server when I check the log file the error stated as

    java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

    I have given root access to the uses in MySQL users but the error still remains, can you kindly tell me if you know how to solve this error?

    Waiting for a response,

    Thank you

Reply
  • Hi Ankur, Thanks for sharing this helpful information.
    I am facing another error while starting the app server when I check the log file the error stated as

    java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

    I have given root access to the uses in MySQL users but the error still remains, can you kindly tell me if you know how to solve this error?

    Waiting for a response,

    Thank you

Children
  • Can you connect to the DB from workbench using the credentials you have set? If it works then check the suite.xml in APPIAN_HOME>\tomcat\apache-tomcat\conf\Catalina\localhost\ and validate if the password matches in the below code

    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"

  • Hi Ankur,

    Thank you for the reply,

    I have provided the correct username and password in suite.xml file which I am using in the workbench to access the database, but I am still getting the same error.

  • can you kindly tell me which version of java connector are you using

  • Hi Ankur,

    Hope so you are doing fine, thank you for your reply.

    I have placed the following connector jars in the (repo\appian\tomcat\apache-tomcat\lib)

    mysql-connector-java-5.1.47

    mysql-connector-java-5.1.47-bin

    mysql-connector-java-8.0.11

    mysql-connector-java-8.0.16

    ------------------------------------

    I am trying to install appian server but having difficulty with configuring the MySql connection can you kindly tell me what is JNDI? what do I need to put in .xml file 

    e.g: 

    for tomcat.resource.xml

    what should be the name? here (<Resource name="jdbc/") what should be after jdbc/ should it be the schema name? e.g appian_schema I created in MySql server ->  (<Resource name="jdbc/appian_schema") or it should be something else?

    -------------------------------------------------------------

    what should be in url after port/

    is this the correct url? if I my sql servr is on local machine and the schema is appian_schema

    url="jdbc:mysql://localhost:3306/appian_schema?useOldAliasMetadataBehavior=true&amp;useServerPrepStmts=true"

    ---------------------------------------

    and for custom.properties.dev file, should the data source look like this?

    conf.data.datasources=appian_schema 

    I am new to appian and need to set a an appian server on my local machine, I am setting up server for first time, kindly help me out.

    Any help would be really appreciated 

    Thank you

  • Looks like you are installing appian and all components on a single server i would suggest you follow the steps mentioned here https://docs.appian.com/suite/help/19.2/Quick_Start_Installation_Guide.html and refer to this post if you encounter any issues.

    conf.data.APPIAN_DATA_SOURCE=jdbc/AppianDS --- AppianDS is the jndi name specified in Resource name="jdbc/xxx" in tomact resource.xml

    Your datasource url should be jdbc:mysql://localhost:3306/business_schema( name of businessschema)?useOldAliasMetadataBehavior=true

  • Thank you for your reply and helping me out with the connection string and JNDI.

    I am already using that "Quick Start Installation Guide" and I have only followed that instruction guide for setting up Appian server but still facing error. 

    This is the error in the log file

    SEVERE [localhost-startStop-1] org.apache.tomcat.jdbc.pool.ConnectionPool.init Unable to create initial connections of pool.
     java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)
  • here is the link to my tomcat log file, all services start without any issues, the only issue I am facing is with the Tomcat server, its not getting started

    community.appian.com/.../0118.tomcat_2D00_stdOut.log

  • What is the version of mysql and the connectors you are using? I had issues with latest mysql version on appian they are not always supported. I have mysql-installer-community-8.0.15.0 , mysql-workbench-community-8.0.15 and mysql-connector-java-5.1.47 and is works fine on 19.2