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
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&useUnicode=true&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.
Appian has confirmed it's a issue in 19.1 and will be addressed in the upcoming hotfix
above worked on linux, 19.1 hotfix A
thanks
matts401 can you confirm if tomcat-stdOut.log is generated automatically after applying hotfix A?
Yes, it is generating correctly for me
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
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 codeBEGIN 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&useUnicode=true&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